{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/restructure/index.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/ramda/es/F.js","../node_modules/ramda/es/T.js","../node_modules/ramda/es/__.js","../node_modules/ramda/es/internal/_isPlaceholder.js","../node_modules/ramda/es/internal/_curry1.js","../node_modules/ramda/es/internal/_curry2.js","../node_modules/ramda/es/add.js","../node_modules/ramda/es/internal/_concat.js","../node_modules/ramda/es/internal/_arity.js","../node_modules/ramda/es/internal/_curryN.js","../node_modules/ramda/es/curryN.js","../node_modules/ramda/es/addIndex.js","../node_modules/ramda/es/internal/_curry3.js","../node_modules/ramda/es/adjust.js","../node_modules/ramda/es/internal/_isArray.js","../node_modules/ramda/es/internal/_isTransformer.js","../node_modules/ramda/es/internal/_dispatchable.js","../node_modules/ramda/es/internal/_reduced.js","../node_modules/ramda/es/internal/_xfBase.js","../node_modules/ramda/es/internal/_xall.js","../node_modules/ramda/es/all.js","../node_modules/ramda/es/max.js","../node_modules/ramda/es/internal/_map.js","../node_modules/ramda/es/internal/_isString.js","../node_modules/ramda/es/internal/_isArrayLike.js","../node_modules/ramda/es/internal/_xwrap.js","../node_modules/ramda/es/bind.js","../node_modules/ramda/es/internal/_reduce.js","../node_modules/ramda/es/internal/_xmap.js","../node_modules/ramda/es/internal/_has.js","../node_modules/ramda/es/internal/_isArguments.js","../node_modules/ramda/es/keys.js","../node_modules/ramda/es/map.js","../node_modules/ramda/es/path.js","../node_modules/ramda/es/prop.js","../node_modules/ramda/es/pluck.js","../node_modules/ramda/es/reduce.js","../node_modules/ramda/es/allPass.js","../node_modules/ramda/es/always.js","../node_modules/ramda/es/and.js","../node_modules/ramda/es/internal/_xany.js","../node_modules/ramda/es/any.js","../node_modules/ramda/es/anyPass.js","../node_modules/ramda/es/ap.js","../node_modules/ramda/es/internal/_aperture.js","../node_modules/ramda/es/internal/_xaperture.js","../node_modules/ramda/es/aperture.js","../node_modules/ramda/es/append.js","../node_modules/ramda/es/apply.js","../node_modules/ramda/es/values.js","../node_modules/ramda/es/applySpec.js","../node_modules/ramda/es/applyTo.js","../node_modules/ramda/es/ascend.js","../node_modules/ramda/es/assoc.js","../node_modules/ramda/es/internal/_isInteger.js","../node_modules/ramda/es/isNil.js","../node_modules/ramda/es/assocPath.js","../node_modules/ramda/es/nAry.js","../node_modules/ramda/es/binary.js","../node_modules/ramda/es/internal/_isFunction.js","../node_modules/ramda/es/liftN.js","../node_modules/ramda/es/lift.js","../node_modules/ramda/es/both.js","../node_modules/ramda/es/curry.js","../node_modules/ramda/es/call.js","../node_modules/ramda/es/internal/_makeFlat.js","../node_modules/ramda/es/internal/_flatCat.js","../node_modules/ramda/es/internal/_forceReduced.js","../node_modules/ramda/es/chain.js","../node_modules/ramda/es/internal/_xchain.js","../node_modules/ramda/es/clamp.js","../node_modules/ramda/es/internal/_cloneRegExp.js","../node_modules/ramda/es/type.js","../node_modules/ramda/es/internal/_clone.js","../node_modules/ramda/es/clone.js","../node_modules/ramda/es/comparator.js","../node_modules/ramda/es/not.js","../node_modules/ramda/es/complement.js","../node_modules/ramda/es/internal/_pipe.js","../node_modules/ramda/es/internal/_checkForMethod.js","../node_modules/ramda/es/slice.js","../node_modules/ramda/es/tail.js","../node_modules/ramda/es/pipe.js","../node_modules/ramda/es/reverse.js","../node_modules/ramda/es/compose.js","../node_modules/ramda/es/composeK.js","../node_modules/ramda/es/internal/_pipeP.js","../node_modules/ramda/es/pipeP.js","../node_modules/ramda/es/composeP.js","../node_modules/ramda/es/nth.js","../node_modules/ramda/es/head.js","../node_modules/ramda/es/internal/_identity.js","../node_modules/ramda/es/identity.js","../node_modules/ramda/es/pipeWith.js","../node_modules/ramda/es/composeWith.js","../node_modules/ramda/es/internal/_arrayFromIterator.js","../node_modules/ramda/es/internal/_includesWith.js","../node_modules/ramda/es/internal/_objectIs.js","../node_modules/ramda/es/internal/_equals.js","../node_modules/ramda/es/internal/_functionName.js","../node_modules/ramda/es/equals.js","../node_modules/ramda/es/internal/_indexOf.js","../node_modules/ramda/es/internal/_includes.js","../node_modules/ramda/es/internal/_quote.js","../node_modules/ramda/es/internal/_toISOString.js","../node_modules/ramda/es/internal/_complement.js","../node_modules/ramda/es/internal/_filter.js","../node_modules/ramda/es/internal/_isObject.js","../node_modules/ramda/es/internal/_xfilter.js","../node_modules/ramda/es/filter.js","../node_modules/ramda/es/reject.js","../node_modules/ramda/es/internal/_toString.js","../node_modules/ramda/es/toString.js","../node_modules/ramda/es/concat.js","../node_modules/ramda/es/cond.js","../node_modules/ramda/es/constructN.js","../node_modules/ramda/es/construct.js","../node_modules/ramda/es/contains.js","../node_modules/ramda/es/converge.js","../node_modules/ramda/es/internal/_xreduceBy.js","../node_modules/ramda/es/reduceBy.js","../node_modules/ramda/es/countBy.js","../node_modules/ramda/es/dec.js","../node_modules/ramda/es/defaultTo.js","../node_modules/ramda/es/descend.js","../node_modules/ramda/es/internal/_Set.js","../node_modules/ramda/es/difference.js","../node_modules/ramda/es/differenceWith.js","../node_modules/ramda/es/dissoc.js","../node_modules/ramda/es/remove.js","../node_modules/ramda/es/update.js","../node_modules/ramda/es/dissocPath.js","../node_modules/ramda/es/divide.js","../node_modules/ramda/es/internal/_xdrop.js","../node_modules/ramda/es/drop.js","../node_modules/ramda/es/internal/_xtake.js","../node_modules/ramda/es/take.js","../node_modules/ramda/es/internal/_dropLast.js","../node_modules/ramda/es/internal/_xdropLast.js","../node_modules/ramda/es/dropLast.js","../node_modules/ramda/es/internal/_dropLastWhile.js","../node_modules/ramda/es/internal/_xdropLastWhile.js","../node_modules/ramda/es/dropLastWhile.js","../node_modules/ramda/es/internal/_xdropRepeatsWith.js","../node_modules/ramda/es/last.js","../node_modules/ramda/es/dropRepeatsWith.js","../node_modules/ramda/es/dropRepeats.js","../node_modules/ramda/es/internal/_xdropWhile.js","../node_modules/ramda/es/dropWhile.js","../node_modules/ramda/es/or.js","../node_modules/ramda/es/either.js","../node_modules/ramda/es/empty.js","../node_modules/ramda/es/takeLast.js","../node_modules/ramda/es/endsWith.js","../node_modules/ramda/es/eqBy.js","../node_modules/ramda/es/eqProps.js","../node_modules/ramda/es/evolve.js","../node_modules/ramda/es/internal/_xfind.js","../node_modules/ramda/es/find.js","../node_modules/ramda/es/internal/_xfindIndex.js","../node_modules/ramda/es/findIndex.js","../node_modules/ramda/es/internal/_xfindLast.js","../node_modules/ramda/es/findLast.js","../node_modules/ramda/es/internal/_xfindLastIndex.js","../node_modules/ramda/es/findLastIndex.js","../node_modules/ramda/es/flatten.js","../node_modules/ramda/es/flip.js","../node_modules/ramda/es/forEach.js","../node_modules/ramda/es/forEachObjIndexed.js","../node_modules/ramda/es/fromPairs.js","../node_modules/ramda/es/groupBy.js","../node_modules/ramda/es/groupWith.js","../node_modules/ramda/es/gt.js","../node_modules/ramda/es/gte.js","../node_modules/ramda/es/hasPath.js","../node_modules/ramda/es/has.js","../node_modules/ramda/es/hasIn.js","../node_modules/ramda/es/identical.js","../node_modules/ramda/es/ifElse.js","../node_modules/ramda/es/inc.js","../node_modules/ramda/es/includes.js","../node_modules/ramda/es/indexBy.js","../node_modules/ramda/es/indexOf.js","../node_modules/ramda/es/init.js","../node_modules/ramda/es/innerJoin.js","../node_modules/ramda/es/insert.js","../node_modules/ramda/es/insertAll.js","../node_modules/ramda/es/uniqBy.js","../node_modules/ramda/es/uniq.js","../node_modules/ramda/es/intersection.js","../node_modules/ramda/es/intersperse.js","../node_modules/ramda/es/internal/_objectAssign.js","../node_modules/ramda/es/objOf.js","../node_modules/ramda/es/internal/_stepCat.js","../node_modules/ramda/es/into.js","../node_modules/ramda/es/invert.js","../node_modules/ramda/es/invertObj.js","../node_modules/ramda/es/invoker.js","../node_modules/ramda/es/is.js","../node_modules/ramda/es/isEmpty.js","../node_modules/ramda/es/join.js","../node_modules/ramda/es/juxt.js","../node_modules/ramda/es/keysIn.js","../node_modules/ramda/es/lastIndexOf.js","../node_modules/ramda/es/internal/_isNumber.js","../node_modules/ramda/es/length.js","../node_modules/ramda/es/lens.js","../node_modules/ramda/es/lensIndex.js","../node_modules/ramda/es/lensPath.js","../node_modules/ramda/es/lensProp.js","../node_modules/ramda/es/lt.js","../node_modules/ramda/es/lte.js","../node_modules/ramda/es/mapAccum.js","../node_modules/ramda/es/mapAccumRight.js","../node_modules/ramda/es/mapObjIndexed.js","../node_modules/ramda/es/match.js","../node_modules/ramda/es/mathMod.js","../node_modules/ramda/es/maxBy.js","../node_modules/ramda/es/sum.js","../node_modules/ramda/es/mean.js","../node_modules/ramda/es/median.js","../node_modules/ramda/es/memoizeWith.js","../node_modules/ramda/es/merge.js","../node_modules/ramda/es/mergeAll.js","../node_modules/ramda/es/mergeWithKey.js","../node_modules/ramda/es/mergeDeepWithKey.js","../node_modules/ramda/es/mergeDeepLeft.js","../node_modules/ramda/es/mergeDeepRight.js","../node_modules/ramda/es/mergeDeepWith.js","../node_modules/ramda/es/mergeLeft.js","../node_modules/ramda/es/mergeRight.js","../node_modules/ramda/es/mergeWith.js","../node_modules/ramda/es/min.js","../node_modules/ramda/es/minBy.js","../node_modules/ramda/es/modulo.js","../node_modules/ramda/es/move.js","../node_modules/ramda/es/multiply.js","../node_modules/ramda/es/negate.js","../node_modules/ramda/es/none.js","../node_modules/ramda/es/nthArg.js","../node_modules/ramda/es/o.js","../node_modules/ramda/es/internal/_of.js","../node_modules/ramda/es/of.js","../node_modules/ramda/es/omit.js","../node_modules/ramda/es/once.js","../node_modules/ramda/es/internal/_assertPromise.js","../node_modules/ramda/es/otherwise.js","../node_modules/ramda/es/over.js","../node_modules/ramda/es/pair.js","../node_modules/ramda/es/internal/_createPartialApplicator.js","../node_modules/ramda/es/partial.js","../node_modules/ramda/es/partialRight.js","../node_modules/ramda/es/partition.js","../node_modules/ramda/es/pathEq.js","../node_modules/ramda/es/pathOr.js","../node_modules/ramda/es/pathSatisfies.js","../node_modules/ramda/es/pick.js","../node_modules/ramda/es/pickAll.js","../node_modules/ramda/es/pickBy.js","../node_modules/ramda/es/pipeK.js","../node_modules/ramda/es/prepend.js","../node_modules/ramda/es/product.js","../node_modules/ramda/es/useWith.js","../node_modules/ramda/es/project.js","../node_modules/ramda/es/propEq.js","../node_modules/ramda/es/propIs.js","../node_modules/ramda/es/propOr.js","../node_modules/ramda/es/propSatisfies.js","../node_modules/ramda/es/props.js","../node_modules/ramda/es/range.js","../node_modules/ramda/es/reduceRight.js","../node_modules/ramda/es/reduceWhile.js","../node_modules/ramda/es/reduced.js","../node_modules/ramda/es/times.js","../node_modules/ramda/es/repeat.js","../node_modules/ramda/es/replace.js","../node_modules/ramda/es/scan.js","../node_modules/ramda/es/sequence.js","../node_modules/ramda/es/set.js","../node_modules/ramda/es/sort.js","../node_modules/ramda/es/sortBy.js","../node_modules/ramda/es/sortWith.js","../node_modules/ramda/es/split.js","../node_modules/ramda/es/splitAt.js","../node_modules/ramda/es/splitEvery.js","../node_modules/ramda/es/splitWhen.js","../node_modules/ramda/es/startsWith.js","../node_modules/ramda/es/subtract.js","../node_modules/ramda/es/symmetricDifference.js","../node_modules/ramda/es/symmetricDifferenceWith.js","../node_modules/ramda/es/takeLastWhile.js","../node_modules/ramda/es/internal/_xtakeWhile.js","../node_modules/ramda/es/takeWhile.js","../node_modules/ramda/es/internal/_xtap.js","../node_modules/ramda/es/tap.js","../node_modules/ramda/es/test.js","../node_modules/ramda/es/internal/_isRegExp.js","../node_modules/ramda/es/then.js","../node_modules/ramda/es/toLower.js","../node_modules/ramda/es/toPairs.js","../node_modules/ramda/es/toPairsIn.js","../node_modules/ramda/es/toUpper.js","../node_modules/ramda/es/transduce.js","../node_modules/ramda/es/transpose.js","../node_modules/ramda/es/traverse.js","../node_modules/ramda/es/trim.js","../node_modules/ramda/es/tryCatch.js","../node_modules/ramda/es/unapply.js","../node_modules/ramda/es/unary.js","../node_modules/ramda/es/uncurryN.js","../node_modules/ramda/es/unfold.js","../node_modules/ramda/es/union.js","../node_modules/ramda/es/uniqWith.js","../node_modules/ramda/es/unionWith.js","../node_modules/ramda/es/unless.js","../node_modules/ramda/es/unnest.js","../node_modules/ramda/es/until.js","../node_modules/ramda/es/valuesIn.js","../node_modules/ramda/es/view.js","../node_modules/ramda/es/when.js","../node_modules/ramda/es/where.js","../node_modules/ramda/es/whereEq.js","../node_modules/ramda/es/without.js","../node_modules/ramda/es/xprod.js","../node_modules/ramda/es/zip.js","../node_modules/ramda/es/zipObj.js","../node_modules/ramda/es/zipWith.js","../node_modules/ramda/es/thunkify.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../src/index.js","../../src/utils/propsEqual.js","../../src/renderer.js","../../src/dom/usePDF.js","../../src/dom/BlobProvider.js","../../src/dom/PDFDownloadLink.js","../../src/dom/index.js","../../src/dom/PDFViewer.js","../node_modules/prop-types/index.js","../node_modules/@react-pdf/primitives/src/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/crypto-js/core.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/axios/index.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/buffer/index.js","../node_modules/@react-pdf/yoga/src/dist/entry-browser.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/crypto-js/cipher-core.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/axios/lib/utils.js","../node_modules/webpack/buildin/global.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/process/browser.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/restructure/src/utils.js","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@react-pdf/unicode-properties/lib/unicode-properties.es.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/react-dom/index.js","../node_modules/canvas-confetti/dist/confetti.module.mjs","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/debug/src/browser.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../node_modules/@react-pdf/layout/lib/node/setYogaValue.js","../node_modules/browserify-zlib/lib/index.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/fast-memoize/src/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/@react-pdf/textkit/lib/run/scale.js","../node_modules/crypto-js/evpkdf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/safer-buffer/safer.js","../node_modules/restructure/src/Number.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../node_modules/@react-pdf/render/lib/operations/save.js","../node_modules/@react-pdf/render/lib/operations/restore.js","../node_modules/crypto-js/enc-base64.js","../node_modules/crypto-js/md5.js","../node_modules/@react-pdf/layout/lib/utils/matchPercent.js","../node_modules/stream-browserify/index.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/re-resizable/lib/resizer.js","../node_modules/re-resizable/lib/index.js","../node_modules/react-rnd/lib/index.js","../node_modules/@react-pdf/fontkit/lib/fontkit.browser.es.js","../node_modules/unicode-trie/index.js","../node_modules/fabric/dist/fabric.js","../node_modules/object-assign/index.js","../node_modules/engine.io-parser/lib/index.js","../node_modules/component-emitter/index.js","../node_modules/core-util-is/lib/util.js","../node_modules/define-properties/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../node_modules/@react-pdf/textkit/lib/run/advanceWidth.js","../node_modules/@react-pdf/textkit/lib/attributedString/advanceWidth.js","../node_modules/@react-pdf/textkit/lib/attributedString/reduce.js","../node_modules/@react-pdf/textkit/lib/run/copy.js","../node_modules/@react-pdf/textkit/lib/attributedString/slice.js","../node_modules/@react-pdf/layout/lib/node/getPadding.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/engine.io-client/lib/globalThis.browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/get.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/events/events.js","../node_modules/process-nextick-args/index.js","../node_modules/util/util.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../node_modules/@react-pdf/render/lib/operations/clipNode.js","../node_modules/pako/lib/utils/common.js","../node_modules/crypto-js/x64-core.js","../node_modules/@react-pdf/textkit/lib/run/getFont.js","../node_modules/react-is/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/clone/clone.js","../node_modules/react-countdown/dist/index.es.js","../node_modules/engine.io-client/lib/transport.js","../node_modules/parseqs/index.js","../node_modules/socket.io-parser/dist/index.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js","../node_modules/safe-buffer/index.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/restructure/src/DecodeStream.js","../node_modules/iconv-lite/lib/index.js","../node_modules/function-bind/index.js","../node_modules/call-bind/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/@react-pdf/textkit/lib/run/ascent.js","../node_modules/@react-pdf/textkit/lib/run/descent.js","../node_modules/@react-pdf/textkit/lib/attributedString/ascent.js","../node_modules/crypto-js/sha1.js","../node_modules/crypto-js/hmac.js","../node_modules/@react-pdf/stylesheet/lib/utils/castFloat.js","../node_modules/@react-pdf/textkit/lib/attributedString/append.js","../node_modules/@react-pdf/textkit/lib/utils/isNumber.js","../node_modules/@react-pdf/textkit/lib/glyph/fromCodePoint.js","../node_modules/@react-pdf/textkit/lib/utils/stringFromCodePoints.js","../node_modules/@react-pdf/textkit/lib/run/slice.js","../node_modules/@react-pdf/textkit/lib/run/glyphIndexAt.js","../node_modules/@react-pdf/textkit/lib/attributedString/empty.js","../node_modules/@react-pdf/textkit/lib/glyph/isWhiteSpace.js","../node_modules/@react-pdf/textkit/lib/attributedString/runIndexAt.js","../node_modules/@react-pdf/textkit/lib/attributedString/index.js","../node_modules/@react-pdf/layout/lib/utils/upperFirst.js","../node_modules/@react-pdf/layout/lib/node/getMargin.js","../node_modules/@react-pdf/layout/lib/node/setAlign.js","../node_modules/tiny-inflate/index.js","../node_modules/@react-pdf/pdfkit/lib/pdfkit.browser.es.js","../node_modules/@react-pdf/png-js/lib/png-js.browser.es.js","../node_modules/rc-util/es/warning.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/deep-equal/index.js","StateMachine.js","../node_modules/crypto-js/index.js","../node_modules/@react-pdf/renderer/node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/parseuri/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/socket.io-client/build/manager.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/engine.io-client/lib/transports/index.js","../node_modules/engine.io-client/lib/xmlhttprequest.js","../node_modules/engine.io-client/lib/transports/polling.js","../node_modules/engine.io-parser/lib/commons.js","../node_modules/yeast/index.js","../node_modules/engine.io-client/lib/util.js","../node_modules/isarray/index.js","../node_modules/socket.io-client/build/socket.js","../node_modules/socket.io-parser/dist/is-binary.js","../node_modules/socket.io-client/build/on.js","../node_modules/socket.io-client/build/typed-events.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/cross-fetch/dist/browser-ponyfill.js","../node_modules/restructure/src/Array.js","../node_modules/restructure/src/Struct.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/call-bind/callBound.js","../node_modules/get-intrinsic/index.js","../node_modules/has-symbols/index.js","../node_modules/object-is/implementation.js","../node_modules/object-is/polyfill.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/polyfill.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js","../node_modules/babel-runtime/core-js/get-iterator.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/@react-pdf/render/lib/primitives/renderEllipse.js","../node_modules/@react-pdf/render/lib/primitives/renderGlyphs.js","../node_modules/@react-pdf/render/lib/primitives/renderPolyline.js","../node_modules/@react-pdf/render/lib/svg/parsePoints.js","../node_modules/@react-pdf/render/lib/utils/isPath.js","../node_modules/@react-pdf/render/lib/utils/isText.js","../node_modules/@react-pdf/render/lib/utils/isRect.js","../node_modules/@react-pdf/render/lib/utils/isLine.js","../node_modules/@react-pdf/render/lib/utils/isImage.js","../node_modules/@react-pdf/render/lib/utils/isCircle.js","../node_modules/@react-pdf/render/lib/utils/isEllipse.js","../node_modules/@react-pdf/render/lib/utils/isPolygon.js","../node_modules/@react-pdf/render/lib/utils/isPolyline.js","../node_modules/@react-pdf/render/lib/operations/transform.js","../node_modules/@react-pdf/textkit/lib/run/height.js","../node_modules/@react-pdf/render/lib/utils/parseColor.js","../node_modules/color-string/index.js","../node_modules/assert/assert.js","../node_modules/pako/lib/zlib/adler32.js","../node_modules/pako/lib/zlib/crc32.js","../node_modules/crypto-js/sha256.js","../node_modules/crypto-js/sha512.js","../node_modules/@react-pdf/stylesheet/lib/index.js","../node_modules/@react-pdf/stylesheet/lib/expand/boxModel.js","../node_modules/@react-pdf/stylesheet/lib/flatten/index.js","../node_modules/@react-pdf/stylesheet/lib/transform/colors.js","../node_modules/@react-pdf/stylesheet/lib/transform/transform.js","../node_modules/@react-pdf/stylesheet/lib/utils/offsetKeyword.js","../node_modules/@react-pdf/textkit/lib/layout/index.js","../node_modules/@react-pdf/textkit/lib/attributedString/fromFragments.js","../node_modules/@react-pdf/textkit/lib/run/empty.js","../node_modules/@react-pdf/textkit/lib/run/append.js","../node_modules/@react-pdf/textkit/lib/attributedString/trim.js","../node_modules/@react-pdf/textkit/lib/indices/normalize.js","../node_modules/@react-pdf/textkit/lib/run/filter.js","../node_modules/@react-pdf/textkit/lib/run/runIndexAt.js","../node_modules/@react-pdf/textkit/lib/run/omit.js","../node_modules/@react-pdf/textkit/lib/attributedString/height.js","../node_modules/@react-pdf/textkit/lib/attributedString/length.js","../node_modules/@react-pdf/textkit/lib/attributedString/start.js","../node_modules/@react-pdf/textkit/lib/attributedString/end.js","../node_modules/@react-pdf/textkit/lib/attributedString/leadingOffset.js","../node_modules/@react-pdf/textkit/lib/attributedString/trailingOffset.js","../node_modules/@react-pdf/textkit/lib/attributedString/dropLast.js","../node_modules/@react-pdf/textkit/lib/engines/linebreaker/index.js","../node_modules/@react-pdf/textkit/lib/attributedString/insertGlyph.js","../node_modules/@react-pdf/textkit/lib/run/length.js","../node_modules/@react-pdf/textkit/lib/attributedString/advanceWidthBetween.js","../node_modules/@react-pdf/textkit/lib/attributedString/runAt.js","../node_modules/@react-pdf/textkit/lib/attributedString/indexAtOffset.js","../node_modules/@react-pdf/textkit/lib/engines/justification/index.js","../node_modules/@react-pdf/textkit/lib/engines/scriptItemizer/index.js","../node_modules/@react-pdf/textkit/lib/engines/wordHyphenation/index.js","../node_modules/@react-pdf/textkit/lib/engines/textDecoration/index.js","../node_modules/@react-pdf/layout/lib/text/transformText.js","../node_modules/@react-pdf/layout/lib/text/fontSubstitution.js","../node_modules/@react-pdf/layout/lib/svg/parseViewbox.js","../node_modules/@react-pdf/layout/lib/text/emoji.js","../../src/png.js","../../src/jpeg.js","../../src/cache.js","../../src/resolve.js","../node_modules/@react-pdf/layout/lib/node/getWrap.js","../node_modules/@react-pdf/layout/lib/steps/resolveTextLayout.js","../node_modules/@react-pdf/layout/lib/text/layoutText.js","../node_modules/@react-pdf/layout/lib/steps/resolveInheritance.js","../node_modules/@react-pdf/layout/lib/steps/resolveDimensions.js","../node_modules/@react-pdf/layout/lib/page/isHeightAuto.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/socket.io-client/build/index.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/dom-to-image/src/dom-to-image.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/queue/index.js","../node_modules/blob-stream/index.js","../../src/font.js","../../src/standard.js","../node_modules/@react-pdf/render/lib/index.js","../node_modules/svg-arc-to-cubic-bezier/cjs/index.js","../node_modules/@react-pdf/layout/lib/index.js","../node_modules/react-reconciler/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/react-icons/lib/esm/iconsManifest.js","../node_modules/react-icons/lib/esm/iconContext.js","../node_modules/react-icons/lib/esm/iconBase.js","../node_modules/react-icons/ai/index.esm.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/socket.io-client/build/url.js","../node_modules/debug/src/common.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/ms/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/engine.io-client/lib/index.js","../node_modules/engine.io-client/lib/socket.js","../node_modules/has-cors/index.js","../node_modules/engine.io-client/lib/transports/polling-xhr.js","../node_modules/engine.io-parser/lib/encodePacket.browser.js","../node_modules/engine.io-parser/lib/decodePacket.browser.js","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/engine.io-client/lib/transports/polling-jsonp.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/engine.io-client/lib/transports/websocket.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/engine.io-client/lib/transports/websocket-constructor.browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/socket.io-parser/dist/binary.js","../node_modules/backo2/index.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/util-deprecate/browser.js","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/transform.js","../node_modules/stream-browserify/node_modules/readable-stream/passthrough.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/node_modules/inherits/inherits_browser.js","../node_modules/blob/index.js","../node_modules/is-url/index.js","../node_modules/restructure/src/EncodeStream.js","../node_modules/iconv-lite/lib/bom-handling.js","../node_modules/iconv-lite/encodings/index.js","../node_modules/iconv-lite/encodings/internal.js","../node_modules/iconv-lite/encodings/utf16.js","../node_modules/iconv-lite/encodings/utf7.js","../node_modules/iconv-lite/encodings/sbcs-codec.js","../node_modules/iconv-lite/encodings/sbcs-data.js","../node_modules/iconv-lite/encodings/sbcs-data-generated.js","../node_modules/iconv-lite/encodings/dbcs-codec.js","../node_modules/iconv-lite/encodings/dbcs-data.js","../node_modules/restructure/src/LazyArray.js","../node_modules/restructure/src/Bitfield.js","../node_modules/restructure/src/Boolean.js","../node_modules/restructure/src/Buffer.js","../node_modules/restructure/src/Enum.js","../node_modules/restructure/src/Optional.js","../node_modules/restructure/src/Reserved.js","../node_modules/restructure/src/String.js","../node_modules/restructure/src/VersionedStruct.js","../node_modules/restructure/src/Pointer.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/object-keys/implementation.js","../node_modules/is-arguments/index.js","../node_modules/has-symbols/shams.js","../node_modules/function-bind/implementation.js","../node_modules/has/src/index.js","../node_modules/object-is/index.js","../node_modules/object-is/shim.js","../node_modules/is-regex/index.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/is-date-object/index.js","../node_modules/babel-runtime/helpers/slicedToArray.js","../node_modules/babel-runtime/core-js/is-iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/is-iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js","../node_modules/babel-runtime/helpers/defineProperty.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/babel-runtime/regenerator/index.js","../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime-module.js","../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/@react-pdf/render/lib/primitives/renderNode.js","../node_modules/@react-pdf/render/lib/primitives/renderSvg.js","../node_modules/@react-pdf/render/lib/primitives/renderPath.js","../node_modules/@react-pdf/render/lib/primitives/renderRect.js","../node_modules/@react-pdf/render/lib/primitives/renderLine.js","../node_modules/@react-pdf/render/lib/primitives/renderGroup.js","../node_modules/@react-pdf/render/lib/primitives/renderCircle.js","../node_modules/@react-pdf/render/lib/primitives/renderSvgText.js","../node_modules/@react-pdf/render/lib/primitives/renderPolygon.js","../node_modules/@react-pdf/render/lib/primitives/renderSvgImage.js","../node_modules/@react-pdf/render/lib/utils/isTspan.js","../node_modules/@react-pdf/render/lib/utils/isGroup.js","../node_modules/@react-pdf/render/lib/utils/isTextInstance.js","../node_modules/@react-pdf/render/lib/svg/getBoundingBox.js","../node_modules/abs-svg-path/index.js","../node_modules/parse-svg-path/index.js","../node_modules/normalize-svg-path/index.mjs","../node_modules/@react-pdf/render/lib/primitives/renderText.js","../node_modules/@react-pdf/textkit/lib/run/lineGap.js","../node_modules/color-name/index.js","../node_modules/simple-swizzle/index.js","../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../node_modules/@react-pdf/render/lib/primitives/renderPage.js","../node_modules/@react-pdf/render/lib/primitives/renderNote.js","../node_modules/@react-pdf/render/lib/primitives/renderImage.js","../node_modules/@react-pdf/render/lib/utils/resolveObjectFit.js","../node_modules/@react-pdf/render/lib/utils/matchPercent.js","../node_modules/@react-pdf/render/lib/primitives/renderDebug.js","../node_modules/@react-pdf/render/lib/primitives/renderCanvas.js","../node_modules/@react-pdf/render/lib/primitives/renderBorders.js","../node_modules/@react-pdf/render/lib/primitives/renderBackground.js","../node_modules/@react-pdf/render/lib/utils/isSvg.js","../node_modules/@react-pdf/render/lib/utils/isLink.js","../node_modules/@react-pdf/render/lib/utils/isPage.js","../node_modules/@react-pdf/render/lib/utils/isNote.js","../node_modules/@react-pdf/render/lib/utils/isCanvas.js","../node_modules/@react-pdf/render/lib/operations/setLink.js","../node_modules/@react-pdf/render/lib/operations/setDestination.js","../node_modules/@react-pdf/render/lib/operations/addMetadata.js","../node_modules/browserify-zlib/lib/binding.js","../node_modules/pako/lib/zlib/zstream.js","../node_modules/pako/lib/zlib/deflate.js","../node_modules/pako/lib/zlib/trees.js","../node_modules/pako/lib/zlib/messages.js","../node_modules/pako/lib/zlib/inflate.js","../node_modules/pako/lib/zlib/inffast.js","../node_modules/pako/lib/zlib/inftrees.js","../node_modules/pako/lib/zlib/constants.js","../node_modules/crypto-js/lib-typedarrays.js","../node_modules/crypto-js/enc-utf16.js","../node_modules/crypto-js/enc-base64url.js","../node_modules/crypto-js/sha224.js","../node_modules/crypto-js/sha384.js","../node_modules/crypto-js/sha3.js","../node_modules/crypto-js/ripemd160.js","../node_modules/crypto-js/pbkdf2.js","../node_modules/crypto-js/mode-cfb.js","../node_modules/crypto-js/mode-ctr.js","../node_modules/crypto-js/mode-ctr-gladman.js","../node_modules/crypto-js/mode-ofb.js","../node_modules/crypto-js/mode-ecb.js","../node_modules/crypto-js/pad-ansix923.js","../node_modules/crypto-js/pad-iso10126.js","../node_modules/crypto-js/pad-iso97971.js","../node_modules/crypto-js/pad-zeropadding.js","../node_modules/crypto-js/pad-nopadding.js","../node_modules/crypto-js/format-hex.js","../node_modules/crypto-js/aes.js","../node_modules/crypto-js/tripledes.js","../node_modules/crypto-js/rc4.js","../node_modules/crypto-js/rabbit.js","../node_modules/crypto-js/rabbit-legacy.js","../node_modules/@react-pdf/layout/lib/utils/asyncCompose.js","../node_modules/@react-pdf/layout/lib/steps/resolveSvg.js","../node_modules/@react-pdf/stylesheet/lib/expand/index.js","../node_modules/@react-pdf/stylesheet/lib/expand/flex.js","../node_modules/@react-pdf/stylesheet/lib/expand/margins.js","../node_modules/@react-pdf/stylesheet/lib/expand/borders.js","../node_modules/@react-pdf/stylesheet/lib/expand/paddings.js","../node_modules/@react-pdf/stylesheet/lib/expand/objectPosition.js","../node_modules/@react-pdf/stylesheet/lib/expand/transformOrigin.js","../node_modules/@react-pdf/stylesheet/lib/transform/index.js","../node_modules/@react-pdf/stylesheet/lib/transform/units.js","../node_modules/hsl-to-hex/index.js","../node_modules/hsl-to-rgb-for-reals/converter.js","../node_modules/@react-pdf/stylesheet/lib/transform/fontWeight.js","../node_modules/@react-pdf/stylesheet/lib/transform/objectPosition.js","../node_modules/@react-pdf/stylesheet/lib/transform/transformOrigin.js","../node_modules/@react-pdf/stylesheet/lib/mediaQueries/index.js","../node_modules/media-engine/src/index.js","../node_modules/media-engine/src/parser.js","../node_modules/media-engine/src/queries.js","../node_modules/media-engine/src/operators.js","../node_modules/@react-pdf/layout/lib/svg/layoutText.js","../node_modules/@react-pdf/textkit/lib/layout/wrapWords.js","../node_modules/@react-pdf/textkit/lib/layout/typesetter.js","../node_modules/@react-pdf/textkit/lib/rect/copy.js","../node_modules/@react-pdf/textkit/lib/rect/crop.js","../node_modules/@react-pdf/textkit/lib/block/slice.js","../node_modules/@react-pdf/textkit/lib/block/height.js","../node_modules/@react-pdf/textkit/lib/block/truncate.js","../node_modules/@react-pdf/textkit/lib/indices/append.js","../node_modules/@react-pdf/textkit/lib/run/offset.js","../node_modules/@react-pdf/textkit/lib/glyph/slice.js","../node_modules/@react-pdf/textkit/lib/utils/isBetween.js","../node_modules/@react-pdf/textkit/lib/run/subtract.js","../node_modules/@react-pdf/textkit/lib/utils/mapIndexed.js","../node_modules/@react-pdf/textkit/lib/layout/layoutParagraph.js","../node_modules/@react-pdf/textkit/lib/block/sliceAtHeight.js","../node_modules/@react-pdf/textkit/lib/layout/generateGlyphs.js","../node_modules/@react-pdf/textkit/lib/indices/resolve.js","../node_modules/@react-pdf/textkit/lib/layout/resolveYOffset.js","../node_modules/@react-pdf/textkit/lib/layout/preprocessRuns.js","../node_modules/@react-pdf/textkit/lib/run/flatten.js","../node_modules/@react-pdf/textkit/lib/run/sort.js","../node_modules/@react-pdf/textkit/lib/run/isEmpty.js","../node_modules/@react-pdf/textkit/lib/layout/splitParagraphs.js","../node_modules/@react-pdf/textkit/lib/layout/finalizeFragments.js","../node_modules/@react-pdf/textkit/lib/run/leadingOffset.js","../node_modules/@react-pdf/textkit/lib/run/trailingOffset.js","../node_modules/@react-pdf/textkit/lib/run/dropLast.js","../node_modules/@react-pdf/textkit/lib/layout/resolveAttachments.js","../node_modules/@react-pdf/textkit/lib/layout/applyDefaultStyles.js","../node_modules/@react-pdf/textkit/lib/engines/linebreaker/bestFit.js","../node_modules/@react-pdf/textkit/lib/engines/linebreaker/linebreak.js","../node_modules/@react-pdf/textkit/lib/engines/linebreaker/linkedList.js","../node_modules/@react-pdf/textkit/lib/run/insert.js","../node_modules/@react-pdf/textkit/lib/run/concat.js","../node_modules/@react-pdf/textkit/lib/run/advanceWidthBetween.js","../node_modules/@react-pdf/textkit/lib/attributedString/copy.js","../node_modules/@react-pdf/textkit/lib/attributedString/descent.js","../node_modules/@react-pdf/textkit/lib/attributedString/glyphWidthAt.js","../node_modules/@react-pdf/textkit/lib/run/indexAtOffset.js","../node_modules/@react-pdf/textkit/lib/attributedString/prepend.js","../node_modules/@react-pdf/textkit/lib/run/add.js","../node_modules/@react-pdf/textkit/lib/run/prepend.js","../node_modules/@react-pdf/textkit/lib/indices/prepend.js","../node_modules/@react-pdf/textkit/lib/attributedString/sliceAtOffset.js","../node_modules/@react-pdf/textkit/lib/engines/justification/getFactors.js","../node_modules/@react-pdf/textkit/lib/engines/justification/getDistances.js","../node_modules/hyphen/index.js","../node_modules/hyphen/hyphen.js","../node_modules/hyphen/patterns/en-us.js","../node_modules/@react-pdf/layout/lib/utils/capitalize.js","../node_modules/@react-pdf/layout/lib/text/standardFont.js","../node_modules/@react-pdf/layout/lib/svg/replaceDefs.js","../node_modules/@react-pdf/layout/lib/svg/getDefs.js","../node_modules/@react-pdf/layout/lib/svg/getContainer.js","../node_modules/@react-pdf/layout/lib/svg/inheritProps.js","../node_modules/@react-pdf/layout/lib/svg/parseAspectRatio.js","../node_modules/@react-pdf/layout/lib/steps/resolveZIndex.js","../node_modules/@react-pdf/layout/lib/steps/resolveAssets.js","../node_modules/emoji-regex/index.js","../node_modules/@react-pdf/layout/lib/image/fetchImage.js","../node_modules/@react-pdf/layout/lib/image/getSource.js","../node_modules/@react-pdf/layout/lib/image/resolveSource.js","../node_modules/@react-pdf/layout/lib/steps/resolveStyles.js","../node_modules/@react-pdf/layout/lib/steps/resolveOrigins.js","../node_modules/@react-pdf/layout/lib/node/getOrigin.js","../node_modules/@react-pdf/layout/lib/steps/resolvePageSizes.js","../node_modules/@react-pdf/layout/lib/page/getSize.js","../node_modules/@react-pdf/layout/lib/page/isLandscape.js","../node_modules/@react-pdf/layout/lib/page/getOrientation.js","../node_modules/@react-pdf/layout/lib/steps/resolvePagination.js","../node_modules/@react-pdf/layout/lib/node/isFixed.js","../node_modules/@react-pdf/layout/lib/text/splitText.js","../node_modules/@react-pdf/layout/lib/text/lineIndexAtHeight.js","../node_modules/@react-pdf/layout/lib/text/heightAtLineIndex.js","../node_modules/@react-pdf/layout/lib/node/splitNode.js","../node_modules/@react-pdf/layout/lib/page/getWrapArea.js","../node_modules/@react-pdf/yoga/src/dist/entry-common.js","../node_modules/@react-pdf/yoga/src/dist/YGEnums.js","../node_modules/@react-pdf/yoga/src/build/Release/nbind.js","../node_modules/@react-pdf/layout/lib/page/getContentArea.js","../node_modules/@react-pdf/layout/lib/node/createInstance.js","../node_modules/@react-pdf/layout/lib/utils/castArray.js","../node_modules/@react-pdf/layout/lib/node/shouldBreak.js","../node_modules/@react-pdf/layout/lib/node/getNodesHeight.js","../node_modules/@react-pdf/layout/lib/text/getAttributedString.js","../node_modules/@react-pdf/layout/lib/text/ignoreChars.js","../node_modules/@react-pdf/layout/lib/node/getPosition.js","../node_modules/@react-pdf/layout/lib/node/getDimension.js","../node_modules/@react-pdf/layout/lib/node/getBorderWidth.js","../node_modules/@react-pdf/layout/lib/node/setDisplay.js","../node_modules/@react-pdf/layout/lib/node/setOverflow.js","../node_modules/@react-pdf/layout/lib/node/setFlexWrap.js","../node_modules/@react-pdf/layout/lib/node/setFlexGrow.js","../node_modules/@react-pdf/layout/lib/node/setFlexBasis.js","../node_modules/@react-pdf/layout/lib/node/setAlignSelf.js","../node_modules/@react-pdf/layout/lib/node/setAlignItems.js","../node_modules/@react-pdf/layout/lib/node/setFlexShrink.js","../node_modules/@react-pdf/layout/lib/node/setAspectRatio.js","../node_modules/@react-pdf/layout/lib/node/setAlignContent.js","../node_modules/@react-pdf/layout/lib/node/setPositionType.js","../node_modules/@react-pdf/layout/lib/node/setFlexDirection.js","../node_modules/@react-pdf/layout/lib/node/setJustifyContent.js","../node_modules/@react-pdf/layout/lib/node/setMargin.js","../node_modules/@react-pdf/layout/lib/node/setPadding.js","../node_modules/@react-pdf/layout/lib/node/setBorderWidth.js","../node_modules/@react-pdf/layout/lib/node/setPosition.js","../node_modules/@react-pdf/layout/lib/node/setDimension.js","../node_modules/@react-pdf/layout/lib/svg/measureSvg.js","../node_modules/@react-pdf/layout/lib/text/measureText.js","../node_modules/@react-pdf/layout/lib/text/linesWidth.js","../node_modules/@react-pdf/layout/lib/text/linesHeight.js","../node_modules/@react-pdf/layout/lib/image/measureImage.js","../node_modules/@react-pdf/layout/lib/image/getRatio.js","../node_modules/@react-pdf/layout/lib/canvas/measureCanvas.js","../node_modules/@react-pdf/layout/lib/steps/resolvePagePaddings.js","../node_modules/@react-pdf/layout/lib/steps/resolvePercentRadius.js","../node_modules/@react-pdf/layout/lib/steps/resolvePercentHeight.js","../node_modules/@react-pdf/layout/lib/steps/resolveLinkSubstitution.js","../node_modules/react-reconciler/cjs/react-reconciler.production.min.js","../node_modules/react-reconciler/node_modules/scheduler/index.js","../node_modules/react-reconciler/node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/@react-pdf/renderer/node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/@mui/core/utils/isHostComponent.js","../node_modules/@mui/core/utils/appendOwnerState.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../src/Enum.js","../../src/Utility.js","../../src/Tokenizer.js","../../src/Parser.js","../../src/Prefixer.js","../../src/Serializer.js","../../src/Middleware.js","../node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-99289b21.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/utils/esm/deepmerge.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/utils/esm/capitalize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/display.js","../node_modules/@mui/system/esm/flexbox.js","../node_modules/@mui/system/esm/grid.js","../node_modules/@mui/system/esm/positions.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/shadows.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/typography.js","../node_modules/@mui/system/esm/getThemeValue.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../node_modules/@mui/private-theming/useTheme/useTheme.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/@mui/utils/esm/useForkRef.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/core/Portal/Portal.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/utils/esm/ownerDocument.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/Popper/Popper.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/utils/esm/useEventCallback.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/utils/esm/useId.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled.js","../node_modules/@mui/core/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/material/Tooltip/tooltipClasses.js","../node_modules/@mui/core/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/material/Tooltip/Tooltip.js","../node_modules/@mui/core/composeClasses/composeClasses.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/rc-checkbox/es/index.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/default.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/config-provider/renderEmpty.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/_util/devWarning.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js"],"names":["module","exports","require","key","val","_ref","_ref1","EncodeStream","DecodeStream","Array","LazyArray","Bitfield","Boolean","Buffer","Enum","Optional","Reserved","String","Struct","VersionedStruct","call","this","_slicedToArray","arr","i","arrayWithHoles","Symbol","iterator","Object","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","value","length","err","unsupportedIterableToArray","nonIterableRest","_typeof","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","cache","has","get","newObj","hasPropertyDescriptor","defineProperty","getOwnPropertyDescriptor","prototype","hasOwnProperty","desc","set","F","T","_isPlaceholder","a","_curry1","fn","f1","arguments","apply","_curry2","f2","b","_b","_a","add","Number","_concat","set1","set2","idx","len1","len2","result","_arity","n","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","Error","_curryN","received","combined","argsIdx","left","combinedIdx","curryN","addIndex","origFn","list","args","slice","_curry3","f3","c","_c","adjust","_idx","_list","isArray","toString","_isTransformer","_dispatchable","methodNames","xf","pop","_isArray","transducer","_reduced","x","init","XAll","f","all","_xfBase","input","max","_map","functor","len","_isString","_isArrayLike","nodeType","XWrap","acc","_xwrap","bind","thisObj","_iterableReduce","iter","step","_methodReduce","methodName","symIterator","_reduce","_arrayReduce","reduce","TypeError","XMap","_xmap","_has","prop","_isArguments","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","item","keys","nIdx","ks","checkArgsLength","map","path","paths","p","pluck","allPass","preds","always","and","XAny","any","anyPass","ap","applyF","applyX","_aperture","limit","XAperture","pos","full","store","getCopy","aperture","append","el","values","props","vals","mapValues","applySpec","spec","v","applyTo","ascend","aa","bb","assoc","isInteger","isNil","assocPath","nextObj","_isInteger","concat","nAry","binary","_isFunction","liftN","arity","lifted","lift","both","g","curry","_makeFlat","recursive","flatt","jlen","j","ilen","_flatCat","rxf","ret","preservingReduced","chain","monad","clamp","min","_cloneRegExp","pattern","RegExp","source","global","ignoreCase","multiline","sticky","unicode","type","_clone","refFrom","refTo","deep","copy","copiedValue","Date","valueOf","clone","comparator","pred","not","complement","_pipe","_checkForMethod","methodname","fromIndex","toIndex","tail","Infinity","pipe","reverse","split","join","compose","composeK","last","_pipeP","ctx","then","pipeP","composeP","nth","offset","charAt","head","_identity","identity","pipeWith","headList","tailList","composeWith","_arrayFromIterator","_includesWith","is","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","_objectIs","typeA","equals","constructor","match","_functionName","name","message","size","entries","keysA","extendedStackA","extendedStackB","_indexOf","inf","indexOf","_includes","_quote","s","replace","pad","_toISOString","toISOString","d","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","_complement","_filter","_isObject","XFilter","filter","filterable","reject","_toString","seen","recur","y","xs","mapPairs","k","sort","test","isNaN","NaN","repr","cond","pairs","pair","constructN","Fn","$0","$1","$2","$3","$4","$5","$6","$7","$8","$9","construct","converge","after","fns","context","XReduceBy","valueFn","valueAcc","keyFn","inputs","reduceBy","elt","countBy","elem","dec","defaultTo","descend","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","Set","difference","first","second","out","firstLen","secondLen","toFilterOut","differenceWith","dissoc","remove","start","count","splice","update","dissocPath","divide","XDrop","drop","Math","XTake","take","dropLast","XDropLast","_dropLast","dropLastWhile","XDropLastWhile","retained","retain","flush","_dropLastWhile","XDropRepeatsWith","lastValue","seenFirstValue","sameAsLast","_xdropRepeatsWith","dropRepeatsWith","dropRepeats","XDropWhile","dropWhile","or","either","empty","takeLast","endsWith","suffix","eqBy","eqProps","obj1","obj2","evolve","transformations","object","transformation","XFind","found","find","XFindIndex","findIndex","XFindLast","findLast","XFindLastIndex","lastIdx","findLastIndex","flatten","flip","forEach","forEachObjIndexed","keyList","fromPairs","groupBy","groupWith","res","nextidx","gt","gte","hasPath","_path","hasIn","identical","ifElse","condition","onTrue","onFalse","inc","includes","indexBy","target","innerJoin","ys","insert","insertAll","elts","uniqBy","appliedItem","uniq","intersection","list1","list2","lookupList","filteredList","intersperse","separator","assign","output","nextKey","objOf","_stepCatArray","_stepCatString","_stepCatObject","_objectAssign","into","_stepCat","invert","invertObj","invoker","method","Ctor","isEmpty","juxt","keysIn","lastIndexOf","_isNumber","lens","getter","setter","toFunctorFn","focus","lensIndex","lensPath","lensProp","lt","lte","mapAccum","tuple","mapAccumRight","mapObjIndexed","rx","str","mathMod","m","maxBy","sum","mean","median","width","memoizeWith","mFn","merge","l","r","mergeAll","mergeWithKey","mergeDeepWithKey","lObj","rObj","lVal","rVal","mergeDeepLeft","mergeDeepRight","mergeDeepWith","mergeLeft","mergeRight","mergeWith","_","_l","_r","minBy","modulo","move","from","to","positiveFrom","positiveTo","multiply","negate","none","nthArg","o","_of","of","omit","names","index","once","called","_assertPromise","otherwise","Identity","over","fst","snd","_createPartialApplicator","partial","partialRight","partition","pathEq","pathOr","pathSatisfies","propPath","pick","pickAll","pickBy","pipeK","prepend","product","useWith","transformers","project","propEq","propIs","propOr","propSatisfies","ps","range","reduceRight","reduceWhile","reduced","times","RangeError","repeat","regex","replacement","scan","sequence","traversable","sortBy","sortWith","splitAt","array","splitEvery","splitWhen","prefix","startsWith","subtract","symmetricDifference","symmetricDifferenceWith","takeLastWhile","XTakeWhile","takeWhile","XTap","tap","toLower","toPairs","toPairsIn","toUpper","transduce","transpose","outerlist","innerlist","traverse","ws","trim","beginRx","endRx","tryCatch","tryer","catcher","e","unapply","unary","uncurryN","depth","endIdx","currentDepth","unfold","seed","union","uniqWith","unionWith","unless","whenFalseFn","unnest","until","valuesIn","vs","Const","view","when","whenTrueFn","where","testObj","whereEq","without","xprod","zip","rv","zipObj","zipWith","thunkify","fnArgs","_extends","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","enumerable","_objectSpread2","getOwnPropertyDescriptors","defineProperties","propsEqual","oldPropsKeys","newPropsKeys","propName","emptyObject","createRenderer","onChange","ReactFiberReconciler","schedulePassiveEffects","cancelPassiveEffects","supportsMutation","isPrimaryRenderer","warnsIfNotActing","appendInitialChild","parentInstance","createInstance","style","children","box","createTextInstance","text","finalizeInitialChildren","getPublicInstance","prepareForCommit","clearContainer","prepareUpdate","oldProps","resetAfterCommit","resetTextContent","getRootHostContext","getChildHostContext","shouldSetTextContent","now","useSyncScheduling","appendChild","appendChildToContainer","insertBefore","removeChild","removeChildFromContainer","commitTextUpdate","textInstance","commitUpdate","newProps","instance","fontStore","events","pdf","container","document","mountNode","renderer","listeners","updateContainer","render","compress","pdfVersion","language","lang","displayTitle","autoFirstPage","layoutDocument","layout","renderPDF","callOnRender","params","on","toBlob","stream","BlobStream","blob","resolve","toBuffer","removeListener","Font","StyleSheet","create","usePDF","pdfInstance","useRef","useState","url","error","loading","state","setState","useEffect","renderQueue","queue","autostart","concurrency","queueDocumentRender","prev","Promise","console","URL","BlobProvider","doc","updateInstance","PDFDownloadLink","className","fileName","href","download","onClick","window","throwEnvironmentError","version","PDFViewer","title","innerRef","showToolbar","src","ref","renderToStream","renderToString","renderToFile","G","Svg","View","Text","Link","Page","Note","Path","Rect","Line","Stop","Defs","Image","Tspan","Canvas","Circle","Ellipse","Polygon","Document","Polyline","ClipPath","TextInstance","LinearGradient","RadialGradient","_objectWithoutPropertiesLoose","excluded","sourceKeys","CryptoJS","crypto","self","globalThis","msCrypto","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","subtype","C","C_lib","lib","Base","extend","overrides","mixIn","$super","properties","propertyName","WordArray","words","sigBytes","encoder","Hex","stringify","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","ceil","random","nBytes","C_enc","enc","hexChars","bite","parse","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","decodeURIComponent","escape","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","data","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","_minBufferSize","nBytesReady","_doProcessBlock","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","hasher","_createHmacHelper","HMAC","algo","factory","_defineProperty","configurable","writable","historyContext","createContext","createNamedContext","Router","location","computeRootMatch","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","RouterContext","history","staticContext","HistoryContext","React","Component","cacheCount","matchPath","options","exact","strict","sensitive","matched","cacheKey","pathCache","regexp","pathToRegexp","compilePath","end","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","invariant","noop","Switch","child","element","computedMatch","useContext","useHistory","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","Uint8Array","__proto__","arg","encodingOrOffset","allocUnsafe","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","fromString","isBuffer","checked","buffer","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","Yoga","nbind","ran","BrowserRouter","createHistory","resolveToLocation","currentLocation","normalizeToLocation","createLocation","forwardRefShim","forwardRef","LinkAnchor","navigate","rest","event","ex","isModifiedEvent","forwardedRef","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","isActive","locationProp","styleProp","toLocation","escapedPath","classnames","joinClassnames","_toConsumableArray","arrayLikeToArray","iterableToArray","property","decorators","descriptor","initializer","decorator","setPrototypeOf","subClass","superClass","root","undef","Cipher","Base64","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","process","dataUpdate","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","block","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","Pkcs7","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","__creator","finalProcessedBlocks","cipherParams","formatter","OpenSSLFormatter","format","OpenSSL","salt","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","OpenSSLKdf","kdf","execute","password","compute","derivedParams","_classCallCheck","Constructor","_defineProperties","_createClass","protoProps","staticProps","runtime","regeneratorRuntime","accidentalStrictMode","Function","_inheritsLoose","isUndefined","isObject","isPlainObject","getPrototypeOf","isFunction","isArrayBuffer","isFormData","FormData","isArrayBufferView","isString","isNumber","isDate","isFile","isBlob","isStream","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","assignValue","thisArg","stripBOM","content","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","off","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","_getPrototypeOf","isAbsolute","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","unshift","valueEqual","every","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","search","hash","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","listener","notifyListeners","_len","canUseDOM","createElement","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","allKeys","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","unblock","listen","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","canGo","NumberT","PropertyDescriptor","resolveLength","parent","decode","opts","asyncGeneratorStep","gen","_next","_throw","info","data$1","categories","combiningClasses","scripts","eaw","trieData","trie","UnicodeTrie","log2","log","LN2","bits","CATEGORY_BITS","COMBINING_BITS","SCRIPT_BITS","EAW_BITS","CATEGORY_SHIFT","COMBINING_SHIFT","SCRIPT_SHIFT","CATEGORY_MASK","COMBINING_MASK","SCRIPT_MASK","EAW_MASK","getCategory","getCombiningClass","getScript","getEastAsianWidth","getNumericValue","num","_exp","exp","isAlphabetic","category","isDigit","isPunctuation","isLowerCase","isUpperCase","isTitleCase","isWhiteSpace","isBaseForm","isMark","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","Super","NewTarget","Reflect","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","main","isWorker","workerSize","canUseWorker","Worker","Blob","OffscreenCanvas","OffscreenCanvasRenderingContext2D","HTMLCanvasElement","transferControlToOffscreen","createObjectURL","promise","func","ModulePromise","Prom","raf","frame","cancel","TIME","frames","lastFrameTime","requestAnimationFrame","cancelAnimationFrame","cb","id","onFrame","time","timer","getWorker","worker","prom","resolves","warn","postMessage","canvas","offscreen","fire","workerDone","msg","decorate","defaults","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","shapes","zIndex","colors","disableForReducedMotion","scalar","transform","convert","onlyPositiveInt","number","toDecimal","colorsToRgb","hexToRgb","setCanvasWindowSize","documentElement","clientWidth","height","clientHeight","setCanvasRectSize","rect","getBoundingClientRect","randomPhysics","radAngle","PI","radSpread","wobble","velocity","angle2D","tiltAngle","color","shape","tick","totalTicks","tiltSin","tiltCos","wobbleX","wobbleY","ovalScalar","animate","fettis","resizer","animationFrame","destroy","animatingFettis","getContext","onDone","clearRect","fetti","cos","sin","progress","x1","y1","x2","y2","fillStyle","beginPath","ellipse","abs","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","save","translate","rotate","scale","arc","restore","moveTo","lineTo","closePath","updateFetti","addFettis","confettiCannon","globalOpts","animationObj","isLibCanvas","allowResize","globalDisableForReducedMotion","initialized","__confetti_initialized","preferLessMotion","matchMedia","matches","fireLocal","origin","getOrigin","temp","startX","startY","position","top","pointerEvents","getCanvas","body","onResize","resize","useWorker","_assertThisInitialized","ReferenceError","formatArgs","useColors","namespace","humanize","diff","lastC","namespaces","storage","setItem","removeItem","load","getItem","DEBUG","__nwjs","WebkitAppearance","firebug","exception","table","localStorage","localstorage","warned","debug","formatters","JSON","hasOwn","classNames","classes","argType","inner","default","_inherits","uid","USE_SYMBOL","_interopRequireDefault","_interopRequireWildcard","R","_yoga","_upperFirst","_matchPercent","isNotNil","_default","attr","edge","node","yogaNode","_yogaNode","_yogaNode$percentMeth","_yogaNode$percentMeth2","hasEdge","fixedMethod","autoMethod","percentMethod","percent","_yogaNode$autoMethod","setFlexBasis","UNIT_AUTO","_yogaNode$autoMethod2","_yogaNode$fixedMethod","_yogaNode$fixedMethod2","Transform","util","assert","kRangeErrorMessage","Z_MIN_WINDOWBITS","Z_MAX_WINDOWBITS","Z_DEFAULT_WINDOWBITS","Z_MIN_CHUNK","Z_MAX_CHUNK","Z_DEFAULT_CHUNK","Z_MIN_MEMLEVEL","Z_MAX_MEMLEVEL","Z_DEFAULT_MEMLEVEL","Z_MIN_LEVEL","Z_MAX_LEVEL","Z_DEFAULT_LEVEL","Z_DEFAULT_COMPRESSION","bkeys","bk","bkey","codes","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_VERSION_ERROR","ckeys","ck","ckey","zlibBuffer","engine","buffers","nread","flow","chunk","onEnd","close","zlibBufferSync","flushFlag","_finishFlushFlag","_processChunk","Deflate","Zlib","DEFLATE","Inflate","INFLATE","Gzip","GZIP","Gunzip","GUNZIP","DeflateRaw","DEFLATERAW","InflateRaw","INFLATERAW","Unzip","UNZIP","isValidFlushFlag","flag","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","_this","_opts","_chunkSize","chunkSize","finishFlush","_flushFlag","windowBits","level","memLevel","strategy","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","dictionary","_handle","_hadError","onerror","errno","_close","_buffer","_offset","_level","_strategy","emitCloseNT","freeze","createDeflate","createInflate","createDeflateRaw","createInflateRaw","createGzip","createGunzip","createUnzip","deflate","deflateSync","gzip","gzipSync","deflateRaw","deflateRawSync","unzip","unzipSync","inflate","inflateSync","gunzip","gunzipSync","inflateRaw","inflateRawSync","inherits","_flush","_transform","kind","_this2","_writableState","ended","ending","needDrain","availInBefore","availOutBefore","inOff","async","er","writeSync","req","availInAfter","availOutAfter","have","newReq","_possibleConstructorReturn","monadic","serializer","isPrimitive","computedValue","variadic","assemble","serialize","strategyDefault","serializerDefault","ObjectWithoutPrototypeCache","cacheDefault","strategies","ctor","superCtor","super_","TempCtor","pna","objectKeys","Duplex","Readable","Writable","readable","allowHalfOpen","onend","onEndNT","highWaterMark","_readableState","destroyed","_destroy","unitsPerEm","calculateScale","MD5","iterations","derivedKey","derivedKeyWords","safer","Safer","kStringMaxLength","constants","MAX_LENGTH","MAX_STRING_LENGTH","Fixed","__hasProp","endian","TYPES","encode","uint8","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","_super","fracBits","__super__","_point","__extends","fixed16be","fixed16","fixed16le","fixed32be","fixed32","fixed32le","__g","core","__e","parseLoop","base64Str","base64StrLength","reverseMap","bitsCombined","base64Chars","triplet","paddingChar","_reverseMap","paddingIndex","_hash","M","offset_i","M_offset_i","H","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","t","HmacMD5","exec","isPercent","parseFloat","Stream","EE","EventEmitter","PassThrough","dest","ondata","pause","ondrain","resume","_isStdio","onclose","didOnEnd","cleanup","extendStatics","__","__assign","styles","cursor","right","bottom","topRight","bottomRight","bottomLeft","topLeft","Resizer","onMouseDown","onResizeStart","direction","onTouchStart","userSelect","replaceStyles","DEFAULT_SIZE","memoize","snap","round","hasDirection","isTouchEvent","touches","findClosestSnap","snapArray","snapGap","closestGapIndex","curr","gap","searchStr","getStringSize","getPixelSize","parentSize","innerWidth","innerHeight","calculateNewMax","maxWidth","maxHeight","minWidth","minHeight","definedProps","baseClassName","Resizable","ratio","resizable","parentLeft","parentTop","resizableLeft","resizableRight","resizableTop","resizableBottom","targetLeft","targetTop","appendBase","parentNode","flex","classList","removeBase","isResizing","propsSize","original","backgroundStyle","backgroundColor","opacity","flexBasis","onMouseMove","onMouseUp","ownerDocument","defaultView","defaultSize","orgWidth","offsetWidth","orgHeight","offsetHeight","orgPosition","getSize","getParentSize","wrapChanged","wrap","flexWrap","bindEvents","capture","passive","unbindEvents","computedStyle","getComputedStyle","createSizeForCssProperty","newSize","calculateNewMaxFromBoundary","boundWidth","boundHeight","boundsByDirection","widthByDirection","heightByDirection","bounds","parent_1","calculateNewSizeFromDirection","clientX","clientY","resizeRatio","lockAspectRatio","lockAspectRatioExtraHeight","lockAspectRatioExtraWidth","newWidth","newHeight","extraHeight","extraWidth","calculateNewSizeFromAspectRatio","computedMinWidth","computedMaxWidth","computedMinHeight","computedMaxHeight","extraMinWidth","extraMaxWidth","extraMinHeight","extraMaxHeight","lockedMinWidth","lockedMaxWidth","lockedMinHeight","lockedMaxHeight","setBoundingClientRect","parent_2","parentRect","targetRect","top_1","nativeEvent","isMouseEvent","which","parent_3","flexDirection","flexDir","TouchEvent","preventDefault","stopPropagation","boundaryMax","grid","newGridWidth","newGridHeight","newState","onResizeStop","updateSize","renderResizer","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","handleComponent","resizers","extendsProps","sizeStyle","boxSizing","flexShrink","Wrapper","as","defaultProps","Draggable","DraggableRoot","resizableStyle","display","Rnd","resizing","resizingPosition","offsetFromParent","resizableElement","current","refDraggable","draggable","refResizable","onDragStart","onDrag","onDragStop","getMaxSizesFromProps","updateOffsetFromParent","getDraggablePosition","forceUpdate","getParent","MAX_SAFE_INTEGER","getSelfElement","getOffsetHeight","boundary","getOffsetWidth","parentRect_1","parentLeft_1","parentTop_1","bodyRect","left_1","offsetLeft","offsetTop","parentRect_2","parentLeft_2","parentTop_2","left_2","top_2","HTMLElement","boundaryRect","boundaryLeft","boundaryTop","top_3","elementRef","self_1","Element","selfRect","selfLeft","selfTop","hasLeft","hasRight","hasTop","hasBottom","newPos","updatePosition","disableDragging","dragHandleClassName","dragAxis","dragGrid","enableUserSelectHack","resizeHandleStyles","resizeHandleClasses","resizeHandleComponent","enableResizing","resizeGrid","resizeHandleWrapperClass","resizeHandleWrapperStyle","allowAnyClick","resizableProps","__rest","defaultValue","draggablePosition","cursorStyle","innerStyle","handle","defaultPosition","onStart","onStop","axis","disabled","nodeRef","PureComponent","fontkit","formats","Map","memoized","registerFormat","openSync","filename","postscriptName","open","probe","font","getFont","defaultLanguage","setDefaultLanguage","SubHeader","firstCode","entryCount","idDelta","idRangeOffset","CmapGroup","startCharCode","endCharCode","glyphID","UnicodeValueRange","startUnicodeValue","additionalCount","UVSMapping","unicodeValue","DefaultUVS","NonDefaultUVS","VarSelectorRecord","varSelector","defaultUVS","Pointer","nonDefaultUVS","CmapSubtable","0","codeMap","2","subHeaderKeys","subHeaderCount","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","lazy","cmap","numSubtables","tables","revision","checkSumAdjustment","magicNumber","flags","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","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","minLen","_arrayLikeToArray$s","_unsupportedIterableToArray$s","arr2","NameRecord","nameID","relativeTo","allowNull","LangTagRecord","tag","NameTable","stringOffset","records","langTagCount","langTags","NAMES","_step","_iterator","record","preEncode","en","OS2","header","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","post","italicAngle","underlinePosition","underlineThickness","isFixedPitch","minMemType42","maxMemType42","minMemType1","maxMemType1","numberOfGlyphs","glyphNameIndex","2.5","offsets","cvt","controlValues","fpgm","instructions","loca","prep","controlValueProgram","glyf","_createForOfIteratorHelperLoose$r","_arrayLikeToArray$r","_unsupportedIterableToArray$r","CFFIndex","_proto","getCFFVersion","hdrSize","offsetType","offSize","startPos","sizes","_sizes","_step2","_iterator2","_item","FLOAT_LOOKUP","FLOAT_ENCODE_LOOKUP","CFFOperand","n1","n2","forceLarge","c1","c2","FLOAT_EOF","_createForOfIteratorHelperLoose$q","_arrayLikeToArray$q","_unsupportedIterableToArray$q","CFFDict","ops","fields","field","decodeOperands","operands","op","encodeOperands","_startOffset","_field","dict","includePointers","pointerSize","startOffset","isEqual","pointers","pointerOffset","_step3","_iterator3","_step4","_iterator4","_step5","_iterator5","_op","ptr","CFFPointer","_r$Pointer","Ptr","CFFPrivateDict","CFFBlendOp","numBlends","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","lookupRecords","RuleSet","ClassRule","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","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","CFFEncodingVersion","_r$Number","Range1","nLeft","Range2","CFFEncoding","nCodes","nRanges","ranges","RangeArray","_r$Array","CFFCharset","CharStrings","FDRange3","fd","FDRange4","FDSelect","fds","sentinel","CFFPrivateOp","_proto4","FontDict","CFFTopDict","VariationStore","itemVariationStore","CFF2TopDict","CFFTop","nameIndex","topDictIndex","stringIndex","globalSubrIndex","topDict","CFFFont","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","horiBearingX","horiBearingY","horiAdvance","vertBearingX","vertBearingY","vertAdvance","SmallMetrics","bearingX","bearingY","EBDTComponent","xOffset","yOffset","ByteAligned","BitAligned","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","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","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","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","ClassTable$1","firstGlyph","nGlyphs","Kern2Array","leftTable","rowWidth","KernSubtable","nPairs","rightTable","kernValueCount","leftClassCount","rightClassCount","kernValue","leftClass","rightClass","kernIndex","KernTable","subVersion","tupleIndex","kern","nTables","LTSH","yPels","PCLT","fontNumber","pitch","typeFamily","symbolSet","typeface","characterComplement","strokeWeight","widthType","serifStyle","Ratio","bCharSet","xRatio","yStartRatio","yEndRatio","vTable","yPelHeight","VdmxGroup","recs","startsz","endsz","VDMX","numRecs","numRatios","ratioRanges","vhea","advanceHeightMax","minTopSideBearing","minBottomSideBearing","yMaxExtent","VmtxEntry","vmtx","shortFrac$1","Correspondence","fromCoord","toCoord","Segment","pairCount","correspondence","avar","segment","UnboundedArrayAccessor","UnboundedArray","LookupTable","ValueType","Shadow","_proto3","BinarySearchHeader","unitSize","nUnits","LookupSegmentSingle","lastGlyph","LookupSegmentArray","LookupSingle","binarySearchHeader","segments","StateTable","entryData","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","maxValue","Instance","coord","postscriptNameID","instanceSize","fvar","offsetToData","countSizePairs","axisSize","instanceCount","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","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","opbd","_createForOfIteratorHelperLoose$p","_arrayLikeToArray$p","_unsupportedIterableToArray$p","CBLC","_class$4","TableEntry","checkSum","Directory","numTables","binarySearch","cmp","_createForOfIteratorHelperLoose$o","_arrayLikeToArray$o","_unsupportedIterableToArray$o","tables$1","VoidPointer","maxExponentFor2","maxPowerOf2","iconv","CmapProcessor","cmapTable","findSubtable","encodingExists","uvs","_step2$value","lookup","codepoint","variationSelector","fromCodePoint","getVariationSelector","rangeOffset","_gid","_min","_max","_mid","group","selectors","toArray","sel","getCharacterSet","endCodes","_res","codePointsForGlyph","_res2","_res3","_step6","_res4","_iterator6","_group","_applyDecoratedDescriptor","_createForOfIteratorHelperLoose$n","_arrayLikeToArray$n","_unsupportedIterableToArray$n","KernProcessor","positions","getKerning","crossStream","variation","pairIdx","leftOffset","rightOffset","override","UnicodeLayoutEngine","positionGlyphs","clusterStart","clusterEnd","positionCluster","baseBox","cbox","minX","yGap","mark","markBox","combiningClass","maxX","minY","maxY","BBox","addPoint","_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","_createForOfIteratorHelperLoose$l","_arrayLikeToArray$l","_unsupportedIterableToArray$l","GlyphRun","direction$1","bbox","GlyphPosition","allTypographicFeatures","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","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","typeCode","settingCode","_createForOfIteratorHelperLoose$k","_arrayLikeToArray$k","_unsupportedIterableToArray$k","AATLookupTable","seg","glyphsForValue","classValue","_segment","_createForOfIteratorHelperLoose$j","_arrayLikeToArray$j","_unsupportedIterableToArray$j","_class$2","AATStateMachine","processEntry","currentState","classCode","shouldAdvance","entryIndex","visited","_this$stateTable","row","enter","exit","_createForOfIteratorHelperLoose$i","_arrayLikeToArray$i","_unsupportedIterableToArray$i","REVERSE_DIRECTION","AATMorxProcessor","processIndicRearragement","processContextualSubstitution","processLigature","processNoncontextualSubstitutions","processGlyphInsertion","inputCache","processSubtable","ligatureStack","markedGlyph","markedIndex","stateMachine","getStateMachine","getProcessor","verb","reorderGlyphs","subsitutions","getGlyph","_lookup","_lookupTable","_this$ligatureStack","actions","actionIndex","ligatureIndex","ligatureGlyphs","_codePoints","componentGlyph","ligatureEntry","_insertGlyphs","insertionActionIndex","isBefore","_this$glyphs","insertions","_count","_isBefore","getSupportedFeatures","generateInputs","generateInputCache","_step7","_iterator7","generateInputsForSubtable","stack","_cache","_stack$pop","rangeA","rangeB","reverseA","reverseB","_createForOfIteratorHelperLoose$h","_arrayLikeToArray$h","_unsupportedIterableToArray$h","AATLayoutEngine","morxProcessor","fallbackPosition","glyphRun","mapOTToAAT","getAvailableFeatures","_feature","_f","mapAATToOT","stringsForGlyph","glyphStrings","_addStrings","strings","_cmapProcessor","_createForOfIteratorHelperLoose$g","_arrayLikeToArray$g","_unsupportedIterableToArray$g","ShapingPlan","stages","globalFeatures","allFeatures","_addFeatures","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","FEATURES","ShapingClasses","ISOL","FINA","FIN2","MEDI","MED2","INIT","NONE","STATE_TABLE$1","ArabicShaper","_DefaultShaper","curAction","prevAction","getShapingClass","_STATE_TABLE$state$ty","GlyphIterator","shouldIgnore","ignoreMarks","ignoreBaseGlyphs","isBase","ignoreLigatures","isLigature","peek","increment","peekIndex","_createForOfIteratorHelperLoose$f","_arrayLikeToArray$f","_unsupportedIterableToArray$f","DEFAULT_SCRIPTS","OTProcessor","scriptTag","lookups","variationsIndex","_variationProcessor","findVariationsIndex","normalizedCoords","selectScript","ligatureID","currentFeature","findScript","changed","substituteFeature","substituteFeatureForVariations","lookupsForFeatures","exclude","lookupIndex","substitution","coords","variations","conditions","variationConditionsMatch","advances","applyLookups","glyphIterator","_step8","_iterator8","_step8$value","cur","_step9","_iterator9","applyLookup","applyLookupList","_step10","_iterator10","lookupRecord","_step11","_iterator11","coverageIndex","_step12","_iterator12","sequenceMatches","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","TONE_MARK","reorderToneMark","INVALID","insertDottedCircle","HANGUL_BASE","L_BASE","V_BASE","T_BASE","isL","isV","isT","HANGUL_END","isLV","isLVT","isTone","glyphForCodePoint","ljmo","vjmo","tjmo","lv","prevType","isCombiningL","isCombiningV","isCombiningT","del","advanceWidth","getLength","dottedCircle","indicMachine","accepting","tags","useData","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","StateMachine","IndicShaper","setupSyllables$1","initialReordering","finalReordering","unicodeScript","fromOpenType","indicConfig","isOldSpec","_loop","decomposed","indicCategory","indicPosition","IndicInfo","syllableType","syllable","_step$value","_i2","isConsonant","isJoiner","isHalantOrCoeng","wouldSubstitute","_glyph$features","_layoutEngine","GSUBProcessor","consonantPosition","consonant","nextSyllable$1","_glyphs$start$shaperI","_i3","hasReph","rphf","_g","_i4","seenBelow","_info","_i5","_i6","_info2","_i7","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","_i19","oldPos","tmp","newRephPos","_i20","reph","_i21","_newPos","_oldPos2","_oldPos","_tmp","_createForOfIteratorHelperLoose$d","_arrayLikeToArray$d","_unsupportedIterableToArray$d","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","_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","_nextGlyph","curRecord","nextRecord","getAnchor","rightToLeft","baseGlyphIndex","baseIndex","markRecord","baseAnchor","applyAnchor","_markIndex","_baseGlyphIndex","ligIndex","ligAttach","markGlyph","ligGlyph","compIndex","_markRecord","_baseAnchor","mark1Index","_cur","good","mark2Index","_markRecord2","_baseAnchor2","markCoords","markPos","anchor","fixCursiveAttachment","fixMarkAttachment","_k","OTLayoutEngine","glyphInfos","setup","shaper","choose","glyphInfo","zeroMarkWidths","zeroMarkAdvances","_createForOfIteratorHelperLoose$9","_arrayLikeToArray$9","_unsupportedIterableToArray$9","LayoutEngine","unicodeLayoutEngine","kernProcessor","_script","forString","glyphsForString","_script2","forCodePoints","hideDefaultIgnorables","positioned","space","isDefaultIgnorable","ch","plane","_createForOfIteratorHelperLoose$8","_arrayLikeToArray$8","_unsupportedIterableToArray$8","SVG_COMMANDS","quadraticCurveTo","bezierCurveTo","commands","_bbox","_cbox","toFunction","command","toSVG","mapPoints","_fn","m0","m1","m2","m3","m4","m5","scaleX","scaleY","cx","cy","p0","p1","p2","p3","_c$args","_c$args2","qp1x","qp1y","cp1x","cp1y","cp2x","p3x","cp2y","p3y","_c$args3","b2ac","t1","sqrt","t2","_class$1","StandardNames","Glyph","_getPath","_getCBox","_getBBox","_getTableMetrics","metric","_getMetrics","_metrics","os2","_this$_getTableMetric","leftBearing","_this$_getTableMetric2","advanceHeight","topBearing","getAdvanceAdjustment","getScaledPath","_getName","_createForOfIteratorHelperLoose$7","_arrayLikeToArray$7","_unsupportedIterableToArray$7","GlyfHeader","numberOfContours","Point$1","Point","onCurve","endContour","dx","dy","scale01","scale10","TTFGlyph","_Glyph","_proto2","internal","_getTableStream","_parseGlyphCoord","short","same","_decode","glyfPos","_decodeSimple","_decodeComposite","points","endPtsOfContours","numCoords","point","px","py","_getPhantomPoints","transformPoints","phantomPoints","haveInstructions","gPos","_this$_metrics","_getContours","_contours","contour","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","phase","c1x","c1y","c2x","c2y","subr","blendVector","getBlendVector","numOperands","_phase","s1","s2","v1","v2","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","COLRGlyph","layers","fillColor","cpal","colr","rec","baseLayer","_getBaseGlyph","GlyphVariationProcessor","normalizeCoords","blendVectors","normalized","EPSILON","glyphPoints","tupleCount","here","sharedPoints","decodePoints","origPoints","tupleDataSize","tupleCoords","startCoords","endCoords","_a2","factor","tupleFactor","nPoints","xDeltas","decodeDeltas","yDeltas","outPoints","hasDelta","interpolateMissingDeltas","deltaX","deltaY","Uint16Array","runCount","readUInt16","Int16Array","inPoints","firstPoint","endPoint","firstDelta","curDelta","deltaInterpolate","deltaShift","ref1","ref2","iterable","in1","in2","out1","out2","_p","_table$advanceWidthMa","itemStore","varData","deltaSet","netAdjustment","master","regionIndex","axes","resolved","Subset","mapping","includeGlyph","encodeStream","Glyf","xPoints","yPoints","TTFGlyphEncoder","encodeSimple","lastX","lastY","lastFlag","pointCount","_encodePoint","shortFlag","sameFlag","_createForOfIteratorHelperLoose$5","_arrayLikeToArray$5","_unsupportedIterableToArray$5","TTFSubset","_Subset","glyphEncoder","_addGlyph","curOffset","nextOffset","cloneDeep","_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","createSubset","getVariation","settings","namedVariations","_createForOfIteratorHelperLoose$2","_arrayLikeToArray$2","_unsupportedIterableToArray$2","WOFFDirectoryEntry","compLength","origChecksum","WOFFDirectory","flavor","totalSfntSize","metaOffset","metaLength","metaOrigLength","privOffset","privLength","WOFFFont","_TTFFont","outBuffer","_createForOfIteratorHelperLoose$1","_arrayLikeToArray$1","_unsupportedIterableToArray$1","TTCHeader","numFonts","dsigTag","dsigLength","dsigOffset","TrueTypeCollection","readString","fonts","_createForOfIteratorHelperLoose","_arrayLikeToArray","_unsupportedIterableToArray","DFontName","Ref","nameOffset","dataOffset","Type","maxTypeIndex","refList","TypeList","DFontMap","typeList","nameListOffset","DFontHeader","dataLength","mapLength","DFont","sfnt","uncompressedLength","highStart","errorValue","DataView","getUint32","SHIFT_1","INDEX_2_BLOCK_LENGTH","DATA_BLOCK_LENGTH","LSCP_INDEX_2_OFFSET","UTF8_2B_INDEX_2_OFFSET","INDEX_1_OFFSET","proto","fabric","HTMLDocument","implementation","createHTMLDocument","virtualWindow","JSDOM","FetchExternalResources","resources","jsdomImplForWrapper","implForWrapper","nodeCanvas","DOMParser","copyGLTo2DDrawImage","gl","pipelineState","glCanvas","targetCanvas","sourceY","drawImage","copyGLTo2DPutImageData","dWidth","destinationWidth","dHeight","destinationHeight","numBytes","u8","imageBuffer","u8Clamped","Uint8ClampedArray","readPixels","RGBA","UNSIGNED_BYTE","imgData","ImageData","putImageData","isTouchSupported","maxTouchPoints","isLikelyNode","SHARED_ATTRIBUTES","DPI","reNum","commaWsp","rePathCommand","reNonWord","fontPaths","iMatrix","svgNS","perfLimitSizeTotal","maxCacheSideLimit","minCacheSideLimit","charWidthsCache","textureSize","disableStyleCopyPaste","enableGLFiltering","devicePixelRatio","webkitDevicePixelRatio","mozDevicePixelRatio","browserShadowBlurConstant","arcToSegmentsCache","boundsOfCurveCache","cachesBoundsOfCurve","forceGLPutImageData","initFilterBackend","isWebglSupported","maxTextureSize","WebglFilterBackend","tileSize","Canvas2dFilterBackend","_removeEventListener","eventName","handler","__eventListeners","eventListener","Observable","listenersForEvent","Collection","_objects","_onObjectAdded","renderOnAddRemove","requestRenderAll","insertAt","nonSplicing","objects","somethingRemoved","_onObjectRemoved","forEachObject","getObjects","complexity","CommonMethods","_setOptions","_initGradient","filler","colorStops","Gradient","_initPattern","Pattern","_setObject","_set","toggle","atan2","PiBy180","PiBy2","sign","removeFromArray","getRandomInt","degreesToRadians","degrees","radiansToDegrees","radians","rotatePoint","subtractEquals","rotateVector","addEquals","vector","transformPoint","ignoreOffset","makeBoundingBoxFromPoints","invertTransform","fractionDigits","parseUnit","fontSize","unit","DEFAULT_SVG_FONT_SIZE","falseFunction","getKlass","camelize","toUpperCase","resolveNamespace","getSvgAttributes","attributes","parts","loadImage","crossOrigin","createImage","onLoadCallback","onload","loadImageInDom","div","enlivenObjects","reviver","enlivenedObjects","numLoadedObjects","numTotalObjects","onLoaded","enlivenPatterns","patterns","numLoadedPatterns","numPatterns","enlivenedPatterns","groupSVGElements","elements","centerPoint","Group","sourcePath","populateWithProperties","destination","drawDashedLine","da","rot","dc","di","draw","createCanvasElement","copyCanvasElement","newCanvas","toDataURL","canvasEl","quality","multiplyTransformMatrices","is2x2","qrDecompose","denom","skewX","skewY","translateX","translateY","calcRotateMatrix","theta","calcDimensionsMatrix","scaleMatrix","flipX","flipY","tan","composeMatrix","matrix","resetObjectTransform","saveObjectTransform","isTransparent","tolerance","_isTransparent","imageData","getImageData","parsePreserveAspectRatioAttribute","attribute","align","meetOrSlice","aspectRatioAttrs","alignX","alignY","clearFabricFontCache","fontFamily","limitDimsByArea","ar","maximumArea","roughWidth","perfLimitSizeY","capValue","findScaleToFit","findScaleToCover","matrixToSVG","NUM_FRACTION_DIGITS","sizeAfterTransform","dimX","dimY","transformMatrix","_join","commandLengths","h","q","repeatedCommands","segmentToBezier","th2","th3","cosTh","sinTh","ry","cx1","cy1","mT","fromX","fromY","costh2","sinth2","costh3","sinth3","toX","toY","arcToSegments","large","sweep","rotateX","th","rx2","ry2","py2","px2","pl","mTheta","calcVectorAngle","dtheta","mDelta","ux","uy","vx","vy","ta","tb","getBoundsOfCurve","x0","y0","x3","y3","argsString","sqrtb2ac","tvalues","mt","fromArcToBeziers","fx","fy","segsNorm","calcLineLength","getPointOnCubicBezierIterator","p1x","p1y","p2x","p2y","p4x","p4y","pct","CB2","c3","CB3","c4","CB4","getTangentCubicIterator","invT","tangentX","tangentY","getPointOnQuadraticBezierIterator","QB2","QB3","getTangentQuadraticIterator","pathIterator","perc","tempP","tmpLen","findPercentageForDistance","segInfo","distance","nextLen","lastPerc","nextStep","angleFinder","getPathSegmentsInfo","tempInfo","totalLength","destX","destY","pathString","currentPath","coordsStr","re","rNumber","rNumberCommaWsp","rFlagCommaWsp","regArcArgumentSequence","coordsParsed","commandLength","repeatedCommand","klen","makePathSimpler","converted","previous","controlX","controlY","destinationPath","fromArcToBeizers","getPointOnPath","infos","segPercent","lerp","getBoundsOfArc","tx","ty","bound","segs","drawArc","bezier","byProperty","invoke","getWholeChar","character","capitalize","firstLetterOnly","escapeXml","graphemeSplit","textstring","chr","graphemes","emptyFunction","IS_DONTENUM_BUGGY","addMethods","klass","superclass","returnValue","Subclass","callSuper","parentMethod","superClassMethod","createClass","initialize","subclasses","couldUseAttachEvent","attachEvent","touchEvents","getPointer","scroll","getScrollLeftTop","_evt","touchProp","changedTouches","getTouchInfo","pointerType","parseEl","supportsOpacity","supportsFilters","reOpacity","setOpacity","es","currentStyle","hasLayout","zoom","setStyle","elementStyle","cssText","styleFloat","_slice","sliceCanConvertNodelists","getElementStyle","arrayLike","childNodes","makeElement","tagName","htmlFor","setAttribute","docElement","scrollLeft","scrollTop","host","selectProp","makeElementUnselectable","onselectstart","unselectable","makeElementSelectable","setImageSmoothing","imageSmoothingEnabled","webkitImageSmoothingEnabled","mozImageSmoothingEnabled","msImageSmoothingEnabled","oImageSmoothingEnabled","getById","getElementById","addClass","wrapElement","wrapper","replaceChild","getElementOffset","docElem","scrollLeftTop","offsetAttributes","borderLeftWidth","borderTopWidth","paddingLeft","paddingTop","clientLeft","clientTop","getNodeCanvas","impl","_canvas","_image","cleanUpJsdomNode","_currentSrc","_attributes","_classList","emptyFn","request","onComplete","xhr","XMLHttpRequest","parameters","onreadystatechange","readyState","param","addParamToUrl","setRequestHeader","send","defaultEasing","_requestAnimFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","_cancelAnimFrame","requestAnimFrame","timestamp","duration","finish","abort","easing","startValue","endValue","byValue","ticktime","currentTime","timePerc","valuePerc","cancelAnimFrame","calculateColor","begin","animateColor","fromColor","toColor","startColor","Color","getSource","endColor","originalOnComplete","originalOnChange","colorEasing","normalize","asin","elastic","easeInBounce","easeOutBounce","ease","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInOutBounce","attributesMap","visibility","colorAttributes","stroke","fSize","cPath","normalizeAttr","normalizeValue","parentAttributes","parseTransformAttribute","visible","fillIndex","strokeIndex","getSvgRegex","_getMultipleNodes","nodeNames","nodeName","nodeList","nodeArray","getElementsByTagName","elementMatchesRule","firstMatching","parentMatching","selectorMatches","doesSomeParentMatch","matcher","elementById","nodelist","svgValidTagNamesRegEx","svgViewBoxElementsRegEx","svgInvalidAncestorsRegEx","svgValidParentsRegEx","cssRules","gradientDefs","clipPaths","skewMatrix","reTransformList","reTransform","attributeValue","matrices","operation","translateMatrix","rotateMatrix","multiplierX","multiplierY","combinedMatrix","reViewBoxAttrValue","applyViewboxTransform","viewBoxWidth","viewBoxHeight","viewBoxAttr","widthAttr","heightAttr","preserveAspectRatio","missingViewBox","missingDimAttr","toBeParsed","parsedDim","widthDiff","heightDiff","removeAttribute","createElementNS","firstChild","recursivelyParseGradientsXlink","gradient","xlinkAttr","referencedGradient","hasAttribute","referenceClone","cloneNode","parseSVGDocument","parsingOptions","attrs","xlink","el2","currentTrans","oldLength","el3","setAttributeNS","nodeValue","parseUseDirectives","svgUid","__uid","descendants","selectNodes","hasAncestorWithNodeName","getGradientDefs","getCSSRules","parseElements","instances","reFontDeclaration","parseFontDeclaration","oStyle","fontStyle","fontWeight","lineHeight","elList","parseAttributes","parentFontSize","ownAttributes","cssAttrs","getGlobalStylesForElement","parseStyleAttribute","normalizedAttr","normalizedValue","normalizedStyle","mergedAttrs","setAlpha","getAlpha","toRgba","_setStrokeFillOpacity","ElementsParser","parseStyleString","parseStyleObject","parsePointsAttribute","parsedPoints","allRules","styleContents","textContent","ruleObj","propertyValuePairs","loadSVGFromURL","xml","responseXML","results","_options","allElements","loadSVGFromString","parseFromString","regexUrl","numElements","createObjects","createObject","findTag","fromElement","createCallback","checkIfDone","resolveGradient","_originalElement","_removeTransformMatrix","resolveClipPath","extractPropertyDefinition","lastIndex","gradientDef","opacityAttr","createClipPathCallback","_newObj","fillRule","clipRule","usingElement","objTransformInv","gTransform","clipPath","calcTransformMatrix","clipPathTag","clipPathOwner","setPositionByOrigin","scalarAdd","scalarAddEquals","scalarSubtract","scalarSubtractEquals","multiplyEquals","divideEquals","distanceFrom","midPointFrom","setXY","setX","setY","setFromPoint","Intersection","status","appendPoint","appendPoints","intersectLineLine","b2","uaT","ubT","uB","ub","intersectLinePolygon","inter","intersectPolygonPolygon","points1","points2","intersectPolygonRectangle","r1","r2","inter1","inter2","inter3","inter4","_tryParsingColor","setSource","hue2rgb","colorNameMap","sourceFromHex","sourceFromRgb","sourceFromHsl","_rgbToHsl","_source","toRgb","toHsl","hsl","toHsla","toHexa","toGrayscale","average","currentAlpha","toBlackWhite","threshold","overlayWith","otherColor","otherSource","reRGBa","reHSLa","reHex","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","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","lightgrey","lightgreen","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","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","fromRgb","fromSource","fromRgba","fromHsl","fromHsla","fromHex","isShortNotation","isRGBa","oColor","scaleMap","skewMap","controls","LEFT","TOP","RIGHT","BOTTOM","CENTER","opposite","center","findCornerQuadrant","fabricObject","control","cornerAngle","fireEvent","canvasOptions","scaleIsProportional","eventData","uniformIsToggled","uniScaleKey","uniformScaling","isTransformCentered","scalingIsForbidden","by","scaleProportionally","lockX","lockScalingX","lockY","lockScalingY","commonEventInfo","pointer","wrapWithFixedAnchor","actionHandler","getCenterPoint","constraint","translateToOriginPoint","actionPerformed","getLocalPoint","corner","getZoom","localPoint","toLocalPoint","offsetX","offsetY","targetHasOneFlip","compensateScaleForSkew","oppositeSkew","scaleToCompensate","reference","newValue","_getTransformedDimensions","skewObjectX","newSkew","dimNoSkew","totalSkewSize","currentSkew","hasSkewed","dimBeforeSkewing","skewObjectY","scaleObject","newPoint","dim","signX","signY","forbidScaling","gestureScale","lockScalingFlip","hasScaled","oldScaleX","oldScaleY","scaleCursorStyleHandler","skewCursorStyleHandler","notAllowed","lockSkewingY","lockSkewingX","scaleSkewCursorStyleHandler","altActionKey","rotationWithSnapping","pivotPoint","lockRotation","hasRotated","lastAngle","ey","curAngle","snapAngle","snapThreshold","rightAngleLocked","leftAngleLocked","scalingEqually","scalingX","scalingY","scalingYOrSkewingX","skewHandlerX","scalingXOrSkewingY","skewHandlerY","changeWidth","hasResized","strokePadding","strokeWidth","strokeUniform","multiplier","oldWidth","finalHandler","dragHandler","newLeft","newTop","moveX","moveY","scaleOrSkewActionName","isAlternative","rotationStyleHandler","controlsUtils","renderCircleControl","styleOverride","xSize","sizeX","cornerSize","ySize","sizeY","transparentCorners","cornerStrokeColor","myLeft","myTop","cornerColor","strokeStyle","lineWidth","renderSquareControl","xSizeBy2","ySizeBy2","strokeCornerColor","strokeRect","Control","actionName","touchSizeX","touchSizeY","withConnection","mouseDownHandler","mouseUpHandler","getActionHandler","getMouseDownHandler","getMouseUpHandler","cursorStyleHandler","getActionName","getVisibility","controlKey","objectVisibility","_controlsVisibility","setVisibility","positionHandler","finalMatrix","calcCornerCoords","objectAngle","objectCornerSize","centerX","centerY","isTouch","cosHalfOffset","sinHalfOffset","cosHalfOffsetComp","sinHalfOffsetComp","controlTriangleAngle","cornerHypotenuse","newTheta","newThetaComp","tl","tr","bl","br","cornerStyle","getColorStop","colorAlpha","keyValuePairs","gradientTransform","gradientUnits","option","addColorStop","toObject","propertiesToInclude","markup","commonAttributes","needsSwap","withViewport","additionalTransform","pathOffset","minRadius","percentageShift","colorStop","toLive","createLinearGradient","createRadialGradient","svgOptions","colorStopEls","getLinearCoords","getRadialCoords","propValue","finalValue","__convertPercentUnitsToValues","patternTransform","setOptions","isError","patternSource","patternWidth","patternHeight","patternOffsetX","patternOffsetY","patternImgSrc","complete","naturalWidth","naturalHeight","createPattern","blur","affectStroke","includeDefaultValues","nonScaling","_parseShadow","shadow","shadowStr","offsetsAndBlur","reOffsetsAndBlur","fBoxX","fBoxY","StaticCanvas","CANVAS_INIT_ERROR","renderAndResetBound","renderAndReset","requestRenderAllBound","_initStatic","backgroundImage","overlayColor","overlayImage","stateful","controlsAboveOverlay","allowTouchScrolling","viewportTransform","backgroundVpt","overlayVpt","enableRetinaScaling","vptCoords","skipOffscreen","_createLowerCanvas","_initOptions","interactive","_initRetinaScaling","setOverlayImage","setBackgroundImage","setBackgroundColor","setOverlayColor","calcOffset","_isRetinaScaling","getRetinaScaling","scaleRatio","__initRetinaScaling","lowerCanvasEl","contextContainer","upperCanvasEl","contextTop","__setBgOverlayImage","__setBgOverlayColor","_createCanvasElement","_applyCanvasStyle","getWidth","getHeight","setWidth","setDimensions","setHeight","dimensions","cssValue","cssOnly","_setBackstoreDimension","hasLostContext","backstoreOnly","_setCssDimension","_isCurrentlyDrawing","freeDrawingBrush","_setBrushStyles","cacheCanvasEl","wrapperEl","setViewportTransform","vpt","activeObject","_activeObject","backgroundObject","overlayObject","setCoords","calcViewportBoundaries","zoomToPoint","before","setZoom","absolutePan","relativePan","getElement","setupState","clearContext","clear","_hasITextHandlers","_mouseUpITextHandler","_iTextInstances","renderAll","canvasToDrawOn","renderCanvas","isRendering","iVpt","cancelRequestedRender","_renderBackground","_renderObjects","drawControls","shouldCache","_transformDone","renderCache","forClipping","drawClipPathOnCanvas","_renderOverlay","globalCompositeOperation","zoomX","zoomY","_cacheCanvas","cacheTranslationX","cacheTranslationY","_renderBackgroundOrOverlay","needsVpt","getCenter","centerObjectH","_centerObject","centerObjectV","centerObject","viewportCenterObject","vpCenter","getVpCenter","viewportCenterObjectH","viewportCenterObjectV","toDatalessJSON","toDatalessObject","_toObjectMethod","_toObjects","_toObject","__serializeBgOverlay","excludeFromExport","originalValue","bgImage","overlay","background","svgViewportTransformation","_setSVGPreamble","_setSVGHeader","clipPathId","_setSVGBgOverlayColor","_setSVGBgOverlayImage","_setSVGObjects","suppressPreamble","viewBox","createSVGFontFacesMarkup","createSVGRefElementsMarkup","createSVGClipPathMarkup","toClipPathSVG","shouldTransform","rowIndex","charIndex","fontList","_setSVGObject","finalWidth","finalHeight","sendToBack","objs","activeSelection","bringToFront","sendBackwards","intersecting","newIdx","objsMoved","_findNewLowerIndex","intersectsWithObject","isContainedWithinObject","bringForward","_findNewUpperIndex","dispose","DataURLExporter","EMPTY_JSON","supports","setLineDash","createPNGStream","createJPEGStream","BaseBrush","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeDashArray","lineCap","miterLimit","lineJoin","_saveAndTransform","_setShadow","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","needsFullRender","_resetShadow","PencilBrush","decimate","_points","_drawSegment","midPoint","_isMainEvent","_prepareForDrawing","_captureDrawingPath","_render","oldEnd","_finalizeAndAddPath","_reset","_addPoint","pointerPoint","convertPointsToSVGPath","multSignX","multSignY","manyPoints","pathData","decimatePoints","adjustedDistance","lastPoint","newPoints","CircleBrush","drawDot","dot","radius","originalRenderOnAddRemove","circles","circle","circleRadius","circleColor","SprayBrush","density","dotWidth","dotWidthVariance","randomOpacity","optimizeOverlapping","sprayChunks","addSprayChunk","sprayChunkPoints","rects","sprayChunk","_getOptimizedRects","uniqueRects","uniqueRectsArray","globalAlpha","fillRect","PatternBrush","getPatternSrc","patternCanvas","patternCtx","getPatternSrcFunction","getPattern","_getLeftTopCoords","supportLineDash","STROKE_OFFSET","_initInteractive","_createCacheCanvas","centeredScaling","centeredRotation","centeredKey","selection","selectionKey","altSelectionKey","selectionColor","selectionDashArray","selectionBorderColor","selectionLineWidth","selectionFullyContained","hoverCursor","moveCursor","defaultCursor","freeDrawingCursor","rotationCursor","notAllowedCursor","containerClass","perPixelTargetFind","targetFindTolerance","skipTargetFind","isDrawingMode","preserveObjectStacking","stopContextMenu","fireRightClick","fireMiddleClick","targets","_hoveredTarget","_hoveredTargets","_currentTransform","_groupSelector","_initWrapperElement","_createUpperCanvas","_initEventListeners","_chooseObjectsToRender","objsToRender","activeGroupObjects","activeObjects","getActiveObjects","contextTopDirty","renderTopLayer","_drawSelection","renderTop","_normalizePointer","invertedM","vptPointer","restorePointerVpt","isTargetTransparent","normalizedPointer","targetRelativeX","targetRelativeY","_cacheContext","contextCache","originalColor","selectionBackgroundColor","_renderControls","hasBorders","_isSelectionKeyPressed","_shouldClearSelection","evented","selectable","_shouldCenterTransform","altKey","centerTransform","_getOriginFromCorner","_getActionFromCorner","alreadySelected","_setupCurrentTransform","__corner","shiftKey","_beforeTransform","setCursor","groupSelector","aleft","atop","_setLineDash","findTarget","skipGroup","activeTarget","activeTargetSubs","aObjects","_searchPossibleTargets","_findTargetCorner","_checkTarget","globalPointer","containsPoint","isEditing","subTarget","objToCheck","pointerToUse","subTargetCheck","ignoreZoom","_absolutePointer","_pointer","cssScale","boundsWidth","boundsHeight","retinaScaling","lowerCanvasClass","_copyCanvasStyle","fromEl","toEl","getSelectionContext","getSelectionElement","getActiveObject","active","_discardActiveObject","_fireSelectionEvents","oldObjects","somethingChanged","added","removed","opt","oldObject","selected","deselected","updated","setActiveObject","currentActives","_setActiveObject","onSelect","onDeselect","discardActiveObject","removeListeners","originalProperties","_realizeGroupTransformOnObject","_unwindGroupTransformOnObject","originalValues","realizeTransform","clearContextTop","addEventOptions","checkClick","button","mainTouchId","_bindEvents","addOrRemove","_getEventPrefix","enablePointerEvents","eventjsFunctor","canvasElement","eventTypePrefix","_onResize","_onMouseDown","_onMouseMove","_onMouseOut","_onMouseEnter","_onMouseWheel","_onContextMenu","_onDoubleClick","_onDragOver","_onDragEnter","_onDragLeave","_onDrop","_onTouchStart","eventjs","_onGesture","_onDrag","_onOrientationChange","_onShake","_onLongPress","_onMouseUp","_onTouchEnd","eventsBound","_simpleEventHandler","__onTransformGesture","__onDrag","__onMouseWheel","_target","hiddenTextarea","__onOrientationChange","__onShake","__onLongPress","_fireEnterLeaveEvents","_cacheTransformEventData","_handleEvent","_resetTransformEventData","getPointerId","evt","identifier","pointerId","isPrimary","__onMouseDown","__onMouseUp","_willAddMouseDown","__onMouseMove","_shouldRender","shouldRender","isClick","_onMouseUpInDrawingMode","_finalizeCurrentTransform","targetWasActive","_maybeGroupObjects","isMoving","_setCursorFromEvent","eventType","subTargets","absolutePointer","currentTarget","currentSubTargets","_scaling","hasStateChanged","_addEventOptions","_fire","_onMouseDownInDrawingMode","_onMouseMoveInDrawingMode","_previousPointer","shouldGroup","_shouldGroup","_handleGrouping","saveState","_transformObject","_fireOverOutEvents","fireSyntheticInOutEvents","oldTarget","evtOut","canvasEvtOut","evtIn","canvasEvtIn","_draggedoverTarget","config","inOpt","outOpt","inFires","targetChanged","previousTarget","nextTarget","_performTransformAction","getCornerCursor","_updateActiveSelection","_createActiveSelection","currentActiveObjects","removeWithUpdate","addWithUpdate","_createGroup","groupObjects","exitEditing","ActiveSelection","_groupSelectedObjects","aGroup","_collectObjects","currentObject","selectionX1Y1","selectionX2Y2","allowIntersect","intersectsWithRect","isContainedWithinRect","toCanvasElement","cropping","scaledWidth","scaledHeight","originalWidth","originalHeight","newZoom","vp","originalInteractive","newVp","originalRetina","originalContextTop","loadFromJSON","json","serialized","_enlivenObjects","_setBgOverlay","enlivenedCanvasClip","__setupCanvas","loaded","cbIfLoaded","__setBgOverlay","enlivedObject","_toDataURL","_toDataURLWithMultiplier","toDataURLWithMultiplier","cloneWithoutData","backgroundImageOpacity","backgroundImageStretch","supportsLineDash","objectCaching","touchCornerSize","borderColor","borderDashArray","cornerDashArray","strokeDashOffset","borderOpacityWhenMoving","borderScaleFactor","minScaleLimit","hasControls","lockMovementX","lockMovementY","statefullCache","noScaleCache","dirty","paintFirst","stateProperties","cacheProperties","colorProperties","inverted","absolutePositioned","_cacheProperties","_updateCacheCanvas","_limitCacheSize","dims","limitedDims","capped","_getCacheCanvasDimensions","objectScale","getTotalObjectScaling","neededX","neededY","drawingWidth","drawingHeight","minCacheSize","dimensionsChanged","cacheWidth","cacheHeight","zoomChanged","shouldRedraw","additionalWidth","additionalHeight","shouldResizeCanvas","canvasWidth","canvasHeight","sizeGrowing","setTransform","needFullTransform","_removeDefaultValues","getObjectScaling","retina","getObjectOpacity","shouldConstrainValue","isChanged","groupNeedsUpdate","_constrainScale","isOnACache","setOnGroup","getViewportTransform","isNotVisible","isOnScreen","_setupCompositeOperation","drawSelectionBackground","_setOpacity","drawCacheOnCanvas","_removeCacheCanvas","drawObject","propertySet","isCacheDirty","hasStroke","hasFill","needsItsOwnCache","ownCaching","willDrawShadow","drawClipPathOnCache","originalFill","originalStroke","_setClippingProperties","_drawClipPath","skipCanvas","_getNonTransformedDimensions","_removeShadow","_setStrokeStyles","decl","lineDashOffset","gradientTrasnform","_applyPatternForTransformedGradient","_applyPatternGradientTransform","_setFillStyles","dashArray","alternative","drawBorders","forActiveSelection","drawBordersInGroup","scaling","multX","multY","_renderPaintInOrder","_renderStroke","_renderFill","_renderDashedStroke","pCtx","pCanvas","_findCenterFromElement","_assignTransformMatrixProps","preserveAspectRatioOptions","cropX","cropY","objectForm","_fromObject","cloneAsImage","utils","origParams","originalGroup","originalShadow","withoutTransform","withoutShadow","boundingRect","getBoundingRect","shadowOffset","originalCanvas","isType","shouldCenterOrigin","_setOriginToCenter","_resetOrigin","centerH","viewportCenterH","centerV","viewportCenterV","viewportCenter","getLocalPointer","pClicked","objectLeftTop","createAccessors","extraParam","enlivedProps","originXOffset","originYOffset","translateToGivenOrigin","fromOriginX","fromOriginY","toOriginX","toOriginY","translateToCenterPoint","leftTop","getPointByOrigin","adjustPosition","offsetFrom","offsetTo","hypotFull","getScaledWidth","xFull","yFull","_originalOriginX","_originalOriginY","originPoint","multiplyMatrices","oCoords","aCoords","lineCoords","ownMatrixCache","matrixCache","_getCoords","absolute","calculate","calcACoords","calcLineCoords","getCoords","pointTL","pointBR","other","otherCoords","lines","_getImageLines","_findCrossPoints","some","_containsCenterOfCanvas","isPartiallyOnScreen","topline","rightline","bottomline","leftline","xi","iLine","xcount","lineKey","getScaledHeight","scaleToWidth","boundingRectFactor","scaleToHeight","calcCoords","calcOCoords","cosP","sinP","cosPSinP","cosPMinusSinP","_calcRotateMatrix","_calcTranslateMatrix","startMatrix","_calculateCurrentDimensions","forEachControl","w","skipCorners","_setCornerCoords","transformMatrixKey","sep","calcOwnMatrix","tMatrix","_calcDimensionsTransformMatrix","flipping","noSkew","_finalizeDimensions","getSvgColorString","getSvgStyles","skipShadow","getSvgFilter","getSvgSpanStyles","useWhiteSpace","term","textDecoration","getSvgTextDecoration","decoration","getSvgCommons","getSvgTransform","_setSVGBg","textBgRects","_getFillAttributes","_createBaseSVGMarkup","_toSVG","_createBaseClipPathSVGMarkup","objectMarkup","commonPieces","clipPathMarkup","noStyle","styleInfo","shadowInfo","withShadow","vectorEffect","absoluteClipPath","addPaintOrder","originalSet","saveProps","tmpObj","_isEqual","origValue","currentValue","firstPass","dashedPropertySet","forTouch","isControlVisible","touchCorner","controlObject","wh","shouldStroke","setControlVisible","setControlsVisibility","FX_DURATION","fxCenterObjectH","callbacks","fxCenterObjectV","fxRemove","skipCallbacks","propsToAnimate","_animate","propPair","propIsColor","valueProgress","timeProgress","coordProps","makeEdgeToOriginGetter","propertyNames","originValues","axis1","axis2","dimension","nearest","farthest","_setWidthHeight","_getLeftToOriginX","_getTopToOriginY","calcLinePoints","origStrokeStyle","xMult","yMult","ATTRIBUTE_NAMES","parsedAttributes","pi","setRadius","svgString","endX","endY","largeFlag","getRadiusX","getRadiusY","Triangle","widthBy2","heightBy2","piBy2","getRx","getRy","_initRxRy","isRounded","_setPositionDimensions","correctLeftTop","calcDim","_calcDimensions","fromSVG","diffX","diffY","commonRender","fromElementGenerator","fromArray","_renderPathCommands","subpathStartX","subpathStartY","_getOffsetTransform","digits","aX","aY","pathUrl","useSetOnGroup","isAlreadyGrouped","_updateObjectsACoords","_calcBounds","_updateObjectsCoords","_updateObjectCoords","objectLeft","objectTop","_restoreObjectsState","_includeDefaultValues","objsToObject","originalDefaults","_obj","ownCache","_restoreObjectState","toActiveSelection","ungroupOnCanvas","setObjectsCoords","onlyWidthHeight","iLen","jLen","_getBounds","minXY","maxXY","enlivedClipPath","toGroup","newGroup","childrenOverride","srcFromAttribute","_lastScaleX","_lastScaleY","_filterScalingX","_filterScalingY","minimumScaleTrigger","imageSmoothing","filters","_initElement","_element","setElement","removeTexture","_initConfig","applyFilters","resizeFilter","applyResizeFilters","backend","filterBackend","evictCachesForKey","getCrossOrigin","getOriginalSize","_stroke","filterObj","getSrc","hasCrop","strokeSvg","imageMarkup","imageRendering","getSvgSrc","origFill","filtered","setSrc","minimumScale","elementToFilter","_filteredEl","sourceWidth","sourceHeight","isNeutralState","imgElement","_needsResize","elementToDraw","elWidth","elHeight","sX","sY","sW","sH","maxDestW","maxDestH","_resetWidthHeight","CSS_CANVAS","_initFilters","pAR","rWidth","rHeight","pWidth","pHeight","_object","resizeFilters","fromURL","imgOptions","_getAngleValueForStraighten","straighten","fxStraighten","straightenObject","fxStraightenObject","testPrecision","precision","fragmentSource","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","setupGLContext","captureGPUInfo","isSupported","getParameter","MAX_TEXTURE_SIZE","precisions","webGlPrecision","createWebGLCanvas","aPosition","Float32Array","chooseFastestCopyGLTo2DMethod","canUseImageData","canMeasurePerf","performance","canUseArrayBuffer","canUseUint8Clamped","copyGLTo2D","startTime","drawImageTime","testContext","glOptions","premultipliedAlpha","stencil","antialias","clearColor","cachedTexture","getCachedTexture","sourceTexture","createTexture","targetTexture","originalTexture","passes","webgl","programCache","pass","tempFbo","createFramebuffer","bindFramebuffer","FRAMEBUFFER","resizeCanvasIfNeeded","bindTexture","TEXTURE_2D","deleteTexture","deleteFramebuffer","clearWebGLCaches","textureCache","textureImageSource","texture","texParameteri","TEXTURE_MAG_FILTER","NEAREST","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","texImage2D","uniqueId","gpuInfo","vendor","getExtension","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","sourceElement","originalEl","originalImageData","BaseFilter","vertexSource","createProgram","vertexShader","VERTEX_SHADER","getShaderInfoLog","program","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","attributeLocations","getAttributeLocations","uniformLocations","getUniformLocations","uStepW","getUniformLocation","uStepH","getAttribLocation","sendAttributeData","aPositionData","attributeLocation","bindBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","bufferData","STATIC_DRAW","_setupFrameBuffer","framebufferTexture2D","COLOR_ATTACHMENT0","_swapTextures","mainParameter","applyToWebGL","applyTo2d","retrieveShader","shader","useProgram","uniform1f","sendUniformData","viewport","drawArrays","TRIANGLE_STRIP","bindAdditionalTexture","textureUnit","activeTexture","TEXTURE0","unbindAdditionalTexture","getMainParameter","setMainParameter","createHelpLayer","helpLayer","mainP","ColorMatrix","colorsOnly","uColorMatrix","uConstants","uniformMatrix4fv","uniform4fv","Brightness","brightness","uBrightness","Convolute","opaque","Convolute_3_1","Convolute_3_0","Convolute_5_1","Convolute_5_0","Convolute_7_1","Convolute_7_0","Convolute_9_1","Convolute_9_0","dstOff","scx","scy","srcOff","wt","weights","side","halfSide","sw","sh","createImageData","alphaFac","uMatrix","uOpaque","uHalfSize","uSize","uniform1fv","Grayscale","lightness","luminosity","uMode","uniform1i","Invert","uInvert","Noise","noise","rand","uNoise","uSeed","Pixelate","blocksize","_iLen","_jLen","uBlocksize","RemoveColor","useAlpha","lowC","highC","uLow","uHigh","Brownie","Vintage","Kodachrome","Technicolor","Polaroid","Sepia","BlackWhite","BlendColor","screen","lighten","darken","exclusion","tint","buildSource","tg","alpha1","uColor","BlendImage","mask","TEXTURE1","calculateMatrix","canvas1","blendData","blendImage","uTransformMatrix","uImage","uniformMatrix3fv","Resize","resizeType","lanczosLobes","uDelta","uTaps","uniform2fv","taps","filterWindow","getFilterWindow","generateShader","tempScale","getTaps","lobeFunction","lanczosCreate","fragmentSourceTOP","dW","dH","lobes","xx","rcpScaleX","rcpScaleY","newData","oW","oH","sliceByTwo","hermiteFastResize","bilinearFiltering","lanczosResize","tmpCanvas","mult","doneW","doneH","stepW","stepH","dX","dY","srcData","destImg","destData","lanczos","ratioX","ratioY","rcpRatioX","rcpRatioY","range2X","range2Y","cacheLanc","icenter","u","weight","fX","fY","xDiff","yDiff","chnl","origPix","w4","pixels","destImage","destPixels","ratioW","ratioH","ratioWHalf","ratioHHalf","img2","data2","weightsAlpha","gxR","gxG","gxB","gxA","yy","w0","Contrast","contrast","contrastF","uContrast","Saturation","saturation","uSaturation","Blur","aspectRatio","simpleBlur","canvas2","blurLayer1","blurLayer2","ctx1","ctx2","nSamples","newImageData","chooseRightDelta","blurScale","Gamma","gamma","rInv","gInv","bInv","rVals","gVals","bVals","uGamma","uniform3fv","Composed","subFilters","HueRotation","rad","aThird","aThirdSqtSin","OneMinusCos","additionalProps","_dimensionAffectingProps","_reNewline","_reSpacesAndTabs","_reSpaceAndTab","_reWords","underline","overline","linethrough","textAlign","superscript","baseline","subscript","textBackgroundColor","_fontSizeFraction","_fontSizeMult","charSpacing","_measuringContext","_styleProperties","__charBounds","CACHE_FONT_SIZE","MIN_TEXT_WIDTH","__skipDimension","setPathInfo","initDimensions","segmentsInfo","getMeasuringContext","_splitText","newLines","_splitTextIntoLines","textLines","_textLines","graphemeLines","_unwrappedTextLines","_unwrappedLines","_text","graphemeText","_clearCache","calcTextWidth","cursorWidth","calcTextHeight","enlargeSpaces","diffSpace","currentLineWidth","numberOfSpaces","accumulatedSpace","line","charBound","spaces","isEndOfWrapping","getLineWidth","kernedWidth","lineIndex","missingNewlineOffset","_setTextStyles","_renderTextLinesBackground","_renderTextDecoration","_renderText","_renderTextStroke","_renderTextFill","charStyle","forMeasuring","textBaseline","_getFontDeclaration","_renderTextLine","_renderChars","styleHas","heightOfLine","lineLeftOffset","lastColor","charBox","currentColor","_getLeftOffset","lineTopOffset","_getTopOffset","boxStart","boxWidth","getHeightOfLine","_getLineLeftOffset","getValueOfPropertyAt","renderLeft","getFontCache","cacheProp","_measureChar","_char","previousChar","prevCharStyle","coupleWidth","previousWidth","fontCache","couple","stylesAreEqual","fontMultiplier","measureText","getHeightOfChar","measureLine","lineInfo","_measureLine","_getWidthOfCharSpacing","grapheme","prevGrapheme","graphemeInfo","startingPoint","totalPathLength","lineBounds","positionInPath","_getGraphemeBox","_setGraphemeOnPath","numOfSpaces","centerPosition","skipLeft","getCompleteStyleDeclaration","prevStyle","previousBox","__lineHeights","_renderTextCommon","lineHeights","isEmptyStyles","actualStyle","nextStyle","timeToRender","isJustify","charsToRender","shortCut","_renderChar","_hasStyleChanged","_applyPatternGradientTransformText","handleFiller","fillOffsets","strokeOffsets","_getStyleDeclaration","fullDecl","shouldFill","fillText","strokeText","setSuperscript","_setScript","setSubscript","schema","loc","get2DCursorLocation","setSelectionStyles","thisStyle","_hasStyleChangedForSvg","__lineWidths","_shouldClearDimensionCache","shouldClear","_forceClearCache","_dy","lastDecoration","currentDecoration","currentFill","lastFill","topOffset","styleObject","family","fontIsGeneric","genericFonts","newLine","newText","additionalProperties","needsDims","isAddingPath","parsedAnchor","textAnchor","originalStrokeWidth","textHeightScaleFactor","scaledDiff","textHeight","offX","cleanStyle","letterCount","stylePropertyValue","stylesCount","allStyleObjectPropertiesMatch","graphemeCount","removeStyle","lineNum","charNum","_extendStyles","_getLineStyle","_setLineStyle","_setStyleDeclaration","selectionStart","skipWrapping","getSelectionStyles","startIndex","endIndex","selectionEnd","getStyleAtPosition","lineStyle","_deleteStyleDeclaration","_deleteLineStyle","parseDecoration","IText","editable","editingBorderColor","cursorColor","cursorDelay","cursorDuration","caching","_reSpace","_currentCursorOpacity","_selectionDirection","_abortCursorAnimation","__widthOfSpace","inCompositionMode","initBehavior","setSelectionStart","_updateAndFire","setSelectionEnd","_fireSelectionChanged","_updateTextarea","initDelayedCursor","cursorOffsetCache","renderCursorOrSelection","skipRestore","_clearTextArea","boundaries","_getCursorBoundaries","renderCursor","renderSelection","_getCursorBoundariesOffsets","cursorPosition","cursorLocation","charHeight","__isMousedown","startLine","endLine","startChar","endChar","realLineHeight","lineOffset","boxEnd","compositionColor","getCurrentCharFontSize","cp","_getCurrentCharIndex","getCurrentCharColor","initAddedHandler","initRemovedHandler","initCursorSelectionHandlers","initDoubleClickSimulation","mouseMoveHandler","_initCanvasHandlers","_removeCanvasHandlers","_tick","_currentTickState","_animateCursor","targetOpacity","completeMethod","tickState","isAborted","_onTickComplete","_cursorTimeout1","_currentTickCompleteState","restart","delay","abortCursorAnimation","_cursorTimeout2","selectAll","getSelectedText","findWordBoundaryLeft","startFrom","findWordBoundaryRight","findLineBoundaryLeft","findLineBoundaryRight","searchWordBoundary","selectWord","newSelectionStart","newSelectionEnd","selectLine","enterEditing","exitEditingOnOthers","initHiddenTextarea","_saveEditingProps","_setEditingProps","_textBeforeEdit","initMouseMoveHandler","getSelectionStartFromPointer","currentStart","currentEnd","__selectionStartOnMouseDown","restartCursorIfNeeded","fromStringToGraphemeSelection","smallerTextStart","graphemeStart","smallerTextEnd","fromGraphemeToStringSelection","newSelection","updateTextareaPosition","updateFromTextArea","_calcTextareaPosition","desiredPosition","compositionStart","upperCanvas","upperCanvasWidth","upperCanvasHeight","_savedProps","_restoreEditingProps","isTextChanged","_removeExtraneousStyles","removeStyleFromTo","styleObj","cursorStart","cursorEnd","lineStart","charStart","lineEnd","charEnd","shiftLineStyles","numericChar","clonedStyles","numericLine","insertNewlineStyleObject","qty","copiedStyle","currentCharStyle","newLineStyles","somethingAdded","isEndOfLine","numIndex","styleCarriedOver","insertCharStyleObject","quantity","currentLineStyles","currentLineStylesCloned","numericIndex","newStyle","insertNewStyleBlock","insertedText","cursorLoc","addedLines","linesLength","setSelectionStartEndWithShift","setSelectionInBoundaries","__lastClickTime","__lastLastClickTime","__lastPointer","__newClickTime","newPointer","isTripleClick","_stopEvent","__lastIsEditing","__lastSelected","initMousedownHandler","initMouseupHandler","initClicks","doubleClickHandler","tripleClickHandler","_mouseDownHandler","setCursorByClick","_mouseDownHandlerBefore","currentActive","mouseOffset","prevWidth","_getNewSelectionStartFromOffset","distanceBtwLastCharAndCursor","distanceBtwNextCharAndCursor","onKeyDown","onKeyUp","onInput","paste","onCompositionStart","onCompositionUpdate","onCompositionEnd","_clickHandlerInitialized","keysMap","ctrlKeysMapUp","ctrlKeysMapDown","keyCode","ctrlKey","metaKey","stopImmediatePropagation","_copyDone","fromPaste","removedText","removeFrom","removeTo","nextText","charCount","nextCharCount","charDiff","textareaSelection","backDelete","copiedText","copiedTextStyle","compositionEnd","_getClipboardData","clipboardData","_getWidthBeforeCursor","widthBeforeCursor","getDownCursorOffset","isRight","selectionProp","_getSelectionForOffset","indexOnOtherLine","_getIndexOnLine","getUpCursorOffset","textBeforeCursor","charWidth","foundMatch","widthOfCharsOnLine","indexOnLine","leftEdge","rightEdge","offsetFromLeftEdge","moveCursorDown","_moveCursorUpOrDown","moveCursorUp","moveCursorWithShift","moveCursorWithoutShift","moveCursorLeft","_moveCursorLeftOrRight","_move","_moveLeft","_moveRight","moveCursorLeftWithoutShift","change","moveCursorLeftWithShift","moveCursorRight","moveCursorRightWithShift","moveCursorRightWithoutShift","removeChars","insertChars","multipleSpacesRegex","_getSVGLeftTopOffsets","textAndBg","_getSVGTextAndBg","textTop","textLeft","_wrapSVGTextAndBg","lineTop","textSpans","textTopOffset","textLeftOffset","_setSVGTextLineBg","_setSVGTextLineText","_createTextCharSpan","styleDecl","shouldUseWhitespace","styleProps","fillStyles","dySpan","_pushTextBgRect","_getSVGLineTopOffset","lastHeight","Textbox","dynamicMinWidth","__cachedLines","_wordJoiners","splitByGrapheme","_styleMap","_generateStyleMap","textInfo","realLineCount","realLineCharCount","isWrapping","shouldLimit","mapNextLine","_wrapText","desiredWidth","wrapped","_wrapLine","_measureWord","word","charOffset","_line","reservedSpace","infix","wordWidth","infixWidth","largestWordWidth","lineJustStarted","additionalSpace","getMinWidth","linesToKeep","scaleSkewStyleHandler","scaleStyleHandler","objectControls","ml","mr","mb","mtr","textBoxControls","propIsEnumerable","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","encodePacket","decodePacket","SEPARATOR","protocol","encodePayload","packets","encodedPackets","packet","encodedPacket","decodePayload","encodedPayload","binaryType","decodedPacket","Emitter","mixin","_callbacks","hasListeners","objectToString","isBoolean","isNull","isNullOrUndefined","isSymbol","isRegExp","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicate","predicates","dP","createDesc","_advanceWidth","accum","_subtract","_mapIndexed","sliceRuns","runs","intermediateRun","getComputedPadding","EDGE_TOP","paddingVertical","paddingRight","EDGE_RIGHT","paddingHorizontal","paddingBottom","EDGE_BOTTOM","EDGE_LEFT","_objectSpread","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","ns","getI18n","initReactI18next","setDefaults","react","setI18n","superPropBase","_get","receiver","findInArray","isNum","int","dontSetMe","componentName","ReflectOwnKeys","ReflectApply","NumberIsNaN","emitter","errorListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","existing","warning","newListener","onceWrapper","fired","wrapFn","_onceWrap","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","setMaxListeners","getMaxListeners","doError","originalListener","rawListeners","eventNames","arg1","arg2","arg3","descriptors","formatRegExp","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","stylize","stylizeNoColor","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","numLinesEst","reduceToSingleString","debuglog","NODE_DEBUG","pid","months","getHours","getMinutes","getSeconds","getDate","getMonth","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","promisify","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","anObject","IE8_DOM_DEFINE","toPrimitive","O","P","Attributes","KAPPA","_node$box","_node$style","_node$style$borderTop","borderTopLeftRadius","_node$style$borderTop2","borderTopRightRadius","_node$style$borderBot","borderBottomRightRadius","_node$style$borderBot2","borderBottomLeftRadius","rtr","ctr","rbr","cbr","rbl","cbl","ctl","clip","TYPED_OK","Int32Array","sources","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","chunks","fnUntyped","setTyped","Buf8","Buf16","Buf32","X32WordArray","C_x64","x64","Word","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","_setPrototypeOf","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_arrayWithHoles","_nonIterableRest","_createSuper","sham","Proxy","circular","allParents","allChildren","useBuffer","__isArray","__isRegExp","__getRegExpFlags","__isDate","getTime","__objToStr","clonePrototype","_isNativeReflectConstruct","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","zeroPad","strValue","strNo","paddedNo","timeDeltaFormatOptionsDefaults","daysInHours","zeroPadTime","formatTimeDelta","timeDelta","days","hours","minutes","seconds","_Object$assign","_Object$assign$zeroPa","zeroPadDays","zeroPadTimeLength","formattedHours","Countdown","_React$Component","startCountdown","interval","setInterval","stopCountdown","prevState","clearInterval","addTime","cloneElement","Countdown$1","mounted","initialTimestamp","calcOffsetStartTimestamp","offsetStartTimestamp","autoStart","offsetTime","legacyMode","legacyCountdownRef","createRef","calcTimeDelta","completed","overtime","onTick","setTimeDeltaState","isStarted","prevOffsetStartTimestamp","controlled","clearTimer","intervalDelay","isPaused","onPause","stop","isStopped","isStatus","isCompleted","handleOnComplete","date","onMount","prevProps","_this$props","startTimestamp","_options$now","_options$precision","_options$offsetTime","timeLeft","clampedPrecision","total","milliseconds","completedCallback","newStatus","api","_this$props2","getApi","formatted","_this$props3","_children","_this$props4","renderProps","getRenderProps","countdown","_renderProps$formatte","oneOfType","instanceOf","bool","parser","Transport","query","socket","description","doOpen","doClose","onClose","onPacket","qs","qry","Decoder","Encoder","PacketType","binary_1","is_binary_1","EVENT","ACK","hasBinary","encodeAsString","BINARY_EVENT","BINARY_ACK","encodeAsBinary","attachments","nsp","deconstruction","deconstructPacket","pack","decodeString","reconstructor","BinaryReconstructor","isBinary","takeBinaryData","payload","tryParse","isPayloadValid","finishedReconstruction","CONNECT","DISCONNECT","CONNECT_ERROR","reconPack","binData","reconstructPacket","matchesSelector","matchesSelectorAndParentsTo","baseNode","addEvent","inputOptions","removeEvent","detachEvent","outerHeight","_shims","borderBottomWidth","outerWidth","borderRightWidth","offsetXYFromParent","offsetParent","offsetParentRect","createCSSTransform","controlPos","positionOffset","translation","getTranslation","_getPrefix","browserPrefixToKey","createSVGTransform","getTouch","targetTouches","getTouchIdentifier","addUserSelectStyles","styleEl","innerHTML","addClassName","removeUserSelectStyles","removeClassName","getSelection","removeAllRanges","matchesSelectorFunc","_ref2","unitSuffix","defaultX","defaultY","copyProps","SafeBuffer","CorkedRequest","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","hasInstance","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","StringDecoder","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","_error","UInt8","UInt16","UInt24","UInt32","Int8","Int16","Int24","Int32","Float","Double","readUInt24LE","readInt24BE","readInt24LE","bomHandling","encodings","defaultCharUnicode","defaultCharSingleByte","getEncoder","trail","skipDecodeWarning","decoder","getDecoder","getCodec","toEncoding","fromEncoding","_codecDataCache","_canonicalizeEncoding","codecOptions","codec","codecDef","encodingName","bomAware","addBOM","PrependBOM","StripBOM","nodeVer","nodeVerArr","GetIntrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","applyBind","hide","Iterators","TO_STRING_TAG","DOMIterables","NAME","IObject","defined","shared","$at","iterated","_t","_scale","getFontAscent","getFontDescent","_ascent","W","SHA1","HmacSHA1","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","matchNumber","_empty","_stringFromCodePoints","_getFont","_glyphIndexAt","_normalize","runScale","glyphStartIndex","glyphEndIndex","endGlyph","startGlyphs","endOffset","endGlyphs","sliceOffset","_positions","_runIndexAt","_advanceWidthBetween","_copy","_descent","_end","_fromFragments","_glyphWidthAt","_height","_indexAtOffset","_insertGlyph","_leadingOffset","_length","_prepend","_runAt","_sliceAtOffset","_start","_trailingOffset","_trim","advanceWidthBetween","fromFragments","glyphWidthAt","indexAtOffset","insertGlyph","leadingOffset","runAt","runIndexAt","sliceAtOffset","trailingOffset","upperFirst","getComputedMargin","marginTop","marginVertical","margin","marginRight","marginHorizontal","marginBottom","marginLeft","yogaValue","ALIGN_FLEX_START","ALIGN_CENTER","ALIGN_FLEX_END","ALIGN_STRETCH","ALIGN_BASELINE","ALIGN_SPACE_BETWEEN","ALIGN_SPACE_AROUND","ALIGN_AUTO","Tree","Data","sourceIndex","bitcount","destLen","ltree","dtree","sltree","sdtree","length_bits","length_base","dist_bits","dist_base","clcidx","code_tree","lengths","tinf_build_bits_base","offs","tinf_build_tree","tinf_getbit","bit","tinf_read_bits","tinf_decode_symbol","tinf_decode_trees","dt","hlit","hdist","hclen","clen","tinf_inflate_block_data","dist","tinf_inflate_uncompressed_block","tinf_build_fixed_trees","bfinal","sx","sy","PDFReference","_stream$Writable","Filter","initDeflate","zlib","Length","PDFObject","_Array$from","_refEnd","PDFNameTree","sortedKeys","localeCompare","escapableRe","escapable","isUnicode","buff","swapBytes","DEFAULT_MARGINS","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","PDFPage","margins","ProcSet","xobjects","XObject","ext_gstates","ExtGState","annotations","Annots","Parent","_root","Pages","MediaBox","Contents","Resources","number$2","PDFGradient$1","PDFGradient","stops","embedded","_normalizeColor","_colorSpace","m11","m12","m21","m22","embed","stopsLength","FunctionType","Domain","N","Functions","Bounds","Encode","_gradCount","PatternType","Shading","Matrix","grad","opacityGradient","pageBBox","page","form","Subtype","FormType","S","CS","Sh1","gstate","SMask","opacityPattern","PaintType","TilingType","XStep","YStep","Gs1","_this$doc$_ctm","_ctm","_this$transform","addContent","PDFLinearGradient","_PDFGradient","ShadingType","ColorSpace","Coords","Extend","PDFRadialGradient","_PDFGradient2","initColor","_opacityRegistry","_opacityCount","hex","namedColors","result1","_Array$from2","_setColor","_setColorSpace","fillOpacity","_fillColor","strokeColor","strokeOpacity","_opacity","_doOpacity","_Array$from3","ca","CA","linearGradient","radialGradient","argsCountPerCommand","Z","z","L","V","Q","A","isCommand","isWsp","codePointAt","readNumber","runners","solveArc","bez","ox","oy","sin_th","cos_th","a00","a01","a10","a11","sfactor_sq","sfactor","xc","yc","th0","th_arc","th1","th_half","SVGPath","_commands$i","_apply","argsCount","canHaveComma","hadComma","newCursor","_readNumber","_readNumber2","_readNumber3","parsePathData","number$1","Vector","initVector","_ctmStack","_CAP_STYLES","BUTT","ROUND","SQUARE","_JOIN_STYLES","MITER","BEVEL","dash","undash","cpx","cpy","roundedRect","xe","ye","xm","ym","anticlockwise","TWO_PI","HALF_PI","deltaAng","numSegs","segAng","handleLen","curAng","deltaCx","deltaCy","ax","ay","segIdx","asc","polygon","_windingRule","fillAndStroke","isFillRule","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","kernPairs","charWidths","inclusive","ascending","FontBBox","Ascender","Descender","XHeight","CapHeight","fromJson","section","encodeText","char","charCode","characterToGlyph","widthOfGlyph","getKernPair","advancesForGlyphs","STANDARD_FONTS","Courier","Comment","Weight","ItalicAngle","IsFixedPitch","CharacterSet","UnderlinePosition","UnderlineThickness","Version","Notice","EncodingScheme","StdHW","StdVW","exclam","quotedbl","numbersign","dollar","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","B","D","E","I","J","K","U","X","Y","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","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","Idieresis","eacute","abreve","uhungarumlaut","ecaron","Ydieresis","Yacute","Acircumflex","aacute","Ucircumflex","yacute","scommaaccent","ecircumflex","Uring","Udieresis","aogonek","Uacute","uogonek","Edieresis","Dcroat","commaaccent","copyright","Emacron","ccaron","aring","Ncommaaccent","lacute","agrave","Tcommaaccent","Cacute","atilde","Edotaccent","scaron","scedilla","iacute","lozenge","Rcaron","Gcommaaccent","ucircumflex","acircumflex","Amacron","rcaron","ccedilla","Zdotaccent","Thorn","Omacron","Racute","Sacute","dcaron","Umacron","uring","threesuperior","Ograve","Agrave","Abreve","uacute","Tcaron","partialdiff","ydieresis","Nacute","icircumflex","Ecircumflex","adieresis","edieresis","cacute","nacute","umacron","Ncaron","Iacute","plusminus","brokenbar","registered","Gbreve","Idotaccent","summation","Egrave","racute","omacron","Zacute","Zcaron","greaterequal","Eth","Ccedilla","lcommaaccent","tcaron","eogonek","Uogonek","Aacute","Adieresis","egrave","zacute","iogonek","Oacute","oacute","amacron","sacute","idieresis","Ocircumflex","Ugrave","Delta","thorn","twosuperior","Odieresis","mu","igrave","ohungarumlaut","Eogonek","dcroat","threequarters","Scedilla","lcaron","Kcommaaccent","Lacute","trademark","edotaccent","Igrave","Imacron","Lcaron","onehalf","lessequal","ocircumflex","ntilde","Uhungarumlaut","Eacute","emacron","gbreve","onequarter","Scaron","Scommaaccent","Ohungarumlaut","degree","ograve","Ccaron","ugrave","radical","Dcaron","rcommaaccent","Ntilde","otilde","Rcommaaccent","Lcommaaccent","Atilde","Aogonek","Aring","Otilde","zdotaccent","Ecaron","Iogonek","kcommaaccent","minus","Icircumflex","ncaron","tcommaaccent","logicalnot","odieresis","udieresis","notequal","gcommaaccent","eth","zcaron","ncommaaccent","onesuperior","imacron","Euro","Helvetica","PDFFont","StandardFont","isStandardFont","EmbeddedFont","widthOfString","includeGap","_PDFFont","BaseFont","encoded","encodeGlyphs","createStandardFont","subset","layoutCache","layoutRun","layoutCached","cached","onlyWidth","needle","_this$layout","isCFF","fontFile","familyClass","italic","Flags","Ascent","Descent","StemV","FontFile3","FontFile2","descendantFont","CIDSystemInfo","Registry","Ordering","Supplement","FontDescriptor","DescendantFonts","ToUnicode","toUnicodeCmap","createEmbeddedFont","Fonts","initFonts","_fontFamilies","_fontCount","_fontSize","_registeredFonts","_this$_registeredFont","currentLineHeight","registerFont","initText","_lineGap","lineCallback","wordSpacing","structParent","structType","markStructureContent","_text2","characterSpacing","_textOptions","lineBreak","columns","columnGap","_fragment","_this$_font$encode","hadOffset","addSegment","MARKERS","JPEG","label","channels","colorSpace","BitsPerComponent","Width","Height","PNGImage","PNG","dataDecoded","hasAlphaChannel","isInterlaced","interlaceMethod","Predictor","Colors","Columns","palette","transparency","grayscale","rgb","indexed","loadIndexedAlphaChannel","splitAlphaChannel","decodeData","alphaChannel","sMask","Decode","decodePixels","colorCount","pixelCount","skipByteCount","colorIndex","PDFImage","Images","initImages","_imageRegistry","_imageCount","bh","bp","bw","ip","left1","openImage","wp","hp","fit","cover","valign","link","goTo","addNamedDestination","Annotations","annotate","_convertRect","Border","Dest","note","Name","pages","Kids","URI","_markup","_this$_convertRect","QuadPoints","highlight","strike","lineAnnotation","rectAnnotation","ellipseAnnotation","textAnnotation","DA","fileAnnotation","file","filespec","hidden","FS","Desc","_this$_ctm","FIELD_FLAGS","readOnly","required","noExport","toggleToOffButton","radioButton","pushButton","combo","edit","multiSelect","noSpell","FIELD_JUSTIFY","VALUE_MAP","FORMAT_SPECIAL","zipPlus4","zip4","phone","ssn","FORMAT_DEFAULT","nDec","sepComma","negStyle","currencyPrepend","AcroFormMixin","initForm","_acroform","defaultFont","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","AA","JS","MK","BG","BC","Ff","select","appendChoices","Opt","Attachments","refBody","Params","creationDate","CreationDate","modifiedDate","ModDate","checksum","CheckSum","Size","_fileRegistry","fileSpecBody","EF","UF","addNamedEmbeddedFile","PDFDocument","_stream$Readable","_pageBuffer","_pageBufferStart","_offsets","_waiting","_ended","Count","Names","Dests","Lang","Producer","Creator","ViewerPreferences","DisplayDocTitle","addPage","bufferPages","flushPages","EmbeddedFiles","limits","addNamedJavaScript","js","JavaScript","_read","_finalize","xRefOffset","Root","Info","methods","readUInt32","colorType","compressionMethod","filterMethod","pixelBitlength","pixelBytes","singlePass","scanlineLength","col","upper","paeth","upperLeft","pa","pb","pc","pixelsPos","bufferPos","decodePalette","copyToImageData","_decodedPalette","warningOnce","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","handlers","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","getChildContext","componentWillReceiveProps","nextProps","oldValue","PropTypes","isRequired","Consumer","_Component2","getValue","onUpdate","observedBits","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","modifier","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","pretty","token","attachKeys","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","isArguments","isRegex","deepEqual","expected","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","ka","kb","objEquiv","dfa","startRun","lastAccepting","consoleLogger","baseLogger","Logger","concreteLogger","logger","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","observers","cloned","observer","_cloned","defer","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","isIE10","userAgentData","chars","ownKeys$1","_objectSpread$1","deepFind","keySeparator","mix","joinedPath","ResourceStore","_EventEmitter","defaultNS","ignoreJSONStructure","lng","silent","addNamespaces","addResource","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","services","interpolation","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","ki","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","interpolate","na","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","hasLoadedNamespace","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","few","many","createRules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","clonedOptions","handleHasOptions","inheritedOptions","optionsString","doReduce","ownKeys$4","_objectSpread$4","Formatter","NumberFormat","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","_opt$split","_opt$split2","_toArray","parseFormatStr","valOptions","formatParams","locale","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","waitingReads","maxParallelReads","readingCalls","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","errors","addResourceBundle","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","wait","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","initializedStoreOnce","changeLanguage","usedCallback","resolvedLanguage","setResolvedLanguage","li","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","keyPrefix","fixedT","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","Authorization","btoa","fullPath","baseURL","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","cancelToken","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","uri","authority","ipv6uri","pathNames","regx","queryKey","Manager","eio","socket_1","on_1","Backoff","typed_events_1","nsps","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","jitter","_readyState","_parser","_autoConnect","autoConnect","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","_reconnecting","attempts","reconnect","skipReconnect","openSubDestroy","onopen","errorSub","emitReserved","maybeReconnectOnOpen","autoUnref","unref","onping","ondecoded","Socket","subDestroy","onreconnect","attempt","StrictEventEmitter","XHR","JSONP","websocket","polling","xd","jsonp","isSSL","port","hostname","secure","xdomain","xscheme","forceJSONP","hasCORS","enablesXDR","XDomainRequest","parseqs","yeast","Polling","poll","doPoll","onOpen","timestampRequests","timestampParam","supportsBinary","b64","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","alphabet","decoded","socket_io_parser_1","RESERVED_EVENTS","connect","connect_error","disconnect","disconnecting","io","receiveBuffer","sendBuffer","ids","acks","connected","disconnected","onpacket","subEvents","ev","isTransportWritable","transport","discardPacket","volatile","_packet","onconnect","onevent","onack","ondisconnect","ack","emitEvent","_anyListeners","sent","emitBuffered","withNativeArrayBuffer","withNativeBlob","withNativeFile","File","getBoundPosition","cloneBounds","findDOMNode","boundNode","ownerWindow","nodeStyle","boundNodeStyle","_domFns","snapToGrid","pendingX","pendingY","canDragX","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","isStart","createDraggableData","coreData","ReadableState","EElistenerCount","debugUtil","BufferList","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","emitReadable_","maybeReadMore_","nReadingNextTick","resume_","fromList","hasStrings","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onfinish","cleanedUp","pipeOnDrain","increasedAwaitDrain","dests","paused","_fromList","emitErrorNT","readableDestroyed","writableDestroyed","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","err2","__self__","fetch","DOMException","support","viewClasses","normalizeName","iteratorFor","Headers","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","readBlobAsText","readArrayBufferAsText","formData","Request","credentials","signal","upcased","normalizeMethod","referrer","rawHeaders","Response","bodyInit","redirectStatuses","redirect","aborted","abortXhr","polyfill","ponyfill","ArrayT","lengthType","_setup","_parseFields","isArgs","origKeys","keysShim","originalKeys","shim","callBind","$indexOf","allowMissing","intrinsic","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","eval","EvalError","Float64Array","FinalizationRegistry","Int8Array","SharedArrayBuffer","WeakRef","WeakSet","doEval","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","numberIsNaN","$Object","dotAll","LIBRARY","$export","redefine","$iterCreate","setToStringTag","ITERATOR","BUGGY","KEYS","VALUES","returnThis","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","virtual","bitmap","SHARED","def","stat","cof","ARG","tryGet","drawEllipse","getProp","advanceWidthScale","encodedGlyphs","encodedPositions","drawPolyline","_parsePoints","lengthIsOdd","_node$props","applySingleTransformation","_colorString","colorNames","swizzle","reverseNames","cs","hexDouble","model","hwb","hexAlpha","i2","rgba","hsla","hwba","keyword","objectAssign","pSlice","functionsHaveNames","pToString","arrbuf","truncate","something","rawname","fail","operator","stackStartFunction","AssertionError","_deepEqual","memos","actualIndex","actualVisitedObjects","aIsArgs","bIsArgs","expectedException","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","getMessage","captureStackTrace","fn_name","next_line","notEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","adler","crcTable","makeTable","crc","isPrime","sqrtN","getFractionalBits","nPrime","SHA256","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","HmacSHA256","X64Word","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","al","cl","dh","dl","eh","fh","gh","hh","hl","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1h","t2l","HmacSHA512","processTransform","transformColor","_expand","_flatten","_mediaQueries","_colors","_transform2","matchBoxModelValue","_ref4","_ref3","isNotArray","castArray","compact","_hslToHex","isRgb","isRgba","isHsl","isHsla","parseRgb","parseHsl","operations","_value$map","_value$map$","_unitsRegexp$exec","normalizeTransformOperation","transformString","transforms","_transform$split","rawValue","splitChar","_wrapWords","_typesetter","_generateGlyphs","_resolveYOffset","_preprocessRuns","_splitParagraphs","_finalizeFragments","_resolveAttachments","_applyDefaultStyles","engines","attributedString","processParagraphs","fragments","getRuns","fragment","_fromCodePoint","glyphLength","appendGlyph","testChar","findCharIndex","findLastCharIndex","_isBetween","_bestFit","_linebreak","getStyles","availableWidths","nodes","syllables","hyphenPenalty","hyphenationPenalty","stretch","shrink","glue","hyphenated","_value","penalty","infinity","getNodes","breaks","breakPoint","prevNode","breakLines","_insert","idxGt","runIndex","conds","incRange","counter","_getFactors","_getDistances","factors","distances","justifyLine","_unicodeProperties","ignoredScripts","lastScript","_hyphen","_enUs","hyphenator","splitHyphen","getParts","_ascent2","_advanceWidth2","lineFragment","overflowRight","decorationLines","thickness","underlineColor","underlineStyle","strikeColor","strikeStyle","_capitalize","_standardFont","IGNORED_CODE_POINTS","getFontSize","getOrCreateFont","getFallbackFont","shouldFallbackToFont","lastFont","lastFontSize","embedEmojis","fetchEmojis","_extends2","_emojiRegex","emojis","_removeNoColor","buildEmojiUrl","emoji","promises","emojiUrl","fetchEmojiImage","makeFetchEmojiImage","emojiSize","attachment","IMAGE_CACHE","createCache","fetchRemoteFile","getImage","resolveBufferImage","guessFormat","getImageFormat","isPng","isJpg","resolveImageFromUrl","isCompatibleBase64","lower","isValidFormat","resolveBase64Image","resolveImageFromData","isSvg","isNote","isImage","isCanvas","_layoutText","isText","isNotSvg","isNotText","resolveTextLayout","shouldLayoutText","shouldIterate","_layout","_linebreaker","_justification","_textDecoration","_scriptItemizer","_wordHyphenation","_fontSubstitution","_getAttributedString","linebreaker","justification","scriptItemizer","wordHyphenation","fontSubstitution","getMaxLines","getTextOverflow","maxLines","truncateMode","getContainer","shrinkWhitespaceFactor","hyphenationCallback","getHyphenationCallback","getLayoutOptions","getInheritStyles","mergeStyles","inheritedStyles","_style","mergedStyles","styleName","inheritedValue","mergeValues","resolveInheritance","inheritStyles","resolveChild","resolvePageDimensions","_getMargin","_getPadding","_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","isPage","isTextInstance","setYogaValues","setNodeHeight","setMinWidth","setMaxWidth","setMinHeight","setMaxHeight","setMarginTop","setMarginRight","setMarginBottom","setMarginLeft","setPaddingTop","setPaddingRight","setPaddingBottom","setPaddingLeft","setPositionTop","setPositionRight","setPositionBottom","setPositionLeft","setBorderTop","setBorderRight","setBorderBottom","setBorderLeft","alignSelf","alignContent","alignItems","justifyContent","overflow","flexGrow","isNotNote","isNotTextInstance","isLayoutElement","createYogaNodes","Node","createWithConfig","setMeasureFunc","insertChild","getChildCount","calculateLayout","persistDimensions","destroyYogaNodes","freeYogaNodes","freeRecursive","url_1","manager_1","managers","sameNamespace","forceNew","multiplex","manager_2","iterableToArrayLimit","parseExtension","mimeType","WOFF","mimes","dataAsUrl","isDataUrl","canvasToBlob","binaryString","atob","binaryArray","resolveUrl","baseUrl","getAndEncode","TIMEOUT","domtoimage","cacheBust","placeholder","imagePlaceholder","onloadend","readAsDataURL","fourRandomChars","ms","asArray","escapeXhtml","makeImage","leftBorder","rightBorder","scrollWidth","topBorder","bottomBorder","scrollHeight","styleProperty","getPropertyValue","newUtil","inliner","URL_REGEX","inlineAll","nothingToInline","readUrls","urls","inline","shouldProcess","dataUrl","urlAsRegex","newInliner","fontFaces","resolveAll","readAll","webFonts","webFont","cssStrings","styleSheets","sheet","CSSRule","FONT_FACE_RULE","newWebFont","webFontRule","parentStyleSheet","newFontFaces","images","inlineBackground","HTMLImageElement","newImage","inlined","setProperty","getPropertyPriority","newImages","toSvg","toPng","toJpeg","toPixelData","copyOptions","embedFonts","inlineImages","bgcolor","XMLSerializer","serializeToString","xhtml","foreignObject","svg","makeSvgDataUri","domNode","cloneChildrenInOrder","childClone","cloneChildren","cloneStyle","clonePseudoElements","copyUserInput","fixSvg","copyStyle","copyProperties","clonePseudoElement","styleElement","formatPseudoElementStyle","formatCssText","formatCssProperties","createTextNode","HTMLTextAreaElement","HTMLInputElement","SVGElement","SVGRectElement","processClone","styleNode","_require","DraggableCore","Queue","session","running","jobs","timers","clearTimers","timeoutId","callOnErrorOrEnd","methodResult","job","didTimeout","resultIndex","catch","WritableStream","webkitURL","mozURL","_chunks","_blob","toBlobURL","FONT_WEIGHTS","thin","hairline","ultralight","extralight","light","normal","medium","semibold","demibold","bold","ultrabold","extrabold","heavy","fetchFont","hasDataPrefix","hasBase64Prefix","sortByFontWeight","FontSource","register","numericFontWeight","resolveFontWeight","styleSources","exactFit","emojiSource","standard","_renderNode","_addMetadata","renderDocument","sliceIterator","TAU","mapToEllipse","cosphi","sinphi","centerx","centery","approxUnitArc","ang1","ang2","vectorAngle","acos","_ref2$xAxisRotation","xAxisRotation","_ref2$largeArcFlag","largeArcFlag","_ref2$sweepFlag","sweepFlag","curves","pxp","pyp","lambda","_getArcCenter","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","getArcCenter","_getArcCenter2","curve","_mapToEllipse","_mapToEllipse2","_mapToEllipse3","_asyncCompose","_resolveSvg","_resolveZIndex","_resolveAssets","_resolveStyles","_resolveOrigins","_resolvePageSizes","_resolvePagination","_resolveDimensions","_resolveTextLayout","_resolveInheritance","_resolvePagePaddings","_resolvePercentRadius","_resolvePercentHeight","_resolveLinkSubstitution","_objectWithoutProperties","sourceSymbolKeys","fillRef","composeRef","refs","useControlledState","defaultStateValue","postState","_React$useState","_React$useState2","innerValue","setInnerValue","mergedValue","firstRenderRef","each","fieldContentRegExp","serializeCookie","maxAge","domain","expires","httpOnly","sameSite","cookie","cookieOptions","setTime","nameEQ","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","testKey","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","DefaultContext","IconContext","Tree2Element","tree","GenIcon","IconBase","conf","svgProps","computedSize","xmlns","AiOutlineCamera","Fragment","StrictMode","Profiler","Suspense","for","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","isReactComponent","isPureReactComponent","__self","__source","$$typeof","_owner","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","only","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","isValidElement","_payload","_init","useCallback","useDebugValue","useImperativeHandle","useLayoutEffect","useMemo","useReducer","ba","ea","fa","ha","ia","ja","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","qa","ma","la","xlinkHref","ra","sa","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","Ra","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","$a","ab","eb","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","lb","ob","namespaceURI","MSApp","execUnsafeLocalFunction","lastChild","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","rb","sb","menuitem","area","hr","keygen","meta","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","ec","gc","hc","ic","jc","kc","lc","mc","nc","oc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","delete","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","dd","unstable_UserBlockingPriority","ed","gd","hd","uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","persist","isPersistent","wd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","getModifierState","zd","buttons","relatedTarget","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","112","113","114","115","116","117","118","119","120","121","122","123","224","Od","Alt","Meta","Shift","Pd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","Vd","Xd","Zd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","be","documentMode","ce","de","ee","fe","ge","he","ie","le","email","month","tel","week","me","ne","pe","qe","se","te","ue","ve","we","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","anchorNode","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","ke","jf","kf","lf","mf","autoFocus","nf","__html","pf","qf","rf","sf","previousSibling","tf","vf","wf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","Wg","Xg","Yg","Zg","$g","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","uh","_workInProgressVersionPrimary","vh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","gi","ii","ji","mi","baseLanes","ni","oi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","Hi","Ii","Ji","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","Vi","Xi","__reactInternalSnapshotBeforeUpdate","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","dk","focusedElem","selectionRange","ek","createRange","setStart","addRange","setEnd","onCommitFiberRoot","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","jsx","jsxs","Axios","mergeConfig","defaultConfig","axios","instanceConfig","CancelToken","isCancel","isAxiosError","InterceptorManager","dispatchRequest","interceptors","interceptor","fulfilled","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","normalizedName","lineNumber","columnNumber","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","requestURL","executor","resolvePromise","parseuri","ipv6","createDebug","prevTime","enableOverride","enabled","coerce","logFn","selectColor","newDebug","toNamespace","disable","skips","arrayWithoutHoles","nonIterableSpread","plural","msAbs","isPlural","long","fmtLong","fmtShort","assertThisInitialized","transports","writeBuffer","prevBufferLen","agent","upgrade","rememberUpgrade","rejectUnauthorized","perMessageDeflate","transportOptions","upgrades","pingInterval","pingTimeout","pingTimeoutTimer","offlineEventListener","EIO","priorWebsocketSuccess","createTransport","setTransport","onDrain","failed","onTransportOpen","onlyBinaryUpgrades","upgradeLosesBinary","upgrading","freezeTransport","onTransportClose","onupgrade","onHandshake","resetPingTimeout","sendPacket","filterUpgrades","cleanupAndClose","waitForUpgrade","pingIntervalTimer","filteredUpgrades","hasXHR2","forceBase64","onData","pollXhr","extraHeaders","setDisableHeaderCheck","requestTimeout","hasXDR","onLoad","requestsCount","requests","onSuccess","fromError","unloadHandler","encodeBlobAsBase64","fileReader","base64decoder","decodeBase64Packet","mapBinary","arraybuffer","encoded1","encoded2","encoded3","encoded4","bufferLength","rNewline","rEscapedNewline","JSONPPolling","___eio","iframe","iframeId","initIframe","html","submit","WebSocket","usingBrowserWebSocket","defaultBinaryType","isReactNative","WS","check","protocols","addEventListeners","_socket","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","extraBytes","maxChunkLength","encodeChunk","isLE","mLen","eLen","eMax","eBias","nBits","rt","MozWebSocket","normalCompletion","didErr","_e2","_deconstructPacket","_placeholder","_reconstructPacket","packetData","deviation","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","propFullName","secret","getShim","ReactPropTypes","symbol","arrayOf","objectOf","oneOf","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","_DraggableCore","_propTypes","_reactDom","_classnames","_positionFns","_log","_iterableToArrayLimit","dragging","dragged","uiData","slackX","slackY","_getBoundPosition2","newStateX","newStateY","_this$props$position","prevPropsPosition","isElementSVG","_classNames","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","getPrefix","browserPrefixToStyle","prefixes","shouldCapitalize","kebabToTitleCase","eventsFor","dragEventFor","thisNode","coreEvent","handleDrag","handleDragStop","_snapToGrid2","MouseEvent","createEvent","initMouseEvent","handleDragStart","onTouchEnd","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","scope","Timeout","clearFn","_clearFn","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","installReadyStateChangeImplementation","task","BlobBuilder","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","blobSupportsArrayBufferView","blobBuilderSupported","getBlob","mapArrayBufferViews","ary","BlobBuilderConstructor","BlobConstructor","protocolAndDomainRE","everythingAfterProtocol","localhostDomainRE","nonLocalhostDomainRE","bufferSize","bufferOffset","ensure","writeString","writeUInt24BE","writeUInt24LE","writeInt24BE","writeInt24LE","PrependBOMWrapper","StripBOMWrapper","InternalCodec","InternalEncoderBase64","InternalEncoderCesu8","InternalDecoderCesu8","utf8","cesu8","unicode11utf8","ucs2","utf16le","_internal","InternalEncoder","InternalDecoder","prevStr","contBytes","accBytes","completeQuads","bufIdx","Utf16BECodec","Utf16BEEncoder","Utf16BEDecoder","overflowByte","Utf16Codec","Utf16Encoder","Utf16Decoder","initialBytes","initialBytesLen","detectEncoding","asciiCharsLE","asciiCharsBE","utf16be","buf2","utf16","Utf7Codec","utf7","unicode11utf7","Utf7Encoder","Utf7Decoder","nonDirectChars","inBase64","base64Accum","base64Regex","plusChar","minusChar","andChar","Utf7IMAPCodec","Utf7IMAPEncoder","base64AccumIdx","Utf7IMAPDecoder","lastI","b64str","canBeDecoded","utf7imap","uChar","base64IMAPChars","SBCSCodec","asciiString","decodeBuf","encodeBuf","SBCSEncoder","SBCSDecoder","_sbcs","idx1","idx2","_dbcs","DBCSCodec","UNASSIGNED","SEQ_START","NODE_START","UNASSIGNED_NODE","mappingTable","decodeTables","decodeTableSeq","_addDecodeChunk","encodeTable","encodeTableSeq","skipEncodeChars","encodeSkipVals","_fillEncodeTable","encodeAdd","_setEncodeChar","defCharSB","gb18030","thirdByteNodeIdx","thirdByteNode","fourthByteNodeIdx","fourthByteNode","secondByteNodeIdx","secondByteNode","DBCSEncoder","seqObj","DBCSDecoder","nodeIdx","prevBuf","findIdx","_getDecodeTrieNode","addr","curAddr","writeTable","codeTrail","seq","_getEncodeBucket","uCode","dbcsCode","bucket","_setEncodeSequence","oldVal","mbCode","nextChar","resCode","uChars","gbChars","prevBufOffset","seqStart","curSeq","uCodeLead","LazyArrayT","_results","BooleanT","BufferT","StringT","versionGetter","versionSetter","_base","_base1","_base2","_base3","nullValue","relativeToGetter","decodeValue","relative","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","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","symObj","syms","ERROR_MESSAGE","funcType","binder","boundLength","boundArgs","getPolyfill","$exec","isRegexMarker","badStringifier","throwRegexMarker","gOPD","flagsBound","TypeErr","getDay","tryDateObject","_isIterable3","_getIterator3","addToUnscopables","toIObject","Arguments","aFunction","dPs","enumBugKeys","IE_PROTO","createDict","iframeDocument","Properties","getKeys","$keys","toLength","toAbsoluteIndex","IS_INCLUDES","$this","toInteger","ObjectProto","TO_STRING","classof","isIterable","getIterator","iterFn","getIteratorMethod","_defineProperty2","hadRuntime","oldRuntime","inModule","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","makeInvokeMethod","_renderSvg","_renderPage","_renderNote","_renderImage","_renderDebug","_renderCanvas","_renderBorders","_isSvg","_isLink","_isPage","_isNote","_isText","_isImage","_isCanvas","_save","_setLink","_restore","_clipNode","_setDestination","shouldRenderChildren","isOverflowHidden","renderChildren","renderChild","renderNode","_renderPath","_renderRect","_renderLine","_renderGroup","_renderCircle","_renderSvgText","_renderEllipse","_renderPolygon","_renderPolyline","_renderSvgImage","_isPath","_isRect","_isLine","_isTspan","_isGroup","_isCircle","_isEllipse","_isPolygon","_isPolyline","_isTextInstance","_getBoundingBox","warnUnsupportedNode","hasLinearGradientFill","hasRadialGradientFill","setLinearGradientFill","gx1","gy1","gx2","gy2","stopColor","setRadialGradientFill","gr","gcx","gcy","gfx","gfy","setFillColor","drawNode","setFillOpacity","setStrokeOpacity","setFill","setStrokeColor","setStrokeWidth","setLineJoin","setLineCap","drawChildren","defaultsZero","_node$props$preserveA","_preserveAspectRatio$","_preserveAspectRatio$2","logicalWidth","logicalHeight","logicalRatio","physicalRatio","resolveAspectRatio","_node$box2","moveToOrigin","krx","kry","_renderGlyphs","renderSpan","dominantBaseline","xTranslate","yTranslate","runAdvanceWidth","_run$attributes","renderRun","span","_absSvgPath","_parseSvgPath","_normalizeSvgPath","getPolylineBoundingBox","xValues","yValues","parseValues","bezierX","bezierY","quadX","quadY","arcToCurve","quadratic","_parseColor","DEST_REGEXP","renderAttachment","_attachment$xOffset","_attachment$yOffset","outlineRuns","objectReplacement","attachmentAdvance","renderAttachments","renderBackground","renderDecorationLine","stepCount","renderBlock","lineAscent","outlineLines","isLastRun","backgroundRect","decorationLine","renderLine","blocks","initialY","alignOffset","isArrayish","_node$children","_resolveObjectFit2","_node$style2","_node$style3","_node$style4","objectFit","objectPositionX","objectPositionY","_resolveObjectFit","isNumeric","applyContainObjectFit","cw","iw","cr","ir","pxv","pyv","_width","_yOffset","applyNoneObjectFit","_width2","_height2","_xOffset2","applyCoverObjectFit","containDimension","noneDimension","applyScaleDownObjectFit","applyFillObjectFit","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$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","_extends3","availableMethods","availableWidth","availableHeight","paint","painter","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","topLeftYCoord","c5","trSlope","_trSlope","clipBorderTop","fillBorderTop","topBottomXCoord","innerBottomRightRadiusX","innerBottomRightRadiusY","topRightXCoord","brSlope","clipBorderRight","fillBorderRight","bottomLeftYCoord","innerBottomLeftRadiusX","innerBottomLeftRadiusY","bottomRightYCoord","clipBorderBottom","fillBorderBottom","topLeftCoordX","bottomLeftXCoord","_trSlope2","clipBorderLeft","fillBorderLeft","nodeOpacity","drawBackground","isSrcId","isId","setProp","setPDFMetadata","author","subject","keywords","creator","producer","Zstream","zlib_deflate","zlib_inflate","init_done","write_in_progress","pending_close","gzip_id_bytes_read","deflateEnd","strm","inflateEnd","in_off","in_len","out_off","out_len","avail_in","next_in","avail_out","next_out","_checkError","_afterSync","_after","next_expected_header_byte","inflateSetDictionary","_setDictionary","deflateInit2","Z_DEFLATED","inflateInit2","deflateSetDictionary","deflateReset","inflateReset","total_in","total_out","data_type","configuration_table","trees","adler32","crc32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","rank","flush_pending","pending_buf","pending_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","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","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","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","_tr_init","max_block_size","max_start","deflateInit","deflateSetHeader","old_flush","beg","hcrc","extra","comment","os","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","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","lx","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","inflate_fast","inflate_table","TYPE","BAD","zswap32","InflateState","havedict","dmax","wbits","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","ncode","nlen","ndist","work","lendyn","distdyn","sane","back","was","inflateResetKeep","inflateReset2","lenfix","distfix","virgin","fixedtables","updatewindow","inflateInit","put","_in","_out","from_source","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","inf_leave","xflags","extra_len","inflateGetHeader","inflateInfo","s_window","lcode","dcode","lmask","dmask","dolen","dodist","MAXBITS","lbase","lext","dbase","dext","lens_index","table_index","incr","huff","base_index","extra_index","Z_TREES","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_BINARY","Z_TEXT","Z_UNKNOWN","superInit","typedArray","typedArrayByteLength","swapEndian","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","Utf16LE","Base64url","urlSafe","_safe_map","SHA224","HmacSHA224","SHA384","HmacSHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","_state","nBlockSizeLanes","M2i","M2i1","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","dr","zl","zr","sl","sr","f4","f5","rotl","HmacRIPEMD160","PBKDF2","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","CFB","generateKeystreamAndEncrypt","keystream","CTR","_counter","CTRGladman","incWord","b3","incCounter","OFB","_keystream","ECB","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","SBOX","INV_SBOX","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","x4","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","nRounds","s0","s3","t0","t3","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","TripleDES","key1","key2","key3","_des1","_des2","_des3","RC4","keySigBytes","_S","keyByteIndex","keyByte","generateKeystreamWord","keystreamWord","RC4Drop","C_","Rabbit","_X","_C","IV","IV_0","IV_1","i0","i1","i3","gx","ga","RabbitLegacy","_regenerator","_asyncToGenerator2","_callee","reversedFns","_args","_x","_stylesheet","_replaceDefs","_getContainer","_parseViewbox","_inheritProps","_parseAspectRatio","STYLE_PROPS","VERTICAL_PROPS","HORIZONTAL_PROPS","transformPercent","parsePercent","removeNoneValues","pickStyleProps","parseSvgProps","addMissingTspan","resolveSvgNode","parseProps","resolveChildren","parseText","resolveSvgRoot","resolveSvg","_flex","_margins","_borders","_paddings","_objectPosition","_transformOrigin","shorthands","border","borderTop","borderRight","borderBottom","borderLeft","borderRadius","borderStyle","borderWidth","objectPosition","transformOrigin","expandStyle","propsArray","resolvedStyle","extended","flexDefaults","matchBorderShorthand","Y_AXIS_SHORTHANDS","sortTransformOriginPair","transformOriginX","transformOriginY","_units","_fontWeight","_castFloat","transformStyle","transformed","parseValue","hue","cycle","chroma","huePrime","secondComponent","lightnessAdjustment","_offsetKeyword","_mediaEngine","_matchMedia","Parser","queries","Query","Operator","NUMBERS","LETTERS","WHITESPACE","COLON","COMMA","AND","AT","walk","tokenizer","MaxHeight","MinHeight","MaxWidth","MinWidth","Orientation","orientation","And","Or","_attributedString","_transformText","getFragments","_instance$props","_instance$props$fill","_instance$props$fontF","_instance$props$fontS","textDecorationColor","textDecorationStyle","textTransform","getAttributedString","AlmostInfinity","layoutTspan","layoutOptions","defaultHyphenationEngine","hyphenateWord","_crop","_truncate","_layoutParagraph","_sliceAtHeight","attributedStrings","paragraphs","layoutBlock","truncateEllipsis","linesCount","paragraphRect","nextParagraph","slicedBlock","linesHeight","shouldTruncate","ELLIPSIS_STRING","getEllipsisCodePoint","indices","_omit","purgeAttachments","indent","currentY","lineIndent","layoutLines","newBlock","_resolve","getCharacterSpacing","runString","multScale","scalePosition","subCharacterSpacing","scalePositions","getYOffset","getUnitsPerEm","resolveRunYOffset","omitFont","_sort","_isEmpty","generatePoints","flattenEmptyRuns","flattenRegularRuns","_points$i","ALIGNMENT_FACTORS","removeNewLine","getOverflowLeft","getOverflowRight","adjustOverflow","overflowLeft","finalizeBlock","isLastFragment","alignLastLine","alignFactor","remainingWidth","shouldJustify","blockFinalizer","_isWhiteSpace","leadingPositions","trailingPositions","mapIndexed","getGlyphs","getAttachment","isReplaceGlyph","resolveRunAttachments","attachmentWidth","applyRunStyles","bidiLevel","hangingPunctuation","hyphenationFactor","justificationFactor","lineSpacing","paragraphSpacing","shrinkFactor","getNextBreakpoint","subnodes","minimumBadness","lineLength","calculateRatio","badness","breakpoints","breakpoint","_linkedList","linebreak","demerits","flagged","fitness","activeNodes","lineLengths","fitnessClass","totals","computeCost","currentLine","computeSum","breakPointIndex","mainLoop","tmpSum","candidate","newNode","candidates","currentClass","LinkedList","listSize","isLinked","listLength","insertAfter","leadingRun","trailingRun","reverseMerge","reverseConcat","runA","runB","runStart","_add","prependGlyph","EXPAND_WHITESPACE_FACTOR","unconstrained","EXPAND_CHAR_FACTOR","SHRINK_WHITESPACE_FACTOR","SHRINK_CHAR_FACTOR","charFactor","expandCharFactor","shrinkCharFactor","getCharFactor","whitespaceFactor","expandWhitespaceFactor","getWhitespaceFactor","getFactor","concatFactors","priorities","_priority","highestPriority","highestPrioritySum","remainingGap","prioritySum","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","preprocessPattern","minWordLength","skipHTML","localDebug","localHyphenChar","localMinWordLength","createTextChunkReader","readNextTextChunk","nextTextChunk","shouldHyphenate","chunkReader","nextCharIndex","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","leveledText","debugHyphenatedText","patternChar","patternCharIndex","states","charIsDot","charIsNumber","prevCharIsNumber","isAsync","allTime","resolveNewText","processedN","hyphenatedN","workTime","textChunk","loopStart","_createClass2","_pdfkit","_this$encode","stringIndices","_getDefs","isDefs","isNotDefs","detachDefs","replaceDef","defs","parseNodeDefs","getChildren","getId","viewbox","SVG_INHERITED_PROPS","inheritProps","getInheritProps","_primitives","getZIndex","shouldNotSort","sortZIndex","resolveZIndex","_emoji","_fetchImage","fetchAssets","listToExplore","getEmojiSource","_n$style","childNode","_x2","_getSource","_resolveSource","_node$props2","_node$props3","isLink","LINK_STYLES","resolveNodeStyles","_getOrigin","resolveNodeOrigin","getTransformStyle","percentX","percentY","resolvePageSize","_getSize","_isLandscape","PAGE_SIZES","ID1","toSizeObject","getNumberSize","throwInvalidError","_page$props","_getOrientation","VALID_ORIENTATIONS","_isFixed","_splitNode2","_getWrap","_getWrapArea","_getContentArea","_createInstance","_shouldBreak","assingChildren","getTop","isElementOutside","allFixed","isDynamic","relayoutPage","splitNodes","contentArea","currentChildren","nextChildren","futureNodes","futureFixedNodes","nodeTop","nodeHeight","isOutside","shouldBreak","shouldSplit","canWrap","fitsInsidePage","break","_split","currentChild","nextChild","_splitNode","currentNode","nextNode","_splitChildren","splitChildren","currentChilds","shouldResolveDynamicNodes","resolveDynamicNodes","isNodeDynamic","resolveDynamicPage","resolvedPage","splitPage","pageNumber","wrapArea","dynamicPage","_splitNodes","nextChilds","relayout","currentPage","assocSubPageData","subpages","subPageNumber","subPageTotalPages","dissocSubPageData","paginate","splittedPage","nextPage","totalPages","resolvePageIndices","_lineIndexAtHeight","_heightAtLineIndex","getWidows","getOrphans","slicedLineIndex","linesQuantity","slicedLine","getLineBreak","currentHeight","nextHeight","hasFixedHeight","subtractHeight","_getPadding2","_page$style","CONSTANTS","Layout","expose","Value","UNIT_POINT","UNIT_PERCENT","patch","_methods","fnName","_methods$unit","_methods$unit2","asNumber","createDefault","getChild","free","measureFunc","fromJS","unsetMeasureFunc","DIRECTION_LTR","getInstanceCount","ALIGN_COUNT","DIMENSION_COUNT","DIMENSION_WIDTH","DIMENSION_HEIGHT","DIRECTION_COUNT","DIRECTION_INHERIT","DIRECTION_RTL","DISPLAY_COUNT","DISPLAY_FLEX","DISPLAY_NONE","EDGE_COUNT","EDGE_START","EDGE_END","EDGE_HORIZONTAL","EDGE_VERTICAL","EDGE_ALL","EXPERIMENTAL_FEATURE_COUNT","EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS","FLEX_DIRECTION_COUNT","FLEX_DIRECTION_COLUMN","FLEX_DIRECTION_COLUMN_REVERSE","FLEX_DIRECTION_ROW","FLEX_DIRECTION_ROW_REVERSE","JUSTIFY_COUNT","JUSTIFY_FLEX_START","JUSTIFY_CENTER","JUSTIFY_FLEX_END","JUSTIFY_SPACE_BETWEEN","JUSTIFY_SPACE_AROUND","JUSTIFY_SPACE_EVENLY","LOG_LEVEL_COUNT","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG","LOG_LEVEL_VERBOSE","LOG_LEVEL_FATAL","MEASURE_MODE_COUNT","MEASURE_MODE_UNDEFINED","MEASURE_MODE_EXACTLY","MEASURE_MODE_AT_MOST","NODE_TYPE_COUNT","NODE_TYPE_DEFAULT","NODE_TYPE_TEXT","OVERFLOW_COUNT","OVERFLOW_VISIBLE","OVERFLOW_HIDDEN","OVERFLOW_SCROLL","POSITION_TYPE_COUNT","POSITION_TYPE_RELATIVE","POSITION_TYPE_ABSOLUTE","PRINT_OPTIONS_COUNT","PRINT_OPTIONS_LAYOUT","PRINT_OPTIONS_STYLE","PRINT_OPTIONS_CHILDREN","UNIT_COUNT","UNIT_UNDEFINED","WRAP_COUNT","WRAP_NO_WRAP","WRAP_WRAP","WRAP_WRAP_REVERSE","Module","onRuntimeInitialized","ccall","_nbind_value","reflect","NBind","queryType","toggleLightGC","moduleOverrides","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","nodeFS","nodePath","globalEval","ExitStatus","print","printErr","readbuffer","scriptArgs","quit","toThrow","TRY_USE_DUMP","dump","Runtime","setTempRet0","tempRet0","getTempRet0","stackSave","STACKTOP","stackRestore","stackTop","getNativeTypeSize","QUANTUM_SIZE","getNativeFieldSize","STACK_ALIGN","prepVararg","getAlignSize","vararg","dynCall","sig","functionPointers","addFunction","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","getCFunc","ident","noSafe","HEAP8","HEAP16","tempI64","tempDouble","Math_abs","Math_min","Math_floor","Math_ceil","HEAPF32","HEAPF64","JSfuncs","writeArrayToMemory","stringToUTF8","toC","returnType","argTypes","cArgs","converter","Pointer_stringify","EmterpreterAsync","asyncFinalizers","sourceRegex","parseJSFunc","jsfunc","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","HEAPU8","typeSize","previousType","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","lengthBytesUTF8","UTF16Decoder","HEAP","HEAPU16","HEAPU32","STATIC_BASE","STACK_BASE","STACK_MAX","DYNAMIC_BASE","demangle","__cxa_demangle_func","_free","demangleAll","jsStackTrace","stackTrace","updateGlobalBufferViews","abortOnCannotGrowMemory","TOTAL_STACK","getTotalMemory","callRuntimeCallbacks","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATEXIT__","__ATPOSTRUN__","runtimeExited","preRun","addOnPreRun","ensureInitRuntime","preMain","exitRuntime","postRun","addOnPostRun","addOnInit","addOnPreMain","addOnExit","intArrayFromString","stringy","dontAddNull","u8array","numBytesWritten","intArrayToString","writeStringToMemory","imul","froundBuffer","fround","trunc","Math_cos","Math_sin","Math_tan","Math_acos","Math_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","ASM_CONSTS","_nbind","callbackSignatureList","_emscripten_asm_const_iiiiiiii","_emscripten_asm_const_iiiii","_emscripten_asm_const_iiidddddd","_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","_defineHidden","__nbind_free_external","externalList","dereference","__nbind_reference_external","_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","_emscripten_set_main_loop_timing","timingMode","timingValue","scheduler","timeUntilNextTick","tickStartTime","_emscripten_get_now","runner","setImmediates","emscriptenMainLoopMessageId","_emscripten_set_main_loop","fps","simulateInfiniteLoop","noSetTiming","browserIterationFunc","thisMainLoopId","currentlyRunningMainloop","blocker","remainingBlockers","counted","updateStatus","currentFrameNumber","runIter","SDL","audio","queueNewAudioData","expectedBlockers","isFullscreen","pointerLock","moduleContextCreatedCallbacks","workers","initted","hasBlobConstructor","URLObject","noImageDecoding","imagePlugin","getMimetype","revokeObjectURL","audioPlugin","noAudioDecoding","Audio","leftchar","leftbits","PAD","encode64","safeSetTimeout","requestPointerLock","exitPointerLock","pointerLockChange","useWebGL","setInModule","webGLContextAttributes","contextHandle","contextAttributes","GL","GLctx","makeContextCurrent","destroyContext","fullscreenHandlersInstalled","lockPointer","resizeCanvas","requestFullscreen","vrDevice","fullscreenChange","canvasContainer","exitFullscreen","setFullscreenCanvasSize","setWindowedCanvasSize","updateCanvasDimensions","vrDisplay","requestFullScreen","nextRAF","fakeRequestAnimationFrame","safeCallback","allowAsyncCallbacks","queuedAsyncCallbacks","pauseAsyncCallbacks","resumeAsyncCallbacks","safeRequestAnimationFrame","safeSetInterval","getUserMedia","getMovementX","getMovementY","getMouseWheelDelta","mouseX","mouseY","mouseMovementX","mouseMovementY","lastTouches","calculateMouseEvent","scrollX","pageXOffset","scrollY","pageYOffset","touch","adjustedX","adjustedY","asyncLoad","noRunDep","dep","resizeListeners","updateResizeListeners","setCanvasSize","noUpdates","windowedWidth","windowedHeight","wNative","hNative","widthNative","heightNative","removeProperty","wgetRequests","nextWgetRequestHandle","getNextWgetRequestHandle","SYSCALLS","varargs","getStr","get64","getZero","___syscall6","getStreamFromFD","ErrnoError","___syscall54","_typeModule","structureList","applyStructure","outerName","outerFlags","innerName","innerFlags","refKind","ptrSize","getComplexType","place","prevStructure","problem","structureType","placeholderFlag","structure","reportProblem","srcSpec","subType","paramList","argList","structureParam","paramType","__nbind_register_type","namePtr","readAsciiString","__nbind_register_callback_signature","typeListPtr","typeCount","readTypeIdList","makeJSCaller","Class","__nbind_register_class","idListPtr","policyListPtr","superListPtr","upcastListPtr","superCount","destructorPtr","policyTbl","readPolicyList","idList","bindClass","ptrType","makeMethodCaller","boundID","superIdList","upcastList","makeBound","_removeAccessorPrefix","initial","__nbind_register_function","direct","signatureType","specList","name_1","specList_1","addMethod","typeNameTbl","throwError","bind_value","__nbindValueConstructor","__nbind_get_value_object","popValue","_emscripten_memcpy_big","__nbind_register_primitive","cttz_i8","___setErrNo","___syscall140","offset_low","whence","llseek","getdents","___syscall146","iov","iovcnt","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","overload","makeOverloader","needsWireRead","wireRead","makeWireRead","needsWireWrite","wireWrite","makeWireWrite","heapTbl","expr","pushCString","popCString","readResources","pool","writeResources","__nbindState","Bound","nbindFlags","nbindPtr","nbindShared","ptrMarker","wirePtr","__nbindConstructor","propTbl","__nbindShared","__nbindFlags","disableMember","die","pushPointer","pendingSuperCount","ready","methodTbl","classType","overloadList","registerMethods","staticOnly","overloadList_1","makeCaller","registerSuperMethods","firstSuper","visitTbl","nextFirst","superNum","superId","superList","Proto","__nbindType","upcastStep","superPtr","popPointer","tryValue","pushValue","__nbindPtr","objType","pushMutablePointer","isConst","isValue","popShared","unsafe","pushShared","pushMutableShared","firstFreeExternal","External","refCount","popExternal","pushExternal","valueList","firstFreeValue","valueBase","push64","pop64","pushArray","memberType","popArray","pushString","popString","makeArgList","argCount","dummy","anyNeedsWireWrite","anyNeedsWireRead","convertParamList","paramNum","buildCallerFunction","argTypeList","callExpression","resourceSet","listResources","sourceCode","makeOpen","makeClose","buildJSCallerFunction","typeIdList","dynCall_1","callerList","_func","Resource","openTbl","closeTbl","readList","writeList","readList_1","resource","writeList_1","ExternalBuffer","pushBuffer","commitBuffer","NodeBuffer","dirtyList","gcTimer","dirtyList_1","dateNow","fflush","asmGlobalArg","asmLibraryArg","asm","$","oB","qC","pB","GC","jC","sC","BB","ad","Cd","Ed","Gd","Id","Kd","tC","gC","Qd","Sd","Ud","Wd","Yd","cC","eC","Ge","CB","iC","yC","UA","WA","kv","yu","eu","vt","_h","Hv","Oq","tq","cq","Lp","pp","Yo","Fo","mo","Un","Bn","Um","Bm","im","Rl","vl","Kk","Ci","jy","kC","$j","pk","Bk","zk","Ak","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Lk","Mk","Nk","Ok","Vk","Pk","Qk","Rk","Sk","Tk","Uk","Yk","Wk","Xk","Zk","$k","il","jl","kl","ll","nl","ol","ql","rl","ul","wl","xl","yl","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","dm","bm","cm","em","fm","gm","hm","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","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","Mn","Gn","Hn","In","Jn","Kn","Ln","Pn","Nn","On","Qn","Rn","Sn","Tn","Vn","Wn","Xn","Yn","eo","Zn","$n","ao","bo","co","ho","fo","jo","ko","no","oo","po","qo","xo","ro","so","uo","vo","wo","Ao","yo","zo","Bo","Co","Do","Eo","Go","Ho","Io","Jo","Qo","Ko","Lo","Mo","No","Oo","Po","To","Ro","So","Uo","Vo","Wo","Xo","Zo","_o","$o","dp","ep","fp","gp","kp","jp","lp","mp","np","qp","rp","sp","tp","Ap","xp","yp","zp","Dp","Bp","Cp","Ep","Fp","Hp","Ip","Jp","Kp","Mp","Np","Pp","Wp","Qp","Rp","Sp","Tp","Vp","Zp","Xp","Yp","$p","aq","bq","dq","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","fr","lr","jr","kr","oC","pr","qr","rr","ur","nt","Ws","Es","vr","wr","xr","yr","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","$r","bs","ds","fs","gs","hs","ls","ss","us","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","bt","ct","ht","ft","jt","kt","ut","qt","st","tt","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","cu","au","bu","du","fu","gu","su","hu","iu","ju","ku","pu","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","mv","Zv","nv","vv","wv","ov","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","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","hx","bx","jx","kx","mx","qx","QA","wx","PA","yx","zx","Ax","Ox","Kx","Gx","Bx","Cx","Dx","Ex","Fx","Hx","Ix","Jx","Lx","Mx","Nx","Px","Qx","Rx","Sx","Ux","Vx","rC","qy","Wx","Xx","Yx","ky","Zx","$x","gy","hy","iy","ly","my","ny","wy","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","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","sB","tB","wB","xB","zB","DB","EB","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","vC","CC","DC","JC","KC","LC","MC","NC","OC","PC","QC","RC","SC","TC","UC","VC","WC","XC","YC","ZC","$C","aD","bD","cD","dD","eD","fD","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","toLog","abortDecorators","what","_objectWithoutPropertiesLoose2","_castArray","isNotString","_element$props","_element$props$style","_element$props$childr","_getNodesHeight","getBreak","getMinPresenceAhead","defaultPresenceAhead","futureElements","minPresenceAhead","presenceAhead","isElementInside","getPresenceAhead","futureHeight","shouldWrap","_ignoreChars","PREPROCESSORS","parentLink","_instance$props2","_instance$style","_instance$style$color","_instance$style$fontF","_instance$style$fontS","_instance$style$textA","letterSpacing","textIndent","_fragments","preprocessor","IGNORABLE_CODEPOINTS","charSubset","subsetRegex","getComputedTop","getComputedRight","getComputedBottom","getComputedLeft","DEFAULT_DIMENSION","getComputedWidth","getComputedHeight","getComputedBorder","setDisplay","setOverflow","setFlexWrap","_setYogaValue","setAspectRatio","setPositionType","isRow","isRowReverse","isColumnReverse","setFlexDirection","setJustifyContent","setMargin","setPadding","setBorder","setPosition","widthMode","heightMode","_linesWidth","_linesHeight","_getRatio","_isHeightAuto","imageRatio","imageMargin","pagePadding","pageArea","_scaledHeight","_node$image","getMax","nil","measureCtx","resolvePageHorizontalPadding","resolvePageVerticalPadding","resolveRadius","resolvePercentRadius","transformHeight","hasHeight","resolveNodePercentHeight","getPageArea","hasRenderProp","isTextType","transformLink","isTextLink","textElement","wrapText","resolveLinkSubstitution","$$$reconciler","$$$hostConfig","suspense","effectTag","shouldDeprioritizeSubtree","noTimeout","supportsPersistence","supportsHydration","commitMount","insertInContainerBefore","hideInstance","hideTextInstance","unhideInstance","unhideTextInstance","cloneInstance","createContainerChildSet","appendChildToContainerChildSet","finalizeContainerChildren","replaceContainerChildren","cloneHiddenInstance","cloneHiddenTextInstance","canHydrateInstance","canHydrateTextInstance","isSuspenseInstancePending","isSuspenseInstanceFallback","getNextHydratableSibling","getFirstHydratableChild","hydrateInstance","hydrateTextInstance","getNextHydratableInstanceAfterSuspenseInstance","commitHydratedContainer","commitHydratedSuspenseInstance","_debugOwner","_debugSource","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","batchedEventUpdates","batchedUpdates","unbatchedUpdates","deferredUpdates","syncUpdates","discreteUpdates","flushDiscreteUpdates","flushControlled","flushPassiveEffects","IsThisRendererActing","getPublicRootInstance","attemptSynchronousHydration","attemptUserBlockingHydration","attemptContinuousHydration","attemptHydrationAtCurrentPriority","findHostInstance","findHostInstanceWithWarning","findHostInstanceWithNoPortals","shouldSuspend","injectIntoDevTools","$$$renderer","toVal","isHostComponent","appendOwnerState","existingProps","ownerState","formatMuiErrorMessage","decomposeColor","_formatMuiErrorMessage","recomposeColor","getLuminance","hslToRgb","coefficient","reactPropsRegex","isPropValid","_insertTag","isSpeedy","speedy","nonce","createStyleElement","ownerNode","sheetForTag","insertRule","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","indexof","charat","strlen","sizeof","combine","column","caret","dealloc","delimit","whitespace","escaping","commenter","rulesets","pseudo","declarations","atrule","variable","scanning","declaration","ruleset","rulesheet","identifierWithPointTracking","getRules","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","ssrStyles","stylisPlugins","inserted","nodesToHydrate","attrib","omnipresentPlugins","currentSheet","finalizingPlugins","collection","middleware","getRegisteredStyles","registeredStyles","rawClassName","insertStyles","isStringTag","murmur2","unitlessKeys","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","processStyleValue","unitless","handleInterpolation","mergedProps","__emotion_styles","anim","interpolated","createStringFromObject","previousCursor","labelPattern","serializeStyles","stringMode","raw","identifierName","hashString","EmotionCacheContext","withEmotionCache","ThemeContext","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","newStyled","createStyled","targetClassName","__emotion_real","__emotion_base","defaultShouldForwardProp","shouldUseAs","Styled","finalTag","classInterpolations","theme","finalShouldForwardProp","withComponent","nextTag","nextOptions","styled","emStyled","deepmerge","_excluded","createBreakpoints","between","down","defaultBreakpoints","handleBreakpoints","styleFromPropValue","themeBreakpoints","cssKey","createEmptyBreakpointObject","_breakpointsInput$key","breakpointsInput","breakpointsInOrder","removeUnusedBreakpoints","breakpointKeys","breakpointOutput","themeMapping","propValueFinal","userValue","cssProperty","themeKey","filterProps","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","themeSpacing","createUnarySpacing","transformer","resolveCssProperty","cssProperties","getStyleFromPropValue","spacing","createSpacing","spacingInput","mui","argsInput","argument","createTheme","paletteInput","shapeInput","muiTheme","getBorder","borders","flexbox","rowGap","boxShadow","_props$theme","_props$theme$breakpoi","_props$theme$breakpoi2","breakpointsValues","sizing","typography","filterPropsMapping","shadows","styleFunctionMapping","propToStyleFunction","styleFnName","getThemeValue","inputProps","styleFunction","styleFunctionSx","emptyBreakpoints","breakpointsKeys","css","styleKey","maybeFn","objectsHaveSameKeys","propsToClassKey","variant","classKey","_excluded2","_excluded3","getStyleOverrides","styleOverrides","getVariantStyles","variants","variantsStyles","definition","variantsResolver","_theme$components","_theme$components$nam","themeVariants","themeVariant","isMatch","systemDefaultTheme","createMixins","toolbar","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","lightBlue","primary","secondary","divider","paper","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","createPalette","contrastThreshold","getDefaultPrimary","getDefaultSecondary","getDefaultError","getDefaultInfo","success","getDefaultSuccess","getDefaultWarning","getContrastText","foreground","lumA","lumB","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","contrastText","modes","caseAllCaps","defaultFontFamily","createTypography","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","casing","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","createShadow","easeInOut","easeOut","easeIn","sharp","shortest","shorter","complex","enteringScreen","leavingScreen","formatMs","getAutoHeightDuration","constant","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","animatedProp","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","mixinsInput","transitions","transitionsInput","typographyInput","systemTheme","systemCreateTheme","defaultTheme","rootShouldForwardProp","slotShouldForwardProp","componentSlot","slot","inputSkipVariantsResolver","skipVariantsResolver","inputSkipSx","skipSx","overridesResolver","shouldForwardPropOption","defaultStyledResolver","styledEngineStyled","muiStyledResolver","styleArg","expressions","expressionsWithDefaultTheme","stylesArg","themeInput","transformedStyleArg","numOfCustomFnsApplied","placeholders","useTheme","isObjectEmpty","contextTheme","muiUseTheme","useThemeWithoutDefault","useThemeSystem","useThemeProps","getThemeProps","getTransitionProps","_style$transitionDura","_style$transitionTimi","transitionDuration","transitionTimingFunction","transitionDelay","setRef","useForkRef","refA","refB","refValue","getScale","entering","entered","Grow","addEndListener","appear","inProp","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","TransitionComponent","Transition","autoTimeout","foreignRef","handleRef","normalizedTransitionCallback","maybeIsAppearing","handleEntering","handleEnter","isAppearing","reflow","handleEntered","handleExiting","handleExit","handleExited","_jsx","childProps","muiSupportAuto","includeScale","getWindow","getWindowScroll","win","isHTMLElement","isShadowRoot","ShadowRoot","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","getLayoutRect","clientRect","getParentNode","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","perspective","contain","willChange","getContainingBlock","auto","basePlacements","popper","variationPlacements","placement","placements","modifierPhases","modifiers","requires","requiresIfExists","depModifier","debounce","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","orderModifiers","merged","mergeByName","_ref3$options","effect","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","_options$scroll","_options$resize","getBasePlacement","getMainAxisFromPlacement","computeOffsets","basePlacement","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","dpr","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","commonStyles","getOppositePlacement","getOppositeVariationPlacement","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","within","mathMax","mathMin","getSideOffsets","preventedOffsets","isAnySideFullyClipped","createPopper","eventListeners","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","initialStyles","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","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","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","useEnhancedEffect","disablePortal","setMountNode","ReactDOM","resolveAnchorEl","anchorEl","defaultPopperOptions","PopperTooltip","initialPlacement","popperOptions","popperRefProp","popperRef","TransitionProps","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","rtlPlacement","flipPlacement","setPlacement","popperModifiers","role","Popper","containerProp","keepMounted","exited","setExited","useEventCallback","useId","idOverride","defaultId","setDefaultId","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","handleKeyDown","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","isContentEditable","focusTriggersKeyboardModality","useIsFocusVisible","isFocusVisibleRef","onFocus","onBlur","useControlled","defaultProp","isControlled","valueState","globalStateClassesMapping","expanded","focused","focusVisible","generateUtilityClass","getTooltipUtilityClass","tooltipClasses","slots","generateUtilityClasses","useUtilityClasses","disableInteractive","getUtilityClass","composeClasses","TooltipPopper","popperInteractive","popperArrow","popperClose","isRtl","TooltipTooltip","tooltipArrow","wordWrap","TooltipArrow","hystersisOpen","hystersisTimer","composeEventHandler","eventHandler","Tooltip","inProps","_components$Popper","_components$Tooltip","_components$Arrow","_componentsProps$popp","systemUseThemeProps","componentsProps","describeChild","disableFocusListener","disableHoverListener","disableInteractiveProp","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","idProp","leaveDelay","leaveTouchDelay","openProp","PopperComponentProp","PopperComponent","PopperProps","TransitionComponentProp","setChildNode","arrowRef","setArrowRef","ignoreNonTouchEvents","closeTimer","enterTimer","leaveTimer","touchTimer","openState","setOpenState","prevUserSelect","stopTouchInteraction","WebkitUserSelect","handleOpen","handleClose","handleLeave","handleBlurVisible","handleFocusVisible","focusVisibleRef","setChildIsFocusVisible","handleBlur","handleFocus","detectTouchStart","childrenProps","handleMouseOver","handleMouseLeave","handleUseRef","handleFocusRef","positionRef","nameOrDescProps","titleIsString","clsx","interactiveWrapperListeners","onMouseOver","onMouseLeave","_PopperProps$popperOp","tooltipModifiers","TooltipComponent","ArrowComponent","Arrow","popperProps","transitionProps","tooltipProps","tooltipArrowProps","_jsxs","_componentsProps$tool","_componentsProps$arro","TransitionPropsInner","Checkbox","handleChange","saveInput","prefixCls","tabIndex","onKeyPress","others","globalProps","classString","today","backToToday","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","rangePlaceholder","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","typeTemplate","Pagination","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","DatePicker","TimePicker","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","emptyText","selectInvert","selectNone","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","Modal","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Icon","copied","PageHeader","Form","defaultValidateMessages","invalid","integer","mismatch","preview","LocaleContext","LocaleReceiver","defaultLocale","defaultLocaleData","antLocale","localeFromContext","localeCode","exist","getLocale","getLocaleCode","getPrefixCls","ConfigContext","Simple","defaultEmptyImg","DefaultEmptyImg","simpleEmptyImg","SimpleEmptyImg","customizePrefixCls","_a$image","imageStyle","restProps","_React$useContext","des","alt","imageNode","PRESENTED_IMAGE_DEFAULT","PRESENTED_IMAGE_SIMPLE","renderEmpty","ConfigConsumer","suffixCls","defaultRenderEmpty","RadioGroupContext","RadioGroupContextProvider","InternalRadio","mergedRef","devWarning","radioProps","wrapperClassString","onMouseEnter","RcCheckbox","Radio","SizeContext","RadioGroup","_useMergedState","useMergedState","_useMergedState2","_props$className","optionType","_props$buttonStyle","buttonStyle","customizeSize","groupPrefixCls","childrenToRender","optionsPrefixCls","mergedSize","renderGroup","RadioButton","radioGroupContext","Button","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","initialStatus","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","setNextCallback","doesNotHaveTimeoutOrListener","maybeNextCallback","TransitionGroupContext","_console","alreadyWarned","i18n","oldI18nextHasLoadedNamespace","isNewerI18next","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","addUsedNamespaces","getT","nsMode","_useState","_useState2","setT","boundReset","isInitial"],"mappings":"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In6C,EAAKC,EAMT,IAAKD,KALO,MAARm6C,IACFA,EAAO,IAETj5C,KAAK4pB,YAAa,EAClB5pB,KAAKu4B,cAAe,EACR0gB,EACVl6C,EAAMk6C,EAAKn6C,GACXkB,KAAKlB,GAAOC,GAQlBH,EAAQi6C,mBAAqBA,IAE5B94C,KAAKC,O,cC3CR,SAASk5C,EAAmBC,EAAK7qB,EAASva,EAAQqlC,EAAOC,EAAQv6C,EAAKo9B,GACpE,IACE,IAAIod,EAAOH,EAAIr6C,GAAKo9B,GAChBh7B,EAAQo4C,EAAKp4C,MACjB,MAAO+tB,GAEP,YADAlb,EAAOkb,GAILqqB,EAAKt4C,KACPstB,EAAQptB,GAER0uB,QAAQtB,QAAQptB,GAAO+O,KAAKmpC,EAAOC,GAwBvC16C,EAAOC,QApBP,SAA2BmE,GACzB,OAAO,WACL,IAAIkwB,EAAOjzB,KACPwF,EAAOvC,UACX,OAAO,IAAI2sB,SAAQ,SAAUtB,EAASva,GACpC,IAAIolC,EAAMp2C,EAAGG,MAAM+vB,EAAMztB,GAEzB,SAAS4zC,EAAMl4C,GACbg4C,EAAmBC,EAAK7qB,EAASva,EAAQqlC,EAAOC,EAAQ,OAAQn4C,GAGlE,SAASm4C,EAAOj4C,GACd83C,EAAmBC,EAAK7qB,EAASva,EAAQqlC,EAAOC,EAAQ,QAASj4C,GAGnEg4C,OAAMx4C,QAKwBjC,EAAOC,QAAQkD,YAAa,EAAMnD,EAAOC,QAAiB,QAAID,EAAOC,S,6BCpCzG,4oBA6PI26C,EAAS,CACZC,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,MAgOAC,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/SGC,EAAW,IAAI5d,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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ACA,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,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,GAOGC,GAAS,IAAIt5E,IAAY,IAAI9d,WAAWm3F,KACxCE,GAAW,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAC5DC,GAC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AAStjD,EA3OZ,KA2OiCkhB,EAAMqe,UAEnDxmG,EAAoD,IAA9CinE,EAAKqwD,kBAAkBh2F,GAAM02F,aAAqB17H,EAAIA,EAAI,EACpE6jF,EAAOhsE,OAAOnU,EAAK,EAAGk4H,GACtB57H,IAGF,OAAOA,EAGT,IAo6dI67H,GAAe,CAClB11B,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,IA0wED21B,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,CACb3iF,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,QAkjFA4iF,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,QA83ED91B,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,IAqOD21B,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,qBAcEG,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,gBAEZ1sB,WAAY,CACVqsB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUW,YACnBe,SAAU,WACVC,SAAU,gBAEZxtB,QAAS,CACPmtB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUU,UACnBgB,SAAU,WACVC,SAAU,gBAEZ9rB,SAAU,CACRyrB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUQ,WACnBkB,SAAU,WACVC,SAAU,gBAEZ/rB,SAAU,CACR0rB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUW,YACnBe,SAAU,WACVC,SAAU,gBAEZjpB,MAAO,CACL4oB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUM,WACnBoB,SAAU,WACVC,SAAU,gBAEZpnB,MAAO,CACL+mB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUa,WACnBa,SAAU,WACVC,SAAU,gBAEZlnB,OAAQ,CACN6mB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUa,WACnBa,SAAU,WACVC,SAAU,aAEZ/qB,QAAS,CACP0qB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUa,WACnBa,SAAU,WACVC,SAAU,aAEZ7pB,UAAW,CACTwpB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUM,WACnBoB,SAAU,YACVC,SAAU,gBAWZjrB,MAAO,CACL4qB,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,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,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,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GAOD,SAASC,GAAkC/7G,EAAG62D,GAAkB,IAAIC,EAAI,GAAsB,qBAAX94E,QAAgD,MAAtBgiB,EAAEhiB,OAAOC,UAAmB,CAAE,GAAIlB,MAAM6G,QAAQoc,KAAO82D,EAEpK,SAAuC92D,EAAG+2D,GAAU,IAAK/2D,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOg8G,GAAoBh8G,EAAG+2D,GAAS,IAAIl1E,EAAI3D,OAAO+B,UAAU4D,SAASnG,KAAKsiB,GAAG5c,MAAM,GAAI,GAAc,WAANvB,GAAkBme,EAAEzQ,cAAa1N,EAAIme,EAAEzQ,YAAYG,MAAM,GAAU,QAAN7N,GAAqB,QAANA,EAAa,OAAO9E,MAAMyiB,KAAKQ,GAAI,GAAU,cAANne,GAAqB,2CAA2CsQ,KAAKtQ,GAAI,OAAOm6H,GAAoBh8G,EAAG+2D,GAFnPklD,CAA8Bj8G,KAAO62D,GAAkB72D,GAAyB,kBAAbA,EAAElhB,OAAqB,CAAMg4E,IAAI92D,EAAI82D,GAAI,IAAIh5E,EAAI,EAAG,OAAO,WAAc,OAAIA,GAAKkiB,EAAElhB,OAAe,CAAEH,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOmhB,EAAEl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A,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,GACA,EACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,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,SAAS4pF,GAAkCnhH,EAAG62D,GAAkB,IAAIC,EAAI,GAAsB,qBAAX94E,QAAgD,MAAtBgiB,EAAEhiB,OAAOC,UAAmB,CAAE,GAAIlB,MAAM6G,QAAQoc,KAAO82D,EAEpK,SAAuC92D,EAAG+2D,GAAU,IAAK/2D,EAAG,OAAQ,G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ACtBqzX,IAGFE,EAAY1rZ,EAAMm4B,IAGpB8mM,GAAWysL,EACXH,IAGFE,GAAY,IAAI9+Y,KAASg/Y,EAEpBD,EAGHv+W,WAAWY,GAFX9uC,IAMJ,OAAImsZ,GACFj+W,WAAWY,GACJ,IAAIlgB,SAAQ,SAAUtB,GAC3B++X,EAAiB/+X,OAGnBwhB,IACOkxL,GAIX,OAAOspL,IA7bC,iC,kCCVV,UAGIxxC,EAAO,QAAD,6BAUD,WAs5JP,MAAO,CACL7rN,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,IAuBAo9P,WApBgB,CAChB,cACA,eACA,iBACA,eACA,kBACA,UACA,WACA,UACA,WACA,eACA,kBACA,iBACA,iBACA,SACA,OA75JM,gC,6BCDVzrZ,EAAQkD,YAAa,EACrBlD,EAAQipD,aAAU,EAQlB,IAOIW,EAPa,SAAoBtnD,GACnC,OAAKA,EACEA,EAAM0R,QAAQ,aAAa,SAAU4N,GAC1C,OA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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,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,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","file":"static/js/2.268e808d.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _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\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","var _typeof = require(\"./typeof.js\")[\"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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\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;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import font from './font';\nimport standard from './standard';\n\nfunction FontStore() {\n let fonts = {};\n\n let emojiSource = null;\n\n let hyphenationCallback = null;\n\n this.register = data => {\n const { family } = data;\n\n if (!fonts[family]) {\n fonts[family] = font.create(family);\n }\n\n // Bulk loading\n if (data.fonts) {\n for (let i = 0; i < data.fonts.length; i += 1) {\n fonts[family].register({ family, ...data.fonts[i] });\n }\n } else {\n fonts[family].register(data);\n }\n };\n\n this.registerEmojiSource = ({ url, format = 'png' }) => {\n emojiSource = { url, format };\n };\n\n this.registerHyphenationCallback = callback => {\n hyphenationCallback = callback;\n };\n\n this.getFont = descriptor => {\n const { fontFamily } = descriptor;\n const isStandard = standard.includes(fontFamily);\n\n if (isStandard) return null;\n\n if (!fonts[fontFamily]) {\n throw new Error(\n `Font family not registered: ${fontFamily}. Please register it calling Font.register() method.`,\n );\n }\n\n return fonts[fontFamily].resolve(descriptor);\n };\n\n this.load = async descriptor => {\n const { fontFamily } = descriptor;\n const isStandard = standard.includes(fontFamily);\n\n if (isStandard) return;\n\n const f = this.getFont(descriptor);\n\n // We cache the font to avoid fetching it many times\n if (!f.data && !f.loading) {\n await f.load();\n }\n };\n\n this.reset = () => {\n const keys = Object.keys(fonts);\n\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n fonts[key].data = null;\n }\n };\n\n this.clear = () => {\n fonts = {};\n };\n\n this.getRegisteredFonts = () => fonts;\n\n this.getEmojiSource = () => emojiSource;\n\n this.getHyphenationCallback = () => hyphenationCallback;\n\n this.getRegisteredFontFamilies = () => Object.keys(fonts);\n}\n\nexport default FontStore;\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 */\nconst propsEqual = (a, b) => {\n const oldPropsKeys = Object.keys(a);\n const newPropsKeys = Object.keys(b);\n\n if (oldPropsKeys.length !== newPropsKeys.length) {\n return false;\n }\n\n for (let i = 0; i < oldPropsKeys.length; i += 1) {\n const 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 (\n typeof a[propName] === 'object' &&\n typeof b[propName] === 'object' &&\n propsEqual(a[propName], b[propName])\n ) {\n continue;\n }\n\n return false;\n }\n\n if (\n propName === 'children' &&\n (typeof a[propName] === 'string' || typeof b[propName] === 'string')\n ) {\n return a[propName] === b[propName];\n }\n }\n\n return true;\n};\n\nexport default propsEqual;\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-param-reassign */\n\nimport ReactFiberReconciler from 'react-reconciler';\nimport {\n unstable_scheduleCallback as schedulePassiveEffects,\n unstable_cancelCallback as cancelPassiveEffects,\n} from 'scheduler';\n\nimport propsEqual from './utils/propsEqual';\n\nconst emptyObject = {};\n\nconst createRenderer = ({ onChange = () => {} }) => {\n return ReactFiberReconciler({\n schedulePassiveEffects,\n\n cancelPassiveEffects,\n\n supportsMutation: true,\n\n isPrimaryRenderer: false,\n\n warnsIfNotActing: false,\n\n appendInitialChild(parentInstance, child) {\n parentInstance.children.push(child);\n },\n\n createInstance(type, { style, children, ...props }) {\n return {\n type,\n box: {},\n style: style || {},\n props: props || {},\n children: [],\n };\n },\n\n createTextInstance(text, rootContainerInstance) {\n return { type: 'TEXT_INSTANCE', value: text };\n },\n\n finalizeInitialChildren(element, type, props) {\n return false;\n },\n\n getPublicInstance(instance) {\n return instance;\n },\n\n prepareForCommit() {\n // Noop\n },\n\n clearContainer() {\n // Noop\n },\n\n prepareUpdate(element, type, oldProps, newProps) {\n return !propsEqual(oldProps, newProps);\n },\n\n resetAfterCommit: onChange,\n\n resetTextContent(element) {\n // Noop\n },\n\n getRootHostContext() {\n return emptyObject;\n },\n\n getChildHostContext() {\n return emptyObject;\n },\n\n shouldSetTextContent(type, props) {\n return false;\n },\n\n now: Date.now,\n\n useSyncScheduling: true,\n\n appendChild(parentInstance, child) {\n parentInstance.children.push(child);\n },\n\n appendChildToContainer(parentInstance, child) {\n if (parentInstance.type === 'ROOT') {\n parentInstance.document = child;\n } else {\n parentInstance.children.push(child);\n }\n },\n\n insertBefore(parentInstance, child, beforeChild) {\n const index = parentInstance.children?.indexOf(beforeChild);\n\n if (index === undefined) return;\n\n if (index !== -1 && child)\n parentInstance.children.splice(index, 0, child);\n },\n\n removeChild(parentInstance, child) {\n const index = parentInstance.children?.indexOf(child);\n\n if (index === undefined) return;\n\n if (index !== -1) parentInstance.children.splice(index, 1);\n },\n\n removeChildFromContainer(parentInstance, child) {\n const index = parentInstance.children?.indexOf(child);\n\n if (index === undefined) return;\n\n if (index !== -1) parentInstance.children.splice(index, 1);\n },\n\n commitTextUpdate(textInstance, oldText, newText) {\n textInstance.value = newText;\n },\n\n commitUpdate(instance, updatePayload, type, oldProps, newProps) {\n const { style, ...props } = newProps;\n instance.props = props;\n instance.style = style;\n },\n });\n};\n\nexport default createRenderer;\n","/* eslint-disable no-console */\n\nimport queue from 'queue';\nimport { useState, useRef, useEffect } from 'react';\n\nimport { pdf } from '../index';\n\nexport const usePDF = ({ document }) => {\n const pdfInstance = useRef(null);\n\n const [state, setState] = useState({\n url: null,\n blob: null,\n error: null,\n loading: false,\n });\n\n // Setup rendering queue\n useEffect(() => {\n const renderQueue = queue({ autostart: true, concurrency: 1 });\n\n const queueDocumentRender = () => {\n setState(prev => ({ ...prev, loading: true }));\n\n renderQueue.splice(0, renderQueue.length, () =>\n state.error ? Promise.resolve() : pdfInstance.current.toBlob(),\n );\n };\n\n const onRenderFailed = error => {\n console.error(error);\n setState(prev => ({ ...prev, error }));\n };\n\n const onRenderSuccessful = blob => {\n setState({\n 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\n renderQueue.on('error', onRenderFailed);\n renderQueue.on('success', onRenderSuccessful);\n\n return () => {\n renderQueue.end();\n pdfInstance.current.removeListener('change', queueDocumentRender);\n };\n }, []);\n\n // Revoke old unused url instances\n useEffect(() => {\n return () => {\n if (state.url) {\n URL.revokeObjectURL(state.url);\n }\n };\n }, [state.url]);\n\n const update = () => {\n pdfInstance.current.updateContainer(document);\n };\n\n return [state, update];\n};\n\nexport default usePDF;\n","/* eslint-disable no-console */\n\nimport { useEffect } from 'react';\n\nimport usePDF from './usePDF';\n\nexport const BlobProvider = ({ document: doc, children }) => {\n const [instance, updateInstance] = usePDF({ document: doc });\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};\n\nexport default BlobProvider;\n","/* eslint-disable no-console */\n\nimport React, { useEffect } from 'react';\n\nimport usePDF from './usePDF';\n\nexport const PDFDownloadLink = ({\n style,\n children,\n className,\n document: doc,\n fileName = 'document.pdf',\n}) => {\n const [instance, updateInstance] = usePDF({ document: doc });\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 const handleDownloadIE = () => {\n if (window.navigator.msSaveBlob) {\n // IE\n window.navigator.msSaveBlob(instance.blob, fileName);\n }\n };\n\n return (\n \n {typeof children === 'function' ? children(instance) : children}\n \n );\n};\n\nexport default PDFDownloadLink;\n","import * as primitives from '@react-pdf/primitives';\n\nimport usePDF from './usePDF';\nimport PDFViewer from './PDFViewer';\nimport BlobProvider from './BlobProvider';\nimport PDFDownloadLink from './PDFDownloadLink';\nimport { pdf, version, Font, StyleSheet } from '../index';\n\nconst throwEnvironmentError = name => {\n throw new Error(\n `${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};\n\nexport const renderToStream = () => {\n throwEnvironmentError('renderToStream');\n};\n\nexport const renderToString = () => {\n throwEnvironmentError('renderToString');\n};\n\nexport const renderToFile = () => {\n throwEnvironmentError('renderToFile');\n};\n\nexport const render = () => {\n throwEnvironmentError('render');\n};\n\nexport * from '../index';\n\nexport * from './usePDF';\n\nexport * from './PDFViewer';\n\nexport * from './BlobProvider';\n\nexport * from './PDFDownloadLink';\n\nexport * from '@react-pdf/primitives';\n\nexport default {\n pdf,\n usePDF,\n Font,\n version,\n StyleSheet,\n PDFViewer,\n BlobProvider,\n PDFDownloadLink,\n renderToStream,\n renderToString,\n renderToFile,\n render,\n ...primitives,\n};\n","/* eslint-disable no-console */\n/* eslint-disable react/jsx-props-no-spreading */\n\nimport React, { useEffect } from 'react';\n\nimport usePDF from './usePDF';\n\nexport const PDFViewer = ({\n title,\n style,\n className,\n children,\n innerRef,\n showToolbar = true,\n ...props\n}) => {\n const [instance, updateInstance] = usePDF({ document: children });\n\n useEffect(updateInstance, [children]);\n\n const src = instance.url\n ? `${instance.url}#toolbar=${showToolbar ? 1 : 0}`\n : null;\n\n return (\n \n );\n};\n\nexport default PDFViewer;\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","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","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}",";(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 crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.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 j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 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}));","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}","module.exports = require('./lib/axios');","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 createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\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\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object 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 * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\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 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\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(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, 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 interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, 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(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\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(null, 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(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.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 that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().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)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\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) 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 (!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 var 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 var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\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 (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var 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 case undefined:\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) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var 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 coersion 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// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var 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 var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var 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 var length = this.length | 0\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.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 var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\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 var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var 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 (isNaN(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 (Buffer.TYPED_ARRAY_SUPPORT &&\n 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 var indexSize = 1\n var arrLength = arr.length\n var 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 var i\n if (dir) {\n var 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 var found = true\n for (var 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 var 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 // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(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 latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, 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 // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var 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 var 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 return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(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 var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var 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\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var 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 var res = ''\n var 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 var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; 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 var 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 var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\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 = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\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 var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\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 = function readUInt32BE (offset, noAssert) {\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.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var 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 var i = byteLength\n var mul = 1\n var 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 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 if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\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 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.readFloatLE = function readFloatLE (offset, noAssert) {\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 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 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 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 = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var 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 = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var 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 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var 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 var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var 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 (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\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 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 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 (!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('sourceStart out of bounds')\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 var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\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 (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\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 } else if (typeof val === 'number') {\n val = val & 255\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 var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).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 stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var 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 var byteArray = []\n for (var 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 var c, hi, lo\n var byteArray = []\n for (var 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 for (var 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\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\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 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);","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","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}\n\nmodule.exports = _applyDecoratedDescriptor, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;",";(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}));","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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 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 Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : 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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\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}","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 Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\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","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\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","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","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;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","// canvas-confetti v1.4.0 built on 2021-03-10T12:32:33.488Z\nvar module = {};\n\n// source content\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n drift: 0,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function colorsToRgb(colors) {\n return colors.map(hexToRgb);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: Math.random() * Math.PI,\n color: opts.color,\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n drift: opts.drift,\n random: Math.random() + 5,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.wobble += 0.1;\n fetti.velocity *= fetti.decay;\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 5;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n context.beginPath();\n\n if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var drift = prop(options, 'drift', Number);\n var colors = prop(options, 'colors', colorsToRgb);\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n drift: drift,\n scalar: scalar\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n document.body.removeChild(canvas);\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize) {\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n module.exports = confettiCannon(null, { useWorker: true, resize: true });\n module.exports.create = confettiCannon;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this || {};\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\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}","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\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","\"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 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);","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","//\n// Main\n//\n\nfunction memoize (fn, options) {\n var cache = options && options.cache\n ? options.cache\n : cacheDefault\n\n var serializer = options && options.serializer\n ? options.serializer\n : serializerDefault\n\n var strategy = options && options.strategy\n ? options.strategy\n : strategyDefault\n\n return strategy(fn, {\n cache: cache,\n serializer: serializer\n })\n}\n\n//\n// Strategy\n//\n\nfunction isPrimitive (value) {\n return value == null || typeof value === 'number' || typeof value === 'boolean' // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\n\nfunction monadic (fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg)\n\n var computedValue = cache.get(cacheKey)\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg)\n cache.set(cacheKey, computedValue)\n }\n\n return computedValue\n}\n\nfunction variadic (fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3)\n var cacheKey = serializer(args)\n\n var computedValue = cache.get(cacheKey)\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args)\n cache.set(cacheKey, computedValue)\n }\n\n return computedValue\n}\n\nfunction assemble (fn, context, strategy, cache, serialize) {\n return strategy.bind(\n context,\n fn,\n cache,\n serialize\n )\n}\n\nfunction strategyDefault (fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\nfunction strategyVariadic (fn, options) {\n var strategy = variadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\nfunction strategyMonadic (fn, options) {\n var strategy = monadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\n//\n// Serializer\n//\n\nfunction serializerDefault () {\n return JSON.stringify(arguments)\n}\n\n//\n// Cache\n//\n\nfunction ObjectWithoutPrototypeCache () {\n this.cache = Object.create(null)\n}\n\nObjectWithoutPrototypeCache.prototype.has = function (key) {\n return (key in this.cache)\n}\n\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key]\n}\n\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value\n}\n\nvar cacheDefault = {\n create: function create () {\n return new ObjectWithoutPrototypeCache()\n }\n}\n\n//\n// API\n//\n\nmodule.exports = memoize\nmodule.exports.strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic\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","// 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// 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\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\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\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\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 () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (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 }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","\"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;",";(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 _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","/* 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","// 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","// 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 core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"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 restore = function restore(ctx, node) {\n ctx.restore();\n return node;\n};\n\nvar _default = R.curryN(2, restore);\n\nexports.default = _default;",";(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 (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}));","\"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;","// 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/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.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","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nvar styles = {\n top: {\n width: '100%',\n height: '10px',\n top: '-5px',\n left: '0px',\n cursor: 'row-resize',\n },\n right: {\n width: '10px',\n height: '100%',\n top: '0px',\n right: '-5px',\n cursor: 'col-resize',\n },\n bottom: {\n width: '100%',\n height: '10px',\n bottom: '-5px',\n left: '0px',\n cursor: 'row-resize',\n },\n left: {\n width: '10px',\n height: '100%',\n top: '0px',\n left: '-5px',\n cursor: 'col-resize',\n },\n topRight: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n right: '-10px',\n top: '-10px',\n cursor: 'ne-resize',\n },\n bottomRight: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n right: '-10px',\n bottom: '-10px',\n cursor: 'se-resize',\n },\n bottomLeft: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n left: '-10px',\n bottom: '-10px',\n cursor: 'sw-resize',\n },\n topLeft: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n left: '-10px',\n top: '-10px',\n cursor: 'nw-resize',\n },\n};\nvar Resizer = /** @class */ (function (_super) {\n __extends(Resizer, _super);\n function Resizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onMouseDown = function (e) {\n _this.props.onResizeStart(e, _this.props.direction);\n };\n _this.onTouchStart = function (e) {\n _this.props.onResizeStart(e, _this.props.direction);\n };\n return _this;\n }\n Resizer.prototype.render = function () {\n return (React.createElement(\"div\", { className: this.props.className || '', style: __assign(__assign({ position: 'absolute', userSelect: 'none' }, styles[this.props.direction]), (this.props.replaceStyles || {})), onMouseDown: this.onMouseDown, onTouchStart: this.onTouchStart }, this.props.children));\n };\n return Resizer;\n}(React.PureComponent));\nexport { Resizer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { Resizer } from './resizer';\nimport memoize from 'fast-memoize';\nvar DEFAULT_SIZE = {\n width: 'auto',\n height: 'auto',\n};\nvar clamp = memoize(function (n, min, max) { return Math.max(Math.min(n, max), min); });\nvar snap = memoize(function (n, size) { return Math.round(n / size) * size; });\nvar hasDirection = memoize(function (dir, target) {\n return new RegExp(dir, 'i').test(target);\n});\n// INFO: In case of window is a Proxy and does not porxy Events correctly, use isTouchEvent & isMouseEvent to distinguish event type instead of `instanceof`.\nvar isTouchEvent = function (event) {\n return Boolean(event.touches && event.touches.length);\n};\nvar isMouseEvent = function (event) {\n return Boolean((event.clientX || event.clientX === 0) &&\n (event.clientY || event.clientY === 0));\n};\nvar findClosestSnap = memoize(function (n, snapArray, snapGap) {\n if (snapGap === void 0) { snapGap = 0; }\n var closestGapIndex = snapArray.reduce(function (prev, curr, index) { return (Math.abs(curr - n) < Math.abs(snapArray[prev] - n) ? index : prev); }, 0);\n var gap = Math.abs(snapArray[closestGapIndex] - n);\n return snapGap === 0 || gap < snapGap ? snapArray[closestGapIndex] : n;\n});\nvar endsWith = memoize(function (str, searchStr) {\n return str.substr(str.length - searchStr.length, searchStr.length) === searchStr;\n});\nvar getStringSize = memoize(function (n) {\n n = n.toString();\n if (n === 'auto') {\n return n;\n }\n if (endsWith(n, 'px')) {\n return n;\n }\n if (endsWith(n, '%')) {\n return n;\n }\n if (endsWith(n, 'vh')) {\n return n;\n }\n if (endsWith(n, 'vw')) {\n return n;\n }\n if (endsWith(n, 'vmax')) {\n return n;\n }\n if (endsWith(n, 'vmin')) {\n return n;\n }\n return n + \"px\";\n});\nvar getPixelSize = function (size, parentSize, innerWidth, innerHeight) {\n if (size && typeof size === 'string') {\n if (endsWith(size, 'px')) {\n return Number(size.replace('px', ''));\n }\n if (endsWith(size, '%')) {\n var ratio = Number(size.replace('%', '')) / 100;\n return parentSize * ratio;\n }\n if (endsWith(size, 'vw')) {\n var ratio = Number(size.replace('vw', '')) / 100;\n return innerWidth * ratio;\n }\n if (endsWith(size, 'vh')) {\n var ratio = Number(size.replace('vh', '')) / 100;\n return innerHeight * ratio;\n }\n }\n return size;\n};\nvar calculateNewMax = memoize(function (parentSize, innerWidth, innerHeight, maxWidth, maxHeight, minWidth, minHeight) {\n maxWidth = getPixelSize(maxWidth, parentSize.width, innerWidth, innerHeight);\n maxHeight = getPixelSize(maxHeight, parentSize.height, innerWidth, innerHeight);\n minWidth = getPixelSize(minWidth, parentSize.width, innerWidth, innerHeight);\n minHeight = getPixelSize(minHeight, parentSize.height, innerWidth, innerHeight);\n return {\n maxWidth: typeof maxWidth === 'undefined' ? undefined : Number(maxWidth),\n maxHeight: typeof maxHeight === 'undefined' ? undefined : Number(maxHeight),\n minWidth: typeof minWidth === 'undefined' ? undefined : Number(minWidth),\n minHeight: typeof minHeight === 'undefined' ? undefined : Number(minHeight),\n };\n});\nvar definedProps = [\n 'as',\n 'style',\n 'className',\n 'grid',\n 'snap',\n 'bounds',\n 'boundsByDirection',\n 'size',\n 'defaultSize',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'lockAspectRatio',\n 'lockAspectRatioExtraWidth',\n 'lockAspectRatioExtraHeight',\n 'enable',\n 'handleStyles',\n 'handleClasses',\n 'handleWrapperStyle',\n 'handleWrapperClass',\n 'children',\n 'onResizeStart',\n 'onResize',\n 'onResizeStop',\n 'handleComponent',\n 'scale',\n 'resizeRatio',\n 'snapGap',\n];\n// HACK: This class is used to calculate % size.\nvar baseClassName = '__resizable_base__';\nvar Resizable = /** @class */ (function (_super) {\n __extends(Resizable, _super);\n function Resizable(props) {\n var _this = _super.call(this, props) || this;\n _this.ratio = 1;\n _this.resizable = null;\n // For parent boundary\n _this.parentLeft = 0;\n _this.parentTop = 0;\n // For boundary\n _this.resizableLeft = 0;\n _this.resizableRight = 0;\n _this.resizableTop = 0;\n _this.resizableBottom = 0;\n // For target boundary\n _this.targetLeft = 0;\n _this.targetTop = 0;\n _this.appendBase = function () {\n if (!_this.resizable || !_this.window) {\n return null;\n }\n var parent = _this.parentNode;\n if (!parent) {\n return null;\n }\n var element = _this.window.document.createElement('div');\n element.style.width = '100%';\n element.style.height = '100%';\n element.style.position = 'absolute';\n element.style.transform = 'scale(0, 0)';\n element.style.left = '0';\n element.style.flex = '0';\n if (element.classList) {\n element.classList.add(baseClassName);\n }\n else {\n element.className += baseClassName;\n }\n parent.appendChild(element);\n return element;\n };\n _this.removeBase = function (base) {\n var parent = _this.parentNode;\n if (!parent) {\n return;\n }\n parent.removeChild(base);\n };\n _this.ref = function (c) {\n if (c) {\n _this.resizable = c;\n }\n };\n _this.state = {\n isResizing: false,\n width: typeof (_this.propsSize && _this.propsSize.width) === 'undefined'\n ? 'auto'\n : _this.propsSize && _this.propsSize.width,\n height: typeof (_this.propsSize && _this.propsSize.height) === 'undefined'\n ? 'auto'\n : _this.propsSize && _this.propsSize.height,\n direction: 'right',\n original: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n },\n backgroundStyle: {\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0)',\n cursor: 'auto',\n opacity: 0,\n position: 'fixed',\n zIndex: 9999,\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n },\n flexBasis: undefined,\n };\n _this.onResizeStart = _this.onResizeStart.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.onMouseUp = _this.onMouseUp.bind(_this);\n return _this;\n }\n Object.defineProperty(Resizable.prototype, \"parentNode\", {\n get: function () {\n if (!this.resizable) {\n return null;\n }\n return this.resizable.parentNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"window\", {\n get: function () {\n if (!this.resizable) {\n return null;\n }\n if (!this.resizable.ownerDocument) {\n return null;\n }\n return this.resizable.ownerDocument.defaultView;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"propsSize\", {\n get: function () {\n return this.props.size || this.props.defaultSize || DEFAULT_SIZE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"size\", {\n get: function () {\n var width = 0;\n var height = 0;\n if (this.resizable && this.window) {\n var orgWidth = this.resizable.offsetWidth;\n var orgHeight = this.resizable.offsetHeight;\n // HACK: Set position `relative` to get parent size.\n // This is because when re-resizable set `absolute`, I can not get base width correctly.\n var orgPosition = this.resizable.style.position;\n if (orgPosition !== 'relative') {\n this.resizable.style.position = 'relative';\n }\n // INFO: Use original width or height if set auto.\n width = this.resizable.style.width !== 'auto' ? this.resizable.offsetWidth : orgWidth;\n height = this.resizable.style.height !== 'auto' ? this.resizable.offsetHeight : orgHeight;\n // Restore original position\n this.resizable.style.position = orgPosition;\n }\n return { width: width, height: height };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"sizeStyle\", {\n get: function () {\n var _this = this;\n var size = this.props.size;\n var getSize = function (key) {\n if (typeof _this.state[key] === 'undefined' || _this.state[key] === 'auto') {\n return 'auto';\n }\n if (_this.propsSize && _this.propsSize[key] && endsWith(_this.propsSize[key].toString(), '%')) {\n if (endsWith(_this.state[key].toString(), '%')) {\n return _this.state[key].toString();\n }\n var parentSize = _this.getParentSize();\n var value = Number(_this.state[key].toString().replace('px', ''));\n var percent = (value / parentSize[key]) * 100;\n return percent + \"%\";\n }\n return getStringSize(_this.state[key]);\n };\n var width = size && typeof size.width !== 'undefined' && !this.state.isResizing\n ? getStringSize(size.width)\n : getSize('width');\n var height = size && typeof size.height !== 'undefined' && !this.state.isResizing\n ? getStringSize(size.height)\n : getSize('height');\n return { width: width, height: height };\n },\n enumerable: false,\n configurable: true\n });\n Resizable.prototype.getParentSize = function () {\n if (!this.parentNode) {\n if (!this.window) {\n return { width: 0, height: 0 };\n }\n return { width: this.window.innerWidth, height: this.window.innerHeight };\n }\n var base = this.appendBase();\n if (!base) {\n return { width: 0, height: 0 };\n }\n // INFO: To calculate parent width with flex layout\n var wrapChanged = false;\n var wrap = this.parentNode.style.flexWrap;\n if (wrap !== 'wrap') {\n wrapChanged = true;\n this.parentNode.style.flexWrap = 'wrap';\n // HACK: Use relative to get parent padding size\n }\n base.style.position = 'relative';\n base.style.minWidth = '100%';\n var size = {\n width: base.offsetWidth,\n height: base.offsetHeight,\n };\n if (wrapChanged) {\n this.parentNode.style.flexWrap = wrap;\n }\n this.removeBase(base);\n return size;\n };\n Resizable.prototype.bindEvents = function () {\n if (this.window) {\n this.window.addEventListener('mouseup', this.onMouseUp);\n this.window.addEventListener('mousemove', this.onMouseMove);\n this.window.addEventListener('mouseleave', this.onMouseUp);\n this.window.addEventListener('touchmove', this.onMouseMove, {\n capture: true,\n passive: false,\n });\n this.window.addEventListener('touchend', this.onMouseUp);\n }\n };\n Resizable.prototype.unbindEvents = function () {\n if (this.window) {\n this.window.removeEventListener('mouseup', this.onMouseUp);\n this.window.removeEventListener('mousemove', this.onMouseMove);\n this.window.removeEventListener('mouseleave', this.onMouseUp);\n this.window.removeEventListener('touchmove', this.onMouseMove, true);\n this.window.removeEventListener('touchend', this.onMouseUp);\n }\n };\n Resizable.prototype.componentDidMount = function () {\n if (!this.resizable || !this.window) {\n return;\n }\n var computedStyle = this.window.getComputedStyle(this.resizable);\n this.setState({\n width: this.state.width || this.size.width,\n height: this.state.height || this.size.height,\n flexBasis: computedStyle.flexBasis !== 'auto' ? computedStyle.flexBasis : undefined,\n });\n };\n Resizable.prototype.componentWillUnmount = function () {\n if (this.window) {\n this.unbindEvents();\n }\n };\n Resizable.prototype.createSizeForCssProperty = function (newSize, kind) {\n var propsSize = this.propsSize && this.propsSize[kind];\n return this.state[kind] === 'auto' &&\n this.state.original[kind] === newSize &&\n (typeof propsSize === 'undefined' || propsSize === 'auto')\n ? 'auto'\n : newSize;\n };\n Resizable.prototype.calculateNewMaxFromBoundary = function (maxWidth, maxHeight) {\n var boundsByDirection = this.props.boundsByDirection;\n var direction = this.state.direction;\n var widthByDirection = boundsByDirection && hasDirection('left', direction);\n var heightByDirection = boundsByDirection && hasDirection('top', direction);\n var boundWidth;\n var boundHeight;\n if (this.props.bounds === 'parent') {\n var parent_1 = this.parentNode;\n if (parent_1) {\n boundWidth = widthByDirection\n ? this.resizableRight - this.parentLeft\n : parent_1.offsetWidth + (this.parentLeft - this.resizableLeft);\n boundHeight = heightByDirection\n ? this.resizableBottom - this.parentTop\n : parent_1.offsetHeight + (this.parentTop - this.resizableTop);\n }\n }\n else if (this.props.bounds === 'window') {\n if (this.window) {\n boundWidth = widthByDirection ? this.resizableRight : this.window.innerWidth - this.resizableLeft;\n boundHeight = heightByDirection ? this.resizableBottom : this.window.innerHeight - this.resizableTop;\n }\n }\n else if (this.props.bounds) {\n boundWidth = widthByDirection\n ? this.resizableRight - this.targetLeft\n : this.props.bounds.offsetWidth + (this.targetLeft - this.resizableLeft);\n boundHeight = heightByDirection\n ? this.resizableBottom - this.targetTop\n : this.props.bounds.offsetHeight + (this.targetTop - this.resizableTop);\n }\n if (boundWidth && Number.isFinite(boundWidth)) {\n maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;\n }\n if (boundHeight && Number.isFinite(boundHeight)) {\n maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;\n }\n return { maxWidth: maxWidth, maxHeight: maxHeight };\n };\n Resizable.prototype.calculateNewSizeFromDirection = function (clientX, clientY) {\n var scale = this.props.scale || 1;\n var resizeRatio = this.props.resizeRatio || 1;\n var _a = this.state, direction = _a.direction, original = _a.original;\n var _b = this.props, lockAspectRatio = _b.lockAspectRatio, lockAspectRatioExtraHeight = _b.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _b.lockAspectRatioExtraWidth;\n var newWidth = original.width;\n var newHeight = original.height;\n var extraHeight = lockAspectRatioExtraHeight || 0;\n var extraWidth = lockAspectRatioExtraWidth || 0;\n if (hasDirection('right', direction)) {\n newWidth = original.width + ((clientX - original.x) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n }\n }\n if (hasDirection('left', direction)) {\n newWidth = original.width - ((clientX - original.x) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n }\n }\n if (hasDirection('bottom', direction)) {\n newHeight = original.height + ((clientY - original.y) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n }\n }\n if (hasDirection('top', direction)) {\n newHeight = original.height - ((clientY - original.y) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n }\n }\n return { newWidth: newWidth, newHeight: newHeight };\n };\n Resizable.prototype.calculateNewSizeFromAspectRatio = function (newWidth, newHeight, max, min) {\n var _a = this.props, lockAspectRatio = _a.lockAspectRatio, lockAspectRatioExtraHeight = _a.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _a.lockAspectRatioExtraWidth;\n var computedMinWidth = typeof min.width === 'undefined' ? 10 : min.width;\n var computedMaxWidth = typeof max.width === 'undefined' || max.width < 0 ? newWidth : max.width;\n var computedMinHeight = typeof min.height === 'undefined' ? 10 : min.height;\n var computedMaxHeight = typeof max.height === 'undefined' || max.height < 0 ? newHeight : max.height;\n var extraHeight = lockAspectRatioExtraHeight || 0;\n var extraWidth = lockAspectRatioExtraWidth || 0;\n if (lockAspectRatio) {\n var extraMinWidth = (computedMinHeight - extraHeight) * this.ratio + extraWidth;\n var extraMaxWidth = (computedMaxHeight - extraHeight) * this.ratio + extraWidth;\n var extraMinHeight = (computedMinWidth - extraWidth) / this.ratio + extraHeight;\n var extraMaxHeight = (computedMaxWidth - extraWidth) / this.ratio + extraHeight;\n var lockedMinWidth = Math.max(computedMinWidth, extraMinWidth);\n var lockedMaxWidth = Math.min(computedMaxWidth, extraMaxWidth);\n var lockedMinHeight = Math.max(computedMinHeight, extraMinHeight);\n var lockedMaxHeight = Math.min(computedMaxHeight, extraMaxHeight);\n newWidth = clamp(newWidth, lockedMinWidth, lockedMaxWidth);\n newHeight = clamp(newHeight, lockedMinHeight, lockedMaxHeight);\n }\n else {\n newWidth = clamp(newWidth, computedMinWidth, computedMaxWidth);\n newHeight = clamp(newHeight, computedMinHeight, computedMaxHeight);\n }\n return { newWidth: newWidth, newHeight: newHeight };\n };\n Resizable.prototype.setBoundingClientRect = function () {\n // For parent boundary\n if (this.props.bounds === 'parent') {\n var parent_2 = this.parentNode;\n if (parent_2) {\n var parentRect = parent_2.getBoundingClientRect();\n this.parentLeft = parentRect.left;\n this.parentTop = parentRect.top;\n }\n }\n // For target(html element) boundary\n if (this.props.bounds && typeof this.props.bounds !== 'string') {\n var targetRect = this.props.bounds.getBoundingClientRect();\n this.targetLeft = targetRect.left;\n this.targetTop = targetRect.top;\n }\n // For boundary\n if (this.resizable) {\n var _a = this.resizable.getBoundingClientRect(), left = _a.left, top_1 = _a.top, right = _a.right, bottom = _a.bottom;\n this.resizableLeft = left;\n this.resizableRight = right;\n this.resizableTop = top_1;\n this.resizableBottom = bottom;\n }\n };\n Resizable.prototype.onResizeStart = function (event, direction) {\n if (!this.resizable || !this.window) {\n return;\n }\n var clientX = 0;\n var clientY = 0;\n if (event.nativeEvent && isMouseEvent(event.nativeEvent)) {\n clientX = event.nativeEvent.clientX;\n clientY = event.nativeEvent.clientY;\n // When user click with right button the resize is stuck in resizing mode\n // until users clicks again, dont continue if right click is used.\n // HACK: MouseEvent does not have `which` from flow-bin v0.68.\n if (event.nativeEvent.which === 3) {\n return;\n }\n }\n else if (event.nativeEvent && isTouchEvent(event.nativeEvent)) {\n clientX = event.nativeEvent.touches[0].clientX;\n clientY = event.nativeEvent.touches[0].clientY;\n }\n if (this.props.onResizeStart) {\n if (this.resizable) {\n var startResize = this.props.onResizeStart(event, direction, this.resizable);\n if (startResize === false) {\n return;\n }\n }\n }\n // Fix #168\n if (this.props.size) {\n if (typeof this.props.size.height !== 'undefined' && this.props.size.height !== this.state.height) {\n this.setState({ height: this.props.size.height });\n }\n if (typeof this.props.size.width !== 'undefined' && this.props.size.width !== this.state.width) {\n this.setState({ width: this.props.size.width });\n }\n }\n // For lockAspectRatio case\n this.ratio =\n typeof this.props.lockAspectRatio === 'number' ? this.props.lockAspectRatio : this.size.width / this.size.height;\n var flexBasis;\n var computedStyle = this.window.getComputedStyle(this.resizable);\n if (computedStyle.flexBasis !== 'auto') {\n var parent_3 = this.parentNode;\n if (parent_3) {\n var dir = this.window.getComputedStyle(parent_3).flexDirection;\n this.flexDir = dir.startsWith('row') ? 'row' : 'column';\n flexBasis = computedStyle.flexBasis;\n }\n }\n // For boundary\n this.setBoundingClientRect();\n this.bindEvents();\n var state = {\n original: {\n x: clientX,\n y: clientY,\n width: this.size.width,\n height: this.size.height,\n },\n isResizing: true,\n backgroundStyle: __assign(__assign({}, this.state.backgroundStyle), { cursor: this.window.getComputedStyle(event.target).cursor || 'auto' }),\n direction: direction,\n flexBasis: flexBasis,\n };\n this.setState(state);\n };\n Resizable.prototype.onMouseMove = function (event) {\n if (!this.state.isResizing || !this.resizable || !this.window) {\n return;\n }\n if (this.window.TouchEvent && isTouchEvent(event)) {\n try {\n event.preventDefault();\n event.stopPropagation();\n }\n catch (e) {\n // Ignore on fail\n }\n }\n var _a = this.props, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, minWidth = _a.minWidth, minHeight = _a.minHeight;\n var clientX = isTouchEvent(event) ? event.touches[0].clientX : event.clientX;\n var clientY = isTouchEvent(event) ? event.touches[0].clientY : event.clientY;\n var _b = this.state, direction = _b.direction, original = _b.original, width = _b.width, height = _b.height;\n var parentSize = this.getParentSize();\n var max = calculateNewMax(parentSize, this.window.innerWidth, this.window.innerHeight, maxWidth, maxHeight, minWidth, minHeight);\n maxWidth = max.maxWidth;\n maxHeight = max.maxHeight;\n minWidth = max.minWidth;\n minHeight = max.minHeight;\n // Calculate new size\n var _c = this.calculateNewSizeFromDirection(clientX, clientY), newHeight = _c.newHeight, newWidth = _c.newWidth;\n // Calculate max size from boundary settings\n var boundaryMax = this.calculateNewMaxFromBoundary(maxWidth, maxHeight);\n // Calculate new size from aspect ratio\n var newSize = this.calculateNewSizeFromAspectRatio(newWidth, newHeight, { width: boundaryMax.maxWidth, height: boundaryMax.maxHeight }, { width: minWidth, height: minHeight });\n newWidth = newSize.newWidth;\n newHeight = newSize.newHeight;\n if (this.props.grid) {\n var newGridWidth = snap(newWidth, this.props.grid[0]);\n var newGridHeight = snap(newHeight, this.props.grid[1]);\n var gap = this.props.snapGap || 0;\n newWidth = gap === 0 || Math.abs(newGridWidth - newWidth) <= gap ? newGridWidth : newWidth;\n newHeight = gap === 0 || Math.abs(newGridHeight - newHeight) <= gap ? newGridHeight : newHeight;\n }\n if (this.props.snap && this.props.snap.x) {\n newWidth = findClosestSnap(newWidth, this.props.snap.x, this.props.snapGap);\n }\n if (this.props.snap && this.props.snap.y) {\n newHeight = findClosestSnap(newHeight, this.props.snap.y, this.props.snapGap);\n }\n var delta = {\n width: newWidth - original.width,\n height: newHeight - original.height,\n };\n if (width && typeof width === 'string') {\n if (endsWith(width, '%')) {\n var percent = (newWidth / parentSize.width) * 100;\n newWidth = percent + \"%\";\n }\n else if (endsWith(width, 'vw')) {\n var vw = (newWidth / this.window.innerWidth) * 100;\n newWidth = vw + \"vw\";\n }\n else if (endsWith(width, 'vh')) {\n var vh = (newWidth / this.window.innerHeight) * 100;\n newWidth = vh + \"vh\";\n }\n }\n if (height && typeof height === 'string') {\n if (endsWith(height, '%')) {\n var percent = (newHeight / parentSize.height) * 100;\n newHeight = percent + \"%\";\n }\n else if (endsWith(height, 'vw')) {\n var vw = (newHeight / this.window.innerWidth) * 100;\n newHeight = vw + \"vw\";\n }\n else if (endsWith(height, 'vh')) {\n var vh = (newHeight / this.window.innerHeight) * 100;\n newHeight = vh + \"vh\";\n }\n }\n var newState = {\n width: this.createSizeForCssProperty(newWidth, 'width'),\n height: this.createSizeForCssProperty(newHeight, 'height'),\n };\n if (this.flexDir === 'row') {\n newState.flexBasis = newState.width;\n }\n else if (this.flexDir === 'column') {\n newState.flexBasis = newState.height;\n }\n this.setState(newState);\n if (this.props.onResize) {\n this.props.onResize(event, direction, this.resizable, delta);\n }\n };\n Resizable.prototype.onMouseUp = function (event) {\n var _a = this.state, isResizing = _a.isResizing, direction = _a.direction, original = _a.original;\n if (!isResizing || !this.resizable) {\n return;\n }\n var delta = {\n width: this.size.width - original.width,\n height: this.size.height - original.height,\n };\n if (this.props.onResizeStop) {\n this.props.onResizeStop(event, direction, this.resizable, delta);\n }\n if (this.props.size) {\n this.setState(this.props.size);\n }\n this.unbindEvents();\n this.setState({\n isResizing: false,\n backgroundStyle: __assign(__assign({}, this.state.backgroundStyle), { cursor: 'auto' }),\n });\n };\n Resizable.prototype.updateSize = function (size) {\n this.setState({ width: size.width, height: size.height });\n };\n Resizable.prototype.renderResizer = function () {\n var _this = this;\n var _a = this.props, enable = _a.enable, handleStyles = _a.handleStyles, handleClasses = _a.handleClasses, handleWrapperStyle = _a.handleWrapperStyle, handleWrapperClass = _a.handleWrapperClass, handleComponent = _a.handleComponent;\n if (!enable) {\n return null;\n }\n var resizers = Object.keys(enable).map(function (dir) {\n if (enable[dir] !== false) {\n return (React.createElement(Resizer, { key: dir, direction: dir, onResizeStart: _this.onResizeStart, replaceStyles: handleStyles && handleStyles[dir], className: handleClasses && handleClasses[dir] }, handleComponent && handleComponent[dir] ? handleComponent[dir] : null));\n }\n return null;\n });\n // #93 Wrap the resize box in span (will not break 100% width/height)\n return (React.createElement(\"div\", { className: handleWrapperClass, style: handleWrapperStyle }, resizers));\n };\n Resizable.prototype.render = function () {\n var _this = this;\n var extendsProps = Object.keys(this.props).reduce(function (acc, key) {\n if (definedProps.indexOf(key) !== -1) {\n return acc;\n }\n acc[key] = _this.props[key];\n return acc;\n }, {});\n var style = __assign(__assign(__assign({ position: 'relative', userSelect: this.state.isResizing ? 'none' : 'auto' }, this.props.style), this.sizeStyle), { maxWidth: this.props.maxWidth, maxHeight: this.props.maxHeight, minWidth: this.props.minWidth, minHeight: this.props.minHeight, boxSizing: 'border-box', flexShrink: 0 });\n if (this.state.flexBasis) {\n style.flexBasis = this.state.flexBasis;\n }\n var Wrapper = this.props.as || 'div';\n return (React.createElement(Wrapper, __assign({ ref: this.ref, style: style, className: this.props.className }, extendsProps),\n this.state.isResizing && React.createElement(\"div\", { style: this.state.backgroundStyle }),\n this.props.children,\n this.renderResizer()));\n };\n Resizable.defaultProps = {\n as: 'div',\n onResizeStart: function () { },\n onResize: function () { },\n onResizeStop: function () { },\n enable: {\n top: true,\n right: true,\n bottom: true,\n left: true,\n topRight: true,\n bottomRight: true,\n bottomLeft: true,\n topLeft: true,\n },\n style: {},\n grid: [1, 1],\n lockAspectRatio: false,\n lockAspectRatioExtraWidth: 0,\n lockAspectRatioExtraHeight: 0,\n scale: 1,\n resizeRatio: 1,\n snapGap: 0,\n };\n return Resizable;\n}(React.PureComponent));\nexport { Resizable };\n","import { createElement, PureComponent } from 'react';\nimport DraggableRoot from 'react-draggable';\nimport { Resizable } from 're-resizable';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nvar Draggable = DraggableRoot;\r\nvar resizableStyle = {\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: \"inline-block\",\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n};\r\nvar getEnableResizingByFlag = function (flag) { return ({\r\n bottom: flag,\r\n bottomLeft: flag,\r\n bottomRight: flag,\r\n left: flag,\r\n right: flag,\r\n top: flag,\r\n topLeft: flag,\r\n topRight: flag,\r\n}); };\r\nvar Rnd = /** @class */ (function (_super) {\r\n __extends(Rnd, _super);\r\n function Rnd(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.resizing = false;\r\n _this.resizingPosition = { x: 0, y: 0 };\r\n _this.offsetFromParent = { left: 0, top: 0 };\r\n _this.resizableElement = { current: null };\r\n _this.refDraggable = function (c) {\r\n if (!c)\r\n return;\r\n _this.draggable = c;\r\n };\r\n _this.refResizable = function (c) {\r\n if (!c)\r\n return;\r\n _this.resizable = c;\r\n _this.resizableElement.current = c.resizable;\r\n };\r\n _this.state = {\r\n original: {\r\n x: 0,\r\n y: 0,\r\n },\r\n bounds: {\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n },\r\n maxWidth: props.maxWidth,\r\n maxHeight: props.maxHeight,\r\n };\r\n _this.onResizeStart = _this.onResizeStart.bind(_this);\r\n _this.onResize = _this.onResize.bind(_this);\r\n _this.onResizeStop = _this.onResizeStop.bind(_this);\r\n _this.onDragStart = _this.onDragStart.bind(_this);\r\n _this.onDrag = _this.onDrag.bind(_this);\r\n _this.onDragStop = _this.onDragStop.bind(_this);\r\n _this.getMaxSizesFromProps = _this.getMaxSizesFromProps.bind(_this);\r\n return _this;\r\n }\r\n Rnd.prototype.componentDidMount = function () {\r\n this.updateOffsetFromParent();\r\n var _a = this.offsetFromParent, left = _a.left, top = _a.top;\r\n var _b = this.getDraggablePosition(), x = _b.x, y = _b.y;\r\n this.draggable.setState({\r\n x: x - left,\r\n y: y - top,\r\n });\r\n // HACK: Apply position adjustment\r\n this.forceUpdate();\r\n };\r\n // HACK: To get `react-draggable` state x and y.\r\n Rnd.prototype.getDraggablePosition = function () {\r\n var _a = this.draggable.state, x = _a.x, y = _a.y;\r\n return { x: x, y: y };\r\n };\r\n Rnd.prototype.getParent = function () {\r\n return this.resizable && this.resizable.parentNode;\r\n };\r\n Rnd.prototype.getParentSize = function () {\r\n return this.resizable.getParentSize();\r\n };\r\n Rnd.prototype.getMaxSizesFromProps = function () {\r\n var maxWidth = typeof this.props.maxWidth === \"undefined\" ? Number.MAX_SAFE_INTEGER : this.props.maxWidth;\r\n var maxHeight = typeof this.props.maxHeight === \"undefined\" ? Number.MAX_SAFE_INTEGER : this.props.maxHeight;\r\n return { maxWidth: maxWidth, maxHeight: maxHeight };\r\n };\r\n Rnd.prototype.getSelfElement = function () {\r\n return this.resizable && this.resizable.resizable;\r\n };\r\n Rnd.prototype.getOffsetHeight = function (boundary) {\r\n var scale = this.props.scale;\r\n switch (this.props.bounds) {\r\n case \"window\":\r\n return window.innerHeight / scale;\r\n case \"body\":\r\n return document.body.offsetHeight / scale;\r\n default:\r\n return boundary.offsetHeight;\r\n }\r\n };\r\n Rnd.prototype.getOffsetWidth = function (boundary) {\r\n var scale = this.props.scale;\r\n switch (this.props.bounds) {\r\n case \"window\":\r\n return window.innerWidth / scale;\r\n case \"body\":\r\n return document.body.offsetWidth / scale;\r\n default:\r\n return boundary.offsetWidth;\r\n }\r\n };\r\n Rnd.prototype.onDragStart = function (e, data) {\r\n if (this.props.onDragStart) {\r\n this.props.onDragStart(e, data);\r\n }\r\n if (!this.props.bounds)\r\n return;\r\n var parent = this.getParent();\r\n var scale = this.props.scale;\r\n var boundary;\r\n if (this.props.bounds === \"parent\") {\r\n boundary = parent;\r\n }\r\n else if (this.props.bounds === \"body\") {\r\n var parentRect_1 = parent.getBoundingClientRect();\r\n var parentLeft_1 = parentRect_1.left;\r\n var parentTop_1 = parentRect_1.top;\r\n var bodyRect = document.body.getBoundingClientRect();\r\n var left_1 = -(parentLeft_1 - parent.offsetLeft * scale - bodyRect.left) / scale;\r\n var top_1 = -(parentTop_1 - parent.offsetTop * scale - bodyRect.top) / scale;\r\n var right = (document.body.offsetWidth - this.resizable.size.width * scale) / scale + left_1;\r\n var bottom = (document.body.offsetHeight - this.resizable.size.height * scale) / scale + top_1;\r\n return this.setState({ bounds: { top: top_1, right: right, bottom: bottom, left: left_1 } });\r\n }\r\n else if (this.props.bounds === \"window\") {\r\n if (!this.resizable)\r\n return;\r\n var parentRect_2 = parent.getBoundingClientRect();\r\n var parentLeft_2 = parentRect_2.left;\r\n var parentTop_2 = parentRect_2.top;\r\n var left_2 = -(parentLeft_2 - parent.offsetLeft * scale) / scale;\r\n var top_2 = -(parentTop_2 - parent.offsetTop * scale) / scale;\r\n var right = (window.innerWidth - this.resizable.size.width * scale) / scale + left_2;\r\n var bottom = (window.innerHeight - this.resizable.size.height * scale) / scale + top_2;\r\n return this.setState({ bounds: { top: top_2, right: right, bottom: bottom, left: left_2 } });\r\n }\r\n else {\r\n boundary = document.querySelector(this.props.bounds);\r\n }\r\n if (!(boundary instanceof HTMLElement) || !(parent instanceof HTMLElement)) {\r\n return;\r\n }\r\n var boundaryRect = boundary.getBoundingClientRect();\r\n var boundaryLeft = boundaryRect.left;\r\n var boundaryTop = boundaryRect.top;\r\n var parentRect = parent.getBoundingClientRect();\r\n var parentLeft = parentRect.left;\r\n var parentTop = parentRect.top;\r\n var left = (boundaryLeft - parentLeft) / scale;\r\n var top = boundaryTop - parentTop;\r\n if (!this.resizable)\r\n return;\r\n this.updateOffsetFromParent();\r\n var offset = this.offsetFromParent;\r\n this.setState({\r\n bounds: {\r\n top: top - offset.top,\r\n right: left + (boundary.offsetWidth - this.resizable.size.width) - offset.left / scale,\r\n bottom: top + (boundary.offsetHeight - this.resizable.size.height) - offset.top,\r\n left: left - offset.left / scale,\r\n },\r\n });\r\n };\r\n Rnd.prototype.onDrag = function (e, data) {\r\n if (this.props.onDrag) {\r\n var offset = this.offsetFromParent;\r\n return this.props.onDrag(e, __assign(__assign({}, data), { x: data.x - offset.left, y: data.y - offset.top }));\r\n }\r\n };\r\n Rnd.prototype.onDragStop = function (e, data) {\r\n if (this.props.onDragStop) {\r\n var _a = this.offsetFromParent, left = _a.left, top_3 = _a.top;\r\n return this.props.onDragStop(e, __assign(__assign({}, data), { x: data.x + left, y: data.y + top_3 }));\r\n }\r\n };\r\n Rnd.prototype.onResizeStart = function (e, dir, elementRef) {\r\n e.stopPropagation();\r\n this.resizing = true;\r\n var scale = this.props.scale;\r\n var offset = this.offsetFromParent;\r\n var pos = this.getDraggablePosition();\r\n this.resizingPosition = { x: pos.x + offset.left, y: pos.y + offset.top };\r\n this.setState({\r\n original: pos,\r\n });\r\n if (this.props.bounds) {\r\n var parent_1 = this.getParent();\r\n var boundary = void 0;\r\n if (this.props.bounds === \"parent\") {\r\n boundary = parent_1;\r\n }\r\n else if (this.props.bounds === \"body\") {\r\n boundary = document.body;\r\n }\r\n else if (this.props.bounds === \"window\") {\r\n boundary = window;\r\n }\r\n else {\r\n boundary = document.querySelector(this.props.bounds);\r\n }\r\n var self_1 = this.getSelfElement();\r\n if (self_1 instanceof Element &&\r\n (boundary instanceof HTMLElement || boundary === window) &&\r\n parent_1 instanceof HTMLElement) {\r\n var _a = this.getMaxSizesFromProps(), maxWidth = _a.maxWidth, maxHeight = _a.maxHeight;\r\n var parentSize = this.getParentSize();\r\n if (maxWidth && typeof maxWidth === \"string\") {\r\n if (maxWidth.endsWith(\"%\")) {\r\n var ratio = Number(maxWidth.replace(\"%\", \"\")) / 100;\r\n maxWidth = parentSize.width * ratio;\r\n }\r\n else if (maxWidth.endsWith(\"px\")) {\r\n maxWidth = Number(maxWidth.replace(\"px\", \"\"));\r\n }\r\n }\r\n if (maxHeight && typeof maxHeight === \"string\") {\r\n if (maxHeight.endsWith(\"%\")) {\r\n var ratio = Number(maxHeight.replace(\"%\", \"\")) / 100;\r\n maxHeight = parentSize.width * ratio;\r\n }\r\n else if (maxHeight.endsWith(\"px\")) {\r\n maxHeight = Number(maxHeight.replace(\"px\", \"\"));\r\n }\r\n }\r\n var selfRect = self_1.getBoundingClientRect();\r\n var selfLeft = selfRect.left;\r\n var selfTop = selfRect.top;\r\n var boundaryRect = this.props.bounds === \"window\" ? { left: 0, top: 0 } : boundary.getBoundingClientRect();\r\n var boundaryLeft = boundaryRect.left;\r\n var boundaryTop = boundaryRect.top;\r\n var offsetWidth = this.getOffsetWidth(boundary);\r\n var offsetHeight = this.getOffsetHeight(boundary);\r\n var hasLeft = dir.toLowerCase().endsWith(\"left\");\r\n var hasRight = dir.toLowerCase().endsWith(\"right\");\r\n var hasTop = dir.startsWith(\"top\");\r\n var hasBottom = dir.startsWith(\"bottom\");\r\n if (hasLeft && this.resizable) {\r\n var max = (selfLeft - boundaryLeft) / scale + this.resizable.size.width;\r\n this.setState({ maxWidth: max > Number(maxWidth) ? maxWidth : max });\r\n }\r\n // INFO: To set bounds in `lock aspect ratio with bounds` case. See also that story.\r\n if (hasRight || (this.props.lockAspectRatio && !hasLeft)) {\r\n var max = offsetWidth + (boundaryLeft - selfLeft) / scale;\r\n this.setState({ maxWidth: max > Number(maxWidth) ? maxWidth : max });\r\n }\r\n if (hasTop && this.resizable) {\r\n var max = (selfTop - boundaryTop) / scale + this.resizable.size.height;\r\n this.setState({\r\n maxHeight: max > Number(maxHeight) ? maxHeight : max,\r\n });\r\n }\r\n // INFO: To set bounds in `lock aspect ratio with bounds` case. See also that story.\r\n if (hasBottom || (this.props.lockAspectRatio && !hasTop)) {\r\n var max = offsetHeight + (boundaryTop - selfTop) / scale;\r\n this.setState({\r\n maxHeight: max > Number(maxHeight) ? maxHeight : max,\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n this.setState({\r\n maxWidth: this.props.maxWidth,\r\n maxHeight: this.props.maxHeight,\r\n });\r\n }\r\n if (this.props.onResizeStart) {\r\n this.props.onResizeStart(e, dir, elementRef);\r\n }\r\n };\r\n Rnd.prototype.onResize = function (e, direction, elementRef, delta) {\r\n // INFO: Apply x and y position adjustments caused by resizing to draggable\r\n var newPos = { x: this.state.original.x, y: this.state.original.y };\r\n var left = -delta.width;\r\n var top = -delta.height;\r\n var directions = [\"top\", \"left\", \"topLeft\", \"bottomLeft\", \"topRight\"];\r\n if (directions.indexOf(direction) !== -1) {\r\n if (direction === \"bottomLeft\") {\r\n newPos.x += left;\r\n }\r\n else if (direction === \"topRight\") {\r\n newPos.y += top;\r\n }\r\n else {\r\n newPos.x += left;\r\n newPos.y += top;\r\n }\r\n }\r\n if (newPos.x !== this.draggable.state.x || newPos.y !== this.draggable.state.y) {\r\n this.draggable.setState(newPos);\r\n }\r\n this.updateOffsetFromParent();\r\n var offset = this.offsetFromParent;\r\n var x = this.getDraggablePosition().x + offset.left;\r\n var y = this.getDraggablePosition().y + offset.top;\r\n this.resizingPosition = { x: x, y: y };\r\n if (!this.props.onResize)\r\n return;\r\n this.props.onResize(e, direction, elementRef, delta, {\r\n x: x,\r\n y: y,\r\n });\r\n };\r\n Rnd.prototype.onResizeStop = function (e, direction, elementRef, delta) {\r\n this.resizing = false;\r\n var _a = this.getMaxSizesFromProps(), maxWidth = _a.maxWidth, maxHeight = _a.maxHeight;\r\n this.setState({ maxWidth: maxWidth, maxHeight: maxHeight });\r\n if (this.props.onResizeStop) {\r\n this.props.onResizeStop(e, direction, elementRef, delta, this.resizingPosition);\r\n }\r\n };\r\n Rnd.prototype.updateSize = function (size) {\r\n if (!this.resizable)\r\n return;\r\n this.resizable.updateSize({ width: size.width, height: size.height });\r\n };\r\n Rnd.prototype.updatePosition = function (position) {\r\n this.draggable.setState(position);\r\n };\r\n Rnd.prototype.updateOffsetFromParent = function () {\r\n var scale = this.props.scale;\r\n var parent = this.getParent();\r\n var self = this.getSelfElement();\r\n if (!parent || self === null) {\r\n return {\r\n top: 0,\r\n left: 0,\r\n };\r\n }\r\n var parentRect = parent.getBoundingClientRect();\r\n var parentLeft = parentRect.left;\r\n var parentTop = parentRect.top;\r\n var selfRect = self.getBoundingClientRect();\r\n var position = this.getDraggablePosition();\r\n this.offsetFromParent = {\r\n left: selfRect.left - parentLeft - position.x * scale,\r\n top: selfRect.top - parentTop - position.y * scale,\r\n };\r\n };\r\n Rnd.prototype.render = function () {\r\n var _a = this.props, disableDragging = _a.disableDragging, style = _a.style, dragHandleClassName = _a.dragHandleClassName, position = _a.position, onMouseDown = _a.onMouseDown, onMouseUp = _a.onMouseUp, dragAxis = _a.dragAxis, dragGrid = _a.dragGrid, bounds = _a.bounds, enableUserSelectHack = _a.enableUserSelectHack, cancel = _a.cancel, children = _a.children, onResizeStart = _a.onResizeStart, onResize = _a.onResize, onResizeStop = _a.onResizeStop, onDragStart = _a.onDragStart, onDrag = _a.onDrag, onDragStop = _a.onDragStop, resizeHandleStyles = _a.resizeHandleStyles, resizeHandleClasses = _a.resizeHandleClasses, resizeHandleComponent = _a.resizeHandleComponent, enableResizing = _a.enableResizing, resizeGrid = _a.resizeGrid, resizeHandleWrapperClass = _a.resizeHandleWrapperClass, resizeHandleWrapperStyle = _a.resizeHandleWrapperStyle, scale = _a.scale, allowAnyClick = _a.allowAnyClick, resizableProps = __rest(_a, [\"disableDragging\", \"style\", \"dragHandleClassName\", \"position\", \"onMouseDown\", \"onMouseUp\", \"dragAxis\", \"dragGrid\", \"bounds\", \"enableUserSelectHack\", \"cancel\", \"children\", \"onResizeStart\", \"onResize\", \"onResizeStop\", \"onDragStart\", \"onDrag\", \"onDragStop\", \"resizeHandleStyles\", \"resizeHandleClasses\", \"resizeHandleComponent\", \"enableResizing\", \"resizeGrid\", \"resizeHandleWrapperClass\", \"resizeHandleWrapperStyle\", \"scale\", \"allowAnyClick\"]);\r\n var defaultValue = this.props.default ? __assign({}, this.props.default) : undefined;\r\n // Remove unknown props, see also https://reactjs.org/warnings/unknown-prop.html\r\n delete resizableProps.default;\r\n var cursorStyle = disableDragging || dragHandleClassName ? { cursor: \"auto\" } : { cursor: \"move\" };\r\n var innerStyle = __assign(__assign(__assign({}, resizableStyle), cursorStyle), style);\r\n var _b = this.offsetFromParent, left = _b.left, top = _b.top;\r\n var draggablePosition;\r\n if (position) {\r\n draggablePosition = {\r\n x: position.x - left,\r\n y: position.y - top,\r\n };\r\n }\r\n // INFO: Make uncontorolled component when resizing to control position by setPostion.\r\n var pos = this.resizing ? undefined : draggablePosition;\r\n return (createElement(Draggable, { ref: this.refDraggable, handle: dragHandleClassName ? \".\" + dragHandleClassName : undefined, defaultPosition: defaultValue, onMouseDown: onMouseDown, onMouseUp: onMouseUp, onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop, axis: dragAxis, disabled: disableDragging, grid: dragGrid, bounds: bounds ? this.state.bounds : undefined, position: pos, enableUserSelectHack: enableUserSelectHack, cancel: cancel, scale: scale, allowAnyClick: allowAnyClick, nodeRef: this.resizableElement },\r\n createElement(Resizable, __assign({}, resizableProps, { ref: this.refResizable, defaultSize: defaultValue, size: this.props.size, enable: typeof enableResizing === \"boolean\" ? getEnableResizingByFlag(enableResizing) : enableResizing, onResizeStart: this.onResizeStart, onResize: this.onResize, onResizeStop: this.onResizeStop, style: innerStyle, minWidth: this.props.minWidth, minHeight: this.props.minHeight, maxWidth: this.resizing ? this.state.maxWidth : this.props.maxWidth, maxHeight: this.resizing ? this.state.maxHeight : this.props.maxHeight, grid: resizeGrid, handleWrapperClass: resizeHandleWrapperClass, handleWrapperStyle: resizeHandleWrapperStyle, lockAspectRatio: this.props.lockAspectRatio, lockAspectRatioExtraWidth: this.props.lockAspectRatioExtraWidth, lockAspectRatioExtraHeight: this.props.lockAspectRatioExtraHeight, handleStyles: resizeHandleStyles, handleClasses: resizeHandleClasses, handleComponent: resizeHandleComponent, scale: this.props.scale }), children)));\r\n };\r\n Rnd.defaultProps = {\r\n maxWidth: Number.MAX_SAFE_INTEGER,\r\n maxHeight: Number.MAX_SAFE_INTEGER,\r\n scale: 1,\r\n onResizeStart: function () { },\r\n onResize: function () { },\r\n onResizeStop: function () { },\r\n onDragStart: function () { },\r\n onDrag: function () { },\r\n onDragStop: function () { },\r\n };\r\n return Rnd;\r\n}(PureComponent));\n\nexport { Rnd };\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 var index;\n\n switch (table.version) {\n case 1:\n 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 var index;\n\n switch (table.version) {\n case 1:\n 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 {\n // hvcurveto\n var _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\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","// Generated by CoffeeScript 1.7.1\nvar UnicodeTrie, inflate;\n\ninflate = require('tiny-inflate');\n\nUnicodeTrie = (function() {\n var DATA_BLOCK_LENGTH, DATA_GRANULARITY, DATA_MASK, INDEX_1_OFFSET, INDEX_2_BLOCK_LENGTH, INDEX_2_BMP_LENGTH, INDEX_2_MASK, INDEX_SHIFT, LSCP_INDEX_2_LENGTH, LSCP_INDEX_2_OFFSET, OMITTED_BMP_INDEX_1_LENGTH, SHIFT_1, SHIFT_1_2, SHIFT_2, UTF8_2B_INDEX_2_LENGTH, UTF8_2B_INDEX_2_OFFSET;\n\n SHIFT_1 = 6 + 5;\n\n SHIFT_2 = 5;\n\n SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n INDEX_SHIFT = 2;\n\n DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\n\n LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\n\n UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6;\n\n INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\n function UnicodeTrie(data) {\n var isBuffer, uncompressedLength, view;\n isBuffer = typeof data.readUInt32BE === 'function' && typeof data.slice === 'function';\n if (isBuffer || data instanceof Uint8Array) {\n if (isBuffer) {\n this.highStart = data.readUInt32BE(0);\n this.errorValue = data.readUInt32BE(4);\n uncompressedLength = data.readUInt32BE(8);\n data = data.slice(12);\n } else {\n view = new DataView(data.buffer);\n this.highStart = view.getUint32(0);\n this.errorValue = view.getUint32(4);\n uncompressedLength = view.getUint32(8);\n data = data.subarray(12);\n }\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n this.data = new Uint32Array(data.buffer);\n } else {\n this.data = data.data, this.highStart = data.highStart, this.errorValue = data.errorValue;\n }\n }\n\n UnicodeTrie.prototype.get = function(codePoint) {\n var index;\n if (codePoint < 0 || codePoint > 0x10ffff) {\n return this.errorValue;\n }\n if (codePoint < 0xd800 || (codePoint > 0xdbff && codePoint <= 0xffff)) {\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n if (codePoint <= 0xffff) {\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n if (codePoint < this.highStart) {\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n return this.data[this.data.length - DATA_GRANULARITY];\n };\n\n return UnicodeTrie;\n\n})();\n\nmodule.exports = UnicodeTrie;\n","/* build: `node build.js modules=ALL exclude=gestures,accessors requirejs minifier=uglifyjs` */\n/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */\n\nvar fabric = fabric || { version: '4.3.1' };\nif (typeof exports !== 'undefined') {\n exports.fabric = fabric;\n}\n/* _AMD_START_ */\nelse if (typeof define === 'function' && define.amd) {\n define([], function() { return fabric; });\n}\n/* _AMD_END_ */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (document instanceof (typeof HTMLDocument !== 'undefined' ? HTMLDocument : Document)) {\n fabric.document = document;\n }\n else {\n fabric.document = document.implementation.createHTMLDocument('');\n }\n fabric.window = window;\n}\nelse {\n // assume we're running under node.js when document/window are not present\n var jsdom = require('jsdom');\n var virtualWindow = new jsdom.JSDOM(\n decodeURIComponent('%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E'),\n {\n features: {\n FetchExternalResources: ['img']\n },\n resources: 'usable'\n }).window;\n fabric.document = virtualWindow.document;\n fabric.jsdomImplForWrapper = require('jsdom/lib/jsdom/living/generated/utils').implForWrapper;\n fabric.nodeCanvas = require('jsdom/lib/jsdom/utils').Canvas;\n fabric.window = virtualWindow;\n DOMParser = fabric.window.DOMParser;\n}\n\n/**\n * True when in environment that supports touch events\n * @type boolean\n */\nfabric.isTouchSupported = 'ontouchstart' in fabric.window || 'ontouchstart' in fabric.document ||\n (fabric.window && fabric.window.navigator && fabric.window.navigator.maxTouchPoints > 0);\n\n/**\n * True when in environment that's probably Node.js\n * @type boolean\n */\nfabric.isLikelyNode = typeof Buffer !== 'undefined' &&\n typeof window === 'undefined';\n\n/* _FROM_SVG_START_ */\n/**\n * Attributes parsed from all SVG elements\n * @type array\n */\nfabric.SHARED_ATTRIBUTES = [\n 'display',\n 'transform',\n 'fill', 'fill-opacity', 'fill-rule',\n 'opacity',\n 'stroke', 'stroke-dasharray', 'stroke-linecap', 'stroke-dashoffset',\n 'stroke-linejoin', 'stroke-miterlimit',\n 'stroke-opacity', 'stroke-width',\n 'id', 'paint-order', 'vector-effect',\n 'instantiated_by_use', 'clip-path',\n];\n/* _FROM_SVG_END_ */\n\n/**\n * Pixel per Inch as a default value set to 96. Can be changed for more realistic conversion.\n */\nfabric.DPI = 96;\nfabric.reNum = '(?:[-+]?(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[eE][-+]?\\\\d+)?)';\nfabric.commaWsp = '(?:\\\\s+,?\\\\s*|,\\\\s*)';\nfabric.rePathCommand = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:[eE][-+]?\\d+)?)/ig;\nfabric.reNonWord = /[ \\n\\.,;!\\?\\-]/;\nfabric.fontPaths = { };\nfabric.iMatrix = [1, 0, 0, 1, 0, 0];\nfabric.svgNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Pixel limit for cache canvases. 1Mpx , 4Mpx should be fine.\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.perfLimitSizeTotal = 2097152;\n\n/**\n * Pixel limit for cache canvases width or height. IE fixes the maximum at 5000\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.maxCacheSideLimit = 4096;\n\n/**\n * Lowest pixel limit for cache canvases, set at 256PX\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.minCacheSideLimit = 256;\n\n/**\n * Cache Object for widths of chars in text rendering.\n */\nfabric.charWidthsCache = { };\n\n/**\n * if webgl is enabled and available, textureSize will determine the size\n * of the canvas backend\n * @since 2.0.0\n * @type Number\n * @default\n */\nfabric.textureSize = 2048;\n\n/**\n * When 'true', style information is not retained when copy/pasting text, making\n * pasted text use destination style.\n * Defaults to 'false'.\n * @type Boolean\n * @default\n */\nfabric.disableStyleCopyPaste = false;\n\n/**\n * Enable webgl for filtering picture is available\n * A filtering backend will be initialized, this will both take memory and\n * time since a default 2048x2048 canvas will be created for the gl context\n * @since 2.0.0\n * @type Boolean\n * @default\n */\nfabric.enableGLFiltering = true;\n\n/**\n * Device Pixel Ratio\n * @see https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/SettingUptheCanvas/SettingUptheCanvas.html\n */\nfabric.devicePixelRatio = fabric.window.devicePixelRatio ||\n fabric.window.webkitDevicePixelRatio ||\n fabric.window.mozDevicePixelRatio ||\n 1;\n/**\n * Browser-specific constant to adjust CanvasRenderingContext2D.shadowBlur value,\n * which is unitless and not rendered equally across browsers.\n *\n * Values that work quite well (as of October 2017) are:\n * - Chrome: 1.5\n * - Edge: 1.75\n * - Firefox: 0.9\n * - Safari: 0.95\n *\n * @since 2.0.0\n * @type Number\n * @default 1\n */\nfabric.browserShadowBlurConstant = 1;\n\n/**\n * This object contains the result of arc to bezier conversion for faster retrieving if the same arc needs to be converted again.\n * It was an internal variable, is accessible since version 2.3.4\n */\nfabric.arcToSegmentsCache = { };\n\n/**\n * This object keeps the results of the boundsOfCurve calculation mapped by the joined arguments necessary to calculate it.\n * It does speed up calculation, if you parse and add always the same paths, but in case of heavy usage of freedrawing\n * you do not get any speed benefit and you get a big object in memory.\n * The object was a private variable before, while now is appended to the lib so that you have access to it and you\n * can eventually clear it.\n * It was an internal variable, is accessible since version 2.3.4\n */\nfabric.boundsOfCurveCache = { };\n\n/**\n * If disabled boundsOfCurveCache is not used. For apps that make heavy usage of pencil drawing probably disabling it is better\n * @default true\n */\nfabric.cachesBoundsOfCurve = true;\n\n/**\n * Skip performance testing of setupGLContext and force the use of putImageData that seems to be the one that works best on\n * Chrome + old hardware. if your users are experiencing empty images after filtering you may try to force this to true\n * this has to be set before instantiating the filtering backend ( before filtering the first image )\n * @type Boolean\n * @default false\n */\nfabric.forceGLPutImageData = false;\n\nfabric.initFilterBackend = function() {\n if (fabric.enableGLFiltering && fabric.isWebglSupported && fabric.isWebglSupported(fabric.textureSize)) {\n console.log('max texture size: ' + fabric.maxTextureSize);\n return (new fabric.WebglFilterBackend({ tileSize: fabric.textureSize }));\n }\n else if (fabric.Canvas2dFilterBackend) {\n return (new fabric.Canvas2dFilterBackend());\n }\n};\n\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // ensure globality even if entire library were function wrapped (as in Meteor.js packaging system)\n window.fabric = fabric;\n}\n\n\n(function() {\n\n /**\n * @private\n * @param {String} eventName\n * @param {Function} handler\n */\n function _removeEventListener(eventName, handler) {\n if (!this.__eventListeners[eventName]) {\n return;\n }\n var eventListener = this.__eventListeners[eventName];\n if (handler) {\n eventListener[eventListener.indexOf(handler)] = false;\n }\n else {\n fabric.util.array.fill(eventListener, false);\n }\n }\n\n /**\n * Observes specified event\n * @memberOf fabric.Observable\n * @alias on\n * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler})\n * @param {Function} handler Function that receives a notification when an event of the specified type occurs\n * @return {Self} thisArg\n * @chainable\n */\n function on(eventName, handler) {\n if (!this.__eventListeners) {\n this.__eventListeners = { };\n }\n // one object with key/value pairs was passed\n if (arguments.length === 1) {\n for (var prop in eventName) {\n this.on(prop, eventName[prop]);\n }\n }\n else {\n if (!this.__eventListeners[eventName]) {\n this.__eventListeners[eventName] = [];\n }\n this.__eventListeners[eventName].push(handler);\n }\n return this;\n }\n\n /**\n * Stops event observing for a particular event handler. Calling this method\n * without arguments removes all handlers for all events\n * @memberOf fabric.Observable\n * @alias off\n * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler})\n * @param {Function} handler Function to be deleted from EventListeners\n * @return {Self} thisArg\n * @chainable\n */\n function off(eventName, handler) {\n if (!this.__eventListeners) {\n return this;\n }\n\n // remove all key/value pairs (event name -> event handler)\n if (arguments.length === 0) {\n for (eventName in this.__eventListeners) {\n _removeEventListener.call(this, eventName);\n }\n }\n // one object with key/value pairs was passed\n else if (arguments.length === 1 && typeof arguments[0] === 'object') {\n for (var prop in eventName) {\n _removeEventListener.call(this, prop, eventName[prop]);\n }\n }\n else {\n _removeEventListener.call(this, eventName, handler);\n }\n return this;\n }\n\n /**\n * Fires event with an optional options object\n * @memberOf fabric.Observable\n * @param {String} eventName Event name to fire\n * @param {Object} [options] Options object\n * @return {Self} thisArg\n * @chainable\n */\n function fire(eventName, options) {\n if (!this.__eventListeners) {\n return this;\n }\n\n var listenersForEvent = this.__eventListeners[eventName];\n if (!listenersForEvent) {\n return this;\n }\n\n for (var i = 0, len = listenersForEvent.length; i < len; i++) {\n listenersForEvent[i] && listenersForEvent[i].call(this, options || { });\n }\n this.__eventListeners[eventName] = listenersForEvent.filter(function(value) {\n return value !== false;\n });\n return this;\n }\n\n /**\n * @namespace fabric.Observable\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#events}\n * @see {@link http://fabricjs.com/events|Events demo}\n */\n fabric.Observable = {\n fire: fire,\n on: on,\n off: off,\n };\n})();\n\n\n/**\n * @namespace fabric.Collection\n */\nfabric.Collection = {\n\n _objects: [],\n\n /**\n * Adds objects to collection, Canvas or Group, then renders canvas\n * (if `renderOnAddRemove` is not `false`).\n * in case of Group no changes to bounding box are made.\n * Objects should be instances of (or inherit from) fabric.Object\n * Use of this function is highly discouraged for groups.\n * you can add a bunch of objects with the add method but then you NEED\n * to run a addWithUpdate call for the Group class or position/bbox will be wrong.\n * @param {...fabric.Object} object Zero or more fabric instances\n * @return {Self} thisArg\n * @chainable\n */\n add: function () {\n this._objects.push.apply(this._objects, arguments);\n if (this._onObjectAdded) {\n for (var i = 0, length = arguments.length; i < length; i++) {\n this._onObjectAdded(arguments[i]);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Inserts an object into collection at specified index, then renders canvas (if `renderOnAddRemove` is not `false`)\n * An object should be an instance of (or inherit from) fabric.Object\n * Use of this function is highly discouraged for groups.\n * you can add a bunch of objects with the insertAt method but then you NEED\n * to run a addWithUpdate call for the Group class or position/bbox will be wrong.\n * @param {Object} object Object to insert\n * @param {Number} index Index to insert object at\n * @param {Boolean} nonSplicing When `true`, no splicing (shifting) of objects occurs\n * @return {Self} thisArg\n * @chainable\n */\n insertAt: function (object, index, nonSplicing) {\n var objects = this._objects;\n if (nonSplicing) {\n objects[index] = object;\n }\n else {\n objects.splice(index, 0, object);\n }\n this._onObjectAdded && this._onObjectAdded(object);\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Removes objects from a collection, then renders canvas (if `renderOnAddRemove` is not `false`)\n * @param {...fabric.Object} object Zero or more fabric instances\n * @return {Self} thisArg\n * @chainable\n */\n remove: function() {\n var objects = this._objects,\n index, somethingRemoved = false;\n\n for (var i = 0, length = arguments.length; i < length; i++) {\n index = objects.indexOf(arguments[i]);\n\n // only call onObjectRemoved if an object was actually removed\n if (index !== -1) {\n somethingRemoved = true;\n objects.splice(index, 1);\n this._onObjectRemoved && this._onObjectRemoved(arguments[i]);\n }\n }\n\n this.renderOnAddRemove && somethingRemoved && this.requestRenderAll();\n return this;\n },\n\n /**\n * Executes given function for each object in this group\n * @param {Function} callback\n * Callback invoked with current object as first argument,\n * index - as second and an array of all objects - as third.\n * Callback is invoked in a context of Global Object (e.g. `window`)\n * when no `context` argument is given\n *\n * @param {Object} context Context (aka thisObject)\n * @return {Self} thisArg\n * @chainable\n */\n forEachObject: function(callback, context) {\n var objects = this.getObjects();\n for (var i = 0, len = objects.length; i < len; i++) {\n callback.call(context, objects[i], i, objects);\n }\n return this;\n },\n\n /**\n * Returns an array of children objects of this instance\n * Type parameter introduced in 1.3.10\n * since 2.3.5 this method return always a COPY of the array;\n * @param {String} [type] When specified, only objects of this type are returned\n * @return {Array}\n */\n getObjects: function(type) {\n if (typeof type === 'undefined') {\n return this._objects.concat();\n }\n return this._objects.filter(function(o) {\n return o.type === type;\n });\n },\n\n /**\n * Returns object at specified index\n * @param {Number} index\n * @return {Self} thisArg\n */\n item: function (index) {\n return this._objects[index];\n },\n\n /**\n * Returns true if collection contains no objects\n * @return {Boolean} true if collection is empty\n */\n isEmpty: function () {\n return this._objects.length === 0;\n },\n\n /**\n * Returns a size of a collection (i.e: length of an array containing its objects)\n * @return {Number} Collection size\n */\n size: function() {\n return this._objects.length;\n },\n\n /**\n * Returns true if collection contains an object\n * @param {Object} object Object to check against\n * @return {Boolean} `true` if collection contains an object\n */\n contains: function(object) {\n return this._objects.indexOf(object) > -1;\n },\n\n /**\n * Returns number representation of a collection complexity\n * @return {Number} complexity\n */\n complexity: function () {\n return this._objects.reduce(function (memo, current) {\n memo += current.complexity ? current.complexity() : 0;\n return memo;\n }, 0);\n }\n};\n\n\n/**\n * @namespace fabric.CommonMethods\n */\nfabric.CommonMethods = {\n\n /**\n * Sets object's properties from options\n * @param {Object} [options] Options object\n */\n _setOptions: function(options) {\n for (var prop in options) {\n this.set(prop, options[prop]);\n }\n },\n\n /**\n * @private\n * @param {Object} [filler] Options object\n * @param {String} [property] property to set the Gradient to\n */\n _initGradient: function(filler, property) {\n if (filler && filler.colorStops && !(filler instanceof fabric.Gradient)) {\n this.set(property, new fabric.Gradient(filler));\n }\n },\n\n /**\n * @private\n * @param {Object} [filler] Options object\n * @param {String} [property] property to set the Pattern to\n * @param {Function} [callback] callback to invoke after pattern load\n */\n _initPattern: function(filler, property, callback) {\n if (filler && filler.source && !(filler instanceof fabric.Pattern)) {\n this.set(property, new fabric.Pattern(filler, callback));\n }\n else {\n callback && callback();\n }\n },\n\n /**\n * @private\n */\n _setObject: function(obj) {\n for (var prop in obj) {\n this._set(prop, obj[prop]);\n }\n },\n\n /**\n * Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) `set` does not update position of object's borders/controls. If you need to update those, call `setCoords()`.\n * @param {String|Object} key Property name or object (if object, iterate over the object properties)\n * @param {Object|Function} value Property value (if function, the value is passed into it and its return value is used as a new one)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n set: function(key, value) {\n if (typeof key === 'object') {\n this._setObject(key);\n }\n else {\n this._set(key, value);\n }\n return this;\n },\n\n _set: function(key, value) {\n this[key] = value;\n },\n\n /**\n * Toggles specified property from `true` to `false` or from `false` to `true`\n * @param {String} property Property to toggle\n * @return {fabric.Object} thisArg\n * @chainable\n */\n toggle: function(property) {\n var value = this.get(property);\n if (typeof value === 'boolean') {\n this.set(property, !value);\n }\n return this;\n },\n\n /**\n * Basic getter\n * @param {String} property Property name\n * @return {*} value of a property\n */\n get: function(property) {\n return this[property];\n }\n};\n\n\n(function(global) {\n\n var sqrt = Math.sqrt,\n atan2 = Math.atan2,\n pow = Math.pow,\n PiBy180 = Math.PI / 180,\n PiBy2 = Math.PI / 2;\n\n /**\n * @namespace fabric.util\n */\n fabric.util = {\n\n /**\n * Calculate the cos of an angle, avoiding returning floats for known results\n * @static\n * @memberOf fabric.util\n * @param {Number} angle the angle in radians or in degree\n * @return {Number}\n */\n cos: function(angle) {\n if (angle === 0) { return 1; }\n if (angle < 0) {\n // cos(a) = cos(-a)\n angle = -angle;\n }\n var angleSlice = angle / PiBy2;\n switch (angleSlice) {\n case 1: case 3: return 0;\n case 2: return -1;\n }\n return Math.cos(angle);\n },\n\n /**\n * Calculate the sin of an angle, avoiding returning floats for known results\n * @static\n * @memberOf fabric.util\n * @param {Number} angle the angle in radians or in degree\n * @return {Number}\n */\n sin: function(angle) {\n if (angle === 0) { return 0; }\n var angleSlice = angle / PiBy2, sign = 1;\n if (angle < 0) {\n // sin(-a) = -sin(a)\n sign = -1;\n }\n switch (angleSlice) {\n case 1: return sign;\n case 2: return 0;\n case 3: return -sign;\n }\n return Math.sin(angle);\n },\n\n /**\n * Removes value from an array.\n * Presence of value (and its position in an array) is determined via `Array.prototype.indexOf`\n * @static\n * @memberOf fabric.util\n * @param {Array} array\n * @param {*} value\n * @return {Array} original array\n */\n removeFromArray: function(array, value) {\n var idx = array.indexOf(value);\n if (idx !== -1) {\n array.splice(idx, 1);\n }\n return array;\n },\n\n /**\n * Returns random number between 2 specified ones.\n * @static\n * @memberOf fabric.util\n * @param {Number} min lower limit\n * @param {Number} max upper limit\n * @return {Number} random value (between min and max)\n */\n getRandomInt: function(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n },\n\n /**\n * Transforms degrees to radians.\n * @static\n * @memberOf fabric.util\n * @param {Number} degrees value in degrees\n * @return {Number} value in radians\n */\n degreesToRadians: function(degrees) {\n return degrees * PiBy180;\n },\n\n /**\n * Transforms radians to degrees.\n * @static\n * @memberOf fabric.util\n * @param {Number} radians value in radians\n * @return {Number} value in degrees\n */\n radiansToDegrees: function(radians) {\n return radians / PiBy180;\n },\n\n /**\n * Rotates `point` around `origin` with `radians`\n * @static\n * @memberOf fabric.util\n * @param {fabric.Point} point The point to rotate\n * @param {fabric.Point} origin The origin of the rotation\n * @param {Number} radians The radians of the angle for the rotation\n * @return {fabric.Point} The new rotated point\n */\n rotatePoint: function(point, origin, radians) {\n point.subtractEquals(origin);\n var v = fabric.util.rotateVector(point, radians);\n return new fabric.Point(v.x, v.y).addEquals(origin);\n },\n\n /**\n * Rotates `vector` with `radians`\n * @static\n * @memberOf fabric.util\n * @param {Object} vector The vector to rotate (x and y)\n * @param {Number} radians The radians of the angle for the rotation\n * @return {Object} The new rotated point\n */\n rotateVector: function(vector, radians) {\n var sin = fabric.util.sin(radians),\n cos = fabric.util.cos(radians),\n rx = vector.x * cos - vector.y * sin,\n ry = vector.x * sin + vector.y * cos;\n return {\n x: rx,\n y: ry\n };\n },\n\n /**\n * Apply transform t to point p\n * @static\n * @memberOf fabric.util\n * @param {fabric.Point} p The point to transform\n * @param {Array} t The transform\n * @param {Boolean} [ignoreOffset] Indicates that the offset should not be applied\n * @return {fabric.Point} The transformed point\n */\n transformPoint: function(p, t, ignoreOffset) {\n if (ignoreOffset) {\n return new fabric.Point(\n t[0] * p.x + t[2] * p.y,\n t[1] * p.x + t[3] * p.y\n );\n }\n return new fabric.Point(\n t[0] * p.x + t[2] * p.y + t[4],\n t[1] * p.x + t[3] * p.y + t[5]\n );\n },\n\n /**\n * Returns coordinates of points's bounding rectangle (left, top, width, height)\n * @param {Array} points 4 points array\n * @param {Array} [transform] an array of 6 numbers representing a 2x3 transform matrix\n * @return {Object} Object with left, top, width, height properties\n */\n makeBoundingBoxFromPoints: function(points, transform) {\n if (transform) {\n for (var i = 0; i < points.length; i++) {\n points[i] = fabric.util.transformPoint(points[i], transform);\n }\n }\n var xPoints = [points[0].x, points[1].x, points[2].x, points[3].x],\n minX = fabric.util.array.min(xPoints),\n maxX = fabric.util.array.max(xPoints),\n width = maxX - minX,\n yPoints = [points[0].y, points[1].y, points[2].y, points[3].y],\n minY = fabric.util.array.min(yPoints),\n maxY = fabric.util.array.max(yPoints),\n height = maxY - minY;\n\n return {\n left: minX,\n top: minY,\n width: width,\n height: height\n };\n },\n\n /**\n * Invert transformation t\n * @static\n * @memberOf fabric.util\n * @param {Array} t The transform\n * @return {Array} The inverted transform\n */\n invertTransform: function(t) {\n var a = 1 / (t[0] * t[3] - t[1] * t[2]),\n r = [a * t[3], -a * t[1], -a * t[2], a * t[0]],\n o = fabric.util.transformPoint({ x: t[4], y: t[5] }, r, true);\n r[4] = -o.x;\n r[5] = -o.y;\n return r;\n },\n\n /**\n * A wrapper around Number#toFixed, which contrary to native method returns number, not string.\n * @static\n * @memberOf fabric.util\n * @param {Number|String} number number to operate on\n * @param {Number} fractionDigits number of fraction digits to \"leave\"\n * @return {Number}\n */\n toFixed: function(number, fractionDigits) {\n return parseFloat(Number(number).toFixed(fractionDigits));\n },\n\n /**\n * Converts from attribute value to pixel value if applicable.\n * Returns converted pixels or original value not converted.\n * @param {Number|String} value number to operate on\n * @param {Number} fontSize\n * @return {Number|String}\n */\n parseUnit: function(value, fontSize) {\n var unit = /\\D{0,2}$/.exec(value),\n number = parseFloat(value);\n if (!fontSize) {\n fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;\n }\n switch (unit[0]) {\n case 'mm':\n return number * fabric.DPI / 25.4;\n\n case 'cm':\n return number * fabric.DPI / 2.54;\n\n case 'in':\n return number * fabric.DPI;\n\n case 'pt':\n return number * fabric.DPI / 72; // or * 4 / 3\n\n case 'pc':\n return number * fabric.DPI / 72 * 12; // or * 16\n\n case 'em':\n return number * fontSize;\n\n default:\n return number;\n }\n },\n\n /**\n * Function which always returns `false`.\n * @static\n * @memberOf fabric.util\n * @return {Boolean}\n */\n falseFunction: function() {\n return false;\n },\n\n /**\n * Returns klass \"Class\" object of given namespace\n * @memberOf fabric.util\n * @param {String} type Type of object (eg. 'circle')\n * @param {String} namespace Namespace to get klass \"Class\" object from\n * @return {Object} klass \"Class\"\n */\n getKlass: function(type, namespace) {\n // capitalize first letter only\n type = fabric.util.string.camelize(type.charAt(0).toUpperCase() + type.slice(1));\n return fabric.util.resolveNamespace(namespace)[type];\n },\n\n /**\n * Returns array of attributes for given svg that fabric parses\n * @memberOf fabric.util\n * @param {String} type Type of svg element (eg. 'circle')\n * @return {Array} string names of supported attributes\n */\n getSvgAttributes: function(type) {\n var attributes = [\n 'instantiated_by_use',\n 'style',\n 'id',\n 'class'\n ];\n switch (type) {\n case 'linearGradient':\n attributes = attributes.concat(['x1', 'y1', 'x2', 'y2', 'gradientUnits', 'gradientTransform']);\n break;\n case 'radialGradient':\n attributes = attributes.concat(['gradientUnits', 'gradientTransform', 'cx', 'cy', 'r', 'fx', 'fy', 'fr']);\n break;\n case 'stop':\n attributes = attributes.concat(['offset', 'stop-color', 'stop-opacity']);\n break;\n }\n return attributes;\n },\n\n /**\n * Returns object of given namespace\n * @memberOf fabric.util\n * @param {String} namespace Namespace string e.g. 'fabric.Image.filter' or 'fabric'\n * @return {Object} Object for given namespace (default fabric)\n */\n resolveNamespace: function(namespace) {\n if (!namespace) {\n return fabric;\n }\n\n var parts = namespace.split('.'),\n len = parts.length, i,\n obj = global || fabric.window;\n\n for (i = 0; i < len; ++i) {\n obj = obj[parts[i]];\n }\n\n return obj;\n },\n\n /**\n * Loads image element from given url and passes it to a callback\n * @memberOf fabric.util\n * @param {String} url URL representing an image\n * @param {Function} callback Callback; invoked with loaded image\n * @param {*} [context] Context to invoke callback in\n * @param {Object} [crossOrigin] crossOrigin value to set image element to\n */\n loadImage: function(url, callback, context, crossOrigin) {\n if (!url) {\n callback && callback.call(context, url);\n return;\n }\n\n var img = fabric.util.createImage();\n\n /** @ignore */\n var onLoadCallback = function () {\n callback && callback.call(context, img, false);\n img = img.onload = img.onerror = null;\n };\n\n img.onload = onLoadCallback;\n /** @ignore */\n img.onerror = function() {\n // fabric.log('Error loading ' + img.src);\r\n callback && callback.call(context, null, true);\n img = img.onload = img.onerror = null;\n };\n\n // data-urls appear to be buggy with crossOrigin\n // https://github.com/kangax/fabric.js/commit/d0abb90f1cd5c5ef9d2a94d3fb21a22330da3e0a#commitcomment-4513767\n // see https://code.google.com/p/chromium/issues/detail?id=315152\n // https://bugzilla.mozilla.org/show_bug.cgi?id=935069\n // crossOrigin null is the same as not set.\n if (url.indexOf('data') !== 0 &&\n crossOrigin !== undefined &&\n crossOrigin !== null) {\n img.crossOrigin = crossOrigin;\n }\n\n // IE10 / IE11-Fix: SVG contents from data: URI\n // will only be available if the IMG is present\n // in the DOM (and visible)\n if (url.substring(0,14) === 'data:image/svg') {\n img.onload = null;\n fabric.util.loadImageInDom(img, onLoadCallback);\n }\n\n img.src = url;\n },\n\n /**\n * Attaches SVG image with data: URL to the dom\n * @memberOf fabric.util\n * @param {Object} img Image object with data:image/svg src\n * @param {Function} callback Callback; invoked with loaded image\n * @return {Object} DOM element (div containing the SVG image)\n */\n loadImageInDom: function(img, onLoadCallback) {\n var div = fabric.document.createElement('div');\n div.style.width = div.style.height = '1px';\n div.style.left = div.style.top = '-100%';\n div.style.position = 'absolute';\n div.appendChild(img);\n fabric.document.querySelector('body').appendChild(div);\n /**\n * Wrap in function to:\n * 1. Call existing callback\n * 2. Cleanup DOM\n */\n img.onload = function () {\n onLoadCallback();\n div.parentNode.removeChild(div);\n div = null;\n };\n },\n\n /**\n * Creates corresponding fabric instances from their object representations\n * @static\n * @memberOf fabric.util\n * @param {Array} objects Objects to enliven\n * @param {Function} callback Callback to invoke when all objects are created\n * @param {String} namespace Namespace to get klass \"Class\" object from\n * @param {Function} reviver Method for further parsing of object elements,\n * called after each fabric object created.\n */\n enlivenObjects: function(objects, callback, namespace, reviver) {\n objects = objects || [];\n\n var enlivenedObjects = [],\n numLoadedObjects = 0,\n numTotalObjects = objects.length;\n\n function onLoaded() {\n if (++numLoadedObjects === numTotalObjects) {\n callback && callback(enlivenedObjects.filter(function(obj) {\n // filter out undefined objects (objects that gave error)\n return obj;\n }));\n }\n }\n\n if (!numTotalObjects) {\n callback && callback(enlivenedObjects);\n return;\n }\n\n objects.forEach(function (o, index) {\n // if sparse array\n if (!o || !o.type) {\n onLoaded();\n return;\n }\n var klass = fabric.util.getKlass(o.type, namespace);\n klass.fromObject(o, function (obj, error) {\n error || (enlivenedObjects[index] = obj);\n reviver && reviver(o, obj, error);\n onLoaded();\n });\n });\n },\n\n /**\n * Create and wait for loading of patterns\n * @static\n * @memberOf fabric.util\n * @param {Array} patterns Objects to enliven\n * @param {Function} callback Callback to invoke when all objects are created\n * called after each fabric object created.\n */\n enlivenPatterns: function(patterns, callback) {\n patterns = patterns || [];\n\n function onLoaded() {\n if (++numLoadedPatterns === numPatterns) {\n callback && callback(enlivenedPatterns);\n }\n }\n\n var enlivenedPatterns = [],\n numLoadedPatterns = 0,\n numPatterns = patterns.length;\n\n if (!numPatterns) {\n callback && callback(enlivenedPatterns);\n return;\n }\n\n patterns.forEach(function (p, index) {\n if (p && p.source) {\n new fabric.Pattern(p, function(pattern) {\n enlivenedPatterns[index] = pattern;\n onLoaded();\n });\n }\n else {\n enlivenedPatterns[index] = p;\n onLoaded();\n }\n });\n },\n\n /**\n * Groups SVG elements (usually those retrieved from SVG document)\n * @static\n * @memberOf fabric.util\n * @param {Array} elements SVG elements to group\n * @param {Object} [options] Options object\n * @param {String} path Value to set sourcePath to\n * @return {fabric.Object|fabric.Group}\n */\n groupSVGElements: function(elements, options, path) {\n var object;\n if (elements && elements.length === 1) {\n return elements[0];\n }\n if (options) {\n if (options.width && options.height) {\n options.centerPoint = {\n x: options.width / 2,\n y: options.height / 2\n };\n }\n else {\n delete options.width;\n delete options.height;\n }\n }\n object = new fabric.Group(elements, options);\n if (typeof path !== 'undefined') {\n object.sourcePath = path;\n }\n return object;\n },\n\n /**\n * Populates an object with properties of another object\n * @static\n * @memberOf fabric.util\n * @param {Object} source Source object\n * @param {Object} destination Destination object\n * @return {Array} properties Properties names to include\n */\n populateWithProperties: function(source, destination, properties) {\n if (properties && Object.prototype.toString.call(properties) === '[object Array]') {\n for (var i = 0, len = properties.length; i < len; i++) {\n if (properties[i] in source) {\n destination[properties[i]] = source[properties[i]];\n }\n }\n }\n },\n\n /**\n * Draws a dashed line between two points\n *\n * This method is used to draw dashed line around selection area.\n * See dotted stroke in canvas\n *\n * @param {CanvasRenderingContext2D} ctx context\n * @param {Number} x start x coordinate\n * @param {Number} y start y coordinate\n * @param {Number} x2 end x coordinate\n * @param {Number} y2 end y coordinate\n * @param {Array} da dash array pattern\n */\n drawDashedLine: function(ctx, x, y, x2, y2, da) {\n var dx = x2 - x,\n dy = y2 - y,\n len = sqrt(dx * dx + dy * dy),\n rot = atan2(dy, dx),\n dc = da.length,\n di = 0,\n draw = true;\n\n ctx.save();\n ctx.translate(x, y);\n ctx.moveTo(0, 0);\n ctx.rotate(rot);\n\n x = 0;\n while (len > x) {\n x += da[di++ % dc];\n if (x > len) {\n x = len;\n }\n ctx[draw ? 'lineTo' : 'moveTo'](x, 0);\n draw = !draw;\n }\n\n ctx.restore();\n },\n\n /**\n * Creates canvas element\n * @static\n * @memberOf fabric.util\n * @return {CanvasElement} initialized canvas element\n */\n createCanvasElement: function() {\n return fabric.document.createElement('canvas');\n },\n\n /**\n * Creates a canvas element that is a copy of another and is also painted\n * @param {CanvasElement} canvas to copy size and content of\n * @static\n * @memberOf fabric.util\n * @return {CanvasElement} initialized canvas element\n */\n copyCanvasElement: function(canvas) {\n var newCanvas = fabric.util.createCanvasElement();\n newCanvas.width = canvas.width;\n newCanvas.height = canvas.height;\n newCanvas.getContext('2d').drawImage(canvas, 0, 0);\n return newCanvas;\n },\n\n /**\n * since 2.6.0 moved from canvas instance to utility.\n * @param {CanvasElement} canvasEl to copy size and content of\n * @param {String} format 'jpeg' or 'png', in some browsers 'webp' is ok too\n * @param {Number} quality <= 1 and > 0\n * @static\n * @memberOf fabric.util\n * @return {String} data url\n */\n toDataURL: function(canvasEl, format, quality) {\n return canvasEl.toDataURL('image/' + format, quality);\n },\n\n /**\n * Creates image element (works on client and node)\n * @static\n * @memberOf fabric.util\n * @return {HTMLImageElement} HTML image element\n */\n createImage: function() {\n return fabric.document.createElement('img');\n },\n\n /**\n * Multiply matrix A by matrix B to nest transformations\n * @static\n * @memberOf fabric.util\n * @param {Array} a First transformMatrix\n * @param {Array} b Second transformMatrix\n * @param {Boolean} is2x2 flag to multiply matrices as 2x2 matrices\n * @return {Array} The product of the two transform matrices\n */\n multiplyTransformMatrices: function(a, b, is2x2) {\n // Matrix multiply a * b\n return [\n a[0] * b[0] + a[2] * b[1],\n a[1] * b[0] + a[3] * b[1],\n a[0] * b[2] + a[2] * b[3],\n a[1] * b[2] + a[3] * b[3],\n is2x2 ? 0 : a[0] * b[4] + a[2] * b[5] + a[4],\n is2x2 ? 0 : a[1] * b[4] + a[3] * b[5] + a[5]\n ];\n },\n\n /**\n * Decomposes standard 2x3 matrix into transform components\n * @static\n * @memberOf fabric.util\n * @param {Array} a transformMatrix\n * @return {Object} Components of transform\n */\n qrDecompose: function(a) {\n var angle = atan2(a[1], a[0]),\n denom = pow(a[0], 2) + pow(a[1], 2),\n scaleX = sqrt(denom),\n scaleY = (a[0] * a[3] - a[2] * a[1]) / scaleX,\n skewX = atan2(a[0] * a[2] + a[1] * a [3], denom);\n return {\n angle: angle / PiBy180,\n scaleX: scaleX,\n scaleY: scaleY,\n skewX: skewX / PiBy180,\n skewY: 0,\n translateX: a[4],\n translateY: a[5]\n };\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.angle] angle in degrees\n * @return {Number[]} transform matrix\n */\n calcRotateMatrix: function(options) {\n if (!options.angle) {\n return fabric.iMatrix.concat();\n }\n var theta = fabric.util.degreesToRadians(options.angle),\n cos = fabric.util.cos(theta),\n sin = fabric.util.sin(theta);\n return [cos, sin, -sin, cos, 0, 0];\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet.\n * is called DimensionsTransformMatrix because those properties are the one that influence\n * the size of the resulting box of the object.\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.scaleX]\n * @param {Number} [options.scaleY]\n * @param {Boolean} [options.flipX]\n * @param {Boolean} [options.flipY]\n * @param {Number} [options.skewX]\n * @param {Number} [options.skewX]\n * @return {Number[]} transform matrix\n */\n calcDimensionsMatrix: function(options) {\n var scaleX = typeof options.scaleX === 'undefined' ? 1 : options.scaleX,\n scaleY = typeof options.scaleY === 'undefined' ? 1 : options.scaleY,\n scaleMatrix = [\n options.flipX ? -scaleX : scaleX,\n 0,\n 0,\n options.flipY ? -scaleY : scaleY,\n 0,\n 0],\n multiply = fabric.util.multiplyTransformMatrices,\n degreesToRadians = fabric.util.degreesToRadians;\n if (options.skewX) {\n scaleMatrix = multiply(\n scaleMatrix,\n [1, 0, Math.tan(degreesToRadians(options.skewX)), 1],\n true);\n }\n if (options.skewY) {\n scaleMatrix = multiply(\n scaleMatrix,\n [1, Math.tan(degreesToRadians(options.skewY)), 0, 1],\n true);\n }\n return scaleMatrix;\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.angle]\n * @param {Number} [options.scaleX]\n * @param {Number} [options.scaleY]\n * @param {Boolean} [options.flipX]\n * @param {Boolean} [options.flipY]\n * @param {Number} [options.skewX]\n * @param {Number} [options.skewX]\n * @param {Number} [options.translateX]\n * @param {Number} [options.translateY]\n * @return {Number[]} transform matrix\n */\n composeMatrix: function(options) {\n var matrix = [1, 0, 0, 1, options.translateX || 0, options.translateY || 0],\n multiply = fabric.util.multiplyTransformMatrices;\n if (options.angle) {\n matrix = multiply(matrix, fabric.util.calcRotateMatrix(options));\n }\n if (options.scaleX !== 1 || options.scaleY !== 1 ||\n options.skewX || options.skewY || options.flipX || options.flipY) {\n matrix = multiply(matrix, fabric.util.calcDimensionsMatrix(options));\n }\n return matrix;\n },\n\n /**\n * reset an object transform state to neutral. Top and left are not accounted for\n * @static\n * @memberOf fabric.util\n * @param {fabric.Object} target object to transform\n */\n resetObjectTransform: function (target) {\n target.scaleX = 1;\n target.scaleY = 1;\n target.skewX = 0;\n target.skewY = 0;\n target.flipX = false;\n target.flipY = false;\n target.rotate(0);\n },\n\n /**\n * Extract Object transform values\n * @static\n * @memberOf fabric.util\n * @param {fabric.Object} target object to read from\n * @return {Object} Components of transform\n */\n saveObjectTransform: function (target) {\n return {\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n skewX: target.skewX,\n skewY: target.skewY,\n angle: target.angle,\n left: target.left,\n flipX: target.flipX,\n flipY: target.flipY,\n top: target.top\n };\n },\n\n /**\n * Returns true if context has transparent pixel\n * at specified location (taking tolerance into account)\n * @param {CanvasRenderingContext2D} ctx context\n * @param {Number} x x coordinate\n * @param {Number} y y coordinate\n * @param {Number} tolerance Tolerance\n */\n isTransparent: function(ctx, x, y, tolerance) {\n\n // If tolerance is > 0 adjust start coords to take into account.\n // If moves off Canvas fix to 0\n if (tolerance > 0) {\n if (x > tolerance) {\n x -= tolerance;\n }\n else {\n x = 0;\n }\n if (y > tolerance) {\n y -= tolerance;\n }\n else {\n y = 0;\n }\n }\n\n var _isTransparent = true, i, temp,\n imageData = ctx.getImageData(x, y, (tolerance * 2) || 1, (tolerance * 2) || 1),\n l = imageData.data.length;\n\n // Split image data - for tolerance > 1, pixelDataSize = 4;\n for (i = 3; i < l; i += 4) {\n temp = imageData.data[i];\n _isTransparent = temp <= 0;\n if (_isTransparent === false) {\n break; // Stop if colour found\n }\n }\n\n imageData = null;\n\n return _isTransparent;\n },\n\n /**\n * Parse preserveAspectRatio attribute from element\n * @param {string} attribute to be parsed\n * @return {Object} an object containing align and meetOrSlice attribute\n */\n parsePreserveAspectRatioAttribute: function(attribute) {\n var meetOrSlice = 'meet', alignX = 'Mid', alignY = 'Mid',\n aspectRatioAttrs = attribute.split(' '), align;\n\n if (aspectRatioAttrs && aspectRatioAttrs.length) {\n meetOrSlice = aspectRatioAttrs.pop();\n if (meetOrSlice !== 'meet' && meetOrSlice !== 'slice') {\n align = meetOrSlice;\n meetOrSlice = 'meet';\n }\n else if (aspectRatioAttrs.length) {\n align = aspectRatioAttrs.pop();\n }\n }\n //divide align in alignX and alignY\n alignX = align !== 'none' ? align.slice(1, 4) : 'none';\n alignY = align !== 'none' ? align.slice(5, 8) : 'none';\n return {\n meetOrSlice: meetOrSlice,\n alignX: alignX,\n alignY: alignY\n };\n },\n\n /**\n * Clear char widths cache for the given font family or all the cache if no\n * fontFamily is specified.\n * Use it if you know you are loading fonts in a lazy way and you are not waiting\n * for custom fonts to load properly when adding text objects to the canvas.\n * If a text object is added when its own font is not loaded yet, you will get wrong\n * measurement and so wrong bounding boxes.\n * After the font cache is cleared, either change the textObject text content or call\n * initDimensions() to trigger a recalculation\n * @memberOf fabric.util\n * @param {String} [fontFamily] font family to clear\n */\n clearFabricFontCache: function(fontFamily) {\n fontFamily = (fontFamily || '').toLowerCase();\n if (!fontFamily) {\n fabric.charWidthsCache = { };\n }\n else if (fabric.charWidthsCache[fontFamily]) {\n delete fabric.charWidthsCache[fontFamily];\n }\n },\n\n /**\n * Given current aspect ratio, determines the max width and height that can\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Number} ar aspect ratio\n * @param {Number} maximumArea Maximum area you want to achieve\n * @return {Object.x} Limited dimensions by X\n * @return {Object.y} Limited dimensions by Y\n */\n limitDimsByArea: function(ar, maximumArea) {\n var roughWidth = Math.sqrt(maximumArea * ar),\n perfLimitSizeY = Math.floor(maximumArea / roughWidth);\n return { x: Math.floor(roughWidth), y: perfLimitSizeY };\n },\n\n capValue: function(min, value, max) {\n return Math.max(min, Math.min(value, max));\n },\n\n /**\n * Finds the scale for the object source to fit inside the object destination,\n * keeping aspect ratio intact.\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Object | fabric.Object} source\n * @param {Number} source.height natural unscaled height of the object\n * @param {Number} source.width natural unscaled width of the object\n * @param {Object | fabric.Object} destination\n * @param {Number} destination.height natural unscaled height of the object\n * @param {Number} destination.width natural unscaled width of the object\n * @return {Number} scale factor to apply to source to fit into destination\n */\n findScaleToFit: function(source, destination) {\n return Math.min(destination.width / source.width, destination.height / source.height);\n },\n\n /**\n * Finds the scale for the object source to cover entirely the object destination,\n * keeping aspect ratio intact.\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Object | fabric.Object} source\n * @param {Number} source.height natural unscaled height of the object\n * @param {Number} source.width natural unscaled width of the object\n * @param {Object | fabric.Object} destination\n * @param {Number} destination.height natural unscaled height of the object\n * @param {Number} destination.width natural unscaled width of the object\n * @return {Number} scale factor to apply to source to cover destination\n */\n findScaleToCover: function(source, destination) {\n return Math.max(destination.width / source.width, destination.height / source.height);\n },\n\n /**\n * given an array of 6 number returns something like `\"matrix(...numbers)\"`\n * @memberOf fabric.util\n * @param {Array} transform an array with 6 numbers\n * @return {String} transform matrix for svg\n * @return {Object.y} Limited dimensions by Y\n */\n matrixToSVG: function(transform) {\n return 'matrix(' + transform.map(function(value) {\n return fabric.util.toFixed(value, fabric.Object.NUM_FRACTION_DIGITS);\n }).join(' ') + ')';\n },\n\n /**\n * given a width and height, return the size of the bounding box\n * that can contains the box with width/height with applied transform\n * described in options.\n * Use to calculate the boxes around objects for controls.\n * @memberOf fabric.util\n * @param {Number} width\n * @param {Number} height\n * @param {Object} options\n * @param {Number} options.scaleX\n * @param {Number} options.scaleY\n * @param {Number} options.skewX\n * @param {Number} options.skewY\n * @return {Object.x} width of containing\n * @return {Object.y} height of containing\n */\n sizeAfterTransform: function(width, height, options) {\n var dimX = width / 2, dimY = height / 2,\n points = [\n {\n x: -dimX,\n y: -dimY\n },\n {\n x: dimX,\n y: -dimY\n },\n {\n x: -dimX,\n y: dimY\n },\n {\n x: dimX,\n y: dimY\n }],\n transformMatrix = fabric.util.calcDimensionsMatrix(options),\n bbox = fabric.util.makeBoundingBoxFromPoints(points, transformMatrix);\n return {\n x: bbox.width,\n y: bbox.height,\n };\n }\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n var _join = Array.prototype.join,\n commandLengths = {\n m: 2,\n l: 2,\n h: 1,\n v: 1,\n c: 6,\n s: 4,\n q: 4,\n t: 2,\n a: 7\n },\n repeatedCommands = {\n m: 'l',\n M: 'L'\n };\n function segmentToBezier(th2, th3, cosTh, sinTh, rx, ry, cx1, cy1, mT, fromX, fromY) {\n var costh2 = fabric.util.cos(th2),\n sinth2 = fabric.util.sin(th2),\n costh3 = fabric.util.cos(th3),\n sinth3 = fabric.util.sin(th3),\n toX = cosTh * rx * costh3 - sinTh * ry * sinth3 + cx1,\n toY = sinTh * rx * costh3 + cosTh * ry * sinth3 + cy1,\n cp1X = fromX + mT * ( -cosTh * rx * sinth2 - sinTh * ry * costh2),\n cp1Y = fromY + mT * ( -sinTh * rx * sinth2 + cosTh * ry * costh2),\n cp2X = toX + mT * ( cosTh * rx * sinth3 + sinTh * ry * costh3),\n cp2Y = toY + mT * ( sinTh * rx * sinth3 - cosTh * ry * costh3);\n\n return ['C',\n cp1X, cp1Y,\n cp2X, cp2Y,\n toX, toY\n ];\n }\n\n /* Adapted from http://dxr.mozilla.org/mozilla-central/source/content/svg/content/src/nsSVGPathDataParser.cpp\n * by Andrea Bogazzi code is under MPL. if you don't have a copy of the license you can take it here\n * http://mozilla.org/MPL/2.0/\n */\n function arcToSegments(toX, toY, rx, ry, large, sweep, rotateX) {\n var PI = Math.PI, th = rotateX * PI / 180,\n sinTh = fabric.util.sin(th),\n cosTh = fabric.util.cos(th),\n fromX = 0, fromY = 0;\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var px = -cosTh * toX * 0.5 - sinTh * toY * 0.5,\n py = -cosTh * toY * 0.5 + sinTh * toX * 0.5,\n rx2 = rx * rx, ry2 = ry * ry, py2 = py * py, px2 = px * px,\n pl = rx2 * ry2 - rx2 * py2 - ry2 * px2,\n root = 0;\n\n if (pl < 0) {\n var s = Math.sqrt(1 - pl / (rx2 * ry2));\n rx *= s;\n ry *= s;\n }\n else {\n root = (large === sweep ? -1.0 : 1.0) *\n Math.sqrt( pl / (rx2 * py2 + ry2 * px2));\n }\n\n var cx = root * rx * py / ry,\n cy = -root * ry * px / rx,\n cx1 = cosTh * cx - sinTh * cy + toX * 0.5,\n cy1 = sinTh * cx + cosTh * cy + toY * 0.5,\n mTheta = calcVectorAngle(1, 0, (px - cx) / rx, (py - cy) / ry),\n dtheta = calcVectorAngle((px - cx) / rx, (py - cy) / ry, (-px - cx) / rx, (-py - cy) / ry);\n\n if (sweep === 0 && dtheta > 0) {\n dtheta -= 2 * PI;\n }\n else if (sweep === 1 && dtheta < 0) {\n dtheta += 2 * PI;\n }\n\n // Convert into cubic bezier segments <= 90deg\n var segments = Math.ceil(Math.abs(dtheta / PI * 2)),\n result = [], mDelta = dtheta / segments,\n mT = 8 / 3 * Math.sin(mDelta / 4) * Math.sin(mDelta / 4) / Math.sin(mDelta / 2),\n th3 = mTheta + mDelta;\n\n for (var i = 0; i < segments; i++) {\n result[i] = segmentToBezier(mTheta, th3, cosTh, sinTh, rx, ry, cx1, cy1, mT, fromX, fromY);\n fromX = result[i][5];\n fromY = result[i][6];\n mTheta = th3;\n th3 += mDelta;\n }\n return result;\n }\n\n /*\n * Private\n */\n function calcVectorAngle(ux, uy, vx, vy) {\n var ta = Math.atan2(uy, ux),\n tb = Math.atan2(vy, vx);\n if (tb >= ta) {\n return tb - ta;\n }\n else {\n return 2 * Math.PI - (ta - tb);\n }\n }\n\n /**\n * Calculate bounding box of a beziercurve\n * @param {Number} x0 starting point\n * @param {Number} y0\n * @param {Number} x1 first control point\n * @param {Number} y1\n * @param {Number} x2 secondo control point\n * @param {Number} y2\n * @param {Number} x3 end of bezier\n * @param {Number} y3\n */\n // taken from http://jsbin.com/ivomiq/56/edit no credits available for that.\n // TODO: can we normalize this with the starting points set at 0 and then translated the bbox?\n function getBoundsOfCurve(x0, y0, x1, y1, x2, y2, x3, y3) {\n var argsString;\n if (fabric.cachesBoundsOfCurve) {\n argsString = _join.call(arguments);\n if (fabric.boundsOfCurveCache[argsString]) {\n return fabric.boundsOfCurveCache[argsString];\n }\n }\n\n var sqrt = Math.sqrt,\n min = Math.min, max = Math.max,\n abs = Math.abs, tvalues = [],\n bounds = [[], []],\n a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n\n for (var i = 0; i < 2; ++i) {\n if (i > 0) {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n if (b2ac < 0) {\n continue;\n }\n sqrtb2ac = sqrt(b2ac);\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length, jlen = j, mt;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n x = (mt * mt * mt * x0) + (3 * mt * mt * t * x1) + (3 * mt * t * t * x2) + (t * t * t * x3);\n bounds[0][j] = x;\n\n y = (mt * mt * mt * y0) + (3 * mt * mt * t * y1) + (3 * mt * t * t * y2) + (t * t * t * y3);\n bounds[1][j] = y;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n var result = [\n {\n x: min.apply(null, bounds[0]),\n y: min.apply(null, bounds[1])\n },\n {\n x: max.apply(null, bounds[0]),\n y: max.apply(null, bounds[1])\n }\n ];\n if (fabric.cachesBoundsOfCurve) {\n fabric.boundsOfCurveCache[argsString] = result;\n }\n return result;\n }\n\n /**\n * Converts arc to a bunch of bezier curves\n * @param {Number} fx starting point x\n * @param {Number} fy starting point y\n * @param {Array} coords Arc command\n */\n function fromArcToBeziers(fx, fy, coords) {\n var rx = coords[1],\n ry = coords[2],\n rot = coords[3],\n large = coords[4],\n sweep = coords[5],\n tx = coords[6],\n ty = coords[7],\n segsNorm = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot);\n\n for (var i = 0, len = segsNorm.length; i < len; i++) {\n segsNorm[i][1] += fx;\n segsNorm[i][2] += fy;\n segsNorm[i][3] += fx;\n segsNorm[i][4] += fy;\n segsNorm[i][5] += fx;\n segsNorm[i][6] += fy;\n }\n return segsNorm;\n };\n\n /**\n * This function take a parsed SVG path and make it simpler for fabricJS logic.\n * simplification consist of: only UPPERCASE absolute commands ( relative converted to absolute )\n * S converted in C, T converted in Q, A converted in C.\n * @param {Array} path the array of commands of a parsed svg path for fabric.Path\n * @return {Array} the simplified array of commands of a parsed svg path for fabric.Path\n */\n function makePathSimpler(path) {\n // x and y represent the last point of the path. the previous command point.\n // we add them to each relative command to make it an absolute comment.\n // we also swap the v V h H with L, because are easier to transform.\n var x = 0, y = 0, len = path.length,\n // x1 and y1 represent the last point of the subpath. the subpath is started with\n // m or M command. When a z or Z command is drawn, x and y need to be resetted to\n // the last x1 and y1.\n x1 = 0, y1 = 0, current, i, converted,\n // previous will host the letter of the previous command, to handle S and T.\n // controlX and controlY will host the previous reflected control point\n destinationPath = [], previous, controlX, controlY;\n for (i = 0; i < len; ++i) {\n converted = false;\n current = path[i].slice(0);\n switch (current[0]) { // first letter\n case 'l': // lineto, relative\n current[0] = 'L';\n current[1] += x;\n current[2] += y;\n // falls through\n case 'L':\n x = current[1];\n y = current[2];\n break;\n case 'h': // horizontal lineto, relative\n current[1] += x;\n // falls through\n case 'H':\n current[0] = 'L';\n current[2] = y;\n x = current[1];\n break;\n case 'v': // vertical lineto, relative\n current[1] += y;\n // falls through\n case 'V':\n current[0] = 'L';\n y = current[1];\n current[1] = x;\n current[2] = y;\n break;\n case 'm': // moveTo, relative\n current[0] = 'M';\n current[1] += x;\n current[2] += y;\n // falls through\n case 'M':\n x = current[1];\n y = current[2];\n x1 = current[1];\n y1 = current[2];\n break;\n case 'c': // bezierCurveTo, relative\n current[0] = 'C';\n current[1] += x;\n current[2] += y;\n current[3] += x;\n current[4] += y;\n current[5] += x;\n current[6] += y;\n // falls through\n case 'C':\n controlX = current[3];\n controlY = current[4];\n x = current[5];\n y = current[6];\n break;\n case 's': // shorthand cubic bezierCurveTo, relative\n current[0] = 'S';\n current[1] += x;\n current[2] += y;\n current[3] += x;\n current[4] += y;\n // falls through\n case 'S':\n // would be sScC but since we are swapping sSc for C, we check just that.\n if (previous === 'C') {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n else {\n // If there is no previous command or if the previous command was not a C, c, S, or s,\n // the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n x = current[3];\n y = current[4];\n current[0] = 'C';\n current[5] = current[3];\n current[6] = current[4];\n current[3] = current[1];\n current[4] = current[2];\n current[1] = controlX;\n current[2] = controlY;\n // current[3] and current[4] are NOW the second control point.\n // we keep it for the next reflection.\n controlX = current[3];\n controlY = current[4];\n break;\n case 'q': // quadraticCurveTo, relative\n current[0] = 'Q';\n current[1] += x;\n current[2] += y;\n current[3] += x;\n current[4] += y;\n // falls through\n case 'Q':\n controlX = current[1];\n controlY = current[2];\n x = current[3];\n y = current[4];\n break;\n case 't': // shorthand quadraticCurveTo, relative\n current[0] = 'T';\n current[1] += x;\n current[2] += y;\n // falls through\n case 'T':\n if (previous === 'Q') {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n else {\n // If there is no previous command or if the previous command was not a Q, q, T or t,\n // assume the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n current[0] = 'Q';\n x = current[1];\n y = current[2];\n current[1] = controlX;\n current[2] = controlY;\n current[3] = x;\n current[4] = y;\n break;\n case 'a':\n current[0] = 'A';\n current[6] += x;\n current[7] += y;\n // falls through\n case 'A':\n converted = true;\n destinationPath = destinationPath.concat(fromArcToBeziers(x, y, current));\n x = current[6];\n y = current[7];\n break;\n case 'z':\n case 'Z':\n x = x1;\n y = y1;\n break;\n default:\n }\n if (!converted) {\n destinationPath.push(current);\n }\n previous = current[0];\n }\n return destinationPath;\n };\n\n /**\n * Calc length from point x1,y1 to x2,y2\n * @param {Number} x1 starting point x\n * @param {Number} y1 starting point y\n * @param {Number} x2 starting point x\n * @param {Number} y2 starting point y\n * @return {Number} length of segment\n */\n function calcLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n // functions for the Cubic beizer\n // taken from: https://github.com/konvajs/konva/blob/7.0.5/src/shapes/Path.ts#L350\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n\n function getPointOnCubicBezierIterator(p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n return function(pct) {\n var c1 = CB1(pct), c2 = CB2(pct), c3 = CB3(pct), c4 = CB4(pct);\n return {\n x: p4x * c1 + p3x * c2 + p2x * c3 + p1x * c4,\n y: p4y * c1 + p3y * c2 + p2y * c3 + p1y * c4\n };\n };\n }\n\n function getTangentCubicIterator(p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n return function (pct) {\n var invT = 1 - pct,\n tangentX = (3 * invT * invT * (p2x - p1x)) + (6 * invT * pct * (p3x - p2x)) +\n (3 * pct * pct * (p4x - p3x)),\n tangentY = (3 * invT * invT * (p2y - p1y)) + (6 * invT * pct * (p3y - p2y)) +\n (3 * pct * pct * (p4y - p3y));\n return Math.atan2(tangentY, tangentX);\n };\n }\n\n function QB1(t) {\n return t * t;\n }\n\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n\n function getPointOnQuadraticBezierIterator(p1x, p1y, p2x, p2y, p3x, p3y) {\n return function(pct) {\n var c1 = QB1(pct), c2 = QB2(pct), c3 = QB3(pct);\n return {\n x: p3x * c1 + p2x * c2 + p1x * c3,\n y: p3y * c1 + p2y * c2 + p1y * c3\n };\n };\n }\n\n function getTangentQuadraticIterator(p1x, p1y, p2x, p2y, p3x, p3y) {\n return function (pct) {\n var invT = 1 - pct,\n tangentX = (2 * invT * (p2x - p1x)) + (2 * pct * (p3x - p2x)),\n tangentY = (2 * invT * (p2y - p1y)) + (2 * pct * (p3y - p2y));\n return Math.atan2(tangentY, tangentX);\n };\n }\n\n\n // this will run over a path segment ( a cubic or quadratic segment) and approximate it\n // with 100 segemnts. This will good enough to calculate the length of the curve\n function pathIterator(iterator, x1, y1) {\n var tempP = { x: x1, y: y1 }, p, tmpLen = 0, perc;\n for (perc = 0.01; perc <= 1; perc += 0.01) {\n p = iterator(perc);\n tmpLen += calcLineLength(tempP.x, tempP.y, p.x, p.y);\n tempP = p;\n }\n return tmpLen;\n }\n\n /**\n * Given a pathInfo, and a distance in pixels, find the percentage from 0 to 1\n * that correspond to that pixels run over the path.\n * The percentage will be then used to find the correct point on the canvas for the path.\n * @param {Array} segInfo fabricJS collection of information on a parsed path\n * @param {Number} distance from starting point, in pixels.\n * @return {Object} info object with x and y ( the point on canvas ) and angle, the tangent on that point;\n */\n function findPercentageForDistance(segInfo, distance) {\n var perc = 0, tmpLen = 0, iterator = segInfo.iterator, tempP = { x: segInfo.x, y: segInfo.y },\n p, nextLen, nextStep = 0.01, angleFinder = segInfo.angleFinder, lastPerc;\n // nextStep > 0.0001 covers 0.00015625 that 1/64th of 1/100\n // the path\n while (tmpLen < distance && perc <= 1 && nextStep > 0.0001) {\n p = iterator(perc);\n lastPerc = perc;\n nextLen = calcLineLength(tempP.x, tempP.y, p.x, p.y);\n // compare tmpLen each cycle with distance, decide next perc to test.\n if ((nextLen + tmpLen) > distance) {\n // we discard this step and we make smaller steps.\n nextStep /= 2;\n perc -= nextStep;\n }\n else {\n tempP = p;\n perc += nextStep;\n tmpLen += nextLen;\n }\n }\n p.angle = angleFinder(lastPerc);\n return p;\n }\n\n /**\n * Run over a parsed and simplifed path and extrac some informations.\n * informations are length of each command and starting point\n * @param {Array} path fabricJS parsed path commands\n * @return {Array} path commands informations\n */\n function getPathSegmentsInfo(path) {\n var totalLength = 0, len = path.length, current,\n //x2 and y2 are the coords of segment start\n //x1 and y1 are the coords of the current point\n x1 = 0, y1 = 0, x2 = 0, y2 = 0, info = [], iterator, tempInfo, angleFinder;\n for (var i = 0; i < len; i++) {\n current = path[i];\n tempInfo = {\n x: x1,\n y: y1,\n command: current[0],\n };\n switch (current[0]) { //first letter\n case 'M':\n tempInfo.length = 0;\n x2 = x1 = current[1];\n y2 = y1 = current[2];\n break;\n case 'L':\n tempInfo.length = calcLineLength(x1, y1, current[1], current[2]);\n x1 = current[1];\n y1 = current[2];\n break;\n case 'C':\n iterator = getPointOnCubicBezierIterator(\n x1,\n y1,\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6]\n );\n angleFinder = getTangentCubicIterator(\n x1,\n y1,\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6]\n );\n tempInfo.iterator = iterator;\n tempInfo.angleFinder = angleFinder;\n tempInfo.length = pathIterator(iterator, x1, y1);\n x1 = current[5];\n y1 = current[6];\n break;\n case 'Q':\n iterator = getPointOnQuadraticBezierIterator(\n x1,\n y1,\n current[1],\n current[2],\n current[3],\n current[4]\n );\n angleFinder = getTangentQuadraticIterator(\n x1,\n y1,\n current[1],\n current[2],\n current[3],\n current[4]\n );\n tempInfo.iterator = iterator;\n tempInfo.angleFinder = angleFinder;\n tempInfo.length = pathIterator(iterator, x1, y1);\n x1 = current[3];\n y1 = current[4];\n break;\n case 'Z':\n case 'z':\n // we add those in order to ease calculations later\n tempInfo.destX = x2;\n tempInfo.destY = y2;\n tempInfo.length = calcLineLength(x1, y1, x2, y2);\n x1 = x2;\n y1 = y2;\n break;\n }\n totalLength += tempInfo.length;\n info.push(tempInfo);\n }\n info.push({ length: totalLength, x: x1, y: y1 });\n return info;\n }\n\n function getPointOnPath(path, distance, infos) {\n if (!infos) {\n infos = getPathSegmentsInfo(path);\n }\n var i = 0;\n while ((distance - infos[i].length > 0) && i < (infos.length - 2)) {\n distance -= infos[i].length;\n i++;\n }\n // var distance = infos[infos.length - 1] * perc;\n var segInfo = infos[i], segPercent = distance / segInfo.length,\n command = segInfo.command, segment = path[i], info;\n\n switch (command) {\n case 'M':\n return { x: segInfo.x, y: segInfo.y, angle: 0 };\n case 'Z':\n case 'z':\n info = new fabric.Point(segInfo.x, segInfo.y).lerp(\n new fabric.Point(segInfo.destX, segInfo.destY),\n segPercent\n );\n info.angle = Math.atan2(segInfo.destY - segInfo.y, segInfo.destX - segInfo.x);\n return info;\n case 'L':\n info = new fabric.Point(segInfo.x, segInfo.y).lerp(\n new fabric.Point(segment[1], segment[2]),\n segPercent\n );\n info.angle = Math.atan2(segment[2] - segInfo.y, segment[1] - segInfo.x);\n return info;\n case 'C':\n return findPercentageForDistance(segInfo, distance);\n case 'Q':\n return findPercentageForDistance(segInfo, distance);\n }\n }\n\n function parsePath(pathString) {\n var result = [],\n coords = [],\n currentPath,\n parsed,\n re = fabric.rePathCommand,\n rNumber = '[-+]?(?:\\\\d*\\\\.\\\\d+|\\\\d+\\\\.?)(?:[eE][-+]?\\\\d+)?\\\\s*',\n rNumberCommaWsp = '(' + rNumber + ')' + fabric.commaWsp,\n rFlagCommaWsp = '([01])' + fabric.commaWsp + '?',\n rArcSeq = rNumberCommaWsp + '?' + rNumberCommaWsp + '?' + rNumberCommaWsp + rFlagCommaWsp + rFlagCommaWsp +\n rNumberCommaWsp + '?(' + rNumber + ')',\n regArcArgumentSequence = new RegExp(rArcSeq, 'g'),\n match,\n coordsStr,\n // one of commands (m,M,l,L,q,Q,c,C,etc.) followed by non-command characters (i.e. command values)\n path;\n if (!pathString || !pathString.match) {\n return result;\n }\n path = pathString.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi);\n\n for (var i = 0, coordsParsed, len = path.length; i < len; i++) {\n currentPath = path[i];\n\n coordsStr = currentPath.slice(1).trim();\n coords.length = 0;\n\n var command = currentPath.charAt(0);\n coordsParsed = [command];\n\n if (command.toLowerCase() === 'a') {\n // arcs have special flags that apparently don't require spaces so handle special\n for (var args; (args = regArcArgumentSequence.exec(coordsStr));) {\n for (var j = 1; j < args.length; j++) {\n coords.push(args[j]);\n }\n }\n }\n else {\n while ((match = re.exec(coordsStr))) {\n coords.push(match[0]);\n }\n }\n\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n coordsParsed.push(parsed);\n }\n }\n\n var commandLength = commandLengths[command.toLowerCase()],\n repeatedCommand = repeatedCommands[command] || command;\n\n if (coordsParsed.length - 1 > commandLength) {\n for (var k = 1, klen = coordsParsed.length; k < klen; k += commandLength) {\n result.push([command].concat(coordsParsed.slice(k, k + commandLength)));\n command = repeatedCommand;\n }\n }\n else {\n result.push(coordsParsed);\n }\n }\n\n return result;\n };\n\n /**\n * Calculate bounding box of a elliptic-arc\n * @deprecated\n * @param {Number} fx start point of arc\n * @param {Number} fy\n * @param {Number} rx horizontal radius\n * @param {Number} ry vertical radius\n * @param {Number} rot angle of horizontal axis\n * @param {Number} large 1 or 0, whatever the arc is the big or the small on the 2 points\n * @param {Number} sweep 1 or 0, 1 clockwise or counterclockwise direction\n * @param {Number} tx end point of arc\n * @param {Number} ty\n */\n function getBoundsOfArc(fx, fy, rx, ry, rot, large, sweep, tx, ty) {\n\n var fromX = 0, fromY = 0, bound, bounds = [],\n segs = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot);\n\n for (var i = 0, len = segs.length; i < len; i++) {\n bound = getBoundsOfCurve(fromX, fromY, segs[i][1], segs[i][2], segs[i][3], segs[i][4], segs[i][5], segs[i][6]);\n bounds.push({ x: bound[0].x + fx, y: bound[0].y + fy });\n bounds.push({ x: bound[1].x + fx, y: bound[1].y + fy });\n fromX = segs[i][5];\n fromY = segs[i][6];\n }\n return bounds;\n };\n\n /**\n * Draws arc\n * @deprecated\n * @param {CanvasRenderingContext2D} ctx\n * @param {Number} fx\n * @param {Number} fy\n * @param {Array} coords coords of the arc, without the front 'A/a'\n */\n function drawArc(ctx, fx, fy, coords) {\n coords = coords.slice(0).unshift('X'); // command A or a does not matter\n var beziers = fromArcToBeziers(fx, fy, coords);\n beziers.forEach(function(bezier) {\n ctx.bezierCurveTo.apply(ctx, bezier.slice(1));\n });\n };\n\n fabric.util.parsePath = parsePath;\n fabric.util.makePathSimpler = makePathSimpler;\n fabric.util.getPathSegmentsInfo = getPathSegmentsInfo;\n fabric.util.fromArcToBeziers = fromArcToBeziers;\n /**\n * Typo of `fromArcToBeziers` kept for not breaking the api once corrected.\n * Will be removed in fabric 5.0\n * @deprecated\n */\n fabric.util.fromArcToBeizers = fromArcToBeziers;\n fabric.util.getBoundsOfCurve = getBoundsOfCurve;\n fabric.util.getPointOnPath = getPointOnPath;\n // kept because we do not want to make breaking changes.\n // but useless and deprecated.\n fabric.util.getBoundsOfArc = getBoundsOfArc;\n fabric.util.drawArc = drawArc;\n})();\n\n\n(function() {\n\n var slice = Array.prototype.slice;\n\n /**\n * Invokes method on all items in a given array\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} method Name of a method to invoke\n * @return {Array}\n */\n function invoke(array, method) {\n var args = slice.call(arguments, 2), result = [];\n for (var i = 0, len = array.length; i < len; i++) {\n result[i] = args.length ? array[i][method].apply(array[i], args) : array[i][method].call(array[i]);\n }\n return result;\n }\n\n /**\n * Finds maximum value in array (not necessarily \"first\" one)\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} byProperty\n * @return {*}\n */\n function max(array, byProperty) {\n return find(array, byProperty, function(value1, value2) {\n return value1 >= value2;\n });\n }\n\n /**\n * Finds minimum value in array (not necessarily \"first\" one)\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} byProperty\n * @return {*}\n */\n function min(array, byProperty) {\n return find(array, byProperty, function(value1, value2) {\n return value1 < value2;\n });\n }\n\n /**\n * @private\n */\n function fill(array, value) {\n var k = array.length;\n while (k--) {\n array[k] = value;\n }\n return array;\n }\n\n /**\n * @private\n */\n function find(array, byProperty, condition) {\n if (!array || array.length === 0) {\n return;\n }\n\n var i = array.length - 1,\n result = byProperty ? array[i][byProperty] : array[i];\n if (byProperty) {\n while (i--) {\n if (condition(array[i][byProperty], result)) {\n result = array[i][byProperty];\n }\n }\n }\n else {\n while (i--) {\n if (condition(array[i], result)) {\n result = array[i];\n }\n }\n }\n return result;\n }\n\n /**\n * @namespace fabric.util.array\n */\n fabric.util.array = {\n fill: fill,\n invoke: invoke,\n min: min,\n max: max\n };\n\n})();\n\n\n(function() {\n /**\n * Copies all enumerable properties of one js object to another\n * this does not and cannot compete with generic utils.\n * Does not clone or extend fabric.Object subclasses.\n * This is mostly for internal use and has extra handling for fabricJS objects\n * it skips the canvas and group properties in deep cloning.\n * @memberOf fabric.util.object\n * @param {Object} destination Where to copy to\n * @param {Object} source Where to copy from\n * @return {Object}\n */\n\n function extend(destination, source, deep) {\n // JScript DontEnum bug is not taken care of\n // the deep clone is for internal use, is not meant to avoid\n // javascript traps or cloning html element or self referenced objects.\n if (deep) {\n if (!fabric.isLikelyNode && source instanceof Element) {\n // avoid cloning deep images, canvases,\n destination = source;\n }\n else if (source instanceof Array) {\n destination = [];\n for (var i = 0, len = source.length; i < len; i++) {\n destination[i] = extend({ }, source[i], deep);\n }\n }\n else if (source && typeof source === 'object') {\n for (var property in source) {\n if (property === 'canvas' || property === 'group') {\n // we do not want to clone this props at all.\n // we want to keep the keys in the copy\n destination[property] = null;\n }\n else if (source.hasOwnProperty(property)) {\n destination[property] = extend({ }, source[property], deep);\n }\n }\n }\n else {\n // this sounds odd for an extend but is ok for recursive use\n destination = source;\n }\n }\n else {\n for (var property in source) {\n destination[property] = source[property];\n }\n }\n return destination;\n }\n\n /**\n * Creates an empty object and copies all enumerable properties of another object to it\n * @memberOf fabric.util.object\n * TODO: this function return an empty object if you try to clone null\n * @param {Object} object Object to clone\n * @return {Object}\n */\n function clone(object, deep) {\n return extend({ }, object, deep);\n }\n\n /** @namespace fabric.util.object */\n fabric.util.object = {\n extend: extend,\n clone: clone\n };\n fabric.util.object.extend(fabric.util, fabric.Observable);\n})();\n\n\n(function() {\n\n /**\n * Camelizes a string\n * @memberOf fabric.util.string\n * @param {String} string String to camelize\n * @return {String} Camelized version of a string\n */\n function camelize(string) {\n return string.replace(/-+(.)?/g, function(match, character) {\n return character ? character.toUpperCase() : '';\n });\n }\n\n /**\n * Capitalizes a string\n * @memberOf fabric.util.string\n * @param {String} string String to capitalize\n * @param {Boolean} [firstLetterOnly] If true only first letter is capitalized\n * and other letters stay untouched, if false first letter is capitalized\n * and other letters are converted to lowercase.\n * @return {String} Capitalized version of a string\n */\n function capitalize(string, firstLetterOnly) {\n return string.charAt(0).toUpperCase() +\n (firstLetterOnly ? string.slice(1) : string.slice(1).toLowerCase());\n }\n\n /**\n * Escapes XML in a string\n * @memberOf fabric.util.string\n * @param {String} string String to escape\n * @return {String} Escaped version of a string\n */\n function escapeXml(string) {\n return string.replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n /**\n * Divide a string in the user perceived single units\n * @memberOf fabric.util.string\n * @param {String} textstring String to escape\n * @return {Array} array containing the graphemes\n */\n function graphemeSplit(textstring) {\n var i = 0, chr, graphemes = [];\n for (i = 0, chr; i < textstring.length; i++) {\n if ((chr = getWholeChar(textstring, i)) === false) {\n continue;\n }\n graphemes.push(chr);\n }\n return graphemes;\n }\n\n // taken from mdn in the charAt doc page.\n function getWholeChar(str, i) {\n var code = str.charCodeAt(i);\n\n if (isNaN(code)) {\n return ''; // Position not found\n }\n if (code < 0xD800 || code > 0xDFFF) {\n return str.charAt(i);\n }\n\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xD800 <= code && code <= 0xDBFF) {\n if (str.length <= (i + 1)) {\n throw 'High surrogate without following low surrogate';\n }\n var next = str.charCodeAt(i + 1);\n if (0xDC00 > next || next > 0xDFFF) {\n throw 'High surrogate without following low surrogate';\n }\n return str.charAt(i) + str.charAt(i + 1);\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw 'Low surrogate without preceding high surrogate';\n }\n var prev = str.charCodeAt(i - 1);\n\n // (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xD800 > prev || prev > 0xDBFF) {\n throw 'Low surrogate without preceding high surrogate';\n }\n // We can pass over low surrogates now as the second component\n // in a pair which we have already processed\n return false;\n }\n\n\n /**\n * String utilities\n * @namespace fabric.util.string\n */\n fabric.util.string = {\n camelize: camelize,\n capitalize: capitalize,\n escapeXml: escapeXml,\n graphemeSplit: graphemeSplit\n };\n})();\n\n\n(function() {\n\n var slice = Array.prototype.slice, emptyFunction = function() { },\n\n IS_DONTENUM_BUGGY = (function() {\n for (var p in { toString: 1 }) {\n if (p === 'toString') {\n return false;\n }\n }\n return true;\n })(),\n\n /** @ignore */\n addMethods = function(klass, source, parent) {\n for (var property in source) {\n\n if (property in klass.prototype &&\n typeof klass.prototype[property] === 'function' &&\n (source[property] + '').indexOf('callSuper') > -1) {\n\n klass.prototype[property] = (function(property) {\n return function() {\n\n var superclass = this.constructor.superclass;\n this.constructor.superclass = parent;\n var returnValue = source[property].apply(this, arguments);\n this.constructor.superclass = superclass;\n\n if (property !== 'initialize') {\n return returnValue;\n }\n };\n })(property);\n }\n else {\n klass.prototype[property] = source[property];\n }\n\n if (IS_DONTENUM_BUGGY) {\n if (source.toString !== Object.prototype.toString) {\n klass.prototype.toString = source.toString;\n }\n if (source.valueOf !== Object.prototype.valueOf) {\n klass.prototype.valueOf = source.valueOf;\n }\n }\n }\n };\n\n function Subclass() { }\n\n function callSuper(methodName) {\n var parentMethod = null,\n _this = this;\n\n // climb prototype chain to find method not equal to callee's method\n while (_this.constructor.superclass) {\n var superClassMethod = _this.constructor.superclass.prototype[methodName];\n if (_this[methodName] !== superClassMethod) {\n parentMethod = superClassMethod;\n break;\n }\n // eslint-disable-next-line\n _this = _this.constructor.superclass.prototype;\n }\n\n if (!parentMethod) {\n return console.log('tried to callSuper ' + methodName + ', method not found in prototype chain', this);\n }\n\n return (arguments.length > 1)\n ? parentMethod.apply(this, slice.call(arguments, 1))\n : parentMethod.call(this);\n }\n\n /**\n * Helper for creation of \"classes\".\n * @memberOf fabric.util\n * @param {Function} [parent] optional \"Class\" to inherit from\n * @param {Object} [properties] Properties shared by all instances of this class\n * (be careful modifying objects defined here as this would affect all instances)\n */\n function createClass() {\n var parent = null,\n properties = slice.call(arguments, 0);\n\n if (typeof properties[0] === 'function') {\n parent = properties.shift();\n }\n function klass() {\n this.initialize.apply(this, arguments);\n }\n\n klass.superclass = parent;\n klass.subclasses = [];\n\n if (parent) {\n Subclass.prototype = parent.prototype;\n klass.prototype = new Subclass();\n parent.subclasses.push(klass);\n }\n for (var i = 0, length = properties.length; i < length; i++) {\n addMethods(klass, properties[i], parent);\n }\n if (!klass.prototype.initialize) {\n klass.prototype.initialize = emptyFunction;\n }\n klass.prototype.constructor = klass;\n klass.prototype.callSuper = callSuper;\n return klass;\n }\n\n fabric.util.createClass = createClass;\n})();\n\n\n(function () {\n // since ie11 can use addEventListener but they do not support options, i need to check\n var couldUseAttachEvent = !!fabric.document.createElement('div').attachEvent,\n touchEvents = ['touchstart', 'touchmove', 'touchend'];\n /**\n * Adds an event listener to an element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {String} eventName\n * @param {Function} handler\n */\n fabric.util.addListener = function(element, eventName, handler, options) {\n element && element.addEventListener(eventName, handler, couldUseAttachEvent ? false : options);\n };\n\n /**\n * Removes an event listener from an element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {String} eventName\n * @param {Function} handler\n */\n fabric.util.removeListener = function(element, eventName, handler, options) {\n element && element.removeEventListener(eventName, handler, couldUseAttachEvent ? false : options);\n };\n\n function getTouchInfo(event) {\n var touchProp = event.changedTouches;\n if (touchProp && touchProp[0]) {\n return touchProp[0];\n }\n return event;\n }\n\n fabric.util.getPointer = function(event) {\n var element = event.target,\n scroll = fabric.util.getScrollLeftTop(element),\n _evt = getTouchInfo(event);\n return {\n x: _evt.clientX + scroll.left,\n y: _evt.clientY + scroll.top\n };\n };\n\n fabric.util.isTouchEvent = function(event) {\n return touchEvents.indexOf(event.type) > -1 || event.pointerType === 'touch';\n };\n})();\n\n\n(function () {\n\n /**\n * Cross-browser wrapper for setting element's style\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {Object} styles\n * @return {HTMLElement} Element that was passed as a first argument\n */\n function setStyle(element, styles) {\n var elementStyle = element.style;\n if (!elementStyle) {\n return element;\n }\n if (typeof styles === 'string') {\n element.style.cssText += ';' + styles;\n return styles.indexOf('opacity') > -1\n ? setOpacity(element, styles.match(/opacity:\\s*(\\d?\\.?\\d*)/)[1])\n : element;\n }\n for (var property in styles) {\n if (property === 'opacity') {\n setOpacity(element, styles[property]);\n }\n else {\n var normalizedProperty = (property === 'float' || property === 'cssFloat')\n ? (typeof elementStyle.styleFloat === 'undefined' ? 'cssFloat' : 'styleFloat')\n : property;\n elementStyle[normalizedProperty] = styles[property];\n }\n }\n return element;\n }\n\n var parseEl = fabric.document.createElement('div'),\n supportsOpacity = typeof parseEl.style.opacity === 'string',\n supportsFilters = typeof parseEl.style.filter === 'string',\n reOpacity = /alpha\\s*\\(\\s*opacity\\s*=\\s*([^\\)]+)\\)/,\n\n /** @ignore */\n setOpacity = function (element) { return element; };\n\n if (supportsOpacity) {\n /** @ignore */\n setOpacity = function(element, value) {\n element.style.opacity = value;\n return element;\n };\n }\n else if (supportsFilters) {\n /** @ignore */\n setOpacity = function(element, value) {\n var es = element.style;\n if (element.currentStyle && !element.currentStyle.hasLayout) {\n es.zoom = 1;\n }\n if (reOpacity.test(es.filter)) {\n value = value >= 0.9999 ? '' : ('alpha(opacity=' + (value * 100) + ')');\n es.filter = es.filter.replace(reOpacity, value);\n }\n else {\n es.filter += ' alpha(opacity=' + (value * 100) + ')';\n }\n return element;\n };\n }\n\n fabric.util.setStyle = setStyle;\n\n})();\n\n\n(function() {\n\n var _slice = Array.prototype.slice;\n\n /**\n * Takes id and returns an element with that id (if one exists in a document)\n * @memberOf fabric.util\n * @param {String|HTMLElement} id\n * @return {HTMLElement|null}\n */\n function getById(id) {\n return typeof id === 'string' ? fabric.document.getElementById(id) : id;\n }\n\n var sliceCanConvertNodelists,\n /**\n * Converts an array-like object (e.g. arguments or NodeList) to an array\n * @memberOf fabric.util\n * @param {Object} arrayLike\n * @return {Array}\n */\n toArray = function(arrayLike) {\n return _slice.call(arrayLike, 0);\n };\n\n try {\n sliceCanConvertNodelists = toArray(fabric.document.childNodes) instanceof Array;\n }\n catch (err) { }\n\n if (!sliceCanConvertNodelists) {\n toArray = function(arrayLike) {\n var arr = new Array(arrayLike.length), i = arrayLike.length;\n while (i--) {\n arr[i] = arrayLike[i];\n }\n return arr;\n };\n }\n\n /**\n * Creates specified element with specified attributes\n * @memberOf fabric.util\n * @param {String} tagName Type of an element to create\n * @param {Object} [attributes] Attributes to set on an element\n * @return {HTMLElement} Newly created element\n */\n function makeElement(tagName, attributes) {\n var el = fabric.document.createElement(tagName);\n for (var prop in attributes) {\n if (prop === 'class') {\n el.className = attributes[prop];\n }\n else if (prop === 'for') {\n el.htmlFor = attributes[prop];\n }\n else {\n el.setAttribute(prop, attributes[prop]);\n }\n }\n return el;\n }\n\n /**\n * Adds class to an element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to add class to\n * @param {String} className Class to add to an element\n */\n function addClass(element, className) {\n if (element && (' ' + element.className + ' ').indexOf(' ' + className + ' ') === -1) {\n element.className += (element.className ? ' ' : '') + className;\n }\n }\n\n /**\n * Wraps element with another element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to wrap\n * @param {HTMLElement|String} wrapper Element to wrap with\n * @param {Object} [attributes] Attributes to set on a wrapper\n * @return {HTMLElement} wrapper\n */\n function wrapElement(element, wrapper, attributes) {\n if (typeof wrapper === 'string') {\n wrapper = makeElement(wrapper, attributes);\n }\n if (element.parentNode) {\n element.parentNode.replaceChild(wrapper, element);\n }\n wrapper.appendChild(element);\n return wrapper;\n }\n\n /**\n * Returns element scroll offsets\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to operate on\n * @return {Object} Object with left/top values\n */\n function getScrollLeftTop(element) {\n\n var left = 0,\n top = 0,\n docElement = fabric.document.documentElement,\n body = fabric.document.body || {\n scrollLeft: 0, scrollTop: 0\n };\n\n // While loop checks (and then sets element to) .parentNode OR .host\n // to account for ShadowDOM. We still want to traverse up out of ShadowDOM,\n // but the .parentNode of a root ShadowDOM node will always be null, instead\n // it should be accessed through .host. See http://stackoverflow.com/a/24765528/4383938\n while (element && (element.parentNode || element.host)) {\n\n // Set element to element parent, or 'host' in case of ShadowDOM\n element = element.parentNode || element.host;\n\n if (element === fabric.document) {\n left = body.scrollLeft || docElement.scrollLeft || 0;\n top = body.scrollTop || docElement.scrollTop || 0;\n }\n else {\n left += element.scrollLeft || 0;\n top += element.scrollTop || 0;\n }\n\n if (element.nodeType === 1 && element.style.position === 'fixed') {\n break;\n }\n }\n\n return { left: left, top: top };\n }\n\n /**\n * Returns offset for a given element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to get offset for\n * @return {Object} Object with \"left\" and \"top\" properties\n */\n function getElementOffset(element) {\n var docElem,\n doc = element && element.ownerDocument,\n box = { left: 0, top: 0 },\n offset = { left: 0, top: 0 },\n scrollLeftTop,\n offsetAttributes = {\n borderLeftWidth: 'left',\n borderTopWidth: 'top',\n paddingLeft: 'left',\n paddingTop: 'top'\n };\n\n if (!doc) {\n return offset;\n }\n\n for (var attr in offsetAttributes) {\n offset[offsetAttributes[attr]] += parseInt(getElementStyle(element, attr), 10) || 0;\n }\n\n docElem = doc.documentElement;\n if ( typeof element.getBoundingClientRect !== 'undefined' ) {\n box = element.getBoundingClientRect();\n }\n\n scrollLeftTop = getScrollLeftTop(element);\n\n return {\n left: box.left + scrollLeftTop.left - (docElem.clientLeft || 0) + offset.left,\n top: box.top + scrollLeftTop.top - (docElem.clientTop || 0) + offset.top\n };\n }\n\n /**\n * Returns style attribute value of a given element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to get style attribute for\n * @param {String} attr Style attribute to get for element\n * @return {String} Style attribute value of the given element.\n */\n var getElementStyle;\n if (fabric.document.defaultView && fabric.document.defaultView.getComputedStyle) {\n getElementStyle = function(element, attr) {\n var style = fabric.document.defaultView.getComputedStyle(element, null);\n return style ? style[attr] : undefined;\n };\n }\n else {\n getElementStyle = function(element, attr) {\n var value = element.style[attr];\n if (!value && element.currentStyle) {\n value = element.currentStyle[attr];\n }\n return value;\n };\n }\n\n (function () {\n var style = fabric.document.documentElement.style,\n selectProp = 'userSelect' in style\n ? 'userSelect'\n : 'MozUserSelect' in style\n ? 'MozUserSelect'\n : 'WebkitUserSelect' in style\n ? 'WebkitUserSelect'\n : 'KhtmlUserSelect' in style\n ? 'KhtmlUserSelect'\n : '';\n\n /**\n * Makes element unselectable\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to make unselectable\n * @return {HTMLElement} Element that was passed in\n */\n function makeElementUnselectable(element) {\n if (typeof element.onselectstart !== 'undefined') {\n element.onselectstart = fabric.util.falseFunction;\n }\n if (selectProp) {\n element.style[selectProp] = 'none';\n }\n else if (typeof element.unselectable === 'string') {\n element.unselectable = 'on';\n }\n return element;\n }\n\n /**\n * Makes element selectable\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to make selectable\n * @return {HTMLElement} Element that was passed in\n */\n function makeElementSelectable(element) {\n if (typeof element.onselectstart !== 'undefined') {\n element.onselectstart = null;\n }\n if (selectProp) {\n element.style[selectProp] = '';\n }\n else if (typeof element.unselectable === 'string') {\n element.unselectable = '';\n }\n return element;\n }\n\n fabric.util.makeElementUnselectable = makeElementUnselectable;\n fabric.util.makeElementSelectable = makeElementSelectable;\n })();\n\n function getNodeCanvas(element) {\n var impl = fabric.jsdomImplForWrapper(element);\n return impl._canvas || impl._image;\n };\n\n function cleanUpJsdomNode(element) {\n if (!fabric.isLikelyNode) {\n return;\n }\n var impl = fabric.jsdomImplForWrapper(element);\n if (impl) {\n impl._image = null;\n impl._canvas = null;\n // unsure if necessary\n impl._currentSrc = null;\n impl._attributes = null;\n impl._classList = null;\n }\n }\n\n function setImageSmoothing(ctx, value) {\n ctx.imageSmoothingEnabled = ctx.imageSmoothingEnabled || ctx.webkitImageSmoothingEnabled\n || ctx.mozImageSmoothingEnabled || ctx.msImageSmoothingEnabled || ctx.oImageSmoothingEnabled;\n ctx.imageSmoothingEnabled = value;\n }\n\n /**\n * setImageSmoothing sets the context imageSmoothingEnabled property.\n * Used by canvas and by ImageObject.\n * @memberOf fabric.util\n * @since 4.0.0\n * @param {HTMLRenderingContext2D} ctx to set on\n * @param {Boolean} value true or false\n */\n fabric.util.setImageSmoothing = setImageSmoothing;\n fabric.util.getById = getById;\n fabric.util.toArray = toArray;\n fabric.util.addClass = addClass;\n fabric.util.makeElement = makeElement;\n fabric.util.wrapElement = wrapElement;\n fabric.util.getScrollLeftTop = getScrollLeftTop;\n fabric.util.getElementOffset = getElementOffset;\n fabric.util.getNodeCanvas = getNodeCanvas;\n fabric.util.cleanUpJsdomNode = cleanUpJsdomNode;\n\n})();\n\n\n(function() {\n\n function addParamToUrl(url, param) {\n return url + (/\\?/.test(url) ? '&' : '?') + param;\n }\n\n function emptyFn() { }\n\n /**\n * Cross-browser abstraction for sending XMLHttpRequest\n * @memberOf fabric.util\n * @param {String} url URL to send XMLHttpRequest to\n * @param {Object} [options] Options object\n * @param {String} [options.method=\"GET\"]\n * @param {String} [options.parameters] parameters to append to url in GET or in body\n * @param {String} [options.body] body to send with POST or PUT request\n * @param {Function} options.onComplete Callback to invoke when request is completed\n * @return {XMLHttpRequest} request\n */\n function request(url, options) {\n options || (options = { });\n\n var method = options.method ? options.method.toUpperCase() : 'GET',\n onComplete = options.onComplete || function() { },\n xhr = new fabric.window.XMLHttpRequest(),\n body = options.body || options.parameters;\n\n /** @ignore */\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4) {\n onComplete(xhr);\n xhr.onreadystatechange = emptyFn;\n }\n };\n\n if (method === 'GET') {\n body = null;\n if (typeof options.parameters === 'string') {\n url = addParamToUrl(url, options.parameters);\n }\n }\n\n xhr.open(method, url, true);\n\n if (method === 'POST' || method === 'PUT') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n xhr.send(body);\n return xhr;\n }\n\n fabric.util.request = request;\n})();\n\n\n/**\n * Wrapper around `console.log` (when available)\n * @param {*} [values] Values to log\n */\nfabric.log = console.log;\n\n/**\n * Wrapper around `console.warn` (when available)\n * @param {*} [values] Values to log as a warning\n */\nfabric.warn = console.warn;\n\n\n(function() {\n\n function noop() {\n return false;\n }\n\n function defaultEasing(t, b, c, d) {\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n }\n\n /**\n * Changes value from one to another within certain period of time, invoking callbacks as value is being changed.\n * @memberOf fabric.util\n * @param {Object} [options] Animation options\n * @param {Function} [options.onChange] Callback; invoked on every value change\n * @param {Function} [options.onComplete] Callback; invoked when value change is completed\n * @param {Number} [options.startValue=0] Starting value\n * @param {Number} [options.endValue=100] Ending value\n * @param {Number} [options.byValue=100] Value to modify the property by\n * @param {Function} [options.easing] Easing function\n * @param {Number} [options.duration=500] Duration of change (in ms)\n * @param {Function} [options.abort] Additional function with logic. If returns true, onComplete is called.\n */\n function animate(options) {\n\n requestAnimFrame(function(timestamp) {\n options || (options = { });\n\n var start = timestamp || +new Date(),\n duration = options.duration || 500,\n finish = start + duration, time,\n onChange = options.onChange || noop,\n abort = options.abort || noop,\n onComplete = options.onComplete || noop,\n easing = options.easing || defaultEasing,\n startValue = 'startValue' in options ? options.startValue : 0,\n endValue = 'endValue' in options ? options.endValue : 100,\n byValue = options.byValue || endValue - startValue;\n\n options.onStart && options.onStart();\n\n (function tick(ticktime) {\n // TODO: move abort call after calculation\n // and pass (current,valuePerc, timePerc) as arguments\n time = ticktime || +new Date();\n var currentTime = time > finish ? duration : (time - start),\n timePerc = currentTime / duration,\n current = easing(currentTime, startValue, byValue, duration),\n valuePerc = Math.abs((current - startValue) / byValue);\n if (abort()) {\n onComplete(endValue, 1, 1);\n return;\n }\n if (time > finish) {\n onChange(endValue, 1, 1);\n onComplete(endValue, 1, 1);\n return;\n }\n else {\n onChange(current, valuePerc, timePerc);\n requestAnimFrame(tick);\n }\n })(start);\n });\n }\n\n var _requestAnimFrame = fabric.window.requestAnimationFrame ||\n fabric.window.webkitRequestAnimationFrame ||\n fabric.window.mozRequestAnimationFrame ||\n fabric.window.oRequestAnimationFrame ||\n fabric.window.msRequestAnimationFrame ||\n function(callback) {\n return fabric.window.setTimeout(callback, 1000 / 60);\n };\n\n var _cancelAnimFrame = fabric.window.cancelAnimationFrame || fabric.window.clearTimeout;\n\n /**\n * requestAnimationFrame polyfill based on http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n * In order to get a precise start time, `requestAnimFrame` should be called as an entry into the method\n * @memberOf fabric.util\n * @param {Function} callback Callback to invoke\n * @param {DOMElement} element optional Element to associate with animation\n */\n function requestAnimFrame() {\n return _requestAnimFrame.apply(fabric.window, arguments);\n }\n\n function cancelAnimFrame() {\n return _cancelAnimFrame.apply(fabric.window, arguments);\n }\n\n fabric.util.animate = animate;\n fabric.util.requestAnimFrame = requestAnimFrame;\n fabric.util.cancelAnimFrame = cancelAnimFrame;\n})();\n\n\n(function() {\n // Calculate an in-between color. Returns a \"rgba()\" string.\n // Credit: Edwin Martin \n // http://www.bitstorm.org/jquery/color-animation/jquery.animate-colors.js\n function calculateColor(begin, end, pos) {\n var color = 'rgba('\n + parseInt((begin[0] + pos * (end[0] - begin[0])), 10) + ','\n + parseInt((begin[1] + pos * (end[1] - begin[1])), 10) + ','\n + parseInt((begin[2] + pos * (end[2] - begin[2])), 10);\n\n color += ',' + (begin && end ? parseFloat(begin[3] + pos * (end[3] - begin[3])) : 1);\n color += ')';\n return color;\n }\n\n /**\n * Changes the color from one to another within certain period of time, invoking callbacks as value is being changed.\n * @memberOf fabric.util\n * @param {String} fromColor The starting color in hex or rgb(a) format.\n * @param {String} toColor The starting color in hex or rgb(a) format.\n * @param {Number} [duration] Duration of change (in ms).\n * @param {Object} [options] Animation options\n * @param {Function} [options.onChange] Callback; invoked on every value change\n * @param {Function} [options.onComplete] Callback; invoked when value change is completed\n * @param {Function} [options.colorEasing] Easing function. Note that this function only take two arguments (currentTime, duration). Thus the regular animation easing functions cannot be used.\n * @param {Function} [options.abort] Additional function with logic. If returns true, onComplete is called.\n */\n function animateColor(fromColor, toColor, duration, options) {\n var startColor = new fabric.Color(fromColor).getSource(),\n endColor = new fabric.Color(toColor).getSource(),\n originalOnComplete = options.onComplete,\n originalOnChange = options.onChange;\n options = options || {};\n\n fabric.util.animate(fabric.util.object.extend(options, {\n duration: duration || 500,\n startValue: startColor,\n endValue: endColor,\n byValue: endColor,\n easing: function (currentTime, startValue, byValue, duration) {\n var posValue = options.colorEasing\n ? options.colorEasing(currentTime, duration)\n : 1 - Math.cos(currentTime / duration * (Math.PI / 2));\n return calculateColor(startValue, byValue, posValue);\n },\n // has to take in account for color restoring;\n onComplete: function(current, valuePerc, timePerc) {\n if (originalOnComplete) {\n return originalOnComplete(\n calculateColor(endColor, endColor, 0),\n valuePerc,\n timePerc\n );\n }\n },\n onChange: function(current, valuePerc, timePerc) {\n if (originalOnChange) {\n if (Array.isArray(current)) {\n return originalOnChange(\n calculateColor(current, current, 0),\n valuePerc,\n timePerc\n );\n }\n originalOnChange(current, valuePerc, timePerc);\n }\n }\n }));\n }\n\n fabric.util.animateColor = animateColor;\n\n})();\n\n\n(function() {\n\n function normalize(a, c, p, s) {\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n //handle the 0/0 case:\n if (c === 0 && a === 0) {\n s = p / (2 * Math.PI) * Math.asin(1);\n }\n else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n }\n return { a: a, c: c, p: p, s: s };\n }\n\n function elastic(opts, t, d) {\n return opts.a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin( (t * d - opts.s) * (2 * Math.PI) / opts.p );\n }\n\n /**\n * Cubic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n }\n\n /**\n * Cubic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutCubic(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t + b;\n }\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n\n /**\n * Quartic easing in\n * @memberOf fabric.util.ease\n */\n function easeInQuart(t, b, c, d) {\n return c * (t /= d) * t * t * t + b;\n }\n\n /**\n * Quartic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutQuart(t, b, c, d) {\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n }\n\n /**\n * Quartic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutQuart(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t * t + b;\n }\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n }\n\n /**\n * Quintic easing in\n * @memberOf fabric.util.ease\n */\n function easeInQuint(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n }\n\n /**\n * Quintic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutQuint(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n }\n\n /**\n * Quintic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutQuint(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t * t * t + b;\n }\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n }\n\n /**\n * Sinusoidal easing in\n * @memberOf fabric.util.ease\n */\n function easeInSine(t, b, c, d) {\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n }\n\n /**\n * Sinusoidal easing out\n * @memberOf fabric.util.ease\n */\n function easeOutSine(t, b, c, d) {\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n }\n\n /**\n * Sinusoidal easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutSine(t, b, c, d) {\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n }\n\n /**\n * Exponential easing in\n * @memberOf fabric.util.ease\n */\n function easeInExpo(t, b, c, d) {\n return (t === 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;\n }\n\n /**\n * Exponential easing out\n * @memberOf fabric.util.ease\n */\n function easeOutExpo(t, b, c, d) {\n return (t === d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n }\n\n /**\n * Exponential easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutExpo(t, b, c, d) {\n if (t === 0) {\n return b;\n }\n if (t === d) {\n return b + c;\n }\n t /= d / 2;\n if (t < 1) {\n return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n }\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n }\n\n /**\n * Circular easing in\n * @memberOf fabric.util.ease\n */\n function easeInCirc(t, b, c, d) {\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n }\n\n /**\n * Circular easing out\n * @memberOf fabric.util.ease\n */\n function easeOutCirc(t, b, c, d) {\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n }\n\n /**\n * Circular easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutCirc(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n }\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n }\n\n /**\n * Elastic easing in\n * @memberOf fabric.util.ease\n */\n function easeInElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d;\n if (t === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n var opts = normalize(a, c, p, s);\n return -elastic(opts, t, d) + b;\n }\n\n /**\n * Elastic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d;\n if (t === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n var opts = normalize(a, c, p, s);\n return opts.a * Math.pow(2, -10 * t) * Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p ) + opts.c + b;\n }\n\n /**\n * Elastic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d / 2;\n if (t === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n var opts = normalize(a, c, p, s);\n if (t < 1) {\n return -0.5 * elastic(opts, t, d) + b;\n }\n return opts.a * Math.pow(2, -10 * (t -= 1)) *\n Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p ) * 0.5 + opts.c + b;\n }\n\n /**\n * Backwards easing in\n * @memberOf fabric.util.ease\n */\n function easeInBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n }\n\n /**\n * Backwards easing out\n * @memberOf fabric.util.ease\n */\n function easeOutBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n }\n\n /**\n * Backwards easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n t /= d / 2;\n if (t < 1) {\n return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;\n }\n return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;\n }\n\n /**\n * Bouncing easing in\n * @memberOf fabric.util.ease\n */\n function easeInBounce(t, b, c, d) {\n return c - easeOutBounce (d - t, 0, c, d) + b;\n }\n\n /**\n * Bouncing easing out\n * @memberOf fabric.util.ease\n */\n function easeOutBounce(t, b, c, d) {\n if ((t /= d) < (1 / 2.75)) {\n return c * (7.5625 * t * t) + b;\n }\n else if (t < (2 / 2.75)) {\n return c * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75) + b;\n }\n else if (t < (2.5 / 2.75)) {\n return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b;\n }\n else {\n return c * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375) + b;\n }\n }\n\n /**\n * Bouncing easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutBounce(t, b, c, d) {\n if (t < d / 2) {\n return easeInBounce (t * 2, 0, c, d) * 0.5 + b;\n }\n return easeOutBounce(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n\n /**\n * Easing functions\n * See Easing Equations by Robert Penner\n * @namespace fabric.util.ease\n */\n fabric.util.ease = {\n\n /**\n * Quadratic easing in\n * @memberOf fabric.util.ease\n */\n easeInQuad: function(t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n\n /**\n * Quadratic easing out\n * @memberOf fabric.util.ease\n */\n easeOutQuad: function(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n\n /**\n * Quadratic easing in and out\n * @memberOf fabric.util.ease\n */\n easeInOutQuad: function(t, b, c, d) {\n t /= (d / 2);\n if (t < 1) {\n return c / 2 * t * t + b;\n }\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\n },\n\n /**\n * Cubic easing in\n * @memberOf fabric.util.ease\n */\n easeInCubic: function(t, b, c, d) {\n return c * (t /= d) * t * t + b;\n },\n\n easeOutCubic: easeOutCubic,\n easeInOutCubic: easeInOutCubic,\n easeInQuart: easeInQuart,\n easeOutQuart: easeOutQuart,\n easeInOutQuart: easeInOutQuart,\n easeInQuint: easeInQuint,\n easeOutQuint: easeOutQuint,\n easeInOutQuint: easeInOutQuint,\n easeInSine: easeInSine,\n easeOutSine: easeOutSine,\n easeInOutSine: easeInOutSine,\n easeInExpo: easeInExpo,\n easeOutExpo: easeOutExpo,\n easeInOutExpo: easeInOutExpo,\n easeInCirc: easeInCirc,\n easeOutCirc: easeOutCirc,\n easeInOutCirc: easeInOutCirc,\n easeInElastic: easeInElastic,\n easeOutElastic: easeOutElastic,\n easeInOutElastic: easeInOutElastic,\n easeInBack: easeInBack,\n easeOutBack: easeOutBack,\n easeInOutBack: easeInOutBack,\n easeInBounce: easeInBounce,\n easeOutBounce: easeOutBounce,\n easeInOutBounce: easeInOutBounce\n };\n\n})();\n\n\n(function(global) {\n\n 'use strict';\n\n /**\n * @name fabric\n * @namespace\n */\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n toFixed = fabric.util.toFixed,\n parseUnit = fabric.util.parseUnit,\n multiplyTransformMatrices = fabric.util.multiplyTransformMatrices,\n\n svgValidTagNames = ['path', 'circle', 'polygon', 'polyline', 'ellipse', 'rect', 'line',\n 'image', 'text'],\n svgViewBoxElements = ['symbol', 'image', 'marker', 'pattern', 'view', 'svg'],\n svgInvalidAncestors = ['pattern', 'defs', 'symbol', 'metadata', 'clipPath', 'mask', 'desc'],\n svgValidParents = ['symbol', 'g', 'a', 'svg', 'clipPath', 'defs'],\n\n attributesMap = {\n cx: 'left',\n x: 'left',\n r: 'radius',\n cy: 'top',\n y: 'top',\n display: 'visible',\n visibility: 'visible',\n transform: 'transformMatrix',\n 'fill-opacity': 'fillOpacity',\n 'fill-rule': 'fillRule',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'letter-spacing': 'charSpacing',\n 'paint-order': 'paintFirst',\n 'stroke-dasharray': 'strokeDashArray',\n 'stroke-dashoffset': 'strokeDashOffset',\n 'stroke-linecap': 'strokeLineCap',\n 'stroke-linejoin': 'strokeLineJoin',\n 'stroke-miterlimit': 'strokeMiterLimit',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-width': 'strokeWidth',\n 'text-decoration': 'textDecoration',\n 'text-anchor': 'textAnchor',\n opacity: 'opacity',\n 'clip-path': 'clipPath',\n 'clip-rule': 'clipRule',\n 'vector-effect': 'strokeUniform',\n 'image-rendering': 'imageSmoothing',\n },\n\n colorAttributes = {\n stroke: 'strokeOpacity',\n fill: 'fillOpacity'\n },\n\n fSize = 'font-size', cPath = 'clip-path';\n\n fabric.svgValidTagNamesRegEx = getSvgRegex(svgValidTagNames);\n fabric.svgViewBoxElementsRegEx = getSvgRegex(svgViewBoxElements);\n fabric.svgInvalidAncestorsRegEx = getSvgRegex(svgInvalidAncestors);\n fabric.svgValidParentsRegEx = getSvgRegex(svgValidParents);\n\n fabric.cssRules = { };\n fabric.gradientDefs = { };\n fabric.clipPaths = { };\n\n function normalizeAttr(attr) {\n // transform attribute names\n if (attr in attributesMap) {\n return attributesMap[attr];\n }\n return attr;\n }\n\n function normalizeValue(attr, value, parentAttributes, fontSize) {\n var isArray = Object.prototype.toString.call(value) === '[object Array]',\n parsed;\n\n if ((attr === 'fill' || attr === 'stroke') && value === 'none') {\n value = '';\n }\n else if (attr === 'strokeUniform') {\n return (value === 'non-scaling-stroke');\n }\n else if (attr === 'strokeDashArray') {\n if (value === 'none') {\n value = null;\n }\n else {\n value = value.replace(/,/g, ' ').split(/\\s+/).map(parseFloat);\n }\n }\n else if (attr === 'transformMatrix') {\n if (parentAttributes && parentAttributes.transformMatrix) {\n value = multiplyTransformMatrices(\n parentAttributes.transformMatrix, fabric.parseTransformAttribute(value));\n }\n else {\n value = fabric.parseTransformAttribute(value);\n }\n }\n else if (attr === 'visible') {\n value = value !== 'none' && value !== 'hidden';\n // display=none on parent element always takes precedence over child element\n if (parentAttributes && parentAttributes.visible === false) {\n value = false;\n }\n }\n else if (attr === 'opacity') {\n value = parseFloat(value);\n if (parentAttributes && typeof parentAttributes.opacity !== 'undefined') {\n value *= parentAttributes.opacity;\n }\n }\n else if (attr === 'textAnchor' /* text-anchor */) {\n value = value === 'start' ? 'left' : value === 'end' ? 'right' : 'center';\n }\n else if (attr === 'charSpacing') {\n // parseUnit returns px and we convert it to em\n parsed = parseUnit(value, fontSize) / fontSize * 1000;\n }\n else if (attr === 'paintFirst') {\n var fillIndex = value.indexOf('fill');\n var strokeIndex = value.indexOf('stroke');\n var value = 'fill';\n if (fillIndex > -1 && strokeIndex > -1 && strokeIndex < fillIndex) {\n value = 'stroke';\n }\n else if (fillIndex === -1 && strokeIndex > -1) {\n value = 'stroke';\n }\n }\n else if (attr === 'href' || attr === 'xlink:href' || attr === 'font') {\n return value;\n }\n else if (attr === 'imageSmoothing') {\n return (value === 'optimizeQuality');\n }\n else {\n parsed = isArray ? value.map(parseUnit) : parseUnit(value, fontSize);\n }\n\n return (!isArray && isNaN(parsed) ? value : parsed);\n }\n\n /**\n * @private\n */\n function getSvgRegex(arr) {\n return new RegExp('^(' + arr.join('|') + ')\\\\b', 'i');\n }\n\n /**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n function _setStrokeFillOpacity(attributes) {\n for (var attr in colorAttributes) {\n\n if (typeof attributes[colorAttributes[attr]] === 'undefined' || attributes[attr] === '') {\n continue;\n }\n\n if (typeof attributes[attr] === 'undefined') {\n if (!fabric.Object.prototype[attr]) {\n continue;\n }\n attributes[attr] = fabric.Object.prototype[attr];\n }\n\n if (attributes[attr].indexOf('url(') === 0) {\n continue;\n }\n\n var color = new fabric.Color(attributes[attr]);\n attributes[attr] = color.setAlpha(toFixed(color.getAlpha() * attributes[colorAttributes[attr]], 2)).toRgba();\n }\n return attributes;\n }\n\n /**\n * @private\n */\n function _getMultipleNodes(doc, nodeNames) {\n var nodeName, nodeArray = [], nodeList, i, len;\n for (i = 0, len = nodeNames.length; i < len; i++) {\n nodeName = nodeNames[i];\n nodeList = doc.getElementsByTagName(nodeName);\n nodeArray = nodeArray.concat(Array.prototype.slice.call(nodeList));\n }\n return nodeArray;\n }\n\n /**\n * Parses \"transform\" attribute, returning an array of values\n * @static\n * @function\n * @memberOf fabric\n * @param {String} attributeValue String containing attribute value\n * @return {Array} Array of 6 elements representing transformation matrix\n */\n fabric.parseTransformAttribute = (function() {\n function rotateMatrix(matrix, args) {\n var cos = fabric.util.cos(args[0]), sin = fabric.util.sin(args[0]),\n x = 0, y = 0;\n if (args.length === 3) {\n x = args[1];\n y = args[2];\n }\n\n matrix[0] = cos;\n matrix[1] = sin;\n matrix[2] = -sin;\n matrix[3] = cos;\n matrix[4] = x - (cos * x - sin * y);\n matrix[5] = y - (sin * x + cos * y);\n }\n\n function scaleMatrix(matrix, args) {\n var multiplierX = args[0],\n multiplierY = (args.length === 2) ? args[1] : args[0];\n\n matrix[0] = multiplierX;\n matrix[3] = multiplierY;\n }\n\n function skewMatrix(matrix, args, pos) {\n matrix[pos] = Math.tan(fabric.util.degreesToRadians(args[0]));\n }\n\n function translateMatrix(matrix, args) {\n matrix[4] = args[0];\n if (args.length === 2) {\n matrix[5] = args[1];\n }\n }\n\n // identity matrix\n var iMatrix = fabric.iMatrix,\n\n // == begin transform regexp\n number = fabric.reNum,\n\n commaWsp = fabric.commaWsp,\n\n skewX = '(?:(skewX)\\\\s*\\\\(\\\\s*(' + number + ')\\\\s*\\\\))',\n\n skewY = '(?:(skewY)\\\\s*\\\\(\\\\s*(' + number + ')\\\\s*\\\\))',\n\n rotate = '(?:(rotate)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + ')' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n scale = '(?:(scale)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n translate = '(?:(translate)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n matrix = '(?:(matrix)\\\\s*\\\\(\\\\s*' +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' +\n '\\\\s*\\\\))',\n\n transform = '(?:' +\n matrix + '|' +\n translate + '|' +\n scale + '|' +\n rotate + '|' +\n skewX + '|' +\n skewY +\n ')',\n\n transforms = '(?:' + transform + '(?:' + commaWsp + '*' + transform + ')*' + ')',\n\n transformList = '^\\\\s*(?:' + transforms + '?)\\\\s*$',\n\n // http://www.w3.org/TR/SVG/coords.html#TransformAttribute\n reTransformList = new RegExp(transformList),\n // == end transform regexp\n\n reTransform = new RegExp(transform, 'g');\n\n return function(attributeValue) {\n\n // start with identity matrix\n var matrix = iMatrix.concat(),\n matrices = [];\n\n // return if no argument was given or\n // an argument does not match transform attribute regexp\n if (!attributeValue || (attributeValue && !reTransformList.test(attributeValue))) {\n return matrix;\n }\n\n attributeValue.replace(reTransform, function(match) {\n\n var m = new RegExp(transform).exec(match).filter(function (match) {\n // match !== '' && match != null\n return (!!match);\n }),\n operation = m[1],\n args = m.slice(2).map(parseFloat);\n\n switch (operation) {\n case 'translate':\n translateMatrix(matrix, args);\n break;\n case 'rotate':\n args[0] = fabric.util.degreesToRadians(args[0]);\n rotateMatrix(matrix, args);\n break;\n case 'scale':\n scaleMatrix(matrix, args);\n break;\n case 'skewX':\n skewMatrix(matrix, args, 2);\n break;\n case 'skewY':\n skewMatrix(matrix, args, 1);\n break;\n case 'matrix':\n matrix = args;\n break;\n }\n\n // snapshot current matrix into matrices array\n matrices.push(matrix.concat());\n // reset\n matrix = iMatrix.concat();\n });\n\n var combinedMatrix = matrices[0];\n while (matrices.length > 1) {\n matrices.shift();\n combinedMatrix = fabric.util.multiplyTransformMatrices(combinedMatrix, matrices[0]);\n }\n return combinedMatrix;\n };\n })();\n\n /**\n * @private\n */\n function parseStyleString(style, oStyle) {\n var attr, value;\n style.replace(/;\\s*$/, '').split(';').forEach(function (chunk) {\n var pair = chunk.split(':');\n\n attr = pair[0].trim().toLowerCase();\n value = pair[1].trim();\n\n oStyle[attr] = value;\n });\n }\n\n /**\n * @private\n */\n function parseStyleObject(style, oStyle) {\n var attr, value;\n for (var prop in style) {\n if (typeof style[prop] === 'undefined') {\n continue;\n }\n\n attr = prop.toLowerCase();\n value = style[prop];\n\n oStyle[attr] = value;\n }\n }\n\n /**\n * @private\n */\n function getGlobalStylesForElement(element, svgUid) {\n var styles = { };\n for (var rule in fabric.cssRules[svgUid]) {\n if (elementMatchesRule(element, rule.split(' '))) {\n for (var property in fabric.cssRules[svgUid][rule]) {\n styles[property] = fabric.cssRules[svgUid][rule][property];\n }\n }\n }\n return styles;\n }\n\n /**\n * @private\n */\n function elementMatchesRule(element, selectors) {\n var firstMatching, parentMatching = true;\n //start from rightmost selector.\n firstMatching = selectorMatches(element, selectors.pop());\n if (firstMatching && selectors.length) {\n parentMatching = doesSomeParentMatch(element, selectors);\n }\n return firstMatching && parentMatching && (selectors.length === 0);\n }\n\n function doesSomeParentMatch(element, selectors) {\n var selector, parentMatching = true;\n while (element.parentNode && element.parentNode.nodeType === 1 && selectors.length) {\n if (parentMatching) {\n selector = selectors.pop();\n }\n element = element.parentNode;\n parentMatching = selectorMatches(element, selector);\n }\n return selectors.length === 0;\n }\n\n /**\n * @private\n */\n function selectorMatches(element, selector) {\n var nodeName = element.nodeName,\n classNames = element.getAttribute('class'),\n id = element.getAttribute('id'), matcher, i;\n // i check if a selector matches slicing away part from it.\n // if i get empty string i should match\n matcher = new RegExp('^' + nodeName, 'i');\n selector = selector.replace(matcher, '');\n if (id && selector.length) {\n matcher = new RegExp('#' + id + '(?![a-zA-Z\\\\-]+)', 'i');\n selector = selector.replace(matcher, '');\n }\n if (classNames && selector.length) {\n classNames = classNames.split(' ');\n for (i = classNames.length; i--;) {\n matcher = new RegExp('\\\\.' + classNames[i] + '(?![a-zA-Z\\\\-]+)', 'i');\n selector = selector.replace(matcher, '');\n }\n }\n return selector.length === 0;\n }\n\n /**\n * @private\n * to support IE8 missing getElementById on SVGdocument and on node xmlDOM\n */\n function elementById(doc, id) {\n var el;\n doc.getElementById && (el = doc.getElementById(id));\n if (el) {\n return el;\n }\n var node, i, len, nodelist = doc.getElementsByTagName('*');\n for (i = 0, len = nodelist.length; i < len; i++) {\n node = nodelist[i];\n if (id === node.getAttribute('id')) {\n return node;\n }\n }\n }\n\n /**\n * @private\n */\n function parseUseDirectives(doc) {\n var nodelist = _getMultipleNodes(doc, ['use', 'svg:use']), i = 0;\n while (nodelist.length && i < nodelist.length) {\n var el = nodelist[i],\n xlink = (el.getAttribute('xlink:href') || el.getAttribute('href')).substr(1),\n x = el.getAttribute('x') || 0,\n y = el.getAttribute('y') || 0,\n el2 = elementById(doc, xlink).cloneNode(true),\n currentTrans = (el2.getAttribute('transform') || '') + ' translate(' + x + ', ' + y + ')',\n parentNode, oldLength = nodelist.length, attr, j, attrs, len, namespace = fabric.svgNS;\n\n applyViewboxTransform(el2);\n if (/^svg$/i.test(el2.nodeName)) {\n var el3 = el2.ownerDocument.createElementNS(namespace, 'g');\n for (j = 0, attrs = el2.attributes, len = attrs.length; j < len; j++) {\n attr = attrs.item(j);\n el3.setAttributeNS(namespace, attr.nodeName, attr.nodeValue);\n }\n // el2.firstChild != null\n while (el2.firstChild) {\n el3.appendChild(el2.firstChild);\n }\n el2 = el3;\n }\n\n for (j = 0, attrs = el.attributes, len = attrs.length; j < len; j++) {\n attr = attrs.item(j);\n if (attr.nodeName === 'x' || attr.nodeName === 'y' ||\n attr.nodeName === 'xlink:href' || attr.nodeName === 'href') {\n continue;\n }\n\n if (attr.nodeName === 'transform') {\n currentTrans = attr.nodeValue + ' ' + currentTrans;\n }\n else {\n el2.setAttribute(attr.nodeName, attr.nodeValue);\n }\n }\n\n el2.setAttribute('transform', currentTrans);\n el2.setAttribute('instantiated_by_use', '1');\n el2.removeAttribute('id');\n parentNode = el.parentNode;\n parentNode.replaceChild(el2, el);\n // some browsers do not shorten nodelist after replaceChild (IE8)\n if (nodelist.length === oldLength) {\n i++;\n }\n }\n }\n\n // http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute\n // matches, e.g.: +14.56e-12, etc.\n var reViewBoxAttrValue = new RegExp(\n '^' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*' +\n '$'\n );\n\n /**\n * Add a element that envelop all child elements and makes the viewbox transformMatrix descend on all elements\n */\n function applyViewboxTransform(element) {\n if (!fabric.svgViewBoxElementsRegEx.test(element.nodeName)) {\n return;\n }\n var viewBoxAttr = element.getAttribute('viewBox'),\n scaleX = 1,\n scaleY = 1,\n minX = 0,\n minY = 0,\n viewBoxWidth, viewBoxHeight, matrix, el,\n widthAttr = element.getAttribute('width'),\n heightAttr = element.getAttribute('height'),\n x = element.getAttribute('x') || 0,\n y = element.getAttribute('y') || 0,\n preserveAspectRatio = element.getAttribute('preserveAspectRatio') || '',\n missingViewBox = (!viewBoxAttr || !(viewBoxAttr = viewBoxAttr.match(reViewBoxAttrValue))),\n missingDimAttr = (!widthAttr || !heightAttr || widthAttr === '100%' || heightAttr === '100%'),\n toBeParsed = missingViewBox && missingDimAttr,\n parsedDim = { }, translateMatrix = '', widthDiff = 0, heightDiff = 0;\n\n parsedDim.width = 0;\n parsedDim.height = 0;\n parsedDim.toBeParsed = toBeParsed;\n\n if (missingViewBox) {\n if (((x || y) && element.parentNode.nodeName !== '#document')) {\n translateMatrix = ' translate(' + parseUnit(x) + ' ' + parseUnit(y) + ') ';\n matrix = (element.getAttribute('transform') || '') + translateMatrix;\n element.setAttribute('transform', matrix);\n element.removeAttribute('x');\n element.removeAttribute('y');\n }\n }\n\n if (toBeParsed) {\n return parsedDim;\n }\n\n if (missingViewBox) {\n parsedDim.width = parseUnit(widthAttr);\n parsedDim.height = parseUnit(heightAttr);\n // set a transform for elements that have x y and are inner(only) SVGs\n return parsedDim;\n }\n minX = -parseFloat(viewBoxAttr[1]);\n minY = -parseFloat(viewBoxAttr[2]);\n viewBoxWidth = parseFloat(viewBoxAttr[3]);\n viewBoxHeight = parseFloat(viewBoxAttr[4]);\n parsedDim.minX = minX;\n parsedDim.minY = minY;\n parsedDim.viewBoxWidth = viewBoxWidth;\n parsedDim.viewBoxHeight = viewBoxHeight;\n if (!missingDimAttr) {\n parsedDim.width = parseUnit(widthAttr);\n parsedDim.height = parseUnit(heightAttr);\n scaleX = parsedDim.width / viewBoxWidth;\n scaleY = parsedDim.height / viewBoxHeight;\n }\n else {\n parsedDim.width = viewBoxWidth;\n parsedDim.height = viewBoxHeight;\n }\n\n // default is to preserve aspect ratio\n preserveAspectRatio = fabric.util.parsePreserveAspectRatioAttribute(preserveAspectRatio);\n if (preserveAspectRatio.alignX !== 'none') {\n //translate all container for the effect of Mid, Min, Max\n if (preserveAspectRatio.meetOrSlice === 'meet') {\n scaleY = scaleX = (scaleX > scaleY ? scaleY : scaleX);\n // calculate additional translation to move the viewbox\n }\n if (preserveAspectRatio.meetOrSlice === 'slice') {\n scaleY = scaleX = (scaleX > scaleY ? scaleX : scaleY);\n // calculate additional translation to move the viewbox\n }\n widthDiff = parsedDim.width - viewBoxWidth * scaleX;\n heightDiff = parsedDim.height - viewBoxHeight * scaleX;\n if (preserveAspectRatio.alignX === 'Mid') {\n widthDiff /= 2;\n }\n if (preserveAspectRatio.alignY === 'Mid') {\n heightDiff /= 2;\n }\n if (preserveAspectRatio.alignX === 'Min') {\n widthDiff = 0;\n }\n if (preserveAspectRatio.alignY === 'Min') {\n heightDiff = 0;\n }\n }\n\n if (scaleX === 1 && scaleY === 1 && minX === 0 && minY === 0 && x === 0 && y === 0) {\n return parsedDim;\n }\n if ((x || y) && element.parentNode.nodeName !== '#document') {\n translateMatrix = ' translate(' + parseUnit(x) + ' ' + parseUnit(y) + ') ';\n }\n\n matrix = translateMatrix + ' matrix(' + scaleX +\n ' 0' +\n ' 0 ' +\n scaleY + ' ' +\n (minX * scaleX + widthDiff) + ' ' +\n (minY * scaleY + heightDiff) + ') ';\n // seems unused.\n // parsedDim.viewboxTransform = fabric.parseTransformAttribute(matrix);\n if (element.nodeName === 'svg') {\n el = element.ownerDocument.createElementNS(fabric.svgNS, 'g');\n // element.firstChild != null\n while (element.firstChild) {\n el.appendChild(element.firstChild);\n }\n element.appendChild(el);\n }\n else {\n el = element;\n el.removeAttribute('x');\n el.removeAttribute('y');\n matrix = el.getAttribute('transform') + matrix;\n }\n el.setAttribute('transform', matrix);\n return parsedDim;\n }\n\n function hasAncestorWithNodeName(element, nodeName) {\n while (element && (element = element.parentNode)) {\n if (element.nodeName && nodeName.test(element.nodeName.replace('svg:', ''))\n && !element.getAttribute('instantiated_by_use')) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Parses an SVG document, converts it to an array of corresponding fabric.* instances and passes them to a callback\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @param {Function} callback Callback to call when parsing is finished;\n * It's being passed an array of elements (parsed from a document).\n * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created.\n * @param {Object} [parsingOptions] options for parsing document\n * @param {String} [parsingOptions.crossOrigin] crossOrigin settings\n */\n fabric.parseSVGDocument = function(doc, callback, reviver, parsingOptions) {\n if (!doc) {\n return;\n }\n\n parseUseDirectives(doc);\n\n var svgUid = fabric.Object.__uid++, i, len,\n options = applyViewboxTransform(doc),\n descendants = fabric.util.toArray(doc.getElementsByTagName('*'));\n options.crossOrigin = parsingOptions && parsingOptions.crossOrigin;\n options.svgUid = svgUid;\n\n if (descendants.length === 0 && fabric.isLikelyNode) {\n // we're likely in node, where \"o3-xml\" library fails to gEBTN(\"*\")\n // https://github.com/ajaxorg/node-o3-xml/issues/21\n descendants = doc.selectNodes('//*[name(.)!=\"svg\"]');\n var arr = [];\n for (i = 0, len = descendants.length; i < len; i++) {\n arr[i] = descendants[i];\n }\n descendants = arr;\n }\n\n var elements = descendants.filter(function(el) {\n applyViewboxTransform(el);\n return fabric.svgValidTagNamesRegEx.test(el.nodeName.replace('svg:', '')) &&\n !hasAncestorWithNodeName(el, fabric.svgInvalidAncestorsRegEx); // http://www.w3.org/TR/SVG/struct.html#DefsElement\n });\n if (!elements || (elements && !elements.length)) {\n callback && callback([], {});\n return;\n }\n var clipPaths = { };\n descendants.filter(function(el) {\n return el.nodeName.replace('svg:', '') === 'clipPath';\n }).forEach(function(el) {\n var id = el.getAttribute('id');\n clipPaths[id] = fabric.util.toArray(el.getElementsByTagName('*')).filter(function(el) {\n return fabric.svgValidTagNamesRegEx.test(el.nodeName.replace('svg:', ''));\n });\n });\n fabric.gradientDefs[svgUid] = fabric.getGradientDefs(doc);\n fabric.cssRules[svgUid] = fabric.getCSSRules(doc);\n fabric.clipPaths[svgUid] = clipPaths;\n // Precedence of rules: style > class > attribute\n fabric.parseElements(elements, function(instances, elements) {\n if (callback) {\n callback(instances, options, elements, descendants);\n delete fabric.gradientDefs[svgUid];\n delete fabric.cssRules[svgUid];\n delete fabric.clipPaths[svgUid];\n }\n }, clone(options), reviver, parsingOptions);\n };\n\n function recursivelyParseGradientsXlink(doc, gradient) {\n var gradientsAttrs = ['gradientTransform', 'x1', 'x2', 'y1', 'y2', 'gradientUnits', 'cx', 'cy', 'r', 'fx', 'fy'],\n xlinkAttr = 'xlink:href',\n xLink = gradient.getAttribute(xlinkAttr).substr(1),\n referencedGradient = elementById(doc, xLink);\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient);\n }\n gradientsAttrs.forEach(function(attr) {\n if (referencedGradient && !gradient.hasAttribute(attr) && referencedGradient.hasAttribute(attr)) {\n gradient.setAttribute(attr, referencedGradient.getAttribute(attr));\n }\n });\n if (!gradient.children.length) {\n var referenceClone = referencedGradient.cloneNode(true);\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n gradient.removeAttribute(xlinkAttr);\n }\n\n var reFontDeclaration = new RegExp(\n '(normal|italic)?\\\\s*(normal|small-caps)?\\\\s*' +\n '(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\\\s*(' +\n fabric.reNum +\n '(?:px|cm|mm|em|pt|pc|in)*)(?:\\\\/(normal|' + fabric.reNum + '))?\\\\s+(.*)');\n\n extend(fabric, {\n /**\n * Parses a short font declaration, building adding its properties to a style object\n * @static\n * @function\n * @memberOf fabric\n * @param {String} value font declaration\n * @param {Object} oStyle definition\n */\n parseFontDeclaration: function(value, oStyle) {\n var match = value.match(reFontDeclaration);\n\n if (!match) {\n return;\n }\n var fontStyle = match[1],\n // font variant is not used\n // fontVariant = match[2],\n fontWeight = match[3],\n fontSize = match[4],\n lineHeight = match[5],\n fontFamily = match[6];\n\n if (fontStyle) {\n oStyle.fontStyle = fontStyle;\n }\n if (fontWeight) {\n oStyle.fontWeight = isNaN(parseFloat(fontWeight)) ? fontWeight : parseFloat(fontWeight);\n }\n if (fontSize) {\n oStyle.fontSize = parseUnit(fontSize);\n }\n if (fontFamily) {\n oStyle.fontFamily = fontFamily;\n }\n if (lineHeight) {\n oStyle.lineHeight = lineHeight === 'normal' ? 1 : lineHeight;\n }\n },\n\n /**\n * Parses an SVG document, returning all of the gradient declarations found in it\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @return {Object} Gradient definitions; key corresponds to element id, value -- to gradient definition element\n */\n getGradientDefs: function(doc) {\n var tagArray = [\n 'linearGradient',\n 'radialGradient',\n 'svg:linearGradient',\n 'svg:radialGradient'],\n elList = _getMultipleNodes(doc, tagArray),\n el, j = 0, gradientDefs = { };\n j = elList.length;\n while (j--) {\n el = elList[j];\n if (el.getAttribute('xlink:href')) {\n recursivelyParseGradientsXlink(doc, el);\n }\n gradientDefs[el.getAttribute('id')] = el;\n }\n return gradientDefs;\n },\n\n /**\n * Returns an object of attributes' name/value, given element and an array of attribute names;\n * Parses parent \"g\" nodes recursively upwards.\n * @static\n * @memberOf fabric\n * @param {DOMElement} element Element to parse\n * @param {Array} attributes Array of attributes to parse\n * @return {Object} object containing parsed attributes' names/values\n */\n parseAttributes: function(element, attributes, svgUid) {\n\n if (!element) {\n return;\n }\n\n var value,\n parentAttributes = { },\n fontSize, parentFontSize;\n\n if (typeof svgUid === 'undefined') {\n svgUid = element.getAttribute('svgUid');\n }\n // if there's a parent container (`g` or `a` or `symbol` node), parse its attributes recursively upwards\n if (element.parentNode && fabric.svgValidParentsRegEx.test(element.parentNode.nodeName)) {\n parentAttributes = fabric.parseAttributes(element.parentNode, attributes, svgUid);\n }\n\n var ownAttributes = attributes.reduce(function(memo, attr) {\n value = element.getAttribute(attr);\n if (value) { // eslint-disable-line\n memo[attr] = value;\n }\n return memo;\n }, { });\n // add values parsed from style, which take precedence over attributes\n // (see: http://www.w3.org/TR/SVG/styling.html#UsingPresentationAttributes)\n var cssAttrs = extend(\n getGlobalStylesForElement(element, svgUid),\n fabric.parseStyleAttribute(element)\n );\n ownAttributes = extend(\n ownAttributes,\n cssAttrs\n );\n if (cssAttrs[cPath]) {\n element.setAttribute(cPath, cssAttrs[cPath]);\n }\n fontSize = parentFontSize = parentAttributes.fontSize || fabric.Text.DEFAULT_SVG_FONT_SIZE;\n if (ownAttributes[fSize]) {\n // looks like the minimum should be 9px when dealing with ems. this is what looks like in browsers.\n ownAttributes[fSize] = fontSize = parseUnit(ownAttributes[fSize], parentFontSize);\n }\n\n var normalizedAttr, normalizedValue, normalizedStyle = {};\n for (var attr in ownAttributes) {\n normalizedAttr = normalizeAttr(attr);\n normalizedValue = normalizeValue(normalizedAttr, ownAttributes[attr], parentAttributes, fontSize);\n normalizedStyle[normalizedAttr] = normalizedValue;\n }\n if (normalizedStyle && normalizedStyle.font) {\n fabric.parseFontDeclaration(normalizedStyle.font, normalizedStyle);\n }\n var mergedAttrs = extend(parentAttributes, normalizedStyle);\n return fabric.svgValidParentsRegEx.test(element.nodeName) ? mergedAttrs : _setStrokeFillOpacity(mergedAttrs);\n },\n\n /**\n * Transforms an array of svg elements to corresponding fabric.* instances\n * @static\n * @memberOf fabric\n * @param {Array} elements Array of elements to parse\n * @param {Function} callback Being passed an array of fabric instances (transformed from SVG elements)\n * @param {Object} [options] Options object\n * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created.\n */\n parseElements: function(elements, callback, options, reviver, parsingOptions) {\n new fabric.ElementsParser(elements, callback, options, reviver, parsingOptions).parse();\n },\n\n /**\n * Parses \"style\" attribute, retuning an object with values\n * @static\n * @memberOf fabric\n * @param {SVGElement} element Element to parse\n * @return {Object} Objects with values parsed from style attribute of an element\n */\n parseStyleAttribute: function(element) {\n var oStyle = { },\n style = element.getAttribute('style');\n\n if (!style) {\n return oStyle;\n }\n\n if (typeof style === 'string') {\n parseStyleString(style, oStyle);\n }\n else {\n parseStyleObject(style, oStyle);\n }\n\n return oStyle;\n },\n\n /**\n * Parses \"points\" attribute, returning an array of values\n * @static\n * @memberOf fabric\n * @param {String} points points attribute string\n * @return {Array} array of points\n */\n parsePointsAttribute: function(points) {\n\n // points attribute is required and must not be empty\n if (!points) {\n return null;\n }\n\n // replace commas with whitespace and remove bookending whitespace\n points = points.replace(/,/g, ' ').trim();\n\n points = points.split(/\\s+/);\n var parsedPoints = [], i, len;\n\n for (i = 0, len = points.length; i < len; i += 2) {\n parsedPoints.push({\n x: parseFloat(points[i]),\n y: parseFloat(points[i + 1])\n });\n }\n\n // odd number of points is an error\n // if (parsedPoints.length % 2 !== 0) {\n // return null;\n // }\n\n return parsedPoints;\n },\n\n /**\n * Returns CSS rules for a given SVG document\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @return {Object} CSS rules of this document\n */\n getCSSRules: function(doc) {\n var styles = doc.getElementsByTagName('style'), i, len,\n allRules = { }, rules;\n\n // very crude parsing of style contents\n for (i = 0, len = styles.length; i < len; i++) {\n var styleContents = styles[i].textContent;\n\n // remove comments\n styleContents = styleContents.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '');\n if (styleContents.trim() === '') {\n continue;\n }\n rules = styleContents.match(/[^{]*\\{[\\s\\S]*?\\}/g);\n rules = rules.map(function(rule) { return rule.trim(); });\n // eslint-disable-next-line no-loop-func\n rules.forEach(function(rule) {\n\n var match = rule.match(/([\\s\\S]*?)\\s*\\{([^}]*)\\}/),\n ruleObj = { }, declaration = match[2].trim(),\n propertyValuePairs = declaration.replace(/;$/, '').split(/\\s*;\\s*/);\n\n for (i = 0, len = propertyValuePairs.length; i < len; i++) {\n var pair = propertyValuePairs[i].split(/\\s*:\\s*/),\n property = pair[0],\n value = pair[1];\n ruleObj[property] = value;\n }\n rule = match[1];\n rule.split(',').forEach(function(_rule) {\n _rule = _rule.replace(/^svg/i, '').trim();\n if (_rule === '') {\n return;\n }\n if (allRules[_rule]) {\n fabric.util.object.extend(allRules[_rule], ruleObj);\n }\n else {\n allRules[_rule] = fabric.util.object.clone(ruleObj);\n }\n });\n });\n }\n return allRules;\n },\n\n /**\n * Takes url corresponding to an SVG document, and parses it into a set of fabric objects.\n * Note that SVG is fetched via XMLHttpRequest, so it needs to conform to SOP (Same Origin Policy)\n * @memberOf fabric\n * @param {String} url\n * @param {Function} callback\n * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created.\n * @param {Object} [options] Object containing options for parsing\n * @param {String} [options.crossOrigin] crossOrigin crossOrigin setting to use for external resources\n */\n loadSVGFromURL: function(url, callback, reviver, options) {\n\n url = url.replace(/^\\n\\s*/, '').trim();\n new fabric.util.request(url, {\n method: 'get',\n onComplete: onComplete\n });\n\n function onComplete(r) {\n\n var xml = r.responseXML;\n if (!xml || !xml.documentElement) {\n callback && callback(null);\n return false;\n }\n\n fabric.parseSVGDocument(xml.documentElement, function (results, _options, elements, allElements) {\n callback && callback(results, _options, elements, allElements);\n }, reviver, options);\n }\n },\n\n /**\n * Takes string corresponding to an SVG document, and parses it into a set of fabric objects\n * @memberOf fabric\n * @param {String} string\n * @param {Function} callback\n * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created.\n * @param {Object} [options] Object containing options for parsing\n * @param {String} [options.crossOrigin] crossOrigin crossOrigin setting to use for external resources\n */\n loadSVGFromString: function(string, callback, reviver, options) {\n var parser = new fabric.window.DOMParser(),\n doc = parser.parseFromString(string.trim(), 'text/xml');\n fabric.parseSVGDocument(doc.documentElement, function (results, _options, elements, allElements) {\n callback(results, _options, elements, allElements);\n }, reviver, options);\n }\n });\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\nfabric.ElementsParser = function(elements, callback, options, reviver, parsingOptions, doc) {\n this.elements = elements;\n this.callback = callback;\n this.options = options;\n this.reviver = reviver;\n this.svgUid = (options && options.svgUid) || 0;\n this.parsingOptions = parsingOptions;\n this.regexUrl = /^url\\(['\"]?#([^'\"]+)['\"]?\\)/g;\n this.doc = doc;\n};\n\n(function(proto) {\n proto.parse = function() {\n this.instances = new Array(this.elements.length);\n this.numElements = this.elements.length;\n this.createObjects();\n };\n\n proto.createObjects = function() {\n var _this = this;\n this.elements.forEach(function(element, i) {\n element.setAttribute('svgUid', _this.svgUid);\n _this.createObject(element, i);\n });\n };\n\n proto.findTag = function(el) {\n return fabric[fabric.util.string.capitalize(el.tagName.replace('svg:', ''))];\n };\n\n proto.createObject = function(el, index) {\n var klass = this.findTag(el);\n if (klass && klass.fromElement) {\n try {\n klass.fromElement(el, this.createCallback(index, el), this.options);\n }\n catch (err) {\n fabric.log(err);\n }\n }\n else {\n this.checkIfDone();\n }\n };\n\n proto.createCallback = function(index, el) {\n var _this = this;\n return function(obj) {\n var _options;\n _this.resolveGradient(obj, el, 'fill');\n _this.resolveGradient(obj, el, 'stroke');\n if (obj instanceof fabric.Image && obj._originalElement) {\n _options = obj.parsePreserveAspectRatioAttribute(el);\n }\n obj._removeTransformMatrix(_options);\n _this.resolveClipPath(obj, el);\n _this.reviver && _this.reviver(el, obj);\n _this.instances[index] = obj;\n _this.checkIfDone();\n };\n };\n\n proto.extractPropertyDefinition = function(obj, property, storage) {\n var value = obj[property], regex = this.regexUrl;\n if (!regex.test(value)) {\n return;\n }\n regex.lastIndex = 0;\n var id = regex.exec(value)[1];\n regex.lastIndex = 0;\n return fabric[storage][this.svgUid][id];\n };\n\n proto.resolveGradient = function(obj, el, property) {\n var gradientDef = this.extractPropertyDefinition(obj, property, 'gradientDefs');\n if (gradientDef) {\n var opacityAttr = el.getAttribute(property + '-opacity');\n var gradient = fabric.Gradient.fromElement(gradientDef, obj, opacityAttr, this.options);\n obj.set(property, gradient);\n }\n };\n\n proto.createClipPathCallback = function(obj, container) {\n return function(_newObj) {\n _newObj._removeTransformMatrix();\n _newObj.fillRule = _newObj.clipRule;\n container.push(_newObj);\n };\n };\n\n proto.resolveClipPath = function(obj, usingElement) {\n var clipPath = this.extractPropertyDefinition(obj, 'clipPath', 'clipPaths'),\n element, klass, objTransformInv, container, gTransform, options;\n if (clipPath) {\n container = [];\n objTransformInv = fabric.util.invertTransform(obj.calcTransformMatrix());\n // move the clipPath tag as sibling to the real element that is using it\n var clipPathTag = clipPath[0].parentNode;\n var clipPathOwner = usingElement;\n while (clipPathOwner.parentNode && clipPathOwner.getAttribute('clip-path') !== obj.clipPath) {\n clipPathOwner = clipPathOwner.parentNode;\n }\n clipPathOwner.parentNode.appendChild(clipPathTag);\n for (var i = 0; i < clipPath.length; i++) {\n element = clipPath[i];\n klass = this.findTag(element);\n klass.fromElement(\n element,\n this.createClipPathCallback(obj, container),\n this.options\n );\n }\n if (container.length === 1) {\n clipPath = container[0];\n }\n else {\n clipPath = new fabric.Group(container);\n }\n gTransform = fabric.util.multiplyTransformMatrices(\n objTransformInv,\n clipPath.calcTransformMatrix()\n );\n if (clipPath.clipPath) {\n this.resolveClipPath(clipPath, clipPathOwner);\n }\n var options = fabric.util.qrDecompose(gTransform);\n clipPath.flipX = false;\n clipPath.flipY = false;\n clipPath.set('scaleX', options.scaleX);\n clipPath.set('scaleY', options.scaleY);\n clipPath.angle = options.angle;\n clipPath.skewX = options.skewX;\n clipPath.skewY = 0;\n clipPath.setPositionByOrigin({ x: options.translateX, y: options.translateY }, 'center', 'center');\n obj.clipPath = clipPath;\n }\n else {\n // if clip-path does not resolve to any element, delete the property.\n delete obj.clipPath;\n }\n };\n\n proto.checkIfDone = function() {\n if (--this.numElements === 0) {\n this.instances = this.instances.filter(function(el) {\n // eslint-disable-next-line no-eq-null, eqeqeq\n return el != null;\n });\n this.callback(this.instances, this.elements);\n }\n };\n})(fabric.ElementsParser.prototype);\n\n\n(function(global) {\n\n 'use strict';\n\n /* Adaptation of work of Kevin Lindsey (kevin@kevlindev.com) */\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Point) {\n fabric.warn('fabric.Point is already defined');\n return;\n }\n\n fabric.Point = Point;\n\n /**\n * Point class\n * @class fabric.Point\n * @memberOf fabric\n * @constructor\n * @param {Number} x\n * @param {Number} y\n * @return {fabric.Point} thisArg\n */\n function Point(x, y) {\n this.x = x;\n this.y = y;\n }\n\n Point.prototype = /** @lends fabric.Point.prototype */ {\n\n type: 'point',\n\n constructor: Point,\n\n /**\n * Adds another point to this one and returns another one\n * @param {fabric.Point} that\n * @return {fabric.Point} new Point instance with added values\n */\n add: function (that) {\n return new Point(this.x + that.x, this.y + that.y);\n },\n\n /**\n * Adds another point to this one\n * @param {fabric.Point} that\n * @return {fabric.Point} thisArg\n * @chainable\n */\n addEquals: function (that) {\n this.x += that.x;\n this.y += that.y;\n return this;\n },\n\n /**\n * Adds value to this point and returns a new one\n * @param {Number} scalar\n * @return {fabric.Point} new Point with added value\n */\n scalarAdd: function (scalar) {\n return new Point(this.x + scalar, this.y + scalar);\n },\n\n /**\n * Adds value to this point\n * @param {Number} scalar\n * @return {fabric.Point} thisArg\n * @chainable\n */\n scalarAddEquals: function (scalar) {\n this.x += scalar;\n this.y += scalar;\n return this;\n },\n\n /**\n * Subtracts another point from this point and returns a new one\n * @param {fabric.Point} that\n * @return {fabric.Point} new Point object with subtracted values\n */\n subtract: function (that) {\n return new Point(this.x - that.x, this.y - that.y);\n },\n\n /**\n * Subtracts another point from this point\n * @param {fabric.Point} that\n * @return {fabric.Point} thisArg\n * @chainable\n */\n subtractEquals: function (that) {\n this.x -= that.x;\n this.y -= that.y;\n return this;\n },\n\n /**\n * Subtracts value from this point and returns a new one\n * @param {Number} scalar\n * @return {fabric.Point}\n */\n scalarSubtract: function (scalar) {\n return new Point(this.x - scalar, this.y - scalar);\n },\n\n /**\n * Subtracts value from this point\n * @param {Number} scalar\n * @return {fabric.Point} thisArg\n * @chainable\n */\n scalarSubtractEquals: function (scalar) {\n this.x -= scalar;\n this.y -= scalar;\n return this;\n },\n\n /**\n * Multiplies this point by a value and returns a new one\n * TODO: rename in scalarMultiply in 2.0\n * @param {Number} scalar\n * @return {fabric.Point}\n */\n multiply: function (scalar) {\n return new Point(this.x * scalar, this.y * scalar);\n },\n\n /**\n * Multiplies this point by a value\n * TODO: rename in scalarMultiplyEquals in 2.0\n * @param {Number} scalar\n * @return {fabric.Point} thisArg\n * @chainable\n */\n multiplyEquals: function (scalar) {\n this.x *= scalar;\n this.y *= scalar;\n return this;\n },\n\n /**\n * Divides this point by a value and returns a new one\n * TODO: rename in scalarDivide in 2.0\n * @param {Number} scalar\n * @return {fabric.Point}\n */\n divide: function (scalar) {\n return new Point(this.x / scalar, this.y / scalar);\n },\n\n /**\n * Divides this point by a value\n * TODO: rename in scalarDivideEquals in 2.0\n * @param {Number} scalar\n * @return {fabric.Point} thisArg\n * @chainable\n */\n divideEquals: function (scalar) {\n this.x /= scalar;\n this.y /= scalar;\n return this;\n },\n\n /**\n * Returns true if this point is equal to another one\n * @param {fabric.Point} that\n * @return {Boolean}\n */\n eq: function (that) {\n return (this.x === that.x && this.y === that.y);\n },\n\n /**\n * Returns true if this point is less than another one\n * @param {fabric.Point} that\n * @return {Boolean}\n */\n lt: function (that) {\n return (this.x < that.x && this.y < that.y);\n },\n\n /**\n * Returns true if this point is less than or equal to another one\n * @param {fabric.Point} that\n * @return {Boolean}\n */\n lte: function (that) {\n return (this.x <= that.x && this.y <= that.y);\n },\n\n /**\n\n * Returns true if this point is greater another one\n * @param {fabric.Point} that\n * @return {Boolean}\n */\n gt: function (that) {\n return (this.x > that.x && this.y > that.y);\n },\n\n /**\n * Returns true if this point is greater than or equal to another one\n * @param {fabric.Point} that\n * @return {Boolean}\n */\n gte: function (that) {\n return (this.x >= that.x && this.y >= that.y);\n },\n\n /**\n * Returns new point which is the result of linear interpolation with this one and another one\n * @param {fabric.Point} that\n * @param {Number} t , position of interpolation, between 0 and 1 default 0.5\n * @return {fabric.Point}\n */\n lerp: function (that, t) {\n if (typeof t === 'undefined') {\n t = 0.5;\n }\n t = Math.max(Math.min(1, t), 0);\n return new Point(this.x + (that.x - this.x) * t, this.y + (that.y - this.y) * t);\n },\n\n /**\n * Returns distance from this point and another one\n * @param {fabric.Point} that\n * @return {Number}\n */\n distanceFrom: function (that) {\n var dx = this.x - that.x,\n dy = this.y - that.y;\n return Math.sqrt(dx * dx + dy * dy);\n },\n\n /**\n * Returns the point between this point and another one\n * @param {fabric.Point} that\n * @return {fabric.Point}\n */\n midPointFrom: function (that) {\n return this.lerp(that);\n },\n\n /**\n * Returns a new point which is the min of this and another one\n * @param {fabric.Point} that\n * @return {fabric.Point}\n */\n min: function (that) {\n return new Point(Math.min(this.x, that.x), Math.min(this.y, that.y));\n },\n\n /**\n * Returns a new point which is the max of this and another one\n * @param {fabric.Point} that\n * @return {fabric.Point}\n */\n max: function (that) {\n return new Point(Math.max(this.x, that.x), Math.max(this.y, that.y));\n },\n\n /**\n * Returns string representation of this point\n * @return {String}\n */\n toString: function () {\n return this.x + ',' + this.y;\n },\n\n /**\n * Sets x/y of this point\n * @param {Number} x\n * @param {Number} y\n * @chainable\n */\n setXY: function (x, y) {\n this.x = x;\n this.y = y;\n return this;\n },\n\n /**\n * Sets x of this point\n * @param {Number} x\n * @chainable\n */\n setX: function (x) {\n this.x = x;\n return this;\n },\n\n /**\n * Sets y of this point\n * @param {Number} y\n * @chainable\n */\n setY: function (y) {\n this.y = y;\n return this;\n },\n\n /**\n * Sets x/y of this point from another point\n * @param {fabric.Point} that\n * @chainable\n */\n setFromPoint: function (that) {\n this.x = that.x;\n this.y = that.y;\n return this;\n },\n\n /**\n * Swaps x/y of this point and another point\n * @param {fabric.Point} that\n */\n swap: function (that) {\n var x = this.x,\n y = this.y;\n this.x = that.x;\n this.y = that.y;\n that.x = x;\n that.y = y;\n },\n\n /**\n * return a cloned instance of the point\n * @return {fabric.Point}\n */\n clone: function () {\n return new Point(this.x, this.y);\n }\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n /* Adaptation of work of Kevin Lindsey (kevin@kevlindev.com) */\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Intersection) {\n fabric.warn('fabric.Intersection is already defined');\n return;\n }\n\n /**\n * Intersection class\n * @class fabric.Intersection\n * @memberOf fabric\n * @constructor\n */\n function Intersection(status) {\n this.status = status;\n this.points = [];\n }\n\n fabric.Intersection = Intersection;\n\n fabric.Intersection.prototype = /** @lends fabric.Intersection.prototype */ {\n\n constructor: Intersection,\n\n /**\n * Appends a point to intersection\n * @param {fabric.Point} point\n * @return {fabric.Intersection} thisArg\n * @chainable\n */\n appendPoint: function (point) {\n this.points.push(point);\n return this;\n },\n\n /**\n * Appends points to intersection\n * @param {Array} points\n * @return {fabric.Intersection} thisArg\n * @chainable\n */\n appendPoints: function (points) {\n this.points = this.points.concat(points);\n return this;\n }\n };\n\n /**\n * Checks if one line intersects another\n * TODO: rename in intersectSegmentSegment\n * @static\n * @param {fabric.Point} a1\n * @param {fabric.Point} a2\n * @param {fabric.Point} b1\n * @param {fabric.Point} b2\n * @return {fabric.Intersection}\n */\n fabric.Intersection.intersectLineLine = function (a1, a2, b1, b2) {\n var result,\n uaT = (b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x),\n ubT = (a2.x - a1.x) * (a1.y - b1.y) - (a2.y - a1.y) * (a1.x - b1.x),\n uB = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y);\n if (uB !== 0) {\n var ua = uaT / uB,\n ub = ubT / uB;\n if (0 <= ua && ua <= 1 && 0 <= ub && ub <= 1) {\n result = new Intersection('Intersection');\n result.appendPoint(new fabric.Point(a1.x + ua * (a2.x - a1.x), a1.y + ua * (a2.y - a1.y)));\n }\n else {\n result = new Intersection();\n }\n }\n else {\n if (uaT === 0 || ubT === 0) {\n result = new Intersection('Coincident');\n }\n else {\n result = new Intersection('Parallel');\n }\n }\n return result;\n };\n\n /**\n * Checks if line intersects polygon\n * TODO: rename in intersectSegmentPolygon\n * fix detection of coincident\n * @static\n * @param {fabric.Point} a1\n * @param {fabric.Point} a2\n * @param {Array} points\n * @return {fabric.Intersection}\n */\n fabric.Intersection.intersectLinePolygon = function(a1, a2, points) {\n var result = new Intersection(),\n length = points.length,\n b1, b2, inter, i;\n\n for (i = 0; i < length; i++) {\n b1 = points[i];\n b2 = points[(i + 1) % length];\n inter = Intersection.intersectLineLine(a1, a2, b1, b2);\n\n result.appendPoints(inter.points);\n }\n if (result.points.length > 0) {\n result.status = 'Intersection';\n }\n return result;\n };\n\n /**\n * Checks if polygon intersects another polygon\n * @static\n * @param {Array} points1\n * @param {Array} points2\n * @return {fabric.Intersection}\n */\n fabric.Intersection.intersectPolygonPolygon = function (points1, points2) {\n var result = new Intersection(),\n length = points1.length, i;\n\n for (i = 0; i < length; i++) {\n var a1 = points1[i],\n a2 = points1[(i + 1) % length],\n inter = Intersection.intersectLinePolygon(a1, a2, points2);\n\n result.appendPoints(inter.points);\n }\n if (result.points.length > 0) {\n result.status = 'Intersection';\n }\n return result;\n };\n\n /**\n * Checks if polygon intersects rectangle\n * @static\n * @param {Array} points\n * @param {fabric.Point} r1\n * @param {fabric.Point} r2\n * @return {fabric.Intersection}\n */\n fabric.Intersection.intersectPolygonRectangle = function (points, r1, r2) {\n var min = r1.min(r2),\n max = r1.max(r2),\n topRight = new fabric.Point(max.x, min.y),\n bottomLeft = new fabric.Point(min.x, max.y),\n inter1 = Intersection.intersectLinePolygon(min, topRight, points),\n inter2 = Intersection.intersectLinePolygon(topRight, max, points),\n inter3 = Intersection.intersectLinePolygon(max, bottomLeft, points),\n inter4 = Intersection.intersectLinePolygon(bottomLeft, min, points),\n result = new Intersection();\n\n result.appendPoints(inter1.points);\n result.appendPoints(inter2.points);\n result.appendPoints(inter3.points);\n result.appendPoints(inter4.points);\n\n if (result.points.length > 0) {\n result.status = 'Intersection';\n }\n return result;\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Color) {\n fabric.warn('fabric.Color is already defined.');\n return;\n }\n\n /**\n * Color class\n * The purpose of {@link fabric.Color} is to abstract and encapsulate common color operations;\n * {@link fabric.Color} is a constructor and creates instances of {@link fabric.Color} objects.\n *\n * @class fabric.Color\n * @param {String} color optional in hex or rgb(a) or hsl format or from known color list\n * @return {fabric.Color} thisArg\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2/#colors}\n */\n function Color(color) {\n if (!color) {\n this.setSource([0, 0, 0, 1]);\n }\n else {\n this._tryParsingColor(color);\n }\n }\n\n fabric.Color = Color;\n\n fabric.Color.prototype = /** @lends fabric.Color.prototype */ {\n\n /**\n * @private\n * @param {String|Array} color Color value to parse\n */\n _tryParsingColor: function(color) {\n var source;\n\n if (color in Color.colorNameMap) {\n color = Color.colorNameMap[color];\n }\n\n if (color === 'transparent') {\n source = [255, 255, 255, 0];\n }\n\n if (!source) {\n source = Color.sourceFromHex(color);\n }\n if (!source) {\n source = Color.sourceFromRgb(color);\n }\n if (!source) {\n source = Color.sourceFromHsl(color);\n }\n if (!source) {\n //if color is not recognize let's make black as canvas does\n source = [0, 0, 0, 1];\n }\n if (source) {\n this.setSource(source);\n }\n },\n\n /**\n * Adapted from https://github.com/mjijackson\n * @private\n * @param {Number} r Red color value\n * @param {Number} g Green color value\n * @param {Number} b Blue color value\n * @return {Array} Hsl color\n */\n _rgbToHsl: function(r, g, b) {\n r /= 255; g /= 255; b /= 255;\n\n var h, s, l,\n max = fabric.util.array.max([r, g, b]),\n min = fabric.util.array.min([r, g, b]);\n\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [\n Math.round(h * 360),\n Math.round(s * 100),\n Math.round(l * 100)\n ];\n },\n\n /**\n * Returns source of this color (where source is an array representation; ex: [200, 200, 100, 1])\n * @return {Array}\n */\n getSource: function() {\n return this._source;\n },\n\n /**\n * Sets source of this color (where source is an array representation; ex: [200, 200, 100, 1])\n * @param {Array} source\n */\n setSource: function(source) {\n this._source = source;\n },\n\n /**\n * Returns color representation in RGB format\n * @return {String} ex: rgb(0-255,0-255,0-255)\n */\n toRgb: function() {\n var source = this.getSource();\n return 'rgb(' + source[0] + ',' + source[1] + ',' + source[2] + ')';\n },\n\n /**\n * Returns color representation in RGBA format\n * @return {String} ex: rgba(0-255,0-255,0-255,0-1)\n */\n toRgba: function() {\n var source = this.getSource();\n return 'rgba(' + source[0] + ',' + source[1] + ',' + source[2] + ',' + source[3] + ')';\n },\n\n /**\n * Returns color representation in HSL format\n * @return {String} ex: hsl(0-360,0%-100%,0%-100%)\n */\n toHsl: function() {\n var source = this.getSource(),\n hsl = this._rgbToHsl(source[0], source[1], source[2]);\n\n return 'hsl(' + hsl[0] + ',' + hsl[1] + '%,' + hsl[2] + '%)';\n },\n\n /**\n * Returns color representation in HSLA format\n * @return {String} ex: hsla(0-360,0%-100%,0%-100%,0-1)\n */\n toHsla: function() {\n var source = this.getSource(),\n hsl = this._rgbToHsl(source[0], source[1], source[2]);\n\n return 'hsla(' + hsl[0] + ',' + hsl[1] + '%,' + hsl[2] + '%,' + source[3] + ')';\n },\n\n /**\n * Returns color representation in HEX format\n * @return {String} ex: FF5555\n */\n toHex: function() {\n var source = this.getSource(), r, g, b;\n\n r = source[0].toString(16);\n r = (r.length === 1) ? ('0' + r) : r;\n\n g = source[1].toString(16);\n g = (g.length === 1) ? ('0' + g) : g;\n\n b = source[2].toString(16);\n b = (b.length === 1) ? ('0' + b) : b;\n\n return r.toUpperCase() + g.toUpperCase() + b.toUpperCase();\n },\n\n /**\n * Returns color representation in HEXA format\n * @return {String} ex: FF5555CC\n */\n toHexa: function() {\n var source = this.getSource(), a;\n\n a = Math.round(source[3] * 255);\n a = a.toString(16);\n a = (a.length === 1) ? ('0' + a) : a;\n\n return this.toHex() + a.toUpperCase();\n },\n\n /**\n * Gets value of alpha channel for this color\n * @return {Number} 0-1\n */\n getAlpha: function() {\n return this.getSource()[3];\n },\n\n /**\n * Sets value of alpha channel for this color\n * @param {Number} alpha Alpha value 0-1\n * @return {fabric.Color} thisArg\n */\n setAlpha: function(alpha) {\n var source = this.getSource();\n source[3] = alpha;\n this.setSource(source);\n return this;\n },\n\n /**\n * Transforms color to its grayscale representation\n * @return {fabric.Color} thisArg\n */\n toGrayscale: function() {\n var source = this.getSource(),\n average = parseInt((source[0] * 0.3 + source[1] * 0.59 + source[2] * 0.11).toFixed(0), 10),\n currentAlpha = source[3];\n this.setSource([average, average, average, currentAlpha]);\n return this;\n },\n\n /**\n * Transforms color to its black and white representation\n * @param {Number} threshold\n * @return {fabric.Color} thisArg\n */\n toBlackWhite: function(threshold) {\n var source = this.getSource(),\n average = (source[0] * 0.3 + source[1] * 0.59 + source[2] * 0.11).toFixed(0),\n currentAlpha = source[3];\n\n threshold = threshold || 127;\n\n average = (Number(average) < Number(threshold)) ? 0 : 255;\n this.setSource([average, average, average, currentAlpha]);\n return this;\n },\n\n /**\n * Overlays color with another color\n * @param {String|fabric.Color} otherColor\n * @return {fabric.Color} thisArg\n */\n overlayWith: function(otherColor) {\n if (!(otherColor instanceof Color)) {\n otherColor = new Color(otherColor);\n }\n\n var result = [],\n alpha = this.getAlpha(),\n otherAlpha = 0.5,\n source = this.getSource(),\n otherSource = otherColor.getSource(), i;\n\n for (i = 0; i < 3; i++) {\n result.push(Math.round((source[i] * (1 - otherAlpha)) + (otherSource[i] * otherAlpha)));\n }\n\n result[3] = alpha;\n this.setSource(result);\n return this;\n }\n };\n\n /**\n * Regex matching color in RGB or RGBA formats (ex: rgb(0, 0, 0), rgba(255, 100, 10, 0.5), rgba( 255 , 100 , 10 , 0.5 ), rgb(1,1,1), rgba(100%, 60%, 10%, 0.5))\n * @static\n * @field\n * @memberOf fabric.Color\n */\n // eslint-disable-next-line max-len\n fabric.Color.reRGBa = /^rgba?\\(\\s*(\\d{1,3}(?:\\.\\d+)?\\%?)\\s*,\\s*(\\d{1,3}(?:\\.\\d+)?\\%?)\\s*,\\s*(\\d{1,3}(?:\\.\\d+)?\\%?)\\s*(?:\\s*,\\s*((?:\\d*\\.?\\d+)?)\\s*)?\\)$/i;\n\n /**\n * Regex matching color in HSL or HSLA formats (ex: hsl(200, 80%, 10%), hsla(300, 50%, 80%, 0.5), hsla( 300 , 50% , 80% , 0.5 ))\n * @static\n * @field\n * @memberOf fabric.Color\n */\n fabric.Color.reHSLa = /^hsla?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3}\\%)\\s*,\\s*(\\d{1,3}\\%)\\s*(?:\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)$/i;\n\n /**\n * Regex matching color in HEX format (ex: #FF5544CC, #FF5555, 010155, aff)\n * @static\n * @field\n * @memberOf fabric.Color\n */\n fabric.Color.reHex = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;\n\n /**\n * Map of the 148 color names with HEX code\n * @static\n * @field\n * @memberOf fabric.Color\n * @see: https://www.w3.org/TR/css3-color/#svg-color\n */\n fabric.Color.colorNameMap = {\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\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 darkgrey: '#A9A9A9',\n darkgreen: '#006400',\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 grey: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\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 lightgrey: '#D3D3D3',\n lightgreen: '#90EE90',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\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: '#663399',\n red: '#FF0000',\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: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32'\n };\n\n /**\n * @private\n * @param {Number} p\n * @param {Number} q\n * @param {Number} t\n * @return {Number}\n */\n function hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n }\n\n /**\n * Returns new color object, when given a color in RGB format\n * @memberOf fabric.Color\n * @param {String} color Color value ex: rgb(0-255,0-255,0-255)\n * @return {fabric.Color}\n */\n fabric.Color.fromRgb = function(color) {\n return Color.fromSource(Color.sourceFromRgb(color));\n };\n\n /**\n * Returns array representation (ex: [100, 100, 200, 1]) of a color that's in RGB or RGBA format\n * @memberOf fabric.Color\n * @param {String} color Color value ex: rgb(0-255,0-255,0-255), rgb(0%-100%,0%-100%,0%-100%)\n * @return {Array} source\n */\n fabric.Color.sourceFromRgb = function(color) {\n var match = color.match(Color.reRGBa);\n if (match) {\n var r = parseInt(match[1], 10) / (/%$/.test(match[1]) ? 100 : 1) * (/%$/.test(match[1]) ? 255 : 1),\n g = parseInt(match[2], 10) / (/%$/.test(match[2]) ? 100 : 1) * (/%$/.test(match[2]) ? 255 : 1),\n b = parseInt(match[3], 10) / (/%$/.test(match[3]) ? 100 : 1) * (/%$/.test(match[3]) ? 255 : 1);\n\n return [\n parseInt(r, 10),\n parseInt(g, 10),\n parseInt(b, 10),\n match[4] ? parseFloat(match[4]) : 1\n ];\n }\n };\n\n /**\n * Returns new color object, when given a color in RGBA format\n * @static\n * @function\n * @memberOf fabric.Color\n * @param {String} color\n * @return {fabric.Color}\n */\n fabric.Color.fromRgba = Color.fromRgb;\n\n /**\n * Returns new color object, when given a color in HSL format\n * @param {String} color Color value ex: hsl(0-260,0%-100%,0%-100%)\n * @memberOf fabric.Color\n * @return {fabric.Color}\n */\n fabric.Color.fromHsl = function(color) {\n return Color.fromSource(Color.sourceFromHsl(color));\n };\n\n /**\n * Returns array representation (ex: [100, 100, 200, 1]) of a color that's in HSL or HSLA format.\n * Adapted from https://github.com/mjijackson\n * @memberOf fabric.Color\n * @param {String} color Color value ex: hsl(0-360,0%-100%,0%-100%) or hsla(0-360,0%-100%,0%-100%, 0-1)\n * @return {Array} source\n * @see http://http://www.w3.org/TR/css3-color/#hsl-color\n */\n fabric.Color.sourceFromHsl = function(color) {\n var match = color.match(Color.reHSLa);\n if (!match) {\n return;\n }\n\n var h = (((parseFloat(match[1]) % 360) + 360) % 360) / 360,\n s = parseFloat(match[2]) / (/%$/.test(match[2]) ? 100 : 1),\n l = parseFloat(match[3]) / (/%$/.test(match[3]) ? 100 : 1),\n r, g, b;\n\n if (s === 0) {\n r = g = b = l;\n }\n else {\n var q = l <= 0.5 ? l * (s + 1) : l + s - l * s,\n p = l * 2 - q;\n\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [\n Math.round(r * 255),\n Math.round(g * 255),\n Math.round(b * 255),\n match[4] ? parseFloat(match[4]) : 1\n ];\n };\n\n /**\n * Returns new color object, when given a color in HSLA format\n * @static\n * @function\n * @memberOf fabric.Color\n * @param {String} color\n * @return {fabric.Color}\n */\n fabric.Color.fromHsla = Color.fromHsl;\n\n /**\n * Returns new color object, when given a color in HEX format\n * @static\n * @memberOf fabric.Color\n * @param {String} color Color value ex: FF5555\n * @return {fabric.Color}\n */\n fabric.Color.fromHex = function(color) {\n return Color.fromSource(Color.sourceFromHex(color));\n };\n\n /**\n * Returns array representation (ex: [100, 100, 200, 1]) of a color that's in HEX format\n * @static\n * @memberOf fabric.Color\n * @param {String} color ex: FF5555 or FF5544CC (RGBa)\n * @return {Array} source\n */\n fabric.Color.sourceFromHex = function(color) {\n if (color.match(Color.reHex)) {\n var value = color.slice(color.indexOf('#') + 1),\n isShortNotation = (value.length === 3 || value.length === 4),\n isRGBa = (value.length === 8 || value.length === 4),\n r = isShortNotation ? (value.charAt(0) + value.charAt(0)) : value.substring(0, 2),\n g = isShortNotation ? (value.charAt(1) + value.charAt(1)) : value.substring(2, 4),\n b = isShortNotation ? (value.charAt(2) + value.charAt(2)) : value.substring(4, 6),\n a = isRGBa ? (isShortNotation ? (value.charAt(3) + value.charAt(3)) : value.substring(6, 8)) : 'FF';\n\n return [\n parseInt(r, 16),\n parseInt(g, 16),\n parseInt(b, 16),\n parseFloat((parseInt(a, 16) / 255).toFixed(2))\n ];\n }\n };\n\n /**\n * Returns new color object, when given color in array representation (ex: [200, 100, 100, 0.5])\n * @static\n * @memberOf fabric.Color\n * @param {Array} source\n * @return {fabric.Color}\n */\n fabric.Color.fromSource = function(source) {\n var oColor = new Color();\n oColor.setSource(source);\n return oColor;\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n scaleMap = ['e', 'se', 's', 'sw', 'w', 'nw', 'n', 'ne', 'e'],\n skewMap = ['ns', 'nesw', 'ew', 'nwse'],\n controls = {},\n LEFT = 'left', TOP = 'top', RIGHT = 'right', BOTTOM = 'bottom', CENTER = 'center',\n opposite = {\n top: BOTTOM,\n bottom: TOP,\n left: RIGHT,\n right: LEFT,\n center: CENTER,\n }, radiansToDegrees = fabric.util.radiansToDegrees,\n sign = (Math.sign || function(x) { return ((x > 0) - (x < 0)) || +x; });\n\n /**\n * Combine control position and object angle to find the control direction compared\n * to the object center.\n * @param {fabric.Object} fabricObject the fabric object for which we are rendering controls\n * @param {fabric.Control} control the control class\n * @return {Number} 0 - 7 a quadrant number\n */\n function findCornerQuadrant(fabricObject, control) {\n var cornerAngle = fabricObject.angle + radiansToDegrees(Math.atan2(control.y, control.x)) + 360;\n return Math.round((cornerAngle % 360) / 45);\n }\n\n function fireEvent(eventName, options) {\n var target = options.transform.target,\n canvas = target.canvas,\n canvasOptions = fabric.util.object.clone(options);\n canvasOptions.target = target;\n canvas && canvas.fire('object:' + eventName, canvasOptions);\n target.fire(eventName, options);\n }\n\n /**\n * Inspect event and fabricObject properties to understand if the scaling action\n * @param {Event} eventData from the user action\n * @param {fabric.Object} fabricObject the fabric object about to scale\n * @return {Boolean} true if scale is proportional\n */\n function scaleIsProportional(eventData, fabricObject) {\n var canvas = fabricObject.canvas, uniScaleKey = canvas.uniScaleKey,\n uniformIsToggled = eventData[uniScaleKey];\n return (canvas.uniformScaling && !uniformIsToggled) ||\n (!canvas.uniformScaling && uniformIsToggled);\n }\n\n /**\n * Checks if transform is centered\n * @param {Object} transform transform data\n * @return {Boolean} true if transform is centered\n */\n function isTransformCentered(transform) {\n return transform.originX === CENTER && transform.originY === CENTER;\n }\n\n /**\n * Inspect fabricObject to understand if the current scaling action is allowed\n * @param {fabric.Object} fabricObject the fabric object about to scale\n * @param {String} by 'x' or 'y' or ''\n * @param {Boolean} scaleProportionally true if we are trying to scale proportionally\n * @return {Boolean} true if scaling is not allowed at current conditions\n */\n function scalingIsForbidden(fabricObject, by, scaleProportionally) {\n var lockX = fabricObject.lockScalingX, lockY = fabricObject.lockScalingY;\n if (lockX && lockY) {\n return true;\n }\n if (!by && (lockX || lockY) && scaleProportionally) {\n return true;\n }\n if (lockX && by === 'x') {\n return true;\n }\n if (lockY && by === 'y') {\n return true;\n }\n return false;\n }\n\n /**\n * return the correct cursor style for the scale action\n * @param {Event} eventData the javascript event that is causing the scale\n * @param {fabric.Control} control the control that is interested in the action\n * @param {fabric.Object} fabricObject the fabric object that is interested in the action\n * @return {String} a valid css string for the cursor\n */\n function scaleCursorStyleHandler(eventData, control, fabricObject) {\n var notAllowed = 'not-allowed',\n scaleProportionally = scaleIsProportional(eventData, fabricObject),\n by = '';\n if (control.x !== 0 && control.y === 0) {\n by = 'x';\n }\n else if (control.x === 0 && control.y !== 0) {\n by = 'y';\n }\n if (scalingIsForbidden(fabricObject, by, scaleProportionally)) {\n return notAllowed;\n }\n var n = findCornerQuadrant(fabricObject, control);\n return scaleMap[n] + '-resize';\n }\n\n /**\n * return the correct cursor style for the skew action\n * @param {Event} eventData the javascript event that is causing the scale\n * @param {fabric.Control} control the control that is interested in the action\n * @param {fabric.Object} fabricObject the fabric object that is interested in the action\n * @return {String} a valid css string for the cursor\n */\n function skewCursorStyleHandler(eventData, control, fabricObject) {\n var notAllowed = 'not-allowed';\n if (control.x !== 0 && fabricObject.lockSkewingY) {\n return notAllowed;\n }\n if (control.y !== 0 && fabricObject.lockSkewingX) {\n return notAllowed;\n }\n var n = findCornerQuadrant(fabricObject, control) % 4;\n return skewMap[n] + '-resize';\n }\n\n /**\n * Combine skew and scale style handlers to cover fabric standard use case\n * @param {Event} eventData the javascript event that is causing the scale\n * @param {fabric.Control} control the control that is interested in the action\n * @param {fabric.Object} fabricObject the fabric object that is interested in the action\n * @return {String} a valid css string for the cursor\n */\n function scaleSkewCursorStyleHandler(eventData, control, fabricObject) {\n if (eventData[fabricObject.canvas.altActionKey]) {\n return controls.skewCursorStyleHandler(eventData, control, fabricObject);\n }\n return controls.scaleCursorStyleHandler(eventData, control, fabricObject);\n }\n\n /**\n * Inspect event, control and fabricObject to return the correct action name\n * @param {Event} eventData the javascript event that is causing the scale\n * @param {fabric.Control} control the control that is interested in the action\n * @param {fabric.Object} fabricObject the fabric object that is interested in the action\n * @return {String} an action name\n */\n function scaleOrSkewActionName(eventData, control, fabricObject) {\n var isAlternative = eventData[fabricObject.canvas.altActionKey];\n if (control.x === 0) {\n // then is scaleY or skewX\n return isAlternative ? 'skewX' : 'scaleY';\n }\n if (control.y === 0) {\n // then is scaleY or skewX\n return isAlternative ? 'skewY' : 'scaleX';\n }\n }\n\n /**\n * Find the correct style for the control that is used for rotation.\n * this function is very simple and it just take care of not-allowed or standard cursor\n * @param {Event} eventData the javascript event that is causing the scale\n * @param {fabric.Control} control the control that is interested in the action\n * @param {fabric.Object} fabricObject the fabric object that is interested in the action\n * @return {String} a valid css string for the cursor\n */\n function rotationStyleHandler(eventData, control, fabricObject) {\n if (fabricObject.lockRotation) {\n return 'not-allowed';\n }\n return control.cursorStyle;\n }\n\n function commonEventInfo(eventData, transform, x, y) {\n return {\n e: eventData,\n transform: transform,\n pointer: {\n x: x,\n y: y,\n }\n };\n }\n\n /**\n * Wrap an action handler with saving/restoring object position on the transform.\n * this is the code that permits to objects to keep their position while transforming.\n * @param {Function} actionHandler the function to wrap\n * @return {Function} a function with an action handler signature\n */\n function wrapWithFixedAnchor(actionHandler) {\n return function(eventData, transform, x, y) {\n var target = transform.target, centerPoint = target.getCenterPoint(),\n constraint = target.translateToOriginPoint(centerPoint, transform.originX, transform.originY),\n actionPerformed = actionHandler(eventData, transform, x, y);\n target.setPositionByOrigin(constraint, transform.originX, transform.originY);\n return actionPerformed;\n };\n }\n\n /**\n * Transforms a point described by x and y in a distance from the top left corner of the object\n * bounding box.\n * @param {Object} transform\n * @param {String} originX\n * @param {String} originY\n * @param {number} x\n * @param {number} y\n * @return {Fabric.Point} the normalized point\n */\n function getLocalPoint(transform, originX, originY, x, y) {\n var target = transform.target,\n control = target.controls[transform.corner],\n zoom = target.canvas.getZoom(),\n padding = target.padding / zoom,\n localPoint = target.toLocalPoint(new fabric.Point(x, y), originX, originY);\n if (localPoint.x >= padding) {\n localPoint.x -= padding;\n }\n if (localPoint.x <= -padding) {\n localPoint.x += padding;\n }\n if (localPoint.y >= padding) {\n localPoint.y -= padding;\n }\n if (localPoint.y <= padding) {\n localPoint.y += padding;\n }\n localPoint.x -= control.offsetX;\n localPoint.y -= control.offsetY;\n return localPoint;\n }\n\n /**\n * Detect if the fabric object is flipped on one side.\n * @param {fabric.Object} target\n * @return {Boolean} true if one flip, but not two.\n */\n function targetHasOneFlip(target) {\n return target.flipX !== target.flipY;\n }\n\n /**\n * Utility function to compensate the scale factor when skew is applied on both axes\n * @private\n */\n function compensateScaleForSkew(target, oppositeSkew, scaleToCompensate, axis, reference) {\n if (target[oppositeSkew] !== 0) {\n var newDim = target._getTransformedDimensions()[axis];\n var newValue = reference / newDim * target[scaleToCompensate];\n target.set(scaleToCompensate, newValue);\n }\n }\n\n /**\n * Action handler for skewing on the X axis\n * @private\n */\n function skewObjectX(eventData, transform, x, y) {\n var target = transform.target,\n // find how big the object would be, if there was no skewX. takes in account scaling\n dimNoSkew = target._getTransformedDimensions(0, target.skewY),\n localPoint = getLocalPoint(transform, transform.originX, transform.originY, x, y),\n // the mouse is in the center of the object, and we want it to stay there.\n // so the object will grow twice as much as the mouse.\n // this makes the skew growth to localPoint * 2 - dimNoSkew.\n totalSkewSize = Math.abs(localPoint.x * 2) - dimNoSkew.x,\n currentSkew = target.skewX, newSkew;\n if (totalSkewSize < 2) {\n // let's make it easy to go back to position 0.\n newSkew = 0;\n }\n else {\n newSkew = radiansToDegrees(\n Math.atan2((totalSkewSize / target.scaleX), (dimNoSkew.y / target.scaleY))\n );\n // now we have to find the sign of the skew.\n // it mostly depend on the origin of transformation.\n if (transform.originX === LEFT && transform.originY === BOTTOM) {\n newSkew = -newSkew;\n }\n if (transform.originX === RIGHT && transform.originY === TOP) {\n newSkew = -newSkew;\n }\n if (targetHasOneFlip(target)) {\n newSkew = -newSkew;\n }\n }\n var hasSkewed = currentSkew !== newSkew;\n if (hasSkewed) {\n var dimBeforeSkewing = target._getTransformedDimensions().y;\n target.set('skewX', newSkew);\n compensateScaleForSkew(target, 'skewY', 'scaleY', 'y', dimBeforeSkewing);\n fireEvent('skewing', commonEventInfo(eventData, transform, x, y));\n }\n return hasSkewed;\n }\n\n /**\n * Action handler for skewing on the Y axis\n * @private\n */\n function skewObjectY(eventData, transform, x, y) {\n var target = transform.target,\n // find how big the object would be, if there was no skewX. takes in account scaling\n dimNoSkew = target._getTransformedDimensions(target.skewX, 0),\n localPoint = getLocalPoint(transform, transform.originX, transform.originY, x, y),\n // the mouse is in the center of the object, and we want it to stay there.\n // so the object will grow twice as much as the mouse.\n // this makes the skew growth to localPoint * 2 - dimNoSkew.\n totalSkewSize = Math.abs(localPoint.y * 2) - dimNoSkew.y,\n currentSkew = target.skewY, newSkew;\n if (totalSkewSize < 2) {\n // let's make it easy to go back to position 0.\n newSkew = 0;\n }\n else {\n newSkew = radiansToDegrees(\n Math.atan2((totalSkewSize / target.scaleY), (dimNoSkew.x / target.scaleX))\n );\n // now we have to find the sign of the skew.\n // it mostly depend on the origin of transformation.\n if (transform.originX === LEFT && transform.originY === BOTTOM) {\n newSkew = -newSkew;\n }\n if (transform.originX === RIGHT && transform.originY === TOP) {\n newSkew = -newSkew;\n }\n if (targetHasOneFlip(target)) {\n newSkew = -newSkew;\n }\n }\n var hasSkewed = currentSkew !== newSkew;\n if (hasSkewed) {\n var dimBeforeSkewing = target._getTransformedDimensions().x;\n target.set('skewY', newSkew);\n compensateScaleForSkew(target, 'skewX', 'scaleX', 'x', dimBeforeSkewing);\n fireEvent('skewing', commonEventInfo(eventData, transform, x, y));\n }\n return hasSkewed;\n }\n\n /**\n * Wrapped Action handler for skewing on the Y axis, takes care of the\n * skew direction and determine the correct transform origin for the anchor point\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n */\n function skewHandlerX(eventData, transform, x, y) {\n // step1 figure out and change transform origin.\n // if skewX > 0 and originY bottom we anchor on right\n // if skewX > 0 and originY top we anchor on left\n // if skewX < 0 and originY bottom we anchor on left\n // if skewX < 0 and originY top we anchor on right\n // if skewX is 0, we look for mouse position to understand where are we going.\n var target = transform.target, currentSkew = target.skewX, originX, originY = transform.originY;\n if (target.lockSkewingX) {\n return false;\n }\n if (currentSkew === 0) {\n var localPointFromCenter = getLocalPoint(transform, CENTER, CENTER, x, y);\n if (localPointFromCenter.x > 0) {\n // we are pulling right, anchor left;\n originX = LEFT;\n }\n else {\n // we are pulling right, anchor right\n originX = RIGHT;\n }\n }\n else {\n if (currentSkew > 0) {\n originX = originY === TOP ? LEFT : RIGHT;\n }\n if (currentSkew < 0) {\n originX = originY === TOP ? RIGHT : LEFT;\n }\n // is the object flipped on one side only? swap the origin.\n if (targetHasOneFlip(target)) {\n originX = originX === LEFT ? RIGHT : LEFT;\n }\n }\n\n // once we have the origin, we find the anchor point\n transform.originX = originX;\n var finalHandler = wrapWithFixedAnchor(skewObjectX);\n return finalHandler(eventData, transform, x, y);\n }\n\n /**\n * Wrapped Action handler for skewing on the Y axis, takes care of the\n * skew direction and determine the correct transform origin for the anchor point\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n */\n function skewHandlerY(eventData, transform, x, y) {\n // step1 figure out and change transform origin.\n // if skewY > 0 and originX left we anchor on top\n // if skewY > 0 and originX right we anchor on bottom\n // if skewY < 0 and originX left we anchor on bottom\n // if skewY < 0 and originX right we anchor on top\n // if skewY is 0, we look for mouse position to understand where are we going.\n var target = transform.target, currentSkew = target.skewY, originY, originX = transform.originX;\n if (target.lockSkewingY) {\n return false;\n }\n if (currentSkew === 0) {\n var localPointFromCenter = getLocalPoint(transform, CENTER, CENTER, x, y);\n if (localPointFromCenter.y > 0) {\n // we are pulling down, anchor up;\n originY = TOP;\n }\n else {\n // we are pulling up, anchor down\n originY = BOTTOM;\n }\n }\n else {\n if (currentSkew > 0) {\n originY = originX === LEFT ? TOP : BOTTOM;\n }\n if (currentSkew < 0) {\n originY = originX === LEFT ? BOTTOM : TOP;\n }\n // is the object flipped on one side only? swap the origin.\n if (targetHasOneFlip(target)) {\n originY = originY === TOP ? BOTTOM : TOP;\n }\n }\n\n // once we have the origin, we find the anchor point\n transform.originY = originY;\n var finalHandler = wrapWithFixedAnchor(skewObjectY);\n return finalHandler(eventData, transform, x, y);\n }\n\n /**\n * Action handler for rotation and snapping, without anchor point.\n * Needs to be wrapped with `wrapWithFixedAnchor` to be effective\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n * @private\n */\n function rotationWithSnapping(eventData, transform, x, y) {\n var t = transform,\n target = t.target,\n pivotPoint = target.translateToOriginPoint(target.getCenterPoint(), t.originX, t.originY);\n\n if (target.lockRotation) {\n return false;\n }\n\n var lastAngle = Math.atan2(t.ey - pivotPoint.y, t.ex - pivotPoint.x),\n curAngle = Math.atan2(y - pivotPoint.y, x - pivotPoint.x),\n angle = radiansToDegrees(curAngle - lastAngle + t.theta),\n hasRotated = true;\n\n if (target.snapAngle > 0) {\n var snapAngle = target.snapAngle,\n snapThreshold = target.snapThreshold || snapAngle,\n rightAngleLocked = Math.ceil(angle / snapAngle) * snapAngle,\n leftAngleLocked = Math.floor(angle / snapAngle) * snapAngle;\n\n if (Math.abs(angle - leftAngleLocked) < snapThreshold) {\n angle = leftAngleLocked;\n }\n else if (Math.abs(angle - rightAngleLocked) < snapThreshold) {\n angle = rightAngleLocked;\n }\n }\n\n // normalize angle to positive value\n if (angle < 0) {\n angle = 360 + angle;\n }\n angle %= 360;\n\n hasRotated = target.angle !== angle;\n target.angle = angle;\n if (hasRotated) {\n fireEvent('rotating', commonEventInfo(eventData, transform, x, y));\n }\n return hasRotated;\n }\n\n /**\n * Basic scaling logic, reused with different constrain for scaling X,Y, freely or equally.\n * Needs to be wrapped with `wrapWithFixedAnchor` to be effective\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @param {Object} options additional information for scaling\n * @param {String} options.by 'x', 'y', 'equally' or '' to indicate type of scaling\n * @return {Boolean} true if some change happened\n * @private\n */\n function scaleObject(eventData, transform, x, y, options) {\n options = options || {};\n var target = transform.target,\n lockScalingX = target.lockScalingX, lockScalingY = target.lockScalingY,\n by = options.by, newPoint, scaleX, scaleY, dim,\n scaleProportionally = scaleIsProportional(eventData, target),\n forbidScaling = scalingIsForbidden(target, by, scaleProportionally),\n signX, signY, gestureScale = transform.gestureScale;\n\n if (forbidScaling) {\n return false;\n }\n if (gestureScale) {\n scaleX = transform.scaleX * gestureScale;\n scaleY = transform.scaleY * gestureScale;\n }\n else {\n newPoint = getLocalPoint(transform, transform.originX, transform.originY, x, y);\n // use of sign: We use sign to detect change of direction of an action. sign usually change when\n // we cross the origin point with the mouse. So a scale flip for example. There is an issue when scaling\n // by center and scaling using one middle control ( default: mr, mt, ml, mb), the mouse movement can easily\n // cross many time the origin point and flip the object. so we need a way to filter out the noise.\n // This ternary here should be ok to filter out X scaling when we want Y only and vice versa.\n signX = by !== 'y' ? sign(newPoint.x) : 1;\n signY = by !== 'x' ? sign(newPoint.y) : 1;\n if (!transform.signX) {\n transform.signX = signX;\n }\n if (!transform.signY) {\n transform.signY = signY;\n }\n\n if (target.lockScalingFlip &&\n (transform.signX !== signX || transform.signY !== signY)\n ) {\n return false;\n }\n\n dim = target._getTransformedDimensions();\n // missing detection of flip and logic to switch the origin\n if (scaleProportionally && !by) {\n // uniform scaling\n var distance = Math.abs(newPoint.x) + Math.abs(newPoint.y),\n original = transform.original,\n originalDistance = Math.abs(dim.x * original.scaleX / target.scaleX) +\n Math.abs(dim.y * original.scaleY / target.scaleY),\n scale = distance / originalDistance, hasScaled;\n scaleX = original.scaleX * scale;\n scaleY = original.scaleY * scale;\n }\n else {\n scaleX = Math.abs(newPoint.x * target.scaleX / dim.x);\n scaleY = Math.abs(newPoint.y * target.scaleY / dim.y);\n }\n // if we are scaling by center, we need to double the scale\n if (isTransformCentered(transform)) {\n scaleX *= 2;\n scaleY *= 2;\n }\n if (transform.signX !== signX && by !== 'y') {\n transform.originX = opposite[transform.originX];\n scaleX *= -1;\n transform.signX = signX;\n }\n if (transform.signY !== signY && by !== 'x') {\n transform.originY = opposite[transform.originY];\n scaleY *= -1;\n transform.signY = signY;\n }\n }\n // minScale is taken are in the setter.\n var oldScaleX = target.scaleX, oldScaleY = target.scaleY;\n if (!by) {\n !lockScalingX && target.set('scaleX', scaleX);\n !lockScalingY && target.set('scaleY', scaleY);\n }\n else {\n // forbidden cases already handled on top here.\n by === 'x' && target.set('scaleX', scaleX);\n by === 'y' && target.set('scaleY', scaleY);\n }\n hasScaled = oldScaleX !== target.scaleX || oldScaleY !== target.scaleY;\n if (hasScaled) {\n fireEvent('scaling', commonEventInfo(eventData, transform, x, y));\n }\n return hasScaled;\n }\n\n /**\n * Generic scaling logic, to scale from corners either equally or freely.\n * Needs to be wrapped with `wrapWithFixedAnchor` to be effective\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n */\n function scaleObjectFromCorner(eventData, transform, x, y) {\n return scaleObject(eventData, transform, x, y);\n }\n\n /**\n * Scaling logic for the X axis.\n * Needs to be wrapped with `wrapWithFixedAnchor` to be effective\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n */\n function scaleObjectX(eventData, transform, x, y) {\n return scaleObject(eventData, transform, x, y , { by: 'x' });\n }\n\n /**\n * Scaling logic for the Y axis.\n * Needs to be wrapped with `wrapWithFixedAnchor` to be effective\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n */\n function scaleObjectY(eventData, transform, x, y) {\n return scaleObject(eventData, transform, x, y , { by: 'y' });\n }\n\n /**\n * Composed action handler to either scale Y or skew X\n * Needs to be wrapped with `wrapWithFixedAnchor` to be effective\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n */\n function scalingYOrSkewingX(eventData, transform, x, y) {\n // ok some safety needed here.\n if (eventData[transform.target.canvas.altActionKey]) {\n return controls.skewHandlerX(eventData, transform, x, y);\n }\n return controls.scalingY(eventData, transform, x, y);\n }\n\n /**\n * Composed action handler to either scale X or skew Y\n * Needs to be wrapped with `wrapWithFixedAnchor` to be effective\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n */\n function scalingXOrSkewingY(eventData, transform, x, y) {\n // ok some safety needed here.\n if (eventData[transform.target.canvas.altActionKey]) {\n return controls.skewHandlerY(eventData, transform, x, y);\n }\n return controls.scalingX(eventData, transform, x, y);\n }\n\n /**\n * Action handler to change textbox width\n * Needs to be wrapped with `wrapWithFixedAnchor` to be effective\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if some change happened\n */\n function changeWidth(eventData, transform, x, y) {\n var target = transform.target, localPoint = getLocalPoint(transform, transform.originX, transform.originY, x, y),\n strokePadding = target.strokeWidth / (target.strokeUniform ? target.scaleX : 1),\n multiplier = isTransformCentered(transform) ? 2 : 1,\n oldWidth = target.width, hasResized,\n newWidth = Math.abs(localPoint.x * multiplier / target.scaleX) - strokePadding;\n target.set('width', Math.max(newWidth, 0));\n hasResized = oldWidth !== newWidth;\n if (hasResized) {\n fireEvent('resizing', commonEventInfo(eventData, transform, x, y));\n }\n return hasResized;\n }\n\n /**\n * Action handler\n * @private\n * @param {Event} eventData javascript event that is doing the transform\n * @param {Object} transform javascript object containing a series of information around the current transform\n * @param {number} x current mouse x position, canvas normalized\n * @param {number} y current mouse y position, canvas normalized\n * @return {Boolean} true if the translation occurred\n */\n function dragHandler(eventData, transform, x, y) {\n var target = transform.target,\n newLeft = x - transform.offsetX,\n newTop = y - transform.offsetY,\n moveX = !target.get('lockMovementX') && target.left !== newLeft,\n moveY = !target.get('lockMovementY') && target.top !== newTop;\n moveX && target.set('left', newLeft);\n moveY && target.set('top', newTop);\n if (moveX || moveY) {\n fireEvent('moving', commonEventInfo(eventData, transform, x, y));\n }\n return moveX || moveY;\n }\n\n controls.scaleCursorStyleHandler = scaleCursorStyleHandler;\n controls.skewCursorStyleHandler = skewCursorStyleHandler;\n controls.scaleSkewCursorStyleHandler = scaleSkewCursorStyleHandler;\n controls.rotationWithSnapping = wrapWithFixedAnchor(rotationWithSnapping);\n controls.scalingEqually = wrapWithFixedAnchor(scaleObjectFromCorner);\n controls.scalingX = wrapWithFixedAnchor(scaleObjectX);\n controls.scalingY = wrapWithFixedAnchor(scaleObjectY);\n controls.scalingYOrSkewingX = scalingYOrSkewingX;\n controls.scalingXOrSkewingY = scalingXOrSkewingY;\n controls.changeWidth = wrapWithFixedAnchor(changeWidth);\n controls.skewHandlerX = skewHandlerX;\n controls.skewHandlerY = skewHandlerY;\n controls.dragHandler = dragHandler;\n controls.scaleOrSkewActionName = scaleOrSkewActionName;\n controls.rotationStyleHandler = rotationStyleHandler;\n controls.fireEvent = fireEvent;\n controls.wrapWithFixedAnchor = wrapWithFixedAnchor;\n controls.getLocalPoint = getLocalPoint;\n fabric.controlsUtils = controls;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n degreesToRadians = fabric.util.degreesToRadians,\n controls = fabric.controlsUtils;\n\n /**\n * Render a round control, as per fabric features.\n * This function is written to respect object properties like transparentCorners, cornerSize\n * cornerColor, cornerStrokeColor\n * plus the addition of offsetY and offsetX.\n * @param {CanvasRenderingContext2D} ctx context to render on\n * @param {Number} left x coordinate where the control center should be\n * @param {Number} top y coordinate where the control center should be\n * @param {Object} styleOverride override for fabric.Object controls style\n * @param {fabric.Object} fabricObject the fabric object for which we are rendering controls\n */\n function renderCircleControl (ctx, left, top, styleOverride, fabricObject) {\n styleOverride = styleOverride || {};\n var xSize = this.sizeX || styleOverride.cornerSize || fabricObject.cornerSize,\n ySize = this.sizeY || styleOverride.cornerSize || fabricObject.cornerSize,\n transparentCorners = typeof styleOverride.transparentCorners !== 'undefined' ?\n styleOverride.transparentCorners : this.transparentCorners,\n methodName = transparentCorners ? 'stroke' : 'fill',\n stroke = !transparentCorners && (styleOverride.cornerStrokeColor || fabricObject.cornerStrokeColor),\n myLeft = left,\n myTop = top, size;\n ctx.save();\n ctx.fillStyle = styleOverride.cornerColor || fabricObject.cornerColor;\n ctx.strokeStyle = styleOverride.cornerStrokeColor || fabricObject.cornerStrokeColor;\n // as soon as fabric react v5, remove ie11, use proper ellipse code.\n if (xSize > ySize) {\n size = xSize;\n ctx.scale(1.0, ySize / xSize);\n myTop = top * xSize / ySize;\n }\n else if (ySize > xSize) {\n size = ySize;\n ctx.scale(xSize / ySize, 1.0);\n myLeft = left * ySize / xSize;\n }\n else {\n size = xSize;\n }\n // this is still wrong\n ctx.lineWidth = 1;\n ctx.beginPath();\n ctx.arc(myLeft, myTop, size / 2, 0, 2 * Math.PI, false);\n ctx[methodName]();\n if (stroke) {\n ctx.stroke();\n }\n ctx.restore();\n }\n\n /**\n * Render a square control, as per fabric features.\n * This function is written to respect object properties like transparentCorners, cornerSize\n * cornerColor, cornerStrokeColor\n * plus the addition of offsetY and offsetX.\n * @param {CanvasRenderingContext2D} ctx context to render on\n * @param {Number} left x coordinate where the control center should be\n * @param {Number} top y coordinate where the control center should be\n * @param {Object} styleOverride override for fabric.Object controls style\n * @param {fabric.Object} fabricObject the fabric object for which we are rendering controls\n */\n function renderSquareControl(ctx, left, top, styleOverride, fabricObject) {\n styleOverride = styleOverride || {};\n var xSize = this.sizeX || styleOverride.cornerSize || fabricObject.cornerSize,\n ySize = this.sizeY || styleOverride.cornerSize || fabricObject.cornerSize,\n transparentCorners = typeof styleOverride.transparentCorners !== 'undefined' ?\n styleOverride.transparentCorners : fabricObject.transparentCorners,\n methodName = transparentCorners ? 'stroke' : 'fill',\n stroke = !transparentCorners && (\n styleOverride.cornerStrokeColor || fabricObject.cornerStrokeColor\n ), xSizeBy2 = xSize / 2, ySizeBy2 = ySize / 2;\n ctx.save();\n ctx.fillStyle = styleOverride.cornerColor || fabricObject.cornerColor;\n ctx.strokeStyle = styleOverride.strokeCornerColor || fabricObject.strokeCornerColor;\n // this is still wrong\n ctx.lineWidth = 1;\n ctx.translate(left, top);\n ctx.rotate(degreesToRadians(fabricObject.angle));\n // this does not work, and fixed with ( && ) does not make sense.\n // to have real transparent corners we need the controls on upperCanvas\n // transparentCorners || ctx.clearRect(-xSizeBy2, -ySizeBy2, xSize, ySize);\n ctx[methodName + 'Rect'](-xSizeBy2, -ySizeBy2, xSize, ySize);\n if (stroke) {\n ctx.strokeRect(-xSizeBy2, -ySizeBy2, xSize, ySize);\n }\n ctx.restore();\n }\n\n controls.renderCircleControl = renderCircleControl;\n controls.renderSquareControl = renderSquareControl;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n function Control(options) {\n for (var i in options) {\n this[i] = options[i];\n }\n }\n\n fabric.Control = Control;\n\n fabric.Control.prototype = /** @lends fabric.Control.prototype */ {\n\n /**\n * keep track of control visibility.\n * mainly for backward compatibility.\n * if you do not want to see a control, you can remove it\n * from the controlset.\n * @type {Boolean}\n * @default true\n */\n visible: true,\n\n /**\n * Name of the action that the control will likely execute.\n * This is optional. FabricJS uses to identify what the user is doing for some\n * extra optimizations. If you are writing a custom control and you want to know\n * somewhere else in the code what is going on, you can use this string here.\n * you can also provide a custom getActionName if your control run multiple actions\n * depending on some external state.\n * default to scale since is the most common, used on 4 corners by default\n * @type {String}\n * @default 'scale'\n */\n actionName: 'scale',\n\n /**\n * Drawing angle of the control.\n * NOT used for now, but name marked as needed for internal logic\n * example: to reuse the same drawing function for different rotated controls\n * @type {Number}\n * @default 0\n */\n angle: 0,\n\n /**\n * Relative position of the control. X\n * 0,0 is the center of the Object, while -0.5 (left) or 0.5 (right) are the extremities\n * of the bounding box.\n * @type {Number}\n * @default 0\n */\n x: 0,\n\n /**\n * Relative position of the control. Y\n * 0,0 is the center of the Object, while -0.5 (top) or 0.5 (bottom) are the extremities\n * of the bounding box.\n * @type {Number}\n * @default 0\n */\n y: 0,\n\n /**\n * Horizontal offset of the control from the defined position. In pixels\n * Positive offset moves the control to the right, negative to the left.\n * It used when you want to have position of control that does not scale with\n * the bounding box. Example: rotation control is placed at x:0, y: 0.5 on\n * the boundindbox, with an offset of 30 pixels vertically. Those 30 pixels will\n * stay 30 pixels no matter how the object is big. Another example is having 2\n * controls in the corner, that stay in the same position when the object scale.\n * of the bounding box.\n * @type {Number}\n * @default 0\n */\n offsetX: 0,\n\n /**\n * Vertical offset of the control from the defined position. In pixels\n * Positive offset moves the control to the bottom, negative to the top.\n * @type {Number}\n * @default 0\n */\n offsetY: 0,\n\n /**\n * Sets the length of the control. If null, defaults to object's cornerSize.\n * Expects both sizeX and sizeY to be set when set.\n * @type {?Number}\n * @default null\n */\n sizeX: null,\n\n /**\n * Sets the height of the control. If null, defaults to object's cornerSize.\n * Expects both sizeX and sizeY to be set when set.\n * @type {?Number}\n * @default null\n */\n sizeY: null,\n\n /**\n * Sets the length of the touch area of the control. If null, defaults to object's touchCornerSize.\n * Expects both touchSizeX and touchSizeY to be set when set.\n * @type {?Number}\n * @default null\n */\n touchSizeX: null,\n\n /**\n * Sets the height of the touch area of the control. If null, defaults to object's touchCornerSize.\n * Expects both touchSizeX and touchSizeY to be set when set.\n * @type {?Number}\n * @default null\n */\n touchSizeY: null,\n\n /**\n * Css cursor style to display when the control is hovered.\n * if the method `cursorStyleHandler` is provided, this property is ignored.\n * @type {String}\n * @default 'crosshair'\n */\n cursorStyle: 'crosshair',\n\n /**\n * If controls has an offsetY or offsetX, draw a line that connects\n * the control to the bounding box\n * @type {Boolean}\n * @default false\n */\n withConnection: false,\n\n /**\n * The control actionHandler, provide one to handle action ( control being moved )\n * @param {Event} eventData the native mouse event\n * @param {Object} transformData properties of the current transform\n * @param {Number} x x position of the cursor\n * @param {Number} y y position of the cursor\n * @return {Boolean} true if the action/event modified the object\n */\n actionHandler: function(/* eventData, transformData, x, y */) { },\n\n /**\n * The control handler for mouse down, provide one to handle mouse down on control\n * @param {Event} eventData the native mouse event\n * @param {Object} transformData properties of the current transform\n * @param {Number} x x position of the cursor\n * @param {Number} y y position of the cursor\n * @return {Boolean} true if the action/event modified the object\n */\n mouseDownHandler: function(/* eventData, transformData, x, y */) { },\n\n /**\n * The control mouseUpHandler, provide one to handle an effect on mouse up.\n * @param {Event} eventData the native mouse event\n * @param {Object} transformData properties of the current transform\n * @param {Number} x x position of the cursor\n * @param {Number} y y position of the cursor\n * @return {Boolean} true if the action/event modified the object\n */\n mouseUpHandler: function(/* eventData, transformData, x, y */) { },\n\n /**\n * Returns control actionHandler\n * @param {Event} eventData the native mouse event\n * @param {fabric.Object} fabricObject on which the control is displayed\n * @param {fabric.Control} control control for which the action handler is being asked\n * @return {Function} the action handler\n */\n getActionHandler: function(/* eventData, fabricObject, control */) {\n return this.actionHandler;\n },\n\n /**\n * Returns control mouseDown handler\n * @param {Event} eventData the native mouse event\n * @param {fabric.Object} fabricObject on which the control is displayed\n * @param {fabric.Control} control control for which the action handler is being asked\n * @return {Function} the action handler\n */\n getMouseDownHandler: function(/* eventData, fabricObject, control */) {\n return this.mouseDownHandler;\n },\n\n /**\n * Returns control mouseUp handler\n * @param {Event} eventData the native mouse event\n * @param {fabric.Object} fabricObject on which the control is displayed\n * @param {fabric.Control} control control for which the action handler is being asked\n * @return {Function} the action handler\n */\n getMouseUpHandler: function(/* eventData, fabricObject, control */) {\n return this.mouseUpHandler;\n },\n\n /**\n * Returns control cursorStyle for css using cursorStyle. If you need a more elaborate\n * function you can pass one in the constructor\n * the cursorStyle property\n * @param {Event} eventData the native mouse event\n * @param {fabric.Control} control the current control ( likely this)\n * @param {fabric.Object} object on which the control is displayed\n * @return {String}\n */\n cursorStyleHandler: function(eventData, control /* fabricObject */) {\n return control.cursorStyle;\n },\n\n /**\n * Returns the action name. The basic implementation just return the actionName property.\n * @param {Event} eventData the native mouse event\n * @param {fabric.Control} control the current control ( likely this)\n * @param {fabric.Object} object on which the control is displayed\n * @return {String}\n */\n getActionName: function(eventData, control /* fabricObject */) {\n return control.actionName;\n },\n\n /**\n * Returns controls visibility\n * @param {fabric.Object} object on which the control is displayed\n * @param {String} controlKey key where the control is memorized on the\n * @return {Boolean}\n */\n getVisibility: function(fabricObject, controlKey) {\n var objectVisibility = fabricObject._controlsVisibility;\n if (objectVisibility && typeof objectVisibility[controlKey] !== 'undefined') {\n return objectVisibility[controlKey];\n }\n return this.visible;\n },\n\n /**\n * Sets controls visibility\n * @param {Boolean} visibility for the object\n * @return {Void}\n */\n setVisibility: function(visibility /* name, fabricObject */) {\n this.visible = visibility;\n },\n\n\n positionHandler: function(dim, finalMatrix /*, fabricObject, currentControl */) {\n var point = fabric.util.transformPoint({\n x: this.x * dim.x + this.offsetX,\n y: this.y * dim.y + this.offsetY }, finalMatrix);\n return point;\n },\n\n /**\n * Returns the coords for this control based on object values.\n * @param {Number} objectAngle angle from the fabric object holding the control\n * @param {Number} objectCornerSize cornerSize from the fabric object holding the control (or touchCornerSize if\n * isTouch is true)\n * @param {Number} centerX x coordinate where the control center should be\n * @param {Number} centerY y coordinate where the control center should be\n * @param {boolean} isTouch true if touch corner, false if normal corner\n */\n calcCornerCoords: function(objectAngle, objectCornerSize, centerX, centerY, isTouch) {\n var cosHalfOffset,\n sinHalfOffset,\n cosHalfOffsetComp,\n sinHalfOffsetComp,\n xSize = (isTouch) ? this.touchSizeX : this.sizeX,\n ySize = (isTouch) ? this.touchSizeY : this.sizeY;\n if (xSize && ySize && xSize !== ySize) {\n // handle rectangular corners\n var controlTriangleAngle = Math.atan2(ySize, xSize);\n var cornerHypotenuse = Math.sqrt(xSize * xSize + ySize * ySize) / 2;\n var newTheta = controlTriangleAngle - fabric.util.degreesToRadians(objectAngle);\n var newThetaComp = Math.PI / 2 - controlTriangleAngle - fabric.util.degreesToRadians(objectAngle);\n cosHalfOffset = cornerHypotenuse * fabric.util.cos(newTheta);\n sinHalfOffset = cornerHypotenuse * fabric.util.sin(newTheta);\n // use complementary angle for two corners\n cosHalfOffsetComp = cornerHypotenuse * fabric.util.cos(newThetaComp);\n sinHalfOffsetComp = cornerHypotenuse * fabric.util.sin(newThetaComp);\n }\n else {\n // handle square corners\n // use default object corner size unless size is defined\n var cornerSize = (xSize && ySize) ? xSize : objectCornerSize;\n /* 0.7071067812 stands for sqrt(2)/2 */\n cornerHypotenuse = cornerSize * 0.7071067812;\n // complementary angles are equal since they're both 45 degrees\n var newTheta = fabric.util.degreesToRadians(45 - objectAngle);\n cosHalfOffset = cosHalfOffsetComp = cornerHypotenuse * fabric.util.cos(newTheta);\n sinHalfOffset = sinHalfOffsetComp = cornerHypotenuse * fabric.util.sin(newTheta);\n }\n\n return {\n tl: {\n x: centerX - sinHalfOffsetComp,\n y: centerY - cosHalfOffsetComp,\n },\n tr: {\n x: centerX + cosHalfOffset,\n y: centerY - sinHalfOffset,\n },\n bl: {\n x: centerX - cosHalfOffset,\n y: centerY + sinHalfOffset,\n },\n br: {\n x: centerX + sinHalfOffsetComp,\n y: centerY + cosHalfOffsetComp,\n },\n };\n },\n\n /**\n * Render function for the control.\n * When this function runs the context is unscaled. unrotate. Just retina scaled.\n * all the functions will have to translate to the point left,top before starting Drawing\n * if they want to draw a control where the position is detected.\n * left and top are the result of the positionHandler function\n * @param {RenderingContext2D} ctx the context where the control will be drawn\n * @param {Number} left position of the canvas where we are about to render the control.\n * @param {Number} top position of the canvas where we are about to render the control.\n * @param {Object} styleOverride\n * @param {fabric.Object} fabricObject the object where the control is about to be rendered\n */\n render: function(ctx, left, top, styleOverride, fabricObject) {\n styleOverride = styleOverride || {};\n switch (styleOverride.cornerStyle || fabricObject.cornerStyle) {\n case 'circle':\n fabric.controlsUtils.renderCircleControl.call(this, ctx, left, top, styleOverride, fabricObject);\n break;\n default:\n fabric.controlsUtils.renderSquareControl.call(this, ctx, left, top, styleOverride, fabricObject);\n }\n },\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n\n /* _FROM_SVG_START_ */\n function getColorStop(el, multiplier) {\n var style = el.getAttribute('style'),\n offset = el.getAttribute('offset') || 0,\n color, colorAlpha, opacity, i;\n\n // convert percents to absolute values\n offset = parseFloat(offset) / (/%$/.test(offset) ? 100 : 1);\n offset = offset < 0 ? 0 : offset > 1 ? 1 : offset;\n if (style) {\n var keyValuePairs = style.split(/\\s*;\\s*/);\n\n if (keyValuePairs[keyValuePairs.length - 1] === '') {\n keyValuePairs.pop();\n }\n\n for (i = keyValuePairs.length; i--; ) {\n\n var split = keyValuePairs[i].split(/\\s*:\\s*/),\n key = split[0].trim(),\n value = split[1].trim();\n\n if (key === 'stop-color') {\n color = value;\n }\n else if (key === 'stop-opacity') {\n opacity = value;\n }\n }\n }\n\n if (!color) {\n color = el.getAttribute('stop-color') || 'rgb(0,0,0)';\n }\n if (!opacity) {\n opacity = el.getAttribute('stop-opacity');\n }\n\n color = new fabric.Color(color);\n colorAlpha = color.getAlpha();\n opacity = isNaN(parseFloat(opacity)) ? 1 : parseFloat(opacity);\n opacity *= colorAlpha * multiplier;\n\n return {\n offset: offset,\n color: color.toRgb(),\n opacity: opacity\n };\n }\n\n function getLinearCoords(el) {\n return {\n x1: el.getAttribute('x1') || 0,\n y1: el.getAttribute('y1') || 0,\n x2: el.getAttribute('x2') || '100%',\n y2: el.getAttribute('y2') || 0\n };\n }\n\n function getRadialCoords(el) {\n return {\n x1: el.getAttribute('fx') || el.getAttribute('cx') || '50%',\n y1: el.getAttribute('fy') || el.getAttribute('cy') || '50%',\n r1: 0,\n x2: el.getAttribute('cx') || '50%',\n y2: el.getAttribute('cy') || '50%',\n r2: el.getAttribute('r') || '50%'\n };\n }\n /* _FROM_SVG_END_ */\n\n var clone = fabric.util.object.clone;\n\n /**\n * Gradient class\n * @class fabric.Gradient\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#gradients}\n * @see {@link fabric.Gradient#initialize} for constructor definition\n */\n fabric.Gradient = fabric.util.createClass(/** @lends fabric.Gradient.prototype */ {\n\n /**\n * Horizontal offset for aligning gradients coming from SVG when outside pathgroups\n * @type Number\n * @default 0\n */\n offsetX: 0,\n\n /**\n * Vertical offset for aligning gradients coming from SVG when outside pathgroups\n * @type Number\n * @default 0\n */\n offsetY: 0,\n\n /**\n * A transform matrix to apply to the gradient before painting.\n * Imported from svg gradients, is not applied with the current transform in the center.\n * Before this transform is applied, the origin point is at the top left corner of the object\n * plus the addition of offsetY and offsetX.\n * @type Number[]\n * @default null\n */\n gradientTransform: null,\n\n /**\n * coordinates units for coords.\n * If `pixels`, the number of coords are in the same unit of width / height.\n * If set as `percentage` the coords are still a number, but 1 means 100% of width\n * for the X and 100% of the height for the y. It can be bigger than 1 and negative.\n * allowed values pixels or percentage.\n * @type String\n * @default 'pixels'\n */\n gradientUnits: 'pixels',\n\n /**\n * Gradient type linear or radial\n * @type String\n * @default 'pixels'\n */\n type: 'linear',\n\n /**\n * Constructor\n * @param {Object} options Options object with type, coords, gradientUnits and colorStops\n * @param {Object} [options.type] gradient type linear or radial\n * @param {Object} [options.gradientUnits] gradient units\n * @param {Object} [options.offsetX] SVG import compatibility\n * @param {Object} [options.offsetY] SVG import compatibility\n * @param {Object[]} options.colorStops contains the colorstops.\n * @param {Object} options.coords contains the coords of the gradient\n * @param {Number} [options.coords.x1] X coordiante of the first point for linear or of the focal point for radial\n * @param {Number} [options.coords.y1] Y coordiante of the first point for linear or of the focal point for radial\n * @param {Number} [options.coords.x2] X coordiante of the second point for linear or of the center point for radial\n * @param {Number} [options.coords.y2] Y coordiante of the second point for linear or of the center point for radial\n * @param {Number} [options.coords.r1] only for radial gradient, radius of the inner circle\n * @param {Number} [options.coords.r2] only for radial gradient, radius of the external circle\n * @return {fabric.Gradient} thisArg\n */\n initialize: function(options) {\n options || (options = { });\n options.coords || (options.coords = { });\n\n var coords, _this = this;\n\n // sets everything, then coords and colorstops get sets again\n Object.keys(options).forEach(function(option) {\n _this[option] = options[option];\n });\n\n if (this.id) {\n this.id += '_' + fabric.Object.__uid++;\n }\n else {\n this.id = fabric.Object.__uid++;\n }\n\n coords = {\n x1: options.coords.x1 || 0,\n y1: options.coords.y1 || 0,\n x2: options.coords.x2 || 0,\n y2: options.coords.y2 || 0\n };\n\n if (this.type === 'radial') {\n coords.r1 = options.coords.r1 || 0;\n coords.r2 = options.coords.r2 || 0;\n }\n\n this.coords = coords;\n this.colorStops = options.colorStops.slice();\n },\n\n /**\n * Adds another colorStop\n * @param {Object} colorStop Object with offset and color\n * @return {fabric.Gradient} thisArg\n */\n addColorStop: function(colorStops) {\n for (var position in colorStops) {\n var color = new fabric.Color(colorStops[position]);\n this.colorStops.push({\n offset: parseFloat(position),\n color: color.toRgb(),\n opacity: color.getAlpha()\n });\n }\n return this;\n },\n\n /**\n * Returns object representation of a gradient\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object}\n */\n toObject: function(propertiesToInclude) {\n var object = {\n type: this.type,\n coords: this.coords,\n colorStops: this.colorStops,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n gradientUnits: this.gradientUnits,\n gradientTransform: this.gradientTransform ? this.gradientTransform.concat() : this.gradientTransform\n };\n fabric.util.populateWithProperties(this, object, propertiesToInclude);\n\n return object;\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns SVG representation of an gradient\n * @param {Object} object Object to create a gradient for\n * @return {String} SVG representation of an gradient (linear/radial)\n */\n toSVG: function(object, options) {\n var coords = clone(this.coords, true), i, len, options = options || {},\n markup, commonAttributes, colorStops = clone(this.colorStops, true),\n needsSwap = coords.r1 > coords.r2,\n transform = this.gradientTransform ? this.gradientTransform.concat() : fabric.iMatrix.concat(),\n offsetX = -this.offsetX, offsetY = -this.offsetY,\n withViewport = !!options.additionalTransform,\n gradientUnits = this.gradientUnits === 'pixels' ? 'userSpaceOnUse' : 'objectBoundingBox';\n // colorStops must be sorted ascending\n colorStops.sort(function(a, b) {\n return a.offset - b.offset;\n });\n\n if (gradientUnits === 'objectBoundingBox') {\n offsetX /= object.width;\n offsetY /= object.height;\n }\n else {\n offsetX += object.width / 2;\n offsetY += object.height / 2;\n }\n if (object.type === 'path' && this.gradientUnits !== 'percentage') {\n offsetX -= object.pathOffset.x;\n offsetY -= object.pathOffset.y;\n }\n\n\n transform[4] -= offsetX;\n transform[5] -= offsetY;\n\n commonAttributes = 'id=\"SVGID_' + this.id +\n '\" gradientUnits=\"' + gradientUnits + '\"';\n commonAttributes += ' gradientTransform=\"' + (withViewport ?\n options.additionalTransform + ' ' : '') + fabric.util.matrixToSVG(transform) + '\" ';\n\n if (this.type === 'linear') {\n markup = [\n '\\n'\n ];\n }\n else if (this.type === 'radial') {\n // svg radial gradient has just 1 radius. the biggest.\n markup = [\n '\\n'\n ];\n }\n\n if (this.type === 'radial') {\n if (needsSwap) {\n // svg goes from internal to external radius. if radius are inverted, swap color stops.\n colorStops = colorStops.concat();\n colorStops.reverse();\n for (i = 0, len = colorStops.length; i < len; i++) {\n colorStops[i].offset = 1 - colorStops[i].offset;\n }\n }\n var minRadius = Math.min(coords.r1, coords.r2);\n if (minRadius > 0) {\n // i have to shift all colorStops and add new one in 0.\n var maxRadius = Math.max(coords.r1, coords.r2),\n percentageShift = minRadius / maxRadius;\n for (i = 0, len = colorStops.length; i < len; i++) {\n colorStops[i].offset += percentageShift * (1 - colorStops[i].offset);\n }\n }\n }\n\n for (i = 0, len = colorStops.length; i < len; i++) {\n var colorStop = colorStops[i];\n markup.push(\n '\\n'\n );\n }\n\n markup.push((this.type === 'linear' ? '\\n' : '\\n'));\n\n return markup.join('');\n },\n /* _TO_SVG_END_ */\n\n /**\n * Returns an instance of CanvasGradient\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @return {CanvasGradient}\n */\n toLive: function(ctx) {\n var gradient, coords = fabric.util.object.clone(this.coords), i, len;\n\n if (!this.type) {\n return;\n }\n\n if (this.type === 'linear') {\n gradient = ctx.createLinearGradient(\n coords.x1, coords.y1, coords.x2, coords.y2);\n }\n else if (this.type === 'radial') {\n gradient = ctx.createRadialGradient(\n coords.x1, coords.y1, coords.r1, coords.x2, coords.y2, coords.r2);\n }\n\n for (i = 0, len = this.colorStops.length; i < len; i++) {\n var color = this.colorStops[i].color,\n opacity = this.colorStops[i].opacity,\n offset = this.colorStops[i].offset;\n\n if (typeof opacity !== 'undefined') {\n color = new fabric.Color(color).setAlpha(opacity).toRgba();\n }\n gradient.addColorStop(offset, color);\n }\n\n return gradient;\n }\n });\n\n fabric.util.object.extend(fabric.Gradient, {\n\n /* _FROM_SVG_START_ */\n /**\n * Returns {@link fabric.Gradient} instance from an SVG element\n * @static\n * @memberOf fabric.Gradient\n * @param {SVGGradientElement} el SVG gradient element\n * @param {fabric.Object} instance\n * @param {String} opacityAttr A fill-opacity or stroke-opacity attribute to multiply to each stop's opacity.\n * @param {Object} svgOptions an object containing the size of the SVG in order to parse correctly gradients\n * that uses gradientUnits as 'userSpaceOnUse' and percentages.\n * @param {Object.number} viewBoxWidth width part of the viewBox attribute on svg\n * @param {Object.number} viewBoxHeight height part of the viewBox attribute on svg\n * @param {Object.number} width width part of the svg tag if viewBox is not specified\n * @param {Object.number} height height part of the svg tag if viewBox is not specified\n * @return {fabric.Gradient} Gradient instance\n * @see http://www.w3.org/TR/SVG/pservers.html#LinearGradientElement\n * @see http://www.w3.org/TR/SVG/pservers.html#RadialGradientElement\n */\n fromElement: function(el, instance, opacityAttr, svgOptions) {\n /**\n * @example:\n *\n * \n * \n * \n * \n *\n * OR\n *\n * \n * \n * \n * \n *\n * OR\n *\n * \n * \n * \n * \n * \n *\n * OR\n *\n * \n * \n * \n * \n * \n *\n */\n\n var multiplier = parseFloat(opacityAttr) / (/%$/.test(opacityAttr) ? 100 : 1);\n multiplier = multiplier < 0 ? 0 : multiplier > 1 ? 1 : multiplier;\n if (isNaN(multiplier)) {\n multiplier = 1;\n }\n\n var colorStopEls = el.getElementsByTagName('stop'),\n type,\n gradientUnits = el.getAttribute('gradientUnits') === 'userSpaceOnUse' ?\n 'pixels' : 'percentage',\n gradientTransform = el.getAttribute('gradientTransform') || '',\n colorStops = [],\n coords, i, offsetX = 0, offsetY = 0,\n transformMatrix;\n if (el.nodeName === 'linearGradient' || el.nodeName === 'LINEARGRADIENT') {\n type = 'linear';\n coords = getLinearCoords(el);\n }\n else {\n type = 'radial';\n coords = getRadialCoords(el);\n }\n\n for (i = colorStopEls.length; i--; ) {\n colorStops.push(getColorStop(colorStopEls[i], multiplier));\n }\n\n transformMatrix = fabric.parseTransformAttribute(gradientTransform);\n\n __convertPercentUnitsToValues(instance, coords, svgOptions, gradientUnits);\n\n if (gradientUnits === 'pixels') {\n offsetX = -instance.left;\n offsetY = -instance.top;\n }\n\n var gradient = new fabric.Gradient({\n id: el.getAttribute('id'),\n type: type,\n coords: coords,\n colorStops: colorStops,\n gradientUnits: gradientUnits,\n gradientTransform: transformMatrix,\n offsetX: offsetX,\n offsetY: offsetY,\n });\n\n return gradient;\n }\n /* _FROM_SVG_END_ */\n });\n\n /**\n * @private\n */\n function __convertPercentUnitsToValues(instance, options, svgOptions, gradientUnits) {\n var propValue, finalValue;\n Object.keys(options).forEach(function(prop) {\n propValue = options[prop];\n if (propValue === 'Infinity') {\n finalValue = 1;\n }\n else if (propValue === '-Infinity') {\n finalValue = 0;\n }\n else {\n finalValue = parseFloat(options[prop], 10);\n if (typeof propValue === 'string' && /^(\\d+\\.\\d+)%|(\\d+)%$/.test(propValue)) {\n finalValue *= 0.01;\n if (gradientUnits === 'pixels') {\n // then we need to fix those percentages here in svg parsing\n if (prop === 'x1' || prop === 'x2' || prop === 'r2') {\n finalValue *= svgOptions.viewBoxWidth || svgOptions.width;\n }\n if (prop === 'y1' || prop === 'y2') {\n finalValue *= svgOptions.viewBoxHeight || svgOptions.height;\n }\n }\n }\n }\n options[prop] = finalValue;\n });\n }\n})();\n\n\n(function() {\n\n 'use strict';\n\n var toFixed = fabric.util.toFixed;\n\n /**\n * Pattern class\n * @class fabric.Pattern\n * @see {@link http://fabricjs.com/patterns|Pattern demo}\n * @see {@link http://fabricjs.com/dynamic-patterns|DynamicPattern demo}\n * @see {@link fabric.Pattern#initialize} for constructor definition\n */\n\n\n fabric.Pattern = fabric.util.createClass(/** @lends fabric.Pattern.prototype */ {\n\n /**\n * Repeat property of a pattern (one of repeat, repeat-x, repeat-y or no-repeat)\n * @type String\n * @default\n */\n repeat: 'repeat',\n\n /**\n * Pattern horizontal offset from object's left/top corner\n * @type Number\n * @default\n */\n offsetX: 0,\n\n /**\n * Pattern vertical offset from object's left/top corner\n * @type Number\n * @default\n */\n offsetY: 0,\n\n /**\n * crossOrigin value (one of \"\", \"anonymous\", \"use-credentials\")\n * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes\n * @type String\n * @default\n */\n crossOrigin: '',\n\n /**\n * transform matrix to change the pattern, imported from svgs.\n * @type Array\n * @default\n */\n patternTransform: null,\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n * @param {Function} [callback] function to invoke after callback init.\n * @return {fabric.Pattern} thisArg\n */\n initialize: function(options, callback) {\n options || (options = { });\n\n this.id = fabric.Object.__uid++;\n this.setOptions(options);\n if (!options.source || (options.source && typeof options.source !== 'string')) {\n callback && callback(this);\n return;\n }\n else {\n // img src string\n var _this = this;\n this.source = fabric.util.createImage();\n fabric.util.loadImage(options.source, function(img, isError) {\n _this.source = img;\n callback && callback(_this, isError);\n }, null, this.crossOrigin);\n }\n },\n\n /**\n * Returns object representation of a pattern\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of a pattern instance\n */\n toObject: function(propertiesToInclude) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS,\n source, object;\n\n // element\n if (typeof this.source.src === 'string') {\n source = this.source.src;\n }\n // element\n else if (typeof this.source === 'object' && this.source.toDataURL) {\n source = this.source.toDataURL();\n }\n\n object = {\n type: 'pattern',\n source: source,\n repeat: this.repeat,\n crossOrigin: this.crossOrigin,\n offsetX: toFixed(this.offsetX, NUM_FRACTION_DIGITS),\n offsetY: toFixed(this.offsetY, NUM_FRACTION_DIGITS),\n patternTransform: this.patternTransform ? this.patternTransform.concat() : null\n };\n fabric.util.populateWithProperties(this, object, propertiesToInclude);\n\n return object;\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns SVG representation of a pattern\n * @param {fabric.Object} object\n * @return {String} SVG representation of a pattern\n */\n toSVG: function(object) {\n var patternSource = typeof this.source === 'function' ? this.source() : this.source,\n patternWidth = patternSource.width / object.width,\n patternHeight = patternSource.height / object.height,\n patternOffsetX = this.offsetX / object.width,\n patternOffsetY = this.offsetY / object.height,\n patternImgSrc = '';\n if (this.repeat === 'repeat-x' || this.repeat === 'no-repeat') {\n patternHeight = 1;\n if (patternOffsetY) {\n patternHeight += Math.abs(patternOffsetY);\n }\n }\n if (this.repeat === 'repeat-y' || this.repeat === 'no-repeat') {\n patternWidth = 1;\n if (patternOffsetX) {\n patternWidth += Math.abs(patternOffsetX);\n }\n\n }\n if (patternSource.src) {\n patternImgSrc = patternSource.src;\n }\n else if (patternSource.toDataURL) {\n patternImgSrc = patternSource.toDataURL();\n }\n\n return '\\n' +\n '\\n' +\n '\\n';\n },\n /* _TO_SVG_END_ */\n\n setOptions: function(options) {\n for (var prop in options) {\n this[prop] = options[prop];\n }\n },\n\n /**\n * Returns an instance of CanvasPattern\n * @param {CanvasRenderingContext2D} ctx Context to create pattern\n * @return {CanvasPattern}\n */\n toLive: function(ctx) {\n var source = this.source;\n // if the image failed to load, return, and allow rest to continue loading\n if (!source) {\n return '';\n }\n\n // if an image\n if (typeof source.src !== 'undefined') {\n if (!source.complete) {\n return '';\n }\n if (source.naturalWidth === 0 || source.naturalHeight === 0) {\n return '';\n }\n }\n return ctx.createPattern(source, this.repeat);\n }\n });\n})();\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n toFixed = fabric.util.toFixed;\n\n if (fabric.Shadow) {\n fabric.warn('fabric.Shadow is already defined.');\n return;\n }\n\n /**\n * Shadow class\n * @class fabric.Shadow\n * @see {@link http://fabricjs.com/shadows|Shadow demo}\n * @see {@link fabric.Shadow#initialize} for constructor definition\n */\n fabric.Shadow = fabric.util.createClass(/** @lends fabric.Shadow.prototype */ {\n\n /**\n * Shadow color\n * @type String\n * @default\n */\n color: 'rgb(0,0,0)',\n\n /**\n * Shadow blur\n * @type Number\n */\n blur: 0,\n\n /**\n * Shadow horizontal offset\n * @type Number\n * @default\n */\n offsetX: 0,\n\n /**\n * Shadow vertical offset\n * @type Number\n * @default\n */\n offsetY: 0,\n\n /**\n * Whether the shadow should affect stroke operations\n * @type Boolean\n * @default\n */\n affectStroke: false,\n\n /**\n * Indicates whether toObject should include default values\n * @type Boolean\n * @default\n */\n includeDefaultValues: true,\n\n /**\n * When `false`, the shadow will scale with the object.\n * When `true`, the shadow's offsetX, offsetY, and blur will not be affected by the object's scale.\n * default to false\n * @type Boolean\n * @default\n */\n nonScaling: false,\n\n /**\n * Constructor\n * @param {Object|String} [options] Options object with any of color, blur, offsetX, offsetY properties or string (e.g. \"rgba(0,0,0,0.2) 2px 2px 10px\")\n * @return {fabric.Shadow} thisArg\n */\n initialize: function(options) {\n\n if (typeof options === 'string') {\n options = this._parseShadow(options);\n }\n\n for (var prop in options) {\n this[prop] = options[prop];\n }\n\n this.id = fabric.Object.__uid++;\n },\n\n /**\n * @private\n * @param {String} shadow Shadow value to parse\n * @return {Object} Shadow object with color, offsetX, offsetY and blur\n */\n _parseShadow: function(shadow) {\n var shadowStr = shadow.trim(),\n offsetsAndBlur = fabric.Shadow.reOffsetsAndBlur.exec(shadowStr) || [],\n color = shadowStr.replace(fabric.Shadow.reOffsetsAndBlur, '') || 'rgb(0,0,0)';\n\n return {\n color: color.trim(),\n offsetX: parseInt(offsetsAndBlur[1], 10) || 0,\n offsetY: parseInt(offsetsAndBlur[2], 10) || 0,\n blur: parseInt(offsetsAndBlur[3], 10) || 0\n };\n },\n\n /**\n * Returns a string representation of an instance\n * @see http://www.w3.org/TR/css-text-decor-3/#text-shadow\n * @return {String} Returns CSS3 text-shadow declaration\n */\n toString: function() {\n return [this.offsetX, this.offsetY, this.blur, this.color].join('px ');\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns SVG representation of a shadow\n * @param {fabric.Object} object\n * @return {String} SVG representation of a shadow\n */\n toSVG: function(object) {\n var fBoxX = 40, fBoxY = 40, NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS,\n offset = fabric.util.rotateVector(\n { x: this.offsetX, y: this.offsetY },\n fabric.util.degreesToRadians(-object.angle)),\n BLUR_BOX = 20, color = new fabric.Color(this.color);\n\n if (object.width && object.height) {\n //http://www.w3.org/TR/SVG/filters.html#FilterEffectsRegion\n // we add some extra space to filter box to contain the blur ( 20 )\n fBoxX = toFixed((Math.abs(offset.x) + this.blur) / object.width, NUM_FRACTION_DIGITS) * 100 + BLUR_BOX;\n fBoxY = toFixed((Math.abs(offset.y) + this.blur) / object.height, NUM_FRACTION_DIGITS) * 100 + BLUR_BOX;\n }\n if (object.flipX) {\n offset.x *= -1;\n }\n if (object.flipY) {\n offset.y *= -1;\n }\n\n return (\n '\\n' +\n '\\t\\n' +\n '\\t\\n' +\n '\\t\\n' +\n '\\t\\n' +\n '\\t\\n' +\n '\\t\\t\\n' +\n '\\t\\t\\n' +\n '\\t\\n' +\n '\\n');\n },\n /* _TO_SVG_END_ */\n\n /**\n * Returns object representation of a shadow\n * @return {Object} Object representation of a shadow instance\n */\n toObject: function() {\n if (this.includeDefaultValues) {\n return {\n color: this.color,\n blur: this.blur,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n affectStroke: this.affectStroke,\n nonScaling: this.nonScaling\n };\n }\n var obj = { }, proto = fabric.Shadow.prototype;\n\n ['color', 'blur', 'offsetX', 'offsetY', 'affectStroke', 'nonScaling'].forEach(function(prop) {\n if (this[prop] !== proto[prop]) {\n obj[prop] = this[prop];\n }\n }, this);\n\n return obj;\n }\n });\n\n /**\n * Regex matching shadow offsetX, offsetY and blur (ex: \"2px 2px 10px rgba(0,0,0,0.2)\", \"rgb(0,255,0) 2px 2px\")\n * @static\n * @field\n * @memberOf fabric.Shadow\n */\n // eslint-disable-next-line max-len\n fabric.Shadow.reOffsetsAndBlur = /(?:\\s|^)(-?\\d+(?:px)?(?:\\s?|$))?(-?\\d+(?:px)?(?:\\s?|$))?(\\d+(?:px)?)?(?:\\s?|$)(?:$|\\s)/;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function () {\n\n 'use strict';\n\n if (fabric.StaticCanvas) {\n fabric.warn('fabric.StaticCanvas is already defined.');\n return;\n }\n\n // aliases for faster resolution\n var extend = fabric.util.object.extend,\n getElementOffset = fabric.util.getElementOffset,\n removeFromArray = fabric.util.removeFromArray,\n toFixed = fabric.util.toFixed,\n transformPoint = fabric.util.transformPoint,\n invertTransform = fabric.util.invertTransform,\n getNodeCanvas = fabric.util.getNodeCanvas,\n createCanvasElement = fabric.util.createCanvasElement,\n\n CANVAS_INIT_ERROR = new Error('Could not initialize `canvas` element');\n\n /**\n * Static canvas class\n * @class fabric.StaticCanvas\n * @mixes fabric.Collection\n * @mixes fabric.Observable\n * @see {@link http://fabricjs.com/static_canvas|StaticCanvas demo}\n * @see {@link fabric.StaticCanvas#initialize} for constructor definition\n * @fires before:render\n * @fires after:render\n * @fires canvas:cleared\n * @fires object:added\n * @fires object:removed\n */\n fabric.StaticCanvas = fabric.util.createClass(fabric.CommonMethods, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Constructor\n * @param {HTMLElement | String} el <canvas> element to initialize instance on\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(el, options) {\n options || (options = { });\n this.renderAndResetBound = this.renderAndReset.bind(this);\n this.requestRenderAllBound = this.requestRenderAll.bind(this);\n this._initStatic(el, options);\n },\n\n /**\n * Background color of canvas instance.\n * Should be set via {@link fabric.StaticCanvas#setBackgroundColor}.\n * @type {(String|fabric.Pattern)}\n * @default\n */\n backgroundColor: '',\n\n /**\n * Background image of canvas instance.\n * since 2.4.0 image caching is active, please when putting an image as background, add to the\n * canvas property a reference to the canvas it is on. Otherwise the image cannot detect the zoom\n * vale. As an alternative you can disable image objectCaching\n * @type fabric.Image\n * @default\n */\n backgroundImage: null,\n\n /**\n * Overlay color of canvas instance.\n * Should be set via {@link fabric.StaticCanvas#setOverlayColor}\n * @since 1.3.9\n * @type {(String|fabric.Pattern)}\n * @default\n */\n overlayColor: '',\n\n /**\n * Overlay image of canvas instance.\n * since 2.4.0 image caching is active, please when putting an image as overlay, add to the\n * canvas property a reference to the canvas it is on. Otherwise the image cannot detect the zoom\n * vale. As an alternative you can disable image objectCaching\n * @type fabric.Image\n * @default\n */\n overlayImage: null,\n\n /**\n * Indicates whether toObject/toDatalessObject should include default values\n * if set to false, takes precedence over the object value.\n * @type Boolean\n * @default\n */\n includeDefaultValues: true,\n\n /**\n * Indicates whether objects' state should be saved\n * @type Boolean\n * @default\n */\n stateful: false,\n\n /**\n * Indicates whether {@link fabric.Collection.add}, {@link fabric.Collection.insertAt} and {@link fabric.Collection.remove},\n * {@link fabric.StaticCanvas.moveTo}, {@link fabric.StaticCanvas.clear} and many more, should also re-render canvas.\n * Disabling this option will not give a performance boost when adding/removing a lot of objects to/from canvas at once\n * since the renders are quequed and executed one per frame.\n * Disabling is suggested anyway and managing the renders of the app manually is not a big effort ( canvas.requestRenderAll() )\n * Left default to true to do not break documentation and old app, fiddles.\n * @type Boolean\n * @default\n */\n renderOnAddRemove: true,\n\n /**\n * Indicates whether object controls (borders/controls) are rendered above overlay image\n * @type Boolean\n * @default\n */\n controlsAboveOverlay: false,\n\n /**\n * Indicates whether the browser can be scrolled when using a touchscreen and dragging on the canvas\n * @type Boolean\n * @default\n */\n allowTouchScrolling: false,\n\n /**\n * Indicates whether this canvas will use image smoothing, this is on by default in browsers\n * @type Boolean\n * @default\n */\n imageSmoothingEnabled: true,\n\n /**\n * The transformation (in the format of Canvas transform) which focuses the viewport\n * @type Array\n * @default\n */\n viewportTransform: fabric.iMatrix.concat(),\n\n /**\n * if set to false background image is not affected by viewport transform\n * @since 1.6.3\n * @type Boolean\n * @default\n */\n backgroundVpt: true,\n\n /**\n * if set to false overlya image is not affected by viewport transform\n * @since 1.6.3\n * @type Boolean\n * @default\n */\n overlayVpt: true,\n\n /**\n * When true, canvas is scaled by devicePixelRatio for better rendering on retina screens\n * @type Boolean\n * @default\n */\n enableRetinaScaling: true,\n\n /**\n * Describe canvas element extension over design\n * properties are tl,tr,bl,br.\n * if canvas is not zoomed/panned those points are the four corner of canvas\n * if canvas is viewportTransformed you those points indicate the extension\n * of canvas element in plain untrasformed coordinates\n * The coordinates get updated with @method calcViewportBoundaries.\n * @memberOf fabric.StaticCanvas.prototype\n */\n vptCoords: { },\n\n /**\n * Based on vptCoords and object.aCoords, skip rendering of objects that\n * are not included in current viewport.\n * May greatly help in applications with crowded canvas and use of zoom/pan\n * If One of the corner of the bounding box of the object is on the canvas\n * the objects get rendered.\n * @memberOf fabric.StaticCanvas.prototype\n * @type Boolean\n * @default\n */\n skipOffscreen: true,\n\n /**\n * a fabricObject that, without stroke define a clipping area with their shape. filled in black\n * the clipPath object gets used when the canvas has rendered, and the context is placed in the\n * top left corner of the canvas.\n * clipPath will clip away controls, if you do not want this to happen use controlsAboveOverlay = true\n * @type fabric.Object\n */\n clipPath: undefined,\n\n /**\n * @private\n * @param {HTMLElement | String} el <canvas> element to initialize instance on\n * @param {Object} [options] Options object\n */\n _initStatic: function(el, options) {\n var cb = this.requestRenderAllBound;\n this._objects = [];\n this._createLowerCanvas(el);\n this._initOptions(options);\n // only initialize retina scaling once\n if (!this.interactive) {\n this._initRetinaScaling();\n }\n\n if (options.overlayImage) {\n this.setOverlayImage(options.overlayImage, cb);\n }\n if (options.backgroundImage) {\n this.setBackgroundImage(options.backgroundImage, cb);\n }\n if (options.backgroundColor) {\n this.setBackgroundColor(options.backgroundColor, cb);\n }\n if (options.overlayColor) {\n this.setOverlayColor(options.overlayColor, cb);\n }\n this.calcOffset();\n },\n\n /**\n * @private\n */\n _isRetinaScaling: function() {\n return (fabric.devicePixelRatio !== 1 && this.enableRetinaScaling);\n },\n\n /**\n * @private\n * @return {Number} retinaScaling if applied, otherwise 1;\n */\n getRetinaScaling: function() {\n return this._isRetinaScaling() ? fabric.devicePixelRatio : 1;\n },\n\n /**\n * @private\n */\n _initRetinaScaling: function() {\n if (!this._isRetinaScaling()) {\n return;\n }\n var scaleRatio = fabric.devicePixelRatio;\n this.__initRetinaScaling(scaleRatio, this.lowerCanvasEl, this.contextContainer);\n if (this.upperCanvasEl) {\n this.__initRetinaScaling(scaleRatio, this.upperCanvasEl, this.contextTop);\n }\n },\n\n __initRetinaScaling: function(scaleRatio, canvas, context) {\n canvas.setAttribute('width', this.width * scaleRatio);\n canvas.setAttribute('height', this.height * scaleRatio);\n context.scale(scaleRatio, scaleRatio);\n },\n\n\n /**\n * Calculates canvas element offset relative to the document\n * This method is also attached as \"resize\" event handler of window\n * @return {fabric.Canvas} instance\n * @chainable\n */\n calcOffset: function () {\n this._offset = getElementOffset(this.lowerCanvasEl);\n return this;\n },\n\n /**\n * Sets {@link fabric.StaticCanvas#overlayImage|overlay image} for this canvas\n * @param {(fabric.Image|String)} image fabric.Image instance or URL of an image to set overlay to\n * @param {Function} callback callback to invoke when image is loaded and set as an overlay\n * @param {Object} [options] Optional options to set for the {@link fabric.Image|overlay image}.\n * @return {fabric.Canvas} thisArg\n * @chainable\n * @see {@link http://jsfiddle.net/fabricjs/MnzHT/|jsFiddle demo}\n * @example Normal overlayImage with left/top = 0\n * canvas.setOverlayImage('http://fabricjs.com/assets/jail_cell_bars.png', canvas.renderAll.bind(canvas), {\n * // Needed to position overlayImage at 0/0\n * originX: 'left',\n * originY: 'top'\n * });\n * @example overlayImage with different properties\n * canvas.setOverlayImage('http://fabricjs.com/assets/jail_cell_bars.png', canvas.renderAll.bind(canvas), {\n * opacity: 0.5,\n * angle: 45,\n * left: 400,\n * top: 400,\n * originX: 'left',\n * originY: 'top'\n * });\n * @example Stretched overlayImage #1 - width/height correspond to canvas width/height\n * fabric.Image.fromURL('http://fabricjs.com/assets/jail_cell_bars.png', function(img, isError) {\n * img.set({width: canvas.width, height: canvas.height, originX: 'left', originY: 'top'});\n * canvas.setOverlayImage(img, canvas.renderAll.bind(canvas));\n * });\n * @example Stretched overlayImage #2 - width/height correspond to canvas width/height\n * canvas.setOverlayImage('http://fabricjs.com/assets/jail_cell_bars.png', canvas.renderAll.bind(canvas), {\n * width: canvas.width,\n * height: canvas.height,\n * // Needed to position overlayImage at 0/0\n * originX: 'left',\n * originY: 'top'\n * });\n * @example overlayImage loaded from cross-origin\n * canvas.setOverlayImage('http://fabricjs.com/assets/jail_cell_bars.png', canvas.renderAll.bind(canvas), {\n * opacity: 0.5,\n * angle: 45,\n * left: 400,\n * top: 400,\n * originX: 'left',\n * originY: 'top',\n * crossOrigin: 'anonymous'\n * });\n */\n setOverlayImage: function (image, callback, options) {\n return this.__setBgOverlayImage('overlayImage', image, callback, options);\n },\n\n /**\n * Sets {@link fabric.StaticCanvas#backgroundImage|background image} for this canvas\n * @param {(fabric.Image|String)} image fabric.Image instance or URL of an image to set background to\n * @param {Function} callback Callback to invoke when image is loaded and set as background\n * @param {Object} [options] Optional options to set for the {@link fabric.Image|background image}.\n * @return {fabric.Canvas} thisArg\n * @chainable\n * @see {@link http://jsfiddle.net/djnr8o7a/28/|jsFiddle demo}\n * @example Normal backgroundImage with left/top = 0\n * canvas.setBackgroundImage('http://fabricjs.com/assets/honey_im_subtle.png', canvas.renderAll.bind(canvas), {\n * // Needed to position backgroundImage at 0/0\n * originX: 'left',\n * originY: 'top'\n * });\n * @example backgroundImage with different properties\n * canvas.setBackgroundImage('http://fabricjs.com/assets/honey_im_subtle.png', canvas.renderAll.bind(canvas), {\n * opacity: 0.5,\n * angle: 45,\n * left: 400,\n * top: 400,\n * originX: 'left',\n * originY: 'top'\n * });\n * @example Stretched backgroundImage #1 - width/height correspond to canvas width/height\n * fabric.Image.fromURL('http://fabricjs.com/assets/honey_im_subtle.png', function(img, isError) {\n * img.set({width: canvas.width, height: canvas.height, originX: 'left', originY: 'top'});\n * canvas.setBackgroundImage(img, canvas.renderAll.bind(canvas));\n * });\n * @example Stretched backgroundImage #2 - width/height correspond to canvas width/height\n * canvas.setBackgroundImage('http://fabricjs.com/assets/honey_im_subtle.png', canvas.renderAll.bind(canvas), {\n * width: canvas.width,\n * height: canvas.height,\n * // Needed to position backgroundImage at 0/0\n * originX: 'left',\n * originY: 'top'\n * });\n * @example backgroundImage loaded from cross-origin\n * canvas.setBackgroundImage('http://fabricjs.com/assets/honey_im_subtle.png', canvas.renderAll.bind(canvas), {\n * opacity: 0.5,\n * angle: 45,\n * left: 400,\n * top: 400,\n * originX: 'left',\n * originY: 'top',\n * crossOrigin: 'anonymous'\n * });\n */\n // TODO: fix stretched examples\n setBackgroundImage: function (image, callback, options) {\n return this.__setBgOverlayImage('backgroundImage', image, callback, options);\n },\n\n /**\n * Sets {@link fabric.StaticCanvas#overlayColor|foreground color} for this canvas\n * @param {(String|fabric.Pattern)} overlayColor Color or pattern to set foreground color to\n * @param {Function} callback Callback to invoke when foreground color is set\n * @return {fabric.Canvas} thisArg\n * @chainable\n * @see {@link http://jsfiddle.net/fabricjs/pB55h/|jsFiddle demo}\n * @example Normal overlayColor - color value\n * canvas.setOverlayColor('rgba(255, 73, 64, 0.6)', canvas.renderAll.bind(canvas));\n * @example fabric.Pattern used as overlayColor\n * canvas.setOverlayColor({\n * source: 'http://fabricjs.com/assets/escheresque_ste.png'\n * }, canvas.renderAll.bind(canvas));\n * @example fabric.Pattern used as overlayColor with repeat and offset\n * canvas.setOverlayColor({\n * source: 'http://fabricjs.com/assets/escheresque_ste.png',\n * repeat: 'repeat',\n * offsetX: 200,\n * offsetY: 100\n * }, canvas.renderAll.bind(canvas));\n */\n setOverlayColor: function(overlayColor, callback) {\n return this.__setBgOverlayColor('overlayColor', overlayColor, callback);\n },\n\n /**\n * Sets {@link fabric.StaticCanvas#backgroundColor|background color} for this canvas\n * @param {(String|fabric.Pattern)} backgroundColor Color or pattern to set background color to\n * @param {Function} callback Callback to invoke when background color is set\n * @return {fabric.Canvas} thisArg\n * @chainable\n * @see {@link http://jsfiddle.net/fabricjs/hXzvk/|jsFiddle demo}\n * @example Normal backgroundColor - color value\n * canvas.setBackgroundColor('rgba(255, 73, 64, 0.6)', canvas.renderAll.bind(canvas));\n * @example fabric.Pattern used as backgroundColor\n * canvas.setBackgroundColor({\n * source: 'http://fabricjs.com/assets/escheresque_ste.png'\n * }, canvas.renderAll.bind(canvas));\n * @example fabric.Pattern used as backgroundColor with repeat and offset\n * canvas.setBackgroundColor({\n * source: 'http://fabricjs.com/assets/escheresque_ste.png',\n * repeat: 'repeat',\n * offsetX: 200,\n * offsetY: 100\n * }, canvas.renderAll.bind(canvas));\n */\n setBackgroundColor: function(backgroundColor, callback) {\n return this.__setBgOverlayColor('backgroundColor', backgroundColor, callback);\n },\n\n /**\n * @private\n * @param {String} property Property to set ({@link fabric.StaticCanvas#backgroundImage|backgroundImage}\n * or {@link fabric.StaticCanvas#overlayImage|overlayImage})\n * @param {(fabric.Image|String|null)} image fabric.Image instance, URL of an image or null to set background or overlay to\n * @param {Function} callback Callback to invoke when image is loaded and set as background or overlay. The first argument is the created image, the second argument is a flag indicating whether an error occurred or not.\n * @param {Object} [options] Optional options to set for the {@link fabric.Image|image}.\n */\n __setBgOverlayImage: function(property, image, callback, options) {\n if (typeof image === 'string') {\n fabric.util.loadImage(image, function(img, isError) {\n if (img) {\n var instance = new fabric.Image(img, options);\n this[property] = instance;\n instance.canvas = this;\n }\n callback && callback(img, isError);\n }, this, options && options.crossOrigin);\n }\n else {\n options && image.setOptions(options);\n this[property] = image;\n image && (image.canvas = this);\n callback && callback(image, false);\n }\n\n return this;\n },\n\n /**\n * @private\n * @param {String} property Property to set ({@link fabric.StaticCanvas#backgroundColor|backgroundColor}\n * or {@link fabric.StaticCanvas#overlayColor|overlayColor})\n * @param {(Object|String|null)} color Object with pattern information, color value or null\n * @param {Function} [callback] Callback is invoked when color is set\n */\n __setBgOverlayColor: function(property, color, callback) {\n this[property] = color;\n this._initGradient(color, property);\n this._initPattern(color, property, callback);\n return this;\n },\n\n /**\n * @private\n */\n _createCanvasElement: function() {\n var element = createCanvasElement();\n if (!element) {\n throw CANVAS_INIT_ERROR;\n }\n if (!element.style) {\n element.style = { };\n }\n if (typeof element.getContext === 'undefined') {\n throw CANVAS_INIT_ERROR;\n }\n return element;\n },\n\n /**\n * @private\n * @param {Object} [options] Options object\n */\n _initOptions: function (options) {\n var lowerCanvasEl = this.lowerCanvasEl;\n this._setOptions(options);\n\n this.width = this.width || parseInt(lowerCanvasEl.width, 10) || 0;\n this.height = this.height || parseInt(lowerCanvasEl.height, 10) || 0;\n\n if (!this.lowerCanvasEl.style) {\n return;\n }\n\n lowerCanvasEl.width = this.width;\n lowerCanvasEl.height = this.height;\n\n lowerCanvasEl.style.width = this.width + 'px';\n lowerCanvasEl.style.height = this.height + 'px';\n\n this.viewportTransform = this.viewportTransform.slice();\n },\n\n /**\n * Creates a bottom canvas\n * @private\n * @param {HTMLElement} [canvasEl]\n */\n _createLowerCanvas: function (canvasEl) {\n // canvasEl === 'HTMLCanvasElement' does not work on jsdom/node\n if (canvasEl && canvasEl.getContext) {\n this.lowerCanvasEl = canvasEl;\n }\n else {\n this.lowerCanvasEl = fabric.util.getById(canvasEl) || this._createCanvasElement();\n }\n\n fabric.util.addClass(this.lowerCanvasEl, 'lower-canvas');\n\n if (this.interactive) {\n this._applyCanvasStyle(this.lowerCanvasEl);\n }\n\n this.contextContainer = this.lowerCanvasEl.getContext('2d');\n },\n\n /**\n * Returns canvas width (in px)\n * @return {Number}\n */\n getWidth: function () {\n return this.width;\n },\n\n /**\n * Returns canvas height (in px)\n * @return {Number}\n */\n getHeight: function () {\n return this.height;\n },\n\n /**\n * Sets width of this canvas instance\n * @param {Number|String} value Value to set width to\n * @param {Object} [options] Options object\n * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions\n * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n setWidth: function (value, options) {\n return this.setDimensions({ width: value }, options);\n },\n\n /**\n * Sets height of this canvas instance\n * @param {Number|String} value Value to set height to\n * @param {Object} [options] Options object\n * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions\n * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n setHeight: function (value, options) {\n return this.setDimensions({ height: value }, options);\n },\n\n /**\n * Sets dimensions (width, height) of this canvas instance. when options.cssOnly flag active you should also supply the unit of measure (px/%/em)\n * @param {Object} dimensions Object with width/height properties\n * @param {Number|String} [dimensions.width] Width of canvas element\n * @param {Number|String} [dimensions.height] Height of canvas element\n * @param {Object} [options] Options object\n * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions\n * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n setDimensions: function (dimensions, options) {\n var cssValue;\n\n options = options || {};\n\n for (var prop in dimensions) {\n cssValue = dimensions[prop];\n\n if (!options.cssOnly) {\n this._setBackstoreDimension(prop, dimensions[prop]);\n cssValue += 'px';\n this.hasLostContext = true;\n }\n\n if (!options.backstoreOnly) {\n this._setCssDimension(prop, cssValue);\n }\n }\n if (this._isCurrentlyDrawing) {\n this.freeDrawingBrush && this.freeDrawingBrush._setBrushStyles();\n }\n this._initRetinaScaling();\n this.calcOffset();\n\n if (!options.cssOnly) {\n this.requestRenderAll();\n }\n\n return this;\n },\n\n /**\n * Helper for setting width/height\n * @private\n * @param {String} prop property (width|height)\n * @param {Number} value value to set property to\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n _setBackstoreDimension: function (prop, value) {\n this.lowerCanvasEl[prop] = value;\n\n if (this.upperCanvasEl) {\n this.upperCanvasEl[prop] = value;\n }\n\n if (this.cacheCanvasEl) {\n this.cacheCanvasEl[prop] = value;\n }\n\n this[prop] = value;\n\n return this;\n },\n\n /**\n * Helper for setting css width/height\n * @private\n * @param {String} prop property (width|height)\n * @param {String} value value to set property to\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n _setCssDimension: function (prop, value) {\n this.lowerCanvasEl.style[prop] = value;\n\n if (this.upperCanvasEl) {\n this.upperCanvasEl.style[prop] = value;\n }\n\n if (this.wrapperEl) {\n this.wrapperEl.style[prop] = value;\n }\n\n return this;\n },\n\n /**\n * Returns canvas zoom level\n * @return {Number}\n */\n getZoom: function () {\n return this.viewportTransform[0];\n },\n\n /**\n * Sets viewport transform of this canvas instance\n * @param {Array} vpt the transform in the form of context.transform\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n setViewportTransform: function (vpt) {\n var activeObject = this._activeObject,\n backgroundObject = this.backgroundImage,\n overlayObject = this.overlayImage,\n object, i, len;\n this.viewportTransform = vpt;\n for (i = 0, len = this._objects.length; i < len; i++) {\n object = this._objects[i];\n object.group || object.setCoords(true);\n }\n if (activeObject) {\n activeObject.setCoords();\n }\n if (backgroundObject) {\n backgroundObject.setCoords(true);\n }\n if (overlayObject) {\n overlayObject.setCoords(true);\n }\n this.calcViewportBoundaries();\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Sets zoom level of this canvas instance, the zoom centered around point\n * meaning that following zoom to point with the same point will have the visual\n * effect of the zoom originating from that point. The point won't move.\n * It has nothing to do with canvas center or visual center of the viewport.\n * @param {fabric.Point} point to zoom with respect to\n * @param {Number} value to set zoom to, less than 1 zooms out\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n zoomToPoint: function (point, value) {\n // TODO: just change the scale, preserve other transformations\n var before = point, vpt = this.viewportTransform.slice(0);\n point = transformPoint(point, invertTransform(this.viewportTransform));\n vpt[0] = value;\n vpt[3] = value;\n var after = transformPoint(point, vpt);\n vpt[4] += before.x - after.x;\n vpt[5] += before.y - after.y;\n return this.setViewportTransform(vpt);\n },\n\n /**\n * Sets zoom level of this canvas instance\n * @param {Number} value to set zoom to, less than 1 zooms out\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n setZoom: function (value) {\n this.zoomToPoint(new fabric.Point(0, 0), value);\n return this;\n },\n\n /**\n * Pan viewport so as to place point at top left corner of canvas\n * @param {fabric.Point} point to move to\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n absolutePan: function (point) {\n var vpt = this.viewportTransform.slice(0);\n vpt[4] = -point.x;\n vpt[5] = -point.y;\n return this.setViewportTransform(vpt);\n },\n\n /**\n * Pans viewpoint relatively\n * @param {fabric.Point} point (position vector) to move by\n * @return {fabric.Canvas} instance\n * @chainable true\n */\n relativePan: function (point) {\n return this.absolutePan(new fabric.Point(\n -point.x - this.viewportTransform[4],\n -point.y - this.viewportTransform[5]\n ));\n },\n\n /**\n * Returns <canvas> element corresponding to this instance\n * @return {HTMLCanvasElement}\n */\n getElement: function () {\n return this.lowerCanvasEl;\n },\n\n /**\n * @private\n * @param {fabric.Object} obj Object that was added\n */\n _onObjectAdded: function(obj) {\n this.stateful && obj.setupState();\n obj._set('canvas', this);\n obj.setCoords();\n this.fire('object:added', { target: obj });\n obj.fire('added');\n },\n\n /**\n * @private\n * @param {fabric.Object} obj Object that was removed\n */\n _onObjectRemoved: function(obj) {\n this.fire('object:removed', { target: obj });\n obj.fire('removed');\n delete obj.canvas;\n },\n\n /**\n * Clears specified context of canvas element\n * @param {CanvasRenderingContext2D} ctx Context to clear\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n clearContext: function(ctx) {\n ctx.clearRect(0, 0, this.width, this.height);\n return this;\n },\n\n /**\n * Returns context of canvas where objects are drawn\n * @return {CanvasRenderingContext2D}\n */\n getContext: function () {\n return this.contextContainer;\n },\n\n /**\n * Clears all contexts (background, main, top) of an instance\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n clear: function () {\n this._objects.length = 0;\n this.backgroundImage = null;\n this.overlayImage = null;\n this.backgroundColor = '';\n this.overlayColor = '';\n if (this._hasITextHandlers) {\n this.off('mouse:up', this._mouseUpITextHandler);\n this._iTextInstances = null;\n this._hasITextHandlers = false;\n }\n this.clearContext(this.contextContainer);\n this.fire('canvas:cleared');\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Renders the canvas\n * @return {fabric.Canvas} instance\n * @chainable\n */\n renderAll: function () {\n var canvasToDrawOn = this.contextContainer;\n this.renderCanvas(canvasToDrawOn, this._objects);\n return this;\n },\n\n /**\n * Function created to be instance bound at initialization\n * used in requestAnimationFrame rendering\n * Let the fabricJS call it. If you call it manually you could have more\n * animationFrame stacking on to of each other\n * for an imperative rendering, use canvas.renderAll\n * @private\n * @return {fabric.Canvas} instance\n * @chainable\n */\n renderAndReset: function() {\n this.isRendering = 0;\n this.renderAll();\n },\n\n /**\n * Append a renderAll request to next animation frame.\n * unless one is already in progress, in that case nothing is done\n * a boolean flag will avoid appending more.\n * @return {fabric.Canvas} instance\n * @chainable\n */\n requestRenderAll: function () {\n if (!this.isRendering) {\n this.isRendering = fabric.util.requestAnimFrame(this.renderAndResetBound);\n }\n return this;\n },\n\n /**\n * Calculate the position of the 4 corner of canvas with current viewportTransform.\n * helps to determinate when an object is in the current rendering viewport using\n * object absolute coordinates ( aCoords )\n * @return {Object} points.tl\n * @chainable\n */\n calcViewportBoundaries: function() {\n var points = { }, width = this.width, height = this.height,\n iVpt = invertTransform(this.viewportTransform);\n points.tl = transformPoint({ x: 0, y: 0 }, iVpt);\n points.br = transformPoint({ x: width, y: height }, iVpt);\n points.tr = new fabric.Point(points.br.x, points.tl.y);\n points.bl = new fabric.Point(points.tl.x, points.br.y);\n this.vptCoords = points;\n return points;\n },\n\n cancelRequestedRender: function() {\n if (this.isRendering) {\n fabric.util.cancelAnimFrame(this.isRendering);\n this.isRendering = 0;\n }\n },\n\n /**\n * Renders background, objects, overlay and controls.\n * @param {CanvasRenderingContext2D} ctx\n * @param {Array} objects to render\n * @return {fabric.Canvas} instance\n * @chainable\n */\n renderCanvas: function(ctx, objects) {\n var v = this.viewportTransform, path = this.clipPath;\n this.cancelRequestedRender();\n this.calcViewportBoundaries();\n this.clearContext(ctx);\n fabric.util.setImageSmoothing(ctx, this.imageSmoothingEnabled);\n this.fire('before:render', { ctx: ctx, });\n this._renderBackground(ctx);\n\n ctx.save();\n //apply viewport transform once for all rendering process\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n this._renderObjects(ctx, objects);\n ctx.restore();\n if (!this.controlsAboveOverlay && this.interactive) {\n this.drawControls(ctx);\n }\n if (path) {\n path.canvas = this;\n // needed to setup a couple of variables\n path.shouldCache();\n path._transformDone = true;\n path.renderCache({ forClipping: true });\n this.drawClipPathOnCanvas(ctx);\n }\n this._renderOverlay(ctx);\n if (this.controlsAboveOverlay && this.interactive) {\n this.drawControls(ctx);\n }\n this.fire('after:render', { ctx: ctx, });\n },\n\n /**\n * Paint the cached clipPath on the lowerCanvasEl\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawClipPathOnCanvas: function(ctx) {\n var v = this.viewportTransform, path = this.clipPath;\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n // DEBUG: uncomment this line, comment the following\n // ctx.globalAlpha = 0.4;\n ctx.globalCompositeOperation = 'destination-in';\n path.transform(ctx);\n ctx.scale(1 / path.zoomX, 1 / path.zoomY);\n ctx.drawImage(path._cacheCanvas, -path.cacheTranslationX, -path.cacheTranslationY);\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Array} objects to render\n */\n _renderObjects: function(ctx, objects) {\n var i, len;\n for (i = 0, len = objects.length; i < len; ++i) {\n objects[i] && objects[i].render(ctx);\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {string} property 'background' or 'overlay'\n */\n _renderBackgroundOrOverlay: function(ctx, property) {\n var fill = this[property + 'Color'], object = this[property + 'Image'],\n v = this.viewportTransform, needsVpt = this[property + 'Vpt'];\n if (!fill && !object) {\n return;\n }\n if (fill) {\n ctx.save();\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.width, 0);\n ctx.lineTo(this.width, this.height);\n ctx.lineTo(0, this.height);\n ctx.closePath();\n ctx.fillStyle = fill.toLive\n ? fill.toLive(ctx, this)\n : fill;\n if (needsVpt) {\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n }\n ctx.transform(1, 0, 0, 1, fill.offsetX || 0, fill.offsetY || 0);\n var m = fill.gradientTransform || fill.patternTransform;\n m && ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n ctx.fill();\n ctx.restore();\n }\n if (object) {\n ctx.save();\n if (needsVpt) {\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n }\n object.render(ctx);\n ctx.restore();\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderBackground: function(ctx) {\n this._renderBackgroundOrOverlay(ctx, 'background');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderOverlay: function(ctx) {\n this._renderBackgroundOrOverlay(ctx, 'overlay');\n },\n\n /**\n * Returns coordinates of a center of canvas.\n * Returned value is an object with top and left properties\n * @return {Object} object with \"top\" and \"left\" number values\n */\n getCenter: function () {\n return {\n top: this.height / 2,\n left: this.width / 2\n };\n },\n\n /**\n * Centers object horizontally in the canvas\n * @param {fabric.Object} object Object to center horizontally\n * @return {fabric.Canvas} thisArg\n */\n centerObjectH: function (object) {\n return this._centerObject(object, new fabric.Point(this.getCenter().left, object.getCenterPoint().y));\n },\n\n /**\n * Centers object vertically in the canvas\n * @param {fabric.Object} object Object to center vertically\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n centerObjectV: function (object) {\n return this._centerObject(object, new fabric.Point(object.getCenterPoint().x, this.getCenter().top));\n },\n\n /**\n * Centers object vertically and horizontally in the canvas\n * @param {fabric.Object} object Object to center vertically and horizontally\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n centerObject: function(object) {\n var center = this.getCenter();\n\n return this._centerObject(object, new fabric.Point(center.left, center.top));\n },\n\n /**\n * Centers object vertically and horizontally in the viewport\n * @param {fabric.Object} object Object to center vertically and horizontally\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n viewportCenterObject: function(object) {\n var vpCenter = this.getVpCenter();\n\n return this._centerObject(object, vpCenter);\n },\n\n /**\n * Centers object horizontally in the viewport, object.top is unchanged\n * @param {fabric.Object} object Object to center vertically and horizontally\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n viewportCenterObjectH: function(object) {\n var vpCenter = this.getVpCenter();\n this._centerObject(object, new fabric.Point(vpCenter.x, object.getCenterPoint().y));\n return this;\n },\n\n /**\n * Centers object Vertically in the viewport, object.top is unchanged\n * @param {fabric.Object} object Object to center vertically and horizontally\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n viewportCenterObjectV: function(object) {\n var vpCenter = this.getVpCenter();\n\n return this._centerObject(object, new fabric.Point(object.getCenterPoint().x, vpCenter.y));\n },\n\n /**\n * Calculate the point in canvas that correspond to the center of actual viewport.\n * @return {fabric.Point} vpCenter, viewport center\n * @chainable\n */\n getVpCenter: function() {\n var center = this.getCenter(),\n iVpt = invertTransform(this.viewportTransform);\n return transformPoint({ x: center.left, y: center.top }, iVpt);\n },\n\n /**\n * @private\n * @param {fabric.Object} object Object to center\n * @param {fabric.Point} center Center point\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n _centerObject: function(object, center) {\n object.setPositionByOrigin(center, 'center', 'center');\n object.setCoords();\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Returns dataless JSON representation of canvas\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {String} json string\n */\n toDatalessJSON: function (propertiesToInclude) {\n return this.toDatalessObject(propertiesToInclude);\n },\n\n /**\n * Returns object representation of canvas\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function (propertiesToInclude) {\n return this._toObjectMethod('toObject', propertiesToInclude);\n },\n\n /**\n * Returns dataless object representation of canvas\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toDatalessObject: function (propertiesToInclude) {\n return this._toObjectMethod('toDatalessObject', propertiesToInclude);\n },\n\n /**\n * @private\n */\n _toObjectMethod: function (methodName, propertiesToInclude) {\n\n var clipPath = this.clipPath, data = {\n version: fabric.version,\n objects: this._toObjects(methodName, propertiesToInclude),\n };\n if (clipPath) {\n data.clipPath = this._toObject(this.clipPath, methodName, propertiesToInclude);\n }\n extend(data, this.__serializeBgOverlay(methodName, propertiesToInclude));\n\n fabric.util.populateWithProperties(this, data, propertiesToInclude);\n\n return data;\n },\n\n /**\n * @private\n */\n _toObjects: function(methodName, propertiesToInclude) {\n return this._objects.filter(function(object) {\n return !object.excludeFromExport;\n }).map(function(instance) {\n return this._toObject(instance, methodName, propertiesToInclude);\n }, this);\n },\n\n /**\n * @private\n */\n _toObject: function(instance, methodName, propertiesToInclude) {\n var originalValue;\n\n if (!this.includeDefaultValues) {\n originalValue = instance.includeDefaultValues;\n instance.includeDefaultValues = false;\n }\n\n var object = instance[methodName](propertiesToInclude);\n if (!this.includeDefaultValues) {\n instance.includeDefaultValues = originalValue;\n }\n return object;\n },\n\n /**\n * @private\n */\n __serializeBgOverlay: function(methodName, propertiesToInclude) {\n var data = { }, bgImage = this.backgroundImage, overlay = this.overlayImage;\n\n if (this.backgroundColor) {\n data.background = this.backgroundColor.toObject\n ? this.backgroundColor.toObject(propertiesToInclude)\n : this.backgroundColor;\n }\n\n if (this.overlayColor) {\n data.overlay = this.overlayColor.toObject\n ? this.overlayColor.toObject(propertiesToInclude)\n : this.overlayColor;\n }\n if (bgImage && !bgImage.excludeFromExport) {\n data.backgroundImage = this._toObject(bgImage, methodName, propertiesToInclude);\n }\n if (overlay && !overlay.excludeFromExport) {\n data.overlayImage = this._toObject(overlay, methodName, propertiesToInclude);\n }\n\n return data;\n },\n\n /* _TO_SVG_START_ */\n /**\n * When true, getSvgTransform() will apply the StaticCanvas.viewportTransform to the SVG transformation. When true,\n * a zoomed canvas will then produce zoomed SVG output.\n * @type Boolean\n * @default\n */\n svgViewportTransformation: true,\n\n /**\n * Returns SVG representation of canvas\n * @function\n * @param {Object} [options] Options object for SVG output\n * @param {Boolean} [options.suppressPreamble=false] If true xml tag is not included\n * @param {Object} [options.viewBox] SVG viewbox object\n * @param {Number} [options.viewBox.x] x-coordinate of viewbox\n * @param {Number} [options.viewBox.y] y-coordinate of viewbox\n * @param {Number} [options.viewBox.width] Width of viewbox\n * @param {Number} [options.viewBox.height] Height of viewbox\n * @param {String} [options.encoding=UTF-8] Encoding of SVG output\n * @param {String} [options.width] desired width of svg with or without units\n * @param {String} [options.height] desired height of svg with or without units\n * @param {Function} [reviver] Method for further parsing of svg elements, called after each fabric object converted into svg representation.\n * @return {String} SVG string\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#serialization}\n * @see {@link http://jsfiddle.net/fabricjs/jQ3ZZ/|jsFiddle demo}\n * @example Normal SVG output\n * var svg = canvas.toSVG();\n * @example SVG output without preamble (without <?xml ../>)\n * var svg = canvas.toSVG({suppressPreamble: true});\n * @example SVG output with viewBox attribute\n * var svg = canvas.toSVG({\n * viewBox: {\n * x: 100,\n * y: 100,\n * width: 200,\n * height: 300\n * }\n * });\n * @example SVG output with different encoding (default: UTF-8)\n * var svg = canvas.toSVG({encoding: 'ISO-8859-1'});\n * @example Modify SVG output with reviver function\n * var svg = canvas.toSVG(null, function(svg) {\n * return svg.replace('stroke-dasharray: ; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; ', '');\n * });\n */\n toSVG: function(options, reviver) {\n options || (options = { });\n options.reviver = reviver;\n var markup = [];\n\n this._setSVGPreamble(markup, options);\n this._setSVGHeader(markup, options);\n if (this.clipPath) {\n markup.push('\\n');\n }\n this._setSVGBgOverlayColor(markup, 'background');\n this._setSVGBgOverlayImage(markup, 'backgroundImage', reviver);\n this._setSVGObjects(markup, reviver);\n if (this.clipPath) {\n markup.push('\\n');\n }\n this._setSVGBgOverlayColor(markup, 'overlay');\n this._setSVGBgOverlayImage(markup, 'overlayImage', reviver);\n\n markup.push('');\n\n return markup.join('');\n },\n\n /**\n * @private\n */\n _setSVGPreamble: function(markup, options) {\n if (options.suppressPreamble) {\n return;\n }\n markup.push(\n '\\n',\n '\\n'\n );\n },\n\n /**\n * @private\n */\n _setSVGHeader: function(markup, options) {\n var width = options.width || this.width,\n height = options.height || this.height,\n vpt, viewBox = 'viewBox=\"0 0 ' + this.width + ' ' + this.height + '\" ',\n NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n\n if (options.viewBox) {\n viewBox = 'viewBox=\"' +\n options.viewBox.x + ' ' +\n options.viewBox.y + ' ' +\n options.viewBox.width + ' ' +\n options.viewBox.height + '\" ';\n }\n else {\n if (this.svgViewportTransformation) {\n vpt = this.viewportTransform;\n viewBox = 'viewBox=\"' +\n toFixed(-vpt[4] / vpt[0], NUM_FRACTION_DIGITS) + ' ' +\n toFixed(-vpt[5] / vpt[3], NUM_FRACTION_DIGITS) + ' ' +\n toFixed(this.width / vpt[0], NUM_FRACTION_DIGITS) + ' ' +\n toFixed(this.height / vpt[3], NUM_FRACTION_DIGITS) + '\" ';\n }\n }\n\n markup.push(\n '\\n',\n 'Created with Fabric.js ', fabric.version, '\\n',\n '\\n',\n this.createSVGFontFacesMarkup(),\n this.createSVGRefElementsMarkup(),\n this.createSVGClipPathMarkup(options),\n '\\n'\n );\n },\n\n createSVGClipPathMarkup: function(options) {\n var clipPath = this.clipPath;\n if (clipPath) {\n clipPath.clipPathId = 'CLIPPATH_' + fabric.Object.__uid++;\n return '\\n' +\n this.clipPath.toClipPathSVG(options.reviver) +\n '\\n';\n }\n return '';\n },\n\n /**\n * Creates markup containing SVG referenced elements like patterns, gradients etc.\n * @return {String}\n */\n createSVGRefElementsMarkup: function() {\n var _this = this,\n markup = ['background', 'overlay'].map(function(prop) {\n var fill = _this[prop + 'Color'];\n if (fill && fill.toLive) {\n var shouldTransform = _this[prop + 'Vpt'], vpt = _this.viewportTransform,\n object = {\n width: _this.width / (shouldTransform ? vpt[0] : 1),\n height: _this.height / (shouldTransform ? vpt[3] : 1)\n };\n return fill.toSVG(\n object,\n { additionalTransform: shouldTransform ? fabric.util.matrixToSVG(vpt) : '' }\n );\n }\n });\n return markup.join('');\n },\n\n /**\n * Creates markup containing SVG font faces,\n * font URLs for font faces must be collected by developers\n * and are not extracted from the DOM by fabricjs\n * @param {Array} objects Array of fabric objects\n * @return {String}\n */\n createSVGFontFacesMarkup: function() {\n var markup = '', fontList = { }, obj, fontFamily,\n style, row, rowIndex, _char, charIndex, i, len,\n fontPaths = fabric.fontPaths, objects = [];\n\n this._objects.forEach(function add(object) {\n objects.push(object);\n if (object._objects) {\n object._objects.forEach(add);\n }\n });\n\n for (i = 0, len = objects.length; i < len; i++) {\n obj = objects[i];\n fontFamily = obj.fontFamily;\n if (obj.type.indexOf('text') === -1 || fontList[fontFamily] || !fontPaths[fontFamily]) {\n continue;\n }\n fontList[fontFamily] = true;\n if (!obj.styles) {\n continue;\n }\n style = obj.styles;\n for (rowIndex in style) {\n row = style[rowIndex];\n for (charIndex in row) {\n _char = row[charIndex];\n fontFamily = _char.fontFamily;\n if (!fontList[fontFamily] && fontPaths[fontFamily]) {\n fontList[fontFamily] = true;\n }\n }\n }\n }\n\n for (var j in fontList) {\n markup += [\n '\\t\\t@font-face {\\n',\n '\\t\\t\\tfont-family: \\'', j, '\\';\\n',\n '\\t\\t\\tsrc: url(\\'', fontPaths[j], '\\');\\n',\n '\\t\\t}\\n'\n ].join('');\n }\n\n if (markup) {\n markup = [\n '\\t\\n'\n ].join('');\n }\n\n return markup;\n },\n\n /**\n * @private\n */\n _setSVGObjects: function(markup, reviver) {\n var instance, i, len, objects = this._objects;\n for (i = 0, len = objects.length; i < len; i++) {\n instance = objects[i];\n if (instance.excludeFromExport) {\n continue;\n }\n this._setSVGObject(markup, instance, reviver);\n }\n },\n\n /**\n * @private\n */\n _setSVGObject: function(markup, instance, reviver) {\n markup.push(instance.toSVG(reviver));\n },\n\n /**\n * @private\n */\n _setSVGBgOverlayImage: function(markup, property, reviver) {\n if (this[property] && !this[property].excludeFromExport && this[property].toSVG) {\n markup.push(this[property].toSVG(reviver));\n }\n },\n\n /**\n * @private\n */\n _setSVGBgOverlayColor: function(markup, property) {\n var filler = this[property + 'Color'], vpt = this.viewportTransform, finalWidth = this.width,\n finalHeight = this.height;\n if (!filler) {\n return;\n }\n if (filler.toLive) {\n var repeat = filler.repeat, iVpt = fabric.util.invertTransform(vpt), shouldInvert = this[property + 'Vpt'],\n additionalTransform = shouldInvert ? fabric.util.matrixToSVG(iVpt) : '';\n markup.push(\n '\\n'\n );\n }\n else {\n markup.push(\n '\\n'\n );\n }\n },\n /* _TO_SVG_END_ */\n\n /**\n * Moves an object or the objects of a multiple selection\n * to the bottom of the stack of drawn objects\n * @param {fabric.Object} object Object to send to back\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n sendToBack: function (object) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, objs;\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = objs.length; i--;) {\n obj = objs[i];\n removeFromArray(this._objects, obj);\n this._objects.unshift(obj);\n }\n }\n else {\n removeFromArray(this._objects, object);\n this._objects.unshift(object);\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Moves an object or the objects of a multiple selection\n * to the top of the stack of drawn objects\n * @param {fabric.Object} object Object to send\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n bringToFront: function (object) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, objs;\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = 0; i < objs.length; i++) {\n obj = objs[i];\n removeFromArray(this._objects, obj);\n this._objects.push(obj);\n }\n }\n else {\n removeFromArray(this._objects, object);\n this._objects.push(object);\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Moves an object or a selection down in stack of drawn objects\n * An optional parameter, intersecting allows to move the object in behind\n * the first intersecting object. Where intersection is calculated with\n * bounding box. If no intersection is found, there will not be change in the\n * stack.\n * @param {fabric.Object} object Object to send\n * @param {Boolean} [intersecting] If `true`, send object behind next lower intersecting object\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n sendBackwards: function (object, intersecting) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, idx, newIdx, objs, objsMoved = 0;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = 0; i < objs.length; i++) {\n obj = objs[i];\n idx = this._objects.indexOf(obj);\n if (idx > 0 + objsMoved) {\n newIdx = idx - 1;\n removeFromArray(this._objects, obj);\n this._objects.splice(newIdx, 0, obj);\n }\n objsMoved++;\n }\n }\n else {\n idx = this._objects.indexOf(object);\n if (idx !== 0) {\n // if object is not on the bottom of stack\n newIdx = this._findNewLowerIndex(object, idx, intersecting);\n removeFromArray(this._objects, object);\n this._objects.splice(newIdx, 0, object);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * @private\n */\n _findNewLowerIndex: function(object, idx, intersecting) {\n var newIdx, i;\n\n if (intersecting) {\n newIdx = idx;\n\n // traverse down the stack looking for the nearest intersecting object\n for (i = idx - 1; i >= 0; --i) {\n\n var isIntersecting = object.intersectsWithObject(this._objects[i]) ||\n object.isContainedWithinObject(this._objects[i]) ||\n this._objects[i].isContainedWithinObject(object);\n\n if (isIntersecting) {\n newIdx = i;\n break;\n }\n }\n }\n else {\n newIdx = idx - 1;\n }\n\n return newIdx;\n },\n\n /**\n * Moves an object or a selection up in stack of drawn objects\n * An optional parameter, intersecting allows to move the object in front\n * of the first intersecting object. Where intersection is calculated with\n * bounding box. If no intersection is found, there will not be change in the\n * stack.\n * @param {fabric.Object} object Object to send\n * @param {Boolean} [intersecting] If `true`, send object in front of next upper intersecting object\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n bringForward: function (object, intersecting) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, idx, newIdx, objs, objsMoved = 0;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = objs.length; i--;) {\n obj = objs[i];\n idx = this._objects.indexOf(obj);\n if (idx < this._objects.length - 1 - objsMoved) {\n newIdx = idx + 1;\n removeFromArray(this._objects, obj);\n this._objects.splice(newIdx, 0, obj);\n }\n objsMoved++;\n }\n }\n else {\n idx = this._objects.indexOf(object);\n if (idx !== this._objects.length - 1) {\n // if object is not on top of stack (last item in an array)\n newIdx = this._findNewUpperIndex(object, idx, intersecting);\n removeFromArray(this._objects, object);\n this._objects.splice(newIdx, 0, object);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * @private\n */\n _findNewUpperIndex: function(object, idx, intersecting) {\n var newIdx, i, len;\n\n if (intersecting) {\n newIdx = idx;\n\n // traverse up the stack looking for the nearest intersecting object\n for (i = idx + 1, len = this._objects.length; i < len; ++i) {\n\n var isIntersecting = object.intersectsWithObject(this._objects[i]) ||\n object.isContainedWithinObject(this._objects[i]) ||\n this._objects[i].isContainedWithinObject(object);\n\n if (isIntersecting) {\n newIdx = i;\n break;\n }\n }\n }\n else {\n newIdx = idx + 1;\n }\n\n return newIdx;\n },\n\n /**\n * Moves an object to specified level in stack of drawn objects\n * @param {fabric.Object} object Object to send\n * @param {Number} index Position to move to\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n moveTo: function (object, index) {\n removeFromArray(this._objects, object);\n this._objects.splice(index, 0, object);\n return this.renderOnAddRemove && this.requestRenderAll();\n },\n\n /**\n * Clears a canvas element and dispose objects\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n dispose: function () {\n // cancel eventually ongoing renders\n if (this.isRendering) {\n fabric.util.cancelAnimFrame(this.isRendering);\n this.isRendering = 0;\n }\n this.forEachObject(function(object) {\n object.dispose && object.dispose();\n });\n this._objects = [];\n if (this.backgroundImage && this.backgroundImage.dispose) {\n this.backgroundImage.dispose();\n }\n this.backgroundImage = null;\n if (this.overlayImage && this.overlayImage.dispose) {\n this.overlayImage.dispose();\n }\n this.overlayImage = null;\n this._iTextInstances = null;\n this.contextContainer = null;\n fabric.util.cleanUpJsdomNode(this.lowerCanvasEl);\n this.lowerCanvasEl = undefined;\n return this;\n },\n\n /**\n * Returns a string representation of an instance\n * @return {String} string representation of an instance\n */\n toString: function () {\n return '#';\n }\n });\n\n extend(fabric.StaticCanvas.prototype, fabric.Observable);\n extend(fabric.StaticCanvas.prototype, fabric.Collection);\n extend(fabric.StaticCanvas.prototype, fabric.DataURLExporter);\n\n extend(fabric.StaticCanvas, /** @lends fabric.StaticCanvas */ {\n\n /**\n * @static\n * @type String\n * @default\n */\n EMPTY_JSON: '{\"objects\": [], \"background\": \"white\"}',\n\n /**\n * Provides a way to check support of some of the canvas methods\n * (either those of HTMLCanvasElement itself, or rendering context)\n *\n * @param {String} methodName Method to check support for;\n * Could be one of \"setLineDash\"\n * @return {Boolean | null} `true` if method is supported (or at least exists),\n * `null` if canvas element or context can not be initialized\n */\n supports: function (methodName) {\n var el = createCanvasElement();\n\n if (!el || !el.getContext) {\n return null;\n }\n\n var ctx = el.getContext('2d');\n if (!ctx) {\n return null;\n }\n\n switch (methodName) {\n\n case 'setLineDash':\n return typeof ctx.setLineDash !== 'undefined';\n\n default:\n return null;\n }\n }\n });\n\n /**\n * Returns Object representation of canvas\n * this alias is provided because if you call JSON.stringify on an instance,\n * the toJSON object will be invoked if it exists.\n * Having a toJSON method means you can do JSON.stringify(myCanvas)\n * @function\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} JSON compatible object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#serialization}\n * @see {@link http://jsfiddle.net/fabricjs/pec86/|jsFiddle demo}\n * @example JSON without additional properties\n * var json = canvas.toJSON();\n * @example JSON with additional properties included\n * var json = canvas.toJSON(['lockMovementX', 'lockMovementY', 'lockRotation', 'lockScalingX', 'lockScalingY']);\n * @example JSON without default values\n * canvas.includeDefaultValues = false;\n * var json = canvas.toJSON();\n */\n fabric.StaticCanvas.prototype.toJSON = fabric.StaticCanvas.prototype.toObject;\n\n if (fabric.isLikelyNode) {\n fabric.StaticCanvas.prototype.createPNGStream = function() {\n var impl = getNodeCanvas(this.lowerCanvasEl);\n return impl && impl.createPNGStream();\n };\n fabric.StaticCanvas.prototype.createJPEGStream = function(opts) {\n var impl = getNodeCanvas(this.lowerCanvasEl);\n return impl && impl.createJPEGStream(opts);\n };\n }\n})();\n\n\n/**\n * BaseBrush class\n * @class fabric.BaseBrush\n * @see {@link http://fabricjs.com/freedrawing|Freedrawing demo}\n */\nfabric.BaseBrush = fabric.util.createClass(/** @lends fabric.BaseBrush.prototype */ {\n\n /**\n * Color of a brush\n * @type String\n * @default\n */\n color: 'rgb(0, 0, 0)',\n\n /**\n * Width of a brush, has to be a Number, no string literals\n * @type Number\n * @default\n */\n width: 1,\n\n /**\n * Shadow object representing shadow of this shape.\n * Backwards incompatibility note: This property replaces \"shadowColor\" (String), \"shadowOffsetX\" (Number),\n * \"shadowOffsetY\" (Number) and \"shadowBlur\" (Number) since v1.2.12\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * Line endings style of a brush (one of \"butt\", \"round\", \"square\")\n * @type String\n * @default\n */\n strokeLineCap: 'round',\n\n /**\n * Corner style of a brush (one of \"bevel\", \"round\", \"miter\")\n * @type String\n * @default\n */\n strokeLineJoin: 'round',\n\n /**\n * Maximum miter length (used for strokeLineJoin = \"miter\") of a brush's\n * @type Number\n * @default\n */\n strokeMiterLimit: 10,\n\n /**\n * Stroke Dash Array.\n * @type Array\n * @default\n */\n strokeDashArray: null,\n\n /**\n * Sets brush styles\n * @private\n */\n _setBrushStyles: function() {\n var ctx = this.canvas.contextTop;\n ctx.strokeStyle = this.color;\n ctx.lineWidth = this.width;\n ctx.lineCap = this.strokeLineCap;\n ctx.miterLimit = this.strokeMiterLimit;\n ctx.lineJoin = this.strokeLineJoin;\n if (fabric.StaticCanvas.supports('setLineDash')) {\n ctx.setLineDash(this.strokeDashArray || []);\n }\n },\n\n /**\n * Sets the transformation on given context\n * @param {RenderingContext2d} ctx context to render on\n * @private\n */\n _saveAndTransform: function(ctx) {\n var v = this.canvas.viewportTransform;\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n },\n\n /**\n * Sets brush shadow styles\n * @private\n */\n _setShadow: function() {\n if (!this.shadow) {\n return;\n }\n\n var canvas = this.canvas,\n shadow = this.shadow,\n ctx = canvas.contextTop,\n zoom = canvas.getZoom();\n if (canvas && canvas._isRetinaScaling()) {\n zoom *= fabric.devicePixelRatio;\n }\n\n ctx.shadowColor = shadow.color;\n ctx.shadowBlur = shadow.blur * zoom;\n ctx.shadowOffsetX = shadow.offsetX * zoom;\n ctx.shadowOffsetY = shadow.offsetY * zoom;\n },\n\n needsFullRender: function() {\n var color = new fabric.Color(this.color);\n return color.getAlpha() < 1 || !!this.shadow;\n },\n\n /**\n * Removes brush shadow styles\n * @private\n */\n _resetShadow: function() {\n var ctx = this.canvas.contextTop;\n\n ctx.shadowColor = '';\n ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0;\n }\n});\n\n\n(function() {\n /**\n * PencilBrush class\n * @class fabric.PencilBrush\n * @extends fabric.BaseBrush\n */\n fabric.PencilBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric.PencilBrush.prototype */ {\n\n /**\n * Discard points that are less than `decimate` pixel distant from each other\n * @type Number\n * @default 0.4\n */\n decimate: 0.4,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.PencilBrush} Instance of a pencil brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this._points = [];\n },\n\n /**\n * Invoked inside on mouse down and mouse move\n * @param {Object} pointer\n */\n _drawSegment: function (ctx, p1, p2) {\n var midPoint = p1.midPointFrom(p2);\n ctx.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n return midPoint;\n },\n\n /**\n * Invoked on mouse down\n * @param {Object} pointer\n */\n onMouseDown: function(pointer, options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return;\n }\n this._prepareForDrawing(pointer);\n // capture coordinates immediately\n // this allows to draw dots (when movement never occurs)\n this._captureDrawingPath(pointer);\n this._render();\n },\n\n /**\n * Invoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer, options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return;\n }\n if (this._captureDrawingPath(pointer) && this._points.length > 1) {\n if (this.needsFullRender()) {\n // redraw curve\n // clear top canvas\n this.canvas.clearContext(this.canvas.contextTop);\n this._render();\n }\n else {\n var points = this._points, length = points.length, ctx = this.canvas.contextTop;\n // draw the curve update\n this._saveAndTransform(ctx);\n if (this.oldEnd) {\n ctx.beginPath();\n ctx.moveTo(this.oldEnd.x, this.oldEnd.y);\n }\n this.oldEnd = this._drawSegment(ctx, points[length - 2], points[length - 1], true);\n ctx.stroke();\n ctx.restore();\n }\n }\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function(options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return true;\n }\n this.oldEnd = undefined;\n this._finalizeAndAddPath();\n return false;\n },\n\n /**\n * @private\n * @param {Object} pointer Actual mouse position related to the canvas.\n */\n _prepareForDrawing: function(pointer) {\n\n var p = new fabric.Point(pointer.x, pointer.y);\n\n this._reset();\n this._addPoint(p);\n this.canvas.contextTop.moveTo(p.x, p.y);\n },\n\n /**\n * @private\n * @param {fabric.Point} point Point to be added to points array\n */\n _addPoint: function(point) {\n if (this._points.length > 1 && point.eq(this._points[this._points.length - 1])) {\n return false;\n }\n this._points.push(point);\n return true;\n },\n\n /**\n * Clear points array and set contextTop canvas style.\n * @private\n */\n _reset: function() {\n this._points = [];\n this._setBrushStyles();\n this._setShadow();\n },\n\n /**\n * @private\n * @param {Object} pointer Actual mouse position related to the canvas.\n */\n _captureDrawingPath: function(pointer) {\n var pointerPoint = new fabric.Point(pointer.x, pointer.y);\n return this._addPoint(pointerPoint);\n },\n\n /**\n * Draw a smooth path on the topCanvas using quadraticCurveTo\n * @private\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, len,\n p1 = this._points[0],\n p2 = this._points[1];\n\n this._saveAndTransform(ctx);\n ctx.beginPath();\n //if we only have 2 points in the path and they are the same\n //it means that the user only clicked the canvas without moving the mouse\n //then we should be drawing a dot. A path isn't drawn between two identical dots\n //that's why we set them apart a bit\n if (this._points.length === 2 && p1.x === p2.x && p1.y === p2.y) {\n var width = this.width / 1000;\n p1 = new fabric.Point(p1.x, p1.y);\n p2 = new fabric.Point(p2.x, p2.y);\n p1.x -= width;\n p2.x += width;\n }\n ctx.moveTo(p1.x, p1.y);\n\n for (i = 1, len = this._points.length; i < len; i++) {\n // we pick the point between pi + 1 & pi + 2 as the\n // end point and p1 as our control point.\n this._drawSegment(ctx, p1, p2);\n p1 = this._points[i];\n p2 = this._points[i + 1];\n }\n // Draw last line as a straight line while\n // we wait for the next point to be able to calculate\n // the bezier control point\n ctx.lineTo(p1.x, p1.y);\n ctx.stroke();\n ctx.restore();\n },\n\n /**\n * Converts points to SVG path\n * @param {Array} points Array of points\n * @return {String} SVG path\n */\n convertPointsToSVGPath: function(points) {\n var path = [], i, width = this.width / 1000,\n p1 = new fabric.Point(points[0].x, points[0].y),\n p2 = new fabric.Point(points[1].x, points[1].y),\n len = points.length, multSignX = 1, multSignY = 0, manyPoints = len > 2;\n\n if (manyPoints) {\n multSignX = points[2].x < p2.x ? -1 : points[2].x === p2.x ? 0 : 1;\n multSignY = points[2].y < p2.y ? -1 : points[2].y === p2.y ? 0 : 1;\n }\n path.push('M ', p1.x - multSignX * width, ' ', p1.y - multSignY * width, ' ');\n for (i = 1; i < len; i++) {\n if (!p1.eq(p2)) {\n var midPoint = p1.midPointFrom(p2);\n // p1 is our bezier control point\n // midpoint is our endpoint\n // start point is p(i-1) value.\n path.push('Q ', p1.x, ' ', p1.y, ' ', midPoint.x, ' ', midPoint.y, ' ');\n }\n p1 = points[i];\n if ((i + 1) < points.length) {\n p2 = points[i + 1];\n }\n }\n if (manyPoints) {\n multSignX = p1.x > points[i - 2].x ? 1 : p1.x === points[i - 2].x ? 0 : -1;\n multSignY = p1.y > points[i - 2].y ? 1 : p1.y === points[i - 2].y ? 0 : -1;\n }\n path.push('L ', p1.x + multSignX * width, ' ', p1.y + multSignY * width);\n return path;\n },\n\n /**\n * Creates fabric.Path object to add on canvas\n * @param {String} pathData Path data\n * @return {fabric.Path} Path to add on canvas\n */\n createPath: function(pathData) {\n var path = new fabric.Path(pathData, {\n fill: null,\n stroke: this.color,\n strokeWidth: this.width,\n strokeLineCap: this.strokeLineCap,\n strokeMiterLimit: this.strokeMiterLimit,\n strokeLineJoin: this.strokeLineJoin,\n strokeDashArray: this.strokeDashArray,\n });\n if (this.shadow) {\n this.shadow.affectStroke = true;\n path.shadow = new fabric.Shadow(this.shadow);\n }\n\n return path;\n },\n\n /**\n * Decimate points array with the decimate value\n */\n decimatePoints: function(points, distance) {\n if (points.length <= 2) {\n return points;\n }\n var zoom = this.canvas.getZoom(), adjustedDistance = Math.pow(distance / zoom, 2),\n i, l = points.length - 1, lastPoint = points[0], newPoints = [lastPoint],\n cDistance;\n for (i = 1; i < l; i++) {\n cDistance = Math.pow(lastPoint.x - points[i].x, 2) + Math.pow(lastPoint.y - points[i].y, 2);\n if (cDistance >= adjustedDistance) {\n lastPoint = points[i];\n newPoints.push(lastPoint);\n }\n }\n if (newPoints.length === 1) {\n newPoints.push(new fabric.Point(newPoints[0].x, newPoints[0].y));\n }\n return newPoints;\n },\n\n /**\n * On mouseup after drawing the path on contextTop canvas\n * we use the points captured to create an new fabric path object\n * and add it to the fabric canvas.\n */\n _finalizeAndAddPath: function() {\n var ctx = this.canvas.contextTop;\n ctx.closePath();\n if (this.decimate) {\n this._points = this.decimatePoints(this._points, this.decimate);\n }\n var pathData = this.convertPointsToSVGPath(this._points).join('');\n if (pathData === 'M 0 0 Q 0 0 0 0 L 0 0') {\n // do not create 0 width/height paths, as they are\n // rendered inconsistently across browsers\n // Firefox 4, for example, renders a dot,\n // whereas Chrome 10 renders nothing\n this.canvas.requestRenderAll();\n return;\n }\n\n var path = this.createPath(pathData);\n this.canvas.clearContext(this.canvas.contextTop);\n this.canvas.fire('before:path:created', { path: path });\n this.canvas.add(path);\n this.canvas.requestRenderAll();\n path.setCoords();\n this._resetShadow();\n\n\n // fire event 'path' created\n this.canvas.fire('path:created', { path: path });\n }\n });\n})();\n\n\n/**\n * CircleBrush class\n * @class fabric.CircleBrush\n */\nfabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric.CircleBrush.prototype */ {\n\n /**\n * Width of a brush\n * @type Number\n * @default\n */\n width: 10,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.CircleBrush} Instance of a circle brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this.points = [];\n },\n\n /**\n * Invoked inside on mouse down and mouse move\n * @param {Object} pointer\n */\n drawDot: function(pointer) {\n var point = this.addPoint(pointer),\n ctx = this.canvas.contextTop;\n this._saveAndTransform(ctx);\n this.dot(ctx, point);\n ctx.restore();\n },\n\n dot: function(ctx, point) {\n ctx.fillStyle = point.fill;\n ctx.beginPath();\n ctx.arc(point.x, point.y, point.radius, 0, Math.PI * 2, false);\n ctx.closePath();\n ctx.fill();\n },\n\n /**\n * Invoked on mouse down\n */\n onMouseDown: function(pointer) {\n this.points.length = 0;\n this.canvas.clearContext(this.canvas.contextTop);\n this._setShadow();\n this.drawDot(pointer);\n },\n\n /**\n * Render the full state of the brush\n * @private\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, len,\n points = this.points;\n this._saveAndTransform(ctx);\n for (i = 0, len = points.length; i < len; i++) {\n this.dot(ctx, points[i]);\n }\n ctx.restore();\n },\n\n /**\n * Invoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer) {\n if (this.needsFullRender()) {\n this.canvas.clearContext(this.canvas.contextTop);\n this.addPoint(pointer);\n this._render();\n }\n else {\n this.drawDot(pointer);\n }\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function() {\n var originalRenderOnAddRemove = this.canvas.renderOnAddRemove, i, len;\n this.canvas.renderOnAddRemove = false;\n\n var circles = [];\n\n for (i = 0, len = this.points.length; i < len; i++) {\n var point = this.points[i],\n circle = new fabric.Circle({\n radius: point.radius,\n left: point.x,\n top: point.y,\n originX: 'center',\n originY: 'center',\n fill: point.fill\n });\n\n this.shadow && (circle.shadow = new fabric.Shadow(this.shadow));\n\n circles.push(circle);\n }\n var group = new fabric.Group(circles);\n group.canvas = this.canvas;\n\n this.canvas.fire('before:path:created', { path: group });\n this.canvas.add(group);\n this.canvas.fire('path:created', { path: group });\n\n this.canvas.clearContext(this.canvas.contextTop);\n this._resetShadow();\n this.canvas.renderOnAddRemove = originalRenderOnAddRemove;\n this.canvas.requestRenderAll();\n },\n\n /**\n * @param {Object} pointer\n * @return {fabric.Point} Just added pointer point\n */\n addPoint: function(pointer) {\n var pointerPoint = new fabric.Point(pointer.x, pointer.y),\n\n circleRadius = fabric.util.getRandomInt(\n Math.max(0, this.width - 20), this.width + 20) / 2,\n\n circleColor = new fabric.Color(this.color)\n .setAlpha(fabric.util.getRandomInt(0, 100) / 100)\n .toRgba();\n\n pointerPoint.radius = circleRadius;\n pointerPoint.fill = circleColor;\n\n this.points.push(pointerPoint);\n\n return pointerPoint;\n }\n});\n\n\n/**\n * SprayBrush class\n * @class fabric.SprayBrush\n */\nfabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric.SprayBrush.prototype */ {\n\n /**\n * Width of a spray\n * @type Number\n * @default\n */\n width: 10,\n\n /**\n * Density of a spray (number of dots per chunk)\n * @type Number\n * @default\n */\n density: 20,\n\n /**\n * Width of spray dots\n * @type Number\n * @default\n */\n dotWidth: 1,\n\n /**\n * Width variance of spray dots\n * @type Number\n * @default\n */\n dotWidthVariance: 1,\n\n /**\n * Whether opacity of a dot should be random\n * @type Boolean\n * @default\n */\n randomOpacity: false,\n\n /**\n * Whether overlapping dots (rectangles) should be removed (for performance reasons)\n * @type Boolean\n * @default\n */\n optimizeOverlapping: true,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.SprayBrush} Instance of a spray brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this.sprayChunks = [];\n },\n\n /**\n * Invoked on mouse down\n * @param {Object} pointer\n */\n onMouseDown: function(pointer) {\n this.sprayChunks.length = 0;\n this.canvas.clearContext(this.canvas.contextTop);\n this._setShadow();\n\n this.addSprayChunk(pointer);\n this.render(this.sprayChunkPoints);\n },\n\n /**\n * Invoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer) {\n this.addSprayChunk(pointer);\n this.render(this.sprayChunkPoints);\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function() {\n var originalRenderOnAddRemove = this.canvas.renderOnAddRemove;\n this.canvas.renderOnAddRemove = false;\n\n var rects = [];\n\n for (var i = 0, ilen = this.sprayChunks.length; i < ilen; i++) {\n var sprayChunk = this.sprayChunks[i];\n\n for (var j = 0, jlen = sprayChunk.length; j < jlen; j++) {\n\n var rect = new fabric.Rect({\n width: sprayChunk[j].width,\n height: sprayChunk[j].width,\n left: sprayChunk[j].x + 1,\n top: sprayChunk[j].y + 1,\n originX: 'center',\n originY: 'center',\n fill: this.color\n });\n rects.push(rect);\n }\n }\n\n if (this.optimizeOverlapping) {\n rects = this._getOptimizedRects(rects);\n }\n\n var group = new fabric.Group(rects);\n this.shadow && group.set('shadow', new fabric.Shadow(this.shadow));\n this.canvas.fire('before:path:created', { path: group });\n this.canvas.add(group);\n this.canvas.fire('path:created', { path: group });\n\n this.canvas.clearContext(this.canvas.contextTop);\n this._resetShadow();\n this.canvas.renderOnAddRemove = originalRenderOnAddRemove;\n this.canvas.requestRenderAll();\n },\n\n /**\n * @private\n * @param {Array} rects\n */\n _getOptimizedRects: function(rects) {\n\n // avoid creating duplicate rects at the same coordinates\n var uniqueRects = { }, key, i, len;\n\n for (i = 0, len = rects.length; i < len; i++) {\n key = rects[i].left + '' + rects[i].top;\n if (!uniqueRects[key]) {\n uniqueRects[key] = rects[i];\n }\n }\n var uniqueRectsArray = [];\n for (key in uniqueRects) {\n uniqueRectsArray.push(uniqueRects[key]);\n }\n\n return uniqueRectsArray;\n },\n\n /**\n * Render new chunk of spray brush\n */\n render: function(sprayChunk) {\n var ctx = this.canvas.contextTop, i, len;\n ctx.fillStyle = this.color;\n\n this._saveAndTransform(ctx);\n\n for (i = 0, len = sprayChunk.length; i < len; i++) {\n var point = sprayChunk[i];\n if (typeof point.opacity !== 'undefined') {\n ctx.globalAlpha = point.opacity;\n }\n ctx.fillRect(point.x, point.y, point.width, point.width);\n }\n ctx.restore();\n },\n\n /**\n * Render all spray chunks\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, ilen;\n ctx.fillStyle = this.color;\n\n this._saveAndTransform(ctx);\n\n for (i = 0, ilen = this.sprayChunks.length; i < ilen; i++) {\n this.render(this.sprayChunks[i]);\n }\n ctx.restore();\n },\n\n /**\n * @param {Object} pointer\n */\n addSprayChunk: function(pointer) {\n this.sprayChunkPoints = [];\n\n var x, y, width, radius = this.width / 2, i;\n\n for (i = 0; i < this.density; i++) {\n\n x = fabric.util.getRandomInt(pointer.x - radius, pointer.x + radius);\n y = fabric.util.getRandomInt(pointer.y - radius, pointer.y + radius);\n\n if (this.dotWidthVariance) {\n width = fabric.util.getRandomInt(\n // bottom clamp width to 1\n Math.max(1, this.dotWidth - this.dotWidthVariance),\n this.dotWidth + this.dotWidthVariance);\n }\n else {\n width = this.dotWidth;\n }\n\n var point = new fabric.Point(x, y);\n point.width = width;\n\n if (this.randomOpacity) {\n point.opacity = fabric.util.getRandomInt(0, 100) / 100;\n }\n\n this.sprayChunkPoints.push(point);\n }\n\n this.sprayChunks.push(this.sprayChunkPoints);\n }\n});\n\n\n/**\n * PatternBrush class\n * @class fabric.PatternBrush\n * @extends fabric.BaseBrush\n */\nfabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fabric.PatternBrush.prototype */ {\n\n getPatternSrc: function() {\n\n var dotWidth = 20,\n dotDistance = 5,\n patternCanvas = fabric.util.createCanvasElement(),\n patternCtx = patternCanvas.getContext('2d');\n\n patternCanvas.width = patternCanvas.height = dotWidth + dotDistance;\n\n patternCtx.fillStyle = this.color;\n patternCtx.beginPath();\n patternCtx.arc(dotWidth / 2, dotWidth / 2, dotWidth / 2, 0, Math.PI * 2, false);\n patternCtx.closePath();\n patternCtx.fill();\n\n return patternCanvas;\n },\n\n getPatternSrcFunction: function() {\n return String(this.getPatternSrc).replace('this.color', '\"' + this.color + '\"');\n },\n\n /**\n * Creates \"pattern\" instance property\n */\n getPattern: function() {\n return this.canvas.contextTop.createPattern(this.source || this.getPatternSrc(), 'repeat');\n },\n\n /**\n * Sets brush styles\n */\n _setBrushStyles: function() {\n this.callSuper('_setBrushStyles');\n this.canvas.contextTop.strokeStyle = this.getPattern();\n },\n\n /**\n * Creates path\n */\n createPath: function(pathData) {\n var path = this.callSuper('createPath', pathData),\n topLeft = path._getLeftTopCoords().scalarAdd(path.strokeWidth / 2);\n\n path.stroke = new fabric.Pattern({\n source: this.source || this.getPatternSrcFunction(),\n offsetX: -topLeft.x,\n offsetY: -topLeft.y\n });\n return path;\n }\n});\n\n\n(function() {\n\n var getPointer = fabric.util.getPointer,\n degreesToRadians = fabric.util.degreesToRadians,\n abs = Math.abs,\n supportLineDash = fabric.StaticCanvas.supports('setLineDash'),\n isTouchEvent = fabric.util.isTouchEvent,\n STROKE_OFFSET = 0.5;\n\n /**\n * Canvas class\n * @class fabric.Canvas\n * @extends fabric.StaticCanvas\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#canvas}\n * @see {@link fabric.Canvas#initialize} for constructor definition\n *\n * @fires object:modified at the end of a transform or any change when statefull is true\n * @fires object:rotating while an object is being rotated from the control\n * @fires object:scaling while an object is being scaled by controls\n * @fires object:moving while an object is being dragged\n * @fires object:skewing while an object is being skewed from the controls\n *\n * @fires before:transform before a transform is is started\n * @fires before:selection:cleared\n * @fires selection:cleared\n * @fires selection:updated\n * @fires selection:created\n *\n * @fires path:created after a drawing operation ends and the path is added\n * @fires mouse:down\n * @fires mouse:move\n * @fires mouse:up\n * @fires mouse:down:before on mouse down, before the inner fabric logic runs\n * @fires mouse:move:before on mouse move, before the inner fabric logic runs\n * @fires mouse:up:before on mouse up, before the inner fabric logic runs\n * @fires mouse:over\n * @fires mouse:out\n * @fires mouse:dblclick whenever a native dbl click event fires on the canvas.\n *\n * @fires dragover\n * @fires dragenter\n * @fires dragleave\n * @fires drop\n * @fires after:render at the end of the render process, receives the context in the callback\n * @fires before:render at start the render process, receives the context in the callback\n *\n * the following events are deprecated:\n * @fires object:rotated at the end of a rotation transform\n * @fires object:scaled at the end of a scale transform\n * @fires object:moved at the end of translation transform\n * @fires object:skewed at the end of a skew transform\n */\n fabric.Canvas = fabric.util.createClass(fabric.StaticCanvas, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * Constructor\n * @param {HTMLElement | String} el <canvas> element to initialize instance on\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(el, options) {\n options || (options = { });\n this.renderAndResetBound = this.renderAndReset.bind(this);\n this.requestRenderAllBound = this.requestRenderAll.bind(this);\n this._initStatic(el, options);\n this._initInteractive();\n this._createCacheCanvas();\n },\n\n /**\n * When true, objects can be transformed by one side (unproportionally)\n * when dragged on the corners that normally would not do that.\n * @type Boolean\n * @default\n * @since fabric 4.0 // changed name and default value\n */\n uniformScaling: true,\n\n /**\n * Indicates which key switches uniform scaling.\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled.\n * totally wrong named. this sounds like `uniform scaling`\n * if Canvas.uniformScaling is true, pressing this will set it to false\n * and viceversa.\n * @since 1.6.2\n * @type String\n * @default\n */\n uniScaleKey: 'shiftKey',\n\n /**\n * When true, objects use center point as the origin of scale transformation.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredScaling: false,\n\n /**\n * When true, objects use center point as the origin of rotate transformation.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredRotation: false,\n\n /**\n * Indicates which key enable centered Transform\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled feature disabled.\n * @since 1.6.2\n * @type String\n * @default\n */\n centeredKey: 'altKey',\n\n /**\n * Indicates which key enable alternate action on corner\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled feature disabled.\n * @since 1.6.2\n * @type String\n * @default\n */\n altActionKey: 'shiftKey',\n\n /**\n * Indicates that canvas is interactive. This property should not be changed.\n * @type Boolean\n * @default\n */\n interactive: true,\n\n /**\n * Indicates whether group selection should be enabled\n * @type Boolean\n * @default\n */\n selection: true,\n\n /**\n * Indicates which key or keys enable multiple click selection\n * Pass value as a string or array of strings\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or empty or containing any other string that is not a modifier key\n * feature is disabled.\n * @since 1.6.2\n * @type String|Array\n * @default\n */\n selectionKey: 'shiftKey',\n\n /**\n * Indicates which key enable alternative selection\n * in case of target overlapping with active object\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * For a series of reason that come from the general expectations on how\n * things should work, this feature works only for preserveObjectStacking true.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled.\n * @since 1.6.5\n * @type null|String\n * @default\n */\n altSelectionKey: null,\n\n /**\n * Color of selection\n * @type String\n * @default\n */\n selectionColor: 'rgba(100, 100, 255, 0.3)', // blue\n\n /**\n * Default dash array pattern\n * If not empty the selection border is dashed\n * @type Array\n */\n selectionDashArray: [],\n\n /**\n * Color of the border of selection (usually slightly darker than color of selection itself)\n * @type String\n * @default\n */\n selectionBorderColor: 'rgba(255, 255, 255, 0.3)',\n\n /**\n * Width of a line used in object/group selection\n * @type Number\n * @default\n */\n selectionLineWidth: 1,\n\n /**\n * Select only shapes that are fully contained in the dragged selection rectangle.\n * @type Boolean\n * @default\n */\n selectionFullyContained: false,\n\n /**\n * Default cursor value used when hovering over an object on canvas\n * @type String\n * @default\n */\n hoverCursor: 'move',\n\n /**\n * Default cursor value used when moving an object on canvas\n * @type String\n * @default\n */\n moveCursor: 'move',\n\n /**\n * Default cursor value used for the entire canvas\n * @type String\n * @default\n */\n defaultCursor: 'default',\n\n /**\n * Cursor value used during free drawing\n * @type String\n * @default\n */\n freeDrawingCursor: 'crosshair',\n\n /**\n * Cursor value used for rotation point\n * @type String\n * @default\n */\n rotationCursor: 'crosshair',\n\n /**\n * Cursor value used for disabled elements ( corners with disabled action )\n * @type String\n * @since 2.0.0\n * @default\n */\n notAllowedCursor: 'not-allowed',\n\n /**\n * Default element class that's given to wrapper (div) element of canvas\n * @type String\n * @default\n */\n containerClass: 'canvas-container',\n\n /**\n * When true, object detection happens on per-pixel basis rather than on per-bounding-box\n * @type Boolean\n * @default\n */\n perPixelTargetFind: false,\n\n /**\n * Number of pixels around target pixel to tolerate (consider active) during object detection\n * @type Number\n * @default\n */\n targetFindTolerance: 0,\n\n /**\n * When true, target detection is skipped. Target detection will return always undefined.\n * click selection won't work anymore, events will fire with no targets.\n * if something is selected before setting it to true, it will be deselected at the first click.\n * area selection will still work. check the `selection` property too.\n * if you deactivate both, you should look into staticCanvas.\n * @type Boolean\n * @default\n */\n skipTargetFind: false,\n\n /**\n * When true, mouse events on canvas (mousedown/mousemove/mouseup) result in free drawing.\n * After mousedown, mousemove creates a shape,\n * and then mouseup finalizes it and adds an instance of `fabric.Path` onto canvas.\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-4#free_drawing}\n * @type Boolean\n * @default\n */\n isDrawingMode: false,\n\n /**\n * Indicates whether objects should remain in current stack position when selected.\n * When false objects are brought to top and rendered as part of the selection group\n * @type Boolean\n * @default\n */\n preserveObjectStacking: false,\n\n /**\n * Indicates the angle that an object will lock to while rotating.\n * @type Number\n * @since 1.6.7\n * @default\n */\n snapAngle: 0,\n\n /**\n * Indicates the distance from the snapAngle the rotation will lock to the snapAngle.\n * When `null`, the snapThreshold will default to the snapAngle.\n * @type null|Number\n * @since 1.6.7\n * @default\n */\n snapThreshold: null,\n\n /**\n * Indicates if the right click on canvas can output the context menu or not\n * @type Boolean\n * @since 1.6.5\n * @default\n */\n stopContextMenu: false,\n\n /**\n * Indicates if the canvas can fire right click events\n * @type Boolean\n * @since 1.6.5\n * @default\n */\n fireRightClick: false,\n\n /**\n * Indicates if the canvas can fire middle click events\n * @type Boolean\n * @since 1.7.8\n * @default\n */\n fireMiddleClick: false,\n\n /**\n * Keep track of the subTargets for Mouse Events\n * @type fabric.Object[]\n */\n targets: [],\n\n /**\n * Keep track of the hovered target\n * @type fabric.Object\n * @private\n */\n _hoveredTarget: null,\n\n /**\n * hold the list of nested targets hovered\n * @type fabric.Object[]\n * @private\n */\n _hoveredTargets: [],\n\n /**\n * @private\n */\n _initInteractive: function() {\n this._currentTransform = null;\n this._groupSelector = null;\n this._initWrapperElement();\n this._createUpperCanvas();\n this._initEventListeners();\n\n this._initRetinaScaling();\n\n this.freeDrawingBrush = fabric.PencilBrush && new fabric.PencilBrush(this);\n\n this.calcOffset();\n },\n\n /**\n * Divides objects in two groups, one to render immediately\n * and one to render as activeGroup.\n * @return {Array} objects to render immediately and pushes the other in the activeGroup.\n */\n _chooseObjectsToRender: function() {\n var activeObjects = this.getActiveObjects(),\n object, objsToRender, activeGroupObjects;\n\n if (activeObjects.length > 0 && !this.preserveObjectStacking) {\n objsToRender = [];\n activeGroupObjects = [];\n for (var i = 0, length = this._objects.length; i < length; i++) {\n object = this._objects[i];\n if (activeObjects.indexOf(object) === -1 ) {\n objsToRender.push(object);\n }\n else {\n activeGroupObjects.push(object);\n }\n }\n if (activeObjects.length > 1) {\n this._activeObject._objects = activeGroupObjects;\n }\n objsToRender.push.apply(objsToRender, activeGroupObjects);\n }\n else {\n objsToRender = this._objects;\n }\n return objsToRender;\n },\n\n /**\n * Renders both the top canvas and the secondary container canvas.\n * @return {fabric.Canvas} instance\n * @chainable\n */\n renderAll: function () {\n if (this.contextTopDirty && !this._groupSelector && !this.isDrawingMode) {\n this.clearContext(this.contextTop);\n this.contextTopDirty = false;\n }\n if (this.hasLostContext) {\n this.renderTopLayer(this.contextTop);\n }\n var canvasToDrawOn = this.contextContainer;\n this.renderCanvas(canvasToDrawOn, this._chooseObjectsToRender());\n return this;\n },\n\n renderTopLayer: function(ctx) {\n ctx.save();\n if (this.isDrawingMode && this._isCurrentlyDrawing) {\n this.freeDrawingBrush && this.freeDrawingBrush._render();\n this.contextTopDirty = true;\n }\n // we render the top context - last object\n if (this.selection && this._groupSelector) {\n this._drawSelection(ctx);\n this.contextTopDirty = true;\n }\n ctx.restore();\n },\n\n /**\n * Method to render only the top canvas.\n * Also used to render the group selection box.\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n renderTop: function () {\n var ctx = this.contextTop;\n this.clearContext(ctx);\n this.renderTopLayer(ctx);\n this.fire('after:render');\n return this;\n },\n\n /**\n * @private\n */\n _normalizePointer: function (object, pointer) {\n var m = object.calcTransformMatrix(),\n invertedM = fabric.util.invertTransform(m),\n vptPointer = this.restorePointerVpt(pointer);\n return fabric.util.transformPoint(vptPointer, invertedM);\n },\n\n /**\n * Returns true if object is transparent at a certain location\n * @param {fabric.Object} target Object to check\n * @param {Number} x Left coordinate\n * @param {Number} y Top coordinate\n * @return {Boolean}\n */\n isTargetTransparent: function (target, x, y) {\n // in case the target is the activeObject, we cannot execute this optimization\n // because we need to draw controls too.\n if (target.shouldCache() && target._cacheCanvas && target !== this._activeObject) {\n var normalizedPointer = this._normalizePointer(target, {x: x, y: y}),\n targetRelativeX = Math.max(target.cacheTranslationX + (normalizedPointer.x * target.zoomX), 0),\n targetRelativeY = Math.max(target.cacheTranslationY + (normalizedPointer.y * target.zoomY), 0);\n\n var isTransparent = fabric.util.isTransparent(\n target._cacheContext, Math.round(targetRelativeX), Math.round(targetRelativeY), this.targetFindTolerance);\n\n return isTransparent;\n }\n\n var ctx = this.contextCache,\n originalColor = target.selectionBackgroundColor, v = this.viewportTransform;\n\n target.selectionBackgroundColor = '';\n\n this.clearContext(ctx);\n\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n target.render(ctx);\n ctx.restore();\n\n target === this._activeObject && target._renderControls(ctx, {\n hasBorders: false,\n transparentCorners: false\n }, {\n hasBorders: false,\n });\n\n target.selectionBackgroundColor = originalColor;\n\n var isTransparent = fabric.util.isTransparent(\n ctx, x, y, this.targetFindTolerance);\n\n return isTransparent;\n },\n\n /**\n * takes an event and determines if selection key has been pressed\n * @private\n * @param {Event} e Event object\n */\n _isSelectionKeyPressed: function(e) {\n var selectionKeyPressed = false;\n\n if (Object.prototype.toString.call(this.selectionKey) === '[object Array]') {\n selectionKeyPressed = !!this.selectionKey.find(function(key) { return e[key] === true; });\n }\n else {\n selectionKeyPressed = e[this.selectionKey];\n }\n\n return selectionKeyPressed;\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _shouldClearSelection: function (e, target) {\n var activeObjects = this.getActiveObjects(),\n activeObject = this._activeObject;\n\n return (\n !target\n ||\n (target &&\n activeObject &&\n activeObjects.length > 1 &&\n activeObjects.indexOf(target) === -1 &&\n activeObject !== target &&\n !this._isSelectionKeyPressed(e))\n ||\n (target && !target.evented)\n ||\n (target &&\n !target.selectable &&\n activeObject &&\n activeObject !== target)\n );\n },\n\n /**\n * centeredScaling from object can't override centeredScaling from canvas.\n * this should be fixed, since object setting should take precedence over canvas.\n * also this should be something that will be migrated in the control properties.\n * as ability to define the origin of the transformation that the control provide.\n * @private\n * @param {fabric.Object} target\n * @param {String} action\n * @param {Boolean} altKey\n */\n _shouldCenterTransform: function (target, action, altKey) {\n if (!target) {\n return;\n }\n\n var centerTransform;\n\n if (action === 'scale' || action === 'scaleX' || action === 'scaleY' || action === 'resizing') {\n centerTransform = this.centeredScaling || target.centeredScaling;\n }\n else if (action === 'rotate') {\n centerTransform = this.centeredRotation || target.centeredRotation;\n }\n\n return centerTransform ? !altKey : altKey;\n },\n\n /**\n * should disappear before release 4.0\n * @private\n */\n _getOriginFromCorner: function(target, corner) {\n var origin = {\n x: target.originX,\n y: target.originY\n };\n\n if (corner === 'ml' || corner === 'tl' || corner === 'bl') {\n origin.x = 'right';\n }\n else if (corner === 'mr' || corner === 'tr' || corner === 'br') {\n origin.x = 'left';\n }\n\n if (corner === 'tl' || corner === 'mt' || corner === 'tr') {\n origin.y = 'bottom';\n }\n else if (corner === 'bl' || corner === 'mb' || corner === 'br') {\n origin.y = 'top';\n }\n return origin;\n },\n\n /**\n * @private\n * @param {Boolean} alreadySelected true if target is already selected\n * @param {String} corner a string representing the corner ml, mr, tl ...\n * @param {Event} e Event object\n * @param {fabric.Object} [target] inserted back to help overriding. Unused\n */\n _getActionFromCorner: function(alreadySelected, corner, e, target) {\n if (!corner || !alreadySelected) {\n return 'drag';\n }\n var control = target.controls[corner];\n return control.getActionName(e, control, target);\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _setupCurrentTransform: function (e, target, alreadySelected) {\n if (!target) {\n return;\n }\n\n var pointer = this.getPointer(e), corner = target.__corner,\n control = target.controls[corner],\n actionHandler = (alreadySelected && corner) ?\n control.getActionHandler(e, target, control) : fabric.controlsUtils.dragHandler,\n action = this._getActionFromCorner(alreadySelected, corner, e, target),\n origin = this._getOriginFromCorner(target, corner),\n altKey = e[this.centeredKey],\n transform = {\n target: target,\n action: action,\n actionHandler: actionHandler,\n corner: corner,\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n skewX: target.skewX,\n skewY: target.skewY,\n // used by transation\n offsetX: pointer.x - target.left,\n offsetY: pointer.y - target.top,\n originX: origin.x,\n originY: origin.y,\n ex: pointer.x,\n ey: pointer.y,\n lastX: pointer.x,\n lastY: pointer.y,\n // unsure they are useful anymore.\n // left: target.left,\n // top: target.top,\n theta: degreesToRadians(target.angle),\n // end of unsure\n width: target.width * target.scaleX,\n shiftKey: e.shiftKey,\n altKey: altKey,\n original: fabric.util.saveObjectTransform(target),\n };\n\n if (this._shouldCenterTransform(target, action, altKey)) {\n transform.originX = 'center';\n transform.originY = 'center';\n }\n transform.original.originX = origin.x;\n transform.original.originY = origin.y;\n this._currentTransform = transform;\n this._beforeTransform(e);\n },\n\n /**\n * Set the cursor type of the canvas element\n * @param {String} value Cursor type of the canvas element.\n * @see http://www.w3.org/TR/css3-ui/#cursor\n */\n setCursor: function (value) {\n this.upperCanvasEl.style.cursor = value;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx to draw the selection on\n */\n _drawSelection: function (ctx) {\n var groupSelector = this._groupSelector,\n left = groupSelector.left,\n top = groupSelector.top,\n aleft = abs(left),\n atop = abs(top);\n\n if (this.selectionColor) {\n ctx.fillStyle = this.selectionColor;\n\n ctx.fillRect(\n groupSelector.ex - ((left > 0) ? 0 : -left),\n groupSelector.ey - ((top > 0) ? 0 : -top),\n aleft,\n atop\n );\n }\n\n if (!this.selectionLineWidth || !this.selectionBorderColor) {\n return;\n }\n ctx.lineWidth = this.selectionLineWidth;\n ctx.strokeStyle = this.selectionBorderColor;\n\n // selection border\n if (this.selectionDashArray.length > 1 && !supportLineDash) {\n\n var px = groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0 : aleft),\n py = groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0 : atop);\n\n ctx.beginPath();\n\n fabric.util.drawDashedLine(ctx, px, py, px + aleft, py, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px, py + atop - 1, px + aleft, py + atop - 1, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px, py, px, py + atop, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px + aleft - 1, py, px + aleft - 1, py + atop, this.selectionDashArray);\n\n ctx.closePath();\n ctx.stroke();\n }\n else {\n fabric.Object.prototype._setLineDash.call(this, ctx, this.selectionDashArray);\n ctx.strokeRect(\n groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0 : aleft),\n groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0 : atop),\n aleft,\n atop\n );\n }\n },\n\n /**\n * Method that determines what object we are clicking on\n * the skipGroup parameter is for internal use, is needed for shift+click action\n * 11/09/2018 TODO: would be cool if findTarget could discern between being a full target\n * or the outside part of the corner.\n * @param {Event} e mouse event\n * @param {Boolean} skipGroup when true, activeGroup is skipped and only objects are traversed through\n * @return {fabric.Object} the target found\n */\n findTarget: function (e, skipGroup) {\n if (this.skipTargetFind) {\n return;\n }\n\n var ignoreZoom = true,\n pointer = this.getPointer(e, ignoreZoom),\n activeObject = this._activeObject,\n aObjects = this.getActiveObjects(),\n activeTarget, activeTargetSubs,\n isTouch = isTouchEvent(e);\n\n // first check current group (if one exists)\n // active group does not check sub targets like normal groups.\n // if active group just exits.\n this.targets = [];\n\n if (aObjects.length > 1 && !skipGroup && activeObject === this._searchPossibleTargets([activeObject], pointer)) {\n return activeObject;\n }\n // if we hit the corner of an activeObject, let's return that.\n if (aObjects.length === 1 && activeObject._findTargetCorner(pointer, isTouch)) {\n return activeObject;\n }\n if (aObjects.length === 1 &&\n activeObject === this._searchPossibleTargets([activeObject], pointer)) {\n if (!this.preserveObjectStacking) {\n return activeObject;\n }\n else {\n activeTarget = activeObject;\n activeTargetSubs = this.targets;\n this.targets = [];\n }\n }\n var target = this._searchPossibleTargets(this._objects, pointer);\n if (e[this.altSelectionKey] && target && activeTarget && target !== activeTarget) {\n target = activeTarget;\n this.targets = activeTargetSubs;\n }\n return target;\n },\n\n /**\n * Checks point is inside the object.\n * @param {Object} [pointer] x,y object of point coordinates we want to check.\n * @param {fabric.Object} obj Object to test against\n * @param {Object} [globalPointer] x,y object of point coordinates relative to canvas used to search per pixel target.\n * @return {Boolean} true if point is contained within an area of given object\n * @private\n */\n _checkTarget: function(pointer, obj, globalPointer) {\n if (obj &&\n obj.visible &&\n obj.evented &&\n // http://www.geog.ubc.ca/courses/klink/gis.notes/ncgia/u32.html\n // http://idav.ucdavis.edu/~okreylos/TAship/Spring2000/PointInPolygon.html\n (obj.containsPoint(pointer) || !!obj._findTargetCorner(pointer))\n ) {\n if ((this.perPixelTargetFind || obj.perPixelTargetFind) && !obj.isEditing) {\n var isTransparent = this.isTargetTransparent(obj, globalPointer.x, globalPointer.y);\n if (!isTransparent) {\n return true;\n }\n }\n else {\n return true;\n }\n }\n },\n\n /**\n * Function used to search inside objects an object that contains pointer in bounding box or that contains pointerOnCanvas when painted\n * @param {Array} [objects] objects array to look into\n * @param {Object} [pointer] x,y object of point coordinates we want to check.\n * @return {fabric.Object} object that contains pointer\n * @private\n */\n _searchPossibleTargets: function(objects, pointer) {\n // Cache all targets where their bounding box contains point.\n var target, i = objects.length, subTarget;\n // Do not check for currently grouped objects, since we check the parent group itself.\n // until we call this function specifically to search inside the activeGroup\n while (i--) {\n var objToCheck = objects[i];\n var pointerToUse = objToCheck.group ?\n this._normalizePointer(objToCheck.group, pointer) : pointer;\n if (this._checkTarget(pointerToUse, objToCheck, pointer)) {\n target = objects[i];\n if (target.subTargetCheck && target instanceof fabric.Group) {\n subTarget = this._searchPossibleTargets(target._objects, pointer);\n subTarget && this.targets.push(subTarget);\n }\n break;\n }\n }\n return target;\n },\n\n /**\n * Returns pointer coordinates without the effect of the viewport\n * @param {Object} pointer with \"x\" and \"y\" number values\n * @return {Object} object with \"x\" and \"y\" number values\n */\n restorePointerVpt: function(pointer) {\n return fabric.util.transformPoint(\n pointer,\n fabric.util.invertTransform(this.viewportTransform)\n );\n },\n\n /**\n * Returns pointer coordinates relative to canvas.\n * Can return coordinates with or without viewportTransform.\n * ignoreZoom false gives back coordinates that represent\n * the point clicked on canvas element.\n * ignoreZoom true gives back coordinates after being processed\n * by the viewportTransform ( sort of coordinates of what is displayed\n * on the canvas where you are clicking.\n * ignoreZoom true = HTMLElement coordinates relative to top,left\n * ignoreZoom false, default = fabric space coordinates, the same used for shape position\n * To interact with your shapes top and left you want to use ignoreZoom true\n * most of the time, while ignoreZoom false will give you coordinates\n * compatible with the object.oCoords system.\n * of the time.\n * @param {Event} e\n * @param {Boolean} ignoreZoom\n * @return {Object} object with \"x\" and \"y\" number values\n */\n getPointer: function (e, ignoreZoom) {\n // return cached values if we are in the event processing chain\n if (this._absolutePointer && !ignoreZoom) {\n return this._absolutePointer;\n }\n if (this._pointer && ignoreZoom) {\n return this._pointer;\n }\n\n var pointer = getPointer(e),\n upperCanvasEl = this.upperCanvasEl,\n bounds = upperCanvasEl.getBoundingClientRect(),\n boundsWidth = bounds.width || 0,\n boundsHeight = bounds.height || 0,\n cssScale;\n\n if (!boundsWidth || !boundsHeight ) {\n if ('top' in bounds && 'bottom' in bounds) {\n boundsHeight = Math.abs( bounds.top - bounds.bottom );\n }\n if ('right' in bounds && 'left' in bounds) {\n boundsWidth = Math.abs( bounds.right - bounds.left );\n }\n }\n\n this.calcOffset();\n pointer.x = pointer.x - this._offset.left;\n pointer.y = pointer.y - this._offset.top;\n if (!ignoreZoom) {\n pointer = this.restorePointerVpt(pointer);\n }\n\n var retinaScaling = this.getRetinaScaling();\n if (retinaScaling !== 1) {\n pointer.x /= retinaScaling;\n pointer.y /= retinaScaling;\n }\n\n if (boundsWidth === 0 || boundsHeight === 0) {\n // If bounds are not available (i.e. not visible), do not apply scale.\n cssScale = { width: 1, height: 1 };\n }\n else {\n cssScale = {\n width: upperCanvasEl.width / boundsWidth,\n height: upperCanvasEl.height / boundsHeight\n };\n }\n\n return {\n x: pointer.x * cssScale.width,\n y: pointer.y * cssScale.height\n };\n },\n\n /**\n * @private\n * @throws {CANVAS_INIT_ERROR} If canvas can not be initialized\n */\n _createUpperCanvas: function () {\n var lowerCanvasClass = this.lowerCanvasEl.className.replace(/\\s*lower-canvas\\s*/, ''),\n lowerCanvasEl = this.lowerCanvasEl, upperCanvasEl = this.upperCanvasEl;\n\n // there is no need to create a new upperCanvas element if we have already one.\n if (upperCanvasEl) {\n upperCanvasEl.className = '';\n }\n else {\n upperCanvasEl = this._createCanvasElement();\n this.upperCanvasEl = upperCanvasEl;\n }\n fabric.util.addClass(upperCanvasEl, 'upper-canvas ' + lowerCanvasClass);\n\n this.wrapperEl.appendChild(upperCanvasEl);\n\n this._copyCanvasStyle(lowerCanvasEl, upperCanvasEl);\n this._applyCanvasStyle(upperCanvasEl);\n this.contextTop = upperCanvasEl.getContext('2d');\n },\n\n /**\n * @private\n */\n _createCacheCanvas: function () {\n this.cacheCanvasEl = this._createCanvasElement();\n this.cacheCanvasEl.setAttribute('width', this.width);\n this.cacheCanvasEl.setAttribute('height', this.height);\n this.contextCache = this.cacheCanvasEl.getContext('2d');\n },\n\n /**\n * @private\n */\n _initWrapperElement: function () {\n this.wrapperEl = fabric.util.wrapElement(this.lowerCanvasEl, 'div', {\n 'class': this.containerClass\n });\n fabric.util.setStyle(this.wrapperEl, {\n width: this.width + 'px',\n height: this.height + 'px',\n position: 'relative'\n });\n fabric.util.makeElementUnselectable(this.wrapperEl);\n },\n\n /**\n * @private\n * @param {HTMLElement} element canvas element to apply styles on\n */\n _applyCanvasStyle: function (element) {\n var width = this.width || element.width,\n height = this.height || element.height;\n\n fabric.util.setStyle(element, {\n position: 'absolute',\n width: width + 'px',\n height: height + 'px',\n left: 0,\n top: 0,\n 'touch-action': this.allowTouchScrolling ? 'manipulation' : 'none',\n '-ms-touch-action': this.allowTouchScrolling ? 'manipulation' : 'none'\n });\n element.width = width;\n element.height = height;\n fabric.util.makeElementUnselectable(element);\n },\n\n /**\n * Copy the entire inline style from one element (fromEl) to another (toEl)\n * @private\n * @param {Element} fromEl Element style is copied from\n * @param {Element} toEl Element copied style is applied to\n */\n _copyCanvasStyle: function (fromEl, toEl) {\n toEl.style.cssText = fromEl.style.cssText;\n },\n\n /**\n * Returns context of canvas where object selection is drawn\n * @return {CanvasRenderingContext2D}\n */\n getSelectionContext: function() {\n return this.contextTop;\n },\n\n /**\n * Returns <canvas> element on which object selection is drawn\n * @return {HTMLCanvasElement}\n */\n getSelectionElement: function () {\n return this.upperCanvasEl;\n },\n\n /**\n * Returns currently active object\n * @return {fabric.Object} active object\n */\n getActiveObject: function () {\n return this._activeObject;\n },\n\n /**\n * Returns an array with the current selected objects\n * @return {fabric.Object} active object\n */\n getActiveObjects: function () {\n var active = this._activeObject;\n if (active) {\n if (active.type === 'activeSelection' && active._objects) {\n return active._objects.slice(0);\n }\n else {\n return [active];\n }\n }\n return [];\n },\n\n /**\n * @private\n * @param {fabric.Object} obj Object that was removed\n */\n _onObjectRemoved: function(obj) {\n // removing active object should fire \"selection:cleared\" events\n if (obj === this._activeObject) {\n this.fire('before:selection:cleared', { target: obj });\n this._discardActiveObject();\n this.fire('selection:cleared', { target: obj });\n obj.fire('deselected');\n }\n if (obj === this._hoveredTarget){\n this._hoveredTarget = null;\n this._hoveredTargets = [];\n }\n this.callSuper('_onObjectRemoved', obj);\n },\n\n /**\n * @private\n * Compares the old activeObject with the current one and fires correct events\n * @param {fabric.Object} obj old activeObject\n */\n _fireSelectionEvents: function(oldObjects, e) {\n var somethingChanged = false, objects = this.getActiveObjects(),\n added = [], removed = [], opt = { e: e };\n oldObjects.forEach(function(oldObject) {\n if (objects.indexOf(oldObject) === -1) {\n somethingChanged = true;\n oldObject.fire('deselected', opt);\n removed.push(oldObject);\n }\n });\n objects.forEach(function(object) {\n if (oldObjects.indexOf(object) === -1) {\n somethingChanged = true;\n object.fire('selected', opt);\n added.push(object);\n }\n });\n if (oldObjects.length > 0 && objects.length > 0) {\n opt.selected = added;\n opt.deselected = removed;\n // added for backward compatibility\n opt.updated = added[0] || removed[0];\n opt.target = this._activeObject;\n somethingChanged && this.fire('selection:updated', opt);\n }\n else if (objects.length > 0) {\n opt.selected = added;\n // added for backward compatibility\n opt.target = this._activeObject;\n this.fire('selection:created', opt);\n }\n else if (oldObjects.length > 0) {\n opt.deselected = removed;\n this.fire('selection:cleared', opt);\n }\n },\n\n /**\n * Sets given object as the only active object on canvas\n * @param {fabric.Object} object Object to set as an active one\n * @param {Event} [e] Event (passed along when firing \"object:selected\")\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n setActiveObject: function (object, e) {\n var currentActives = this.getActiveObjects();\n this._setActiveObject(object, e);\n this._fireSelectionEvents(currentActives, e);\n return this;\n },\n\n /**\n * @private\n * @param {Object} object to set as active\n * @param {Event} [e] Event (passed along when firing \"object:selected\")\n * @return {Boolean} true if the selection happened\n */\n _setActiveObject: function(object, e) {\n if (this._activeObject === object) {\n return false;\n }\n if (!this._discardActiveObject(e, object)) {\n return false;\n }\n if (object.onSelect({ e: e })) {\n return false;\n }\n this._activeObject = object;\n return true;\n },\n\n /**\n * @private\n */\n _discardActiveObject: function(e, object) {\n var obj = this._activeObject;\n if (obj) {\n // onDeselect return TRUE to cancel selection;\n if (obj.onDeselect({ e: e, object: object })) {\n return false;\n }\n this._activeObject = null;\n }\n return true;\n },\n\n /**\n * Discards currently active object and fire events. If the function is called by fabric\n * as a consequence of a mouse event, the event is passed as a parameter and\n * sent to the fire function for the custom events. When used as a method the\n * e param does not have any application.\n * @param {event} e\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n discardActiveObject: function (e) {\n var currentActives = this.getActiveObjects(), activeObject = this.getActiveObject();\n if (currentActives.length) {\n this.fire('before:selection:cleared', { target: activeObject, e: e });\n }\n this._discardActiveObject(e);\n this._fireSelectionEvents(currentActives, e);\n return this;\n },\n\n /**\n * Clears a canvas element and removes all event listeners\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n dispose: function () {\n var wrapper = this.wrapperEl;\n this.removeListeners();\n wrapper.removeChild(this.upperCanvasEl);\n wrapper.removeChild(this.lowerCanvasEl);\n this.contextCache = null;\n this.contextTop = null;\n ['upperCanvasEl', 'cacheCanvasEl'].forEach((function(element) {\n fabric.util.cleanUpJsdomNode(this[element]);\n this[element] = undefined;\n }).bind(this));\n if (wrapper.parentNode) {\n wrapper.parentNode.replaceChild(this.lowerCanvasEl, this.wrapperEl);\n }\n delete this.wrapperEl;\n fabric.StaticCanvas.prototype.dispose.call(this);\n return this;\n },\n\n /**\n * Clears all contexts (background, main, top) of an instance\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n clear: function () {\n // this.discardActiveGroup();\n this.discardActiveObject();\n this.clearContext(this.contextTop);\n return this.callSuper('clear');\n },\n\n /**\n * Draws objects' controls (borders/controls)\n * @param {CanvasRenderingContext2D} ctx Context to render controls on\n */\n drawControls: function(ctx) {\n var activeObject = this._activeObject;\n\n if (activeObject) {\n activeObject._renderControls(ctx);\n }\n },\n\n /**\n * @private\n */\n _toObject: function(instance, methodName, propertiesToInclude) {\n //If the object is part of the current selection group, it should\n //be transformed appropriately\n //i.e. it should be serialised as it would appear if the selection group\n //were to be destroyed.\n var originalProperties = this._realizeGroupTransformOnObject(instance),\n object = this.callSuper('_toObject', instance, methodName, propertiesToInclude);\n //Undo the damage we did by changing all of its properties\n this._unwindGroupTransformOnObject(instance, originalProperties);\n return object;\n },\n\n /**\n * Realises an object's group transformation on it\n * @private\n * @param {fabric.Object} [instance] the object to transform (gets mutated)\n * @returns the original values of instance which were changed\n */\n _realizeGroupTransformOnObject: function(instance) {\n if (instance.group && instance.group.type === 'activeSelection' && this._activeObject === instance.group) {\n var layoutProps = ['angle', 'flipX', 'flipY', 'left', 'scaleX', 'scaleY', 'skewX', 'skewY', 'top'];\n //Copy all the positionally relevant properties across now\n var originalValues = {};\n layoutProps.forEach(function(prop) {\n originalValues[prop] = instance[prop];\n });\n this._activeObject.realizeTransform(instance);\n return originalValues;\n }\n else {\n return null;\n }\n },\n\n /**\n * Restores the changed properties of instance\n * @private\n * @param {fabric.Object} [instance] the object to un-transform (gets mutated)\n * @param {Object} [originalValues] the original values of instance, as returned by _realizeGroupTransformOnObject\n */\n _unwindGroupTransformOnObject: function(instance, originalValues) {\n if (originalValues) {\n instance.set(originalValues);\n }\n },\n\n /**\n * @private\n */\n _setSVGObject: function(markup, instance, reviver) {\n //If the object is in a selection group, simulate what would happen to that\n //object when the group is deselected\n var originalProperties = this._realizeGroupTransformOnObject(instance);\n this.callSuper('_setSVGObject', markup, instance, reviver);\n this._unwindGroupTransformOnObject(instance, originalProperties);\n },\n\n setViewportTransform: function (vpt) {\n if (this.renderOnAddRemove && this._activeObject && this._activeObject.isEditing) {\n this._activeObject.clearContextTop();\n }\n fabric.StaticCanvas.prototype.setViewportTransform.call(this, vpt);\n }\n });\n\n // copying static properties manually to work around Opera's bug,\n // where \"prototype\" property is enumerable and overrides existing prototype\n for (var prop in fabric.StaticCanvas) {\n if (prop !== 'prototype') {\n fabric.Canvas[prop] = fabric.StaticCanvas[prop];\n }\n }\n})();\n\n\n(function() {\n\n var addListener = fabric.util.addListener,\n removeListener = fabric.util.removeListener,\n RIGHT_CLICK = 3, MIDDLE_CLICK = 2, LEFT_CLICK = 1,\n addEventOptions = { passive: false };\n\n function checkClick(e, value) {\n return e.button && (e.button === value - 1);\n }\n\n fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * Contains the id of the touch event that owns the fabric transform\n * @type Number\n * @private\n */\n mainTouchId: null,\n\n /**\n * Adds mouse listeners to canvas\n * @private\n */\n _initEventListeners: function () {\n // in case we initialized the class twice. This should not happen normally\n // but in some kind of applications where the canvas element may be changed\n // this is a workaround to having double listeners.\n this.removeListeners();\n this._bindEvents();\n this.addOrRemove(addListener, 'add');\n },\n\n /**\n * return an event prefix pointer or mouse.\n * @private\n */\n _getEventPrefix: function () {\n return this.enablePointerEvents ? 'pointer' : 'mouse';\n },\n\n addOrRemove: function(functor, eventjsFunctor) {\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n functor(fabric.window, 'resize', this._onResize);\n functor(canvasElement, eventTypePrefix + 'down', this._onMouseDown);\n functor(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n functor(canvasElement, eventTypePrefix + 'out', this._onMouseOut);\n functor(canvasElement, eventTypePrefix + 'enter', this._onMouseEnter);\n functor(canvasElement, 'wheel', this._onMouseWheel);\n functor(canvasElement, 'contextmenu', this._onContextMenu);\n functor(canvasElement, 'dblclick', this._onDoubleClick);\n functor(canvasElement, 'dragover', this._onDragOver);\n functor(canvasElement, 'dragenter', this._onDragEnter);\n functor(canvasElement, 'dragleave', this._onDragLeave);\n functor(canvasElement, 'drop', this._onDrop);\n if (!this.enablePointerEvents) {\n functor(canvasElement, 'touchstart', this._onTouchStart, addEventOptions);\n }\n if (typeof eventjs !== 'undefined' && eventjsFunctor in eventjs) {\n eventjs[eventjsFunctor](canvasElement, 'gesture', this._onGesture);\n eventjs[eventjsFunctor](canvasElement, 'drag', this._onDrag);\n eventjs[eventjsFunctor](canvasElement, 'orientation', this._onOrientationChange);\n eventjs[eventjsFunctor](canvasElement, 'shake', this._onShake);\n eventjs[eventjsFunctor](canvasElement, 'longpress', this._onLongPress);\n }\n },\n\n /**\n * Removes all event listeners\n */\n removeListeners: function() {\n this.addOrRemove(removeListener, 'remove');\n // if you dispose on a mouseDown, before mouse up, you need to clean document to...\n var eventTypePrefix = this._getEventPrefix();\n removeListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n removeListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n removeListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n removeListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n },\n\n /**\n * @private\n */\n _bindEvents: function() {\n if (this.eventsBound) {\n // for any reason we pass here twice we do not want to bind events twice.\n return;\n }\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onTouchStart = this._onTouchStart.bind(this);\n this._onMouseMove = this._onMouseMove.bind(this);\n this._onMouseUp = this._onMouseUp.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onResize = this._onResize.bind(this);\n this._onGesture = this._onGesture.bind(this);\n this._onDrag = this._onDrag.bind(this);\n this._onShake = this._onShake.bind(this);\n this._onLongPress = this._onLongPress.bind(this);\n this._onOrientationChange = this._onOrientationChange.bind(this);\n this._onMouseWheel = this._onMouseWheel.bind(this);\n this._onMouseOut = this._onMouseOut.bind(this);\n this._onMouseEnter = this._onMouseEnter.bind(this);\n this._onContextMenu = this._onContextMenu.bind(this);\n this._onDoubleClick = this._onDoubleClick.bind(this);\n this._onDragOver = this._onDragOver.bind(this);\n this._onDragEnter = this._simpleEventHandler.bind(this, 'dragenter');\n this._onDragLeave = this._simpleEventHandler.bind(this, 'dragleave');\n this._onDrop = this._simpleEventHandler.bind(this, 'drop');\n this.eventsBound = true;\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js gesture\n * @param {Event} [self] Inner Event object\n */\n _onGesture: function(e, self) {\n this.__onTransformGesture && this.__onTransformGesture(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js drag\n * @param {Event} [self] Inner Event object\n */\n _onDrag: function(e, self) {\n this.__onDrag && this.__onDrag(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on wheel event\n */\n _onMouseWheel: function(e) {\n this.__onMouseWheel(e);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseOut: function(e) {\n var target = this._hoveredTarget;\n this.fire('mouse:out', { target: target, e: e });\n this._hoveredTarget = null;\n target && target.fire('mouseout', { e: e });\n\n var _this = this;\n this._hoveredTargets.forEach(function(_target){\n _this.fire('mouse:out', { target: target, e: e });\n _target && target.fire('mouseout', { e: e });\n });\n this._hoveredTargets = [];\n\n if (this._iTextInstances) {\n this._iTextInstances.forEach(function(obj) {\n if (obj.isEditing) {\n obj.hiddenTextarea.focus();\n }\n });\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseenter\n */\n _onMouseEnter: function(e) {\n // This find target and consequent 'mouse:over' is used to\n // clear old instances on hovered target.\n // calling findTarget has the side effect of killing target.__corner.\n // as a short term fix we are not firing this if we are currently transforming.\n // as a long term fix we need to separate the action of finding a target with the\n // side effects we added to it.\n if (!this._currentTransform && !this.findTarget(e)) {\n this.fire('mouse:over', { target: null, e: e });\n this._hoveredTarget = null;\n this._hoveredTargets = [];\n }\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js orientation change\n * @param {Event} [self] Inner Event object\n */\n _onOrientationChange: function(e, self) {\n this.__onOrientationChange && this.__onOrientationChange(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n * @param {Event} [self] Inner Event object\n */\n _onShake: function(e, self) {\n this.__onShake && this.__onShake(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n * @param {Event} [self] Inner Event object\n */\n _onLongPress: function(e, self) {\n this.__onLongPress && this.__onLongPress(e, self);\n },\n\n /**\n * prevent default to allow drop event to be fired\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n */\n _onDragOver: function(e) {\n e.preventDefault();\n var target = this._simpleEventHandler('dragover', e);\n this._fireEnterLeaveEvents(target, e);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onContextMenu: function (e) {\n if (this.stopContextMenu) {\n e.stopPropagation();\n e.preventDefault();\n }\n return false;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onDoubleClick: function (e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'dblclick');\n this._resetTransformEventData(e);\n },\n\n /**\n * Return a the id of an event.\n * returns either the pointerId or the identifier or 0 for the mouse event\n * @private\n * @param {Event} evt Event object\n */\n getPointerId: function(evt) {\n var changedTouches = evt.changedTouches;\n\n if (changedTouches) {\n return changedTouches[0] && changedTouches[0].identifier;\n }\n\n if (this.enablePointerEvents) {\n return evt.pointerId;\n }\n\n return -1;\n },\n\n /**\n * Determines if an event has the id of the event that is considered main\n * @private\n * @param {evt} event Event object\n */\n _isMainEvent: function(evt) {\n if (evt.isPrimary === true) {\n return true;\n }\n if (evt.isPrimary === false) {\n return false;\n }\n if (evt.type === 'touchend' && evt.touches.length === 0) {\n return true;\n }\n if (evt.changedTouches) {\n return evt.changedTouches[0].identifier === this.mainTouchId;\n }\n return true;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onTouchStart: function(e) {\n e.preventDefault();\n if (this.mainTouchId === null) {\n this.mainTouchId = this.getPointerId(e);\n }\n this.__onMouseDown(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n addListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n addListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n // Unbind mousedown to prevent double triggers from touch devices\n removeListener(canvasElement, eventTypePrefix + 'down', this._onMouseDown);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseDown: function (e) {\n this.__onMouseDown(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n removeListener(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n addListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n addListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onTouchEnd: function(e) {\n if (e.touches.length > 0) {\n // if there are still touches stop here\n return;\n }\n this.__onMouseUp(e);\n this._resetTransformEventData();\n this.mainTouchId = null;\n var eventTypePrefix = this._getEventPrefix();\n removeListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n removeListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n var _this = this;\n if (this._willAddMouseDown) {\n clearTimeout(this._willAddMouseDown);\n }\n this._willAddMouseDown = setTimeout(function() {\n // Wait 400ms before rebinding mousedown to prevent double triggers\n // from touch devices\n addListener(_this.upperCanvasEl, eventTypePrefix + 'down', _this._onMouseDown);\n _this._willAddMouseDown = 0;\n }, 400);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n _onMouseUp: function (e) {\n this.__onMouseUp(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n if (this._isMainEvent(e)) {\n removeListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n removeListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n addListener(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n _onMouseMove: function (e) {\n !this.allowTouchScrolling && e.preventDefault && e.preventDefault();\n this.__onMouseMove(e);\n },\n\n /**\n * @private\n */\n _onResize: function () {\n this.calcOffset();\n },\n\n /**\n * Decides whether the canvas should be redrawn in mouseup and mousedown events.\n * @private\n * @param {Object} target\n */\n _shouldRender: function(target) {\n var activeObject = this._activeObject;\n\n if (\n !!activeObject !== !!target ||\n (activeObject && target && (activeObject !== target))\n ) {\n // this covers: switch of target, from target to no target, selection of target\n // multiSelection with key and mouse\n return true;\n }\n else if (activeObject && activeObject.isEditing) {\n // if we mouse up/down over a editing textbox a cursor change,\n // there is no need to re render\n return false;\n }\n return false;\n },\n\n /**\n * Method that defines the actions when mouse is released on canvas.\n * The method resets the currentTransform parameters, store the image corner\n * position in the image object and render the canvas on top.\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n __onMouseUp: function (e) {\n var target, transform = this._currentTransform,\n groupSelector = this._groupSelector, shouldRender = false,\n isClick = (!groupSelector || (groupSelector.left === 0 && groupSelector.top === 0));\n this._cacheTransformEventData(e);\n target = this._target;\n this._handleEvent(e, 'up:before');\n // if right/middle click just fire events and return\n // target undefined will make the _handleEvent search the target\n if (checkClick(e, RIGHT_CLICK)) {\n if (this.fireRightClick) {\n this._handleEvent(e, 'up', RIGHT_CLICK, isClick);\n }\n return;\n }\n\n if (checkClick(e, MIDDLE_CLICK)) {\n if (this.fireMiddleClick) {\n this._handleEvent(e, 'up', MIDDLE_CLICK, isClick);\n }\n this._resetTransformEventData();\n return;\n }\n\n if (this.isDrawingMode && this._isCurrentlyDrawing) {\n this._onMouseUpInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n if (transform) {\n this._finalizeCurrentTransform(e);\n shouldRender = transform.actionPerformed;\n }\n if (!isClick) {\n var targetWasActive = target === this._activeObject;\n this._maybeGroupObjects(e);\n if (!shouldRender) {\n shouldRender = (\n this._shouldRender(target) ||\n (!targetWasActive && target === this._activeObject)\n );\n }\n }\n if (target) {\n var corner = target._findTargetCorner(\n this.getPointer(e, true),\n fabric.util.isTouchEvent(e)\n );\n var control = target.controls[corner],\n mouseUpHandler = control && control.getMouseUpHandler(e, target, control);\n if (mouseUpHandler) {\n var pointer = this.getPointer(e);\n mouseUpHandler(e, transform, pointer.x, pointer.y);\n }\n target.isMoving = false;\n }\n this._setCursorFromEvent(e, target);\n this._handleEvent(e, 'up', LEFT_CLICK, isClick);\n this._groupSelector = null;\n this._currentTransform = null;\n // reset the target information about which corner is selected\n target && (target.__corner = 0);\n if (shouldRender) {\n this.requestRenderAll();\n }\n else if (!isClick) {\n this.renderTop();\n }\n },\n\n /**\n * @private\n * Handle event firing for target and subtargets\n * @param {Event} e event from mouse\n * @param {String} eventType event to fire (up, down or move)\n * @return {Fabric.Object} target return the the target found, for internal reasons.\n */\n _simpleEventHandler: function(eventType, e) {\n var target = this.findTarget(e),\n targets = this.targets,\n options = {\n e: e,\n target: target,\n subTargets: targets,\n };\n this.fire(eventType, options);\n target && target.fire(eventType, options);\n if (!targets) {\n return target;\n }\n for (var i = 0; i < targets.length; i++) {\n targets[i].fire(eventType, options);\n }\n return target;\n },\n\n /**\n * @private\n * Handle event firing for target and subtargets\n * @param {Event} e event from mouse\n * @param {String} eventType event to fire (up, down or move)\n * @param {fabric.Object} targetObj receiving event\n * @param {Number} [button] button used in the event 1 = left, 2 = middle, 3 = right\n * @param {Boolean} isClick for left button only, indicates that the mouse up happened without move.\n */\n _handleEvent: function(e, eventType, button, isClick) {\n var target = this._target,\n targets = this.targets || [],\n options = {\n e: e,\n target: target,\n subTargets: targets,\n button: button || LEFT_CLICK,\n isClick: isClick || false,\n pointer: this._pointer,\n absolutePointer: this._absolutePointer,\n transform: this._currentTransform\n };\n if (eventType === 'up') {\n options.currentTarget = this.findTarget(e);\n options.currentSubTargets = this.targets;\n }\n this.fire('mouse:' + eventType, options);\n target && target.fire('mouse' + eventType, options);\n for (var i = 0; i < targets.length; i++) {\n targets[i].fire('mouse' + eventType, options);\n }\n },\n\n /**\n * @private\n * @param {Event} e send the mouse event that generate the finalize down, so it can be used in the event\n */\n _finalizeCurrentTransform: function(e) {\n\n var transform = this._currentTransform,\n target = transform.target,\n eventName,\n options = {\n e: e,\n target: target,\n transform: transform,\n action: transform.action,\n };\n\n if (target._scaling) {\n target._scaling = false;\n }\n\n target.setCoords();\n\n if (transform.actionPerformed || (this.stateful && target.hasStateChanged())) {\n if (transform.actionPerformed) {\n // this is not friendly to the new control api.\n // is deprecated.\n eventName = this._addEventOptions(options, transform);\n this._fire(eventName, options);\n }\n this._fire('modified', options);\n }\n },\n\n /**\n * Mutate option object in order to add by property and give back the event name.\n * @private\n * @deprecated since 4.2.0\n * @param {Object} options to mutate\n * @param {Object} transform to inspect action from\n */\n _addEventOptions: function(options, transform) {\n // we can probably add more details at low cost\n // scale change, rotation changes, translation changes\n var eventName, by;\n switch (transform.action) {\n case 'scaleX':\n eventName = 'scaled';\n by = 'x';\n break;\n case 'scaleY':\n eventName = 'scaled';\n by = 'y';\n break;\n case 'skewX':\n eventName = 'skewed';\n by = 'x';\n break;\n case 'skewY':\n eventName = 'skewed';\n by = 'y';\n break;\n case 'scale':\n eventName = 'scaled';\n by = 'equally';\n break;\n case 'rotate':\n eventName = 'rotated';\n break;\n case 'drag':\n eventName = 'moved';\n break;\n }\n options.by = by;\n return eventName;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseDownInDrawingMode: function(e) {\n this._isCurrentlyDrawing = true;\n if (this.getActiveObject()) {\n this.discardActiveObject(e).requestRenderAll();\n }\n var pointer = this.getPointer(e);\n this.freeDrawingBrush.onMouseDown(pointer, { e: e, pointer: pointer });\n this._handleEvent(e, 'down');\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n _onMouseMoveInDrawingMode: function(e) {\n if (this._isCurrentlyDrawing) {\n var pointer = this.getPointer(e);\n this.freeDrawingBrush.onMouseMove(pointer, { e: e, pointer: pointer });\n }\n this.setCursor(this.freeDrawingCursor);\n this._handleEvent(e, 'move');\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n _onMouseUpInDrawingMode: function(e) {\n var pointer = this.getPointer(e);\n this._isCurrentlyDrawing = this.freeDrawingBrush.onMouseUp({ e: e, pointer: pointer });\n this._handleEvent(e, 'up');\n },\n\n /**\n * Method that defines the actions when mouse is clicked on canvas.\n * The method inits the currentTransform parameters and renders all the\n * canvas so the current image can be placed on the top canvas and the rest\n * in on the container one.\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n __onMouseDown: function (e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'down:before');\n var target = this._target;\n // if right click just fire events\n if (checkClick(e, RIGHT_CLICK)) {\n if (this.fireRightClick) {\n this._handleEvent(e, 'down', RIGHT_CLICK);\n }\n return;\n }\n\n if (checkClick(e, MIDDLE_CLICK)) {\n if (this.fireMiddleClick) {\n this._handleEvent(e, 'down', MIDDLE_CLICK);\n }\n return;\n }\n\n if (this.isDrawingMode) {\n this._onMouseDownInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n\n // ignore if some object is being transformed at this moment\n if (this._currentTransform) {\n return;\n }\n\n var pointer = this._pointer;\n // save pointer for check in __onMouseUp event\n this._previousPointer = pointer;\n var shouldRender = this._shouldRender(target),\n shouldGroup = this._shouldGroup(e, target);\n if (this._shouldClearSelection(e, target)) {\n this.discardActiveObject(e);\n }\n else if (shouldGroup) {\n this._handleGrouping(e, target);\n target = this._activeObject;\n }\n\n if (this.selection && (!target ||\n (!target.selectable && !target.isEditing && target !== this._activeObject))) {\n this._groupSelector = {\n ex: pointer.x,\n ey: pointer.y,\n top: 0,\n left: 0\n };\n }\n\n if (target) {\n var alreadySelected = target === this._activeObject;\n if (target.selectable) {\n this.setActiveObject(target, e);\n }\n var corner = target._findTargetCorner(\n this.getPointer(e, true),\n fabric.util.isTouchEvent(e)\n );\n target.__corner = corner;\n if (target === this._activeObject && (corner || !shouldGroup)) {\n this._setupCurrentTransform(e, target, alreadySelected);\n var control = target.controls[corner],\n pointer = this.getPointer(e),\n mouseDownHandler = control && control.getMouseDownHandler(e, target, control);\n if (mouseDownHandler) {\n mouseDownHandler(e, this._currentTransform, pointer.x, pointer.y);\n }\n }\n }\n this._handleEvent(e, 'down');\n // we must renderAll so that we update the visuals\n (shouldRender || shouldGroup) && this.requestRenderAll();\n },\n\n /**\n * reset cache form common information needed during event processing\n * @private\n */\n _resetTransformEventData: function() {\n this._target = null;\n this._pointer = null;\n this._absolutePointer = null;\n },\n\n /**\n * Cache common information needed during event processing\n * @private\n * @param {Event} e Event object fired on event\n */\n _cacheTransformEventData: function(e) {\n // reset in order to avoid stale caching\n this._resetTransformEventData();\n this._pointer = this.getPointer(e, true);\n this._absolutePointer = this.restorePointerVpt(this._pointer);\n this._target = this._currentTransform ? this._currentTransform.target : this.findTarget(e) || null;\n },\n\n /**\n * @private\n */\n _beforeTransform: function(e) {\n var t = this._currentTransform;\n this.stateful && t.target.saveState();\n this.fire('before:transform', {\n e: e,\n transform: t,\n });\n },\n\n /**\n * Method that defines the actions when mouse is hovering the canvas.\n * The currentTransform parameter will define whether the user is rotating/scaling/translating\n * an image or neither of them (only hovering). A group selection is also possible and would cancel\n * all any other type of action.\n * In case of an image transformation only the top canvas will be rendered.\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n __onMouseMove: function (e) {\n this._handleEvent(e, 'move:before');\n this._cacheTransformEventData(e);\n var target, pointer;\n\n if (this.isDrawingMode) {\n this._onMouseMoveInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n\n var groupSelector = this._groupSelector;\n\n // We initially clicked in an empty area, so we draw a box for multiple selection\n if (groupSelector) {\n pointer = this._pointer;\n\n groupSelector.left = pointer.x - groupSelector.ex;\n groupSelector.top = pointer.y - groupSelector.ey;\n\n this.renderTop();\n }\n else if (!this._currentTransform) {\n target = this.findTarget(e) || null;\n this._setCursorFromEvent(e, target);\n this._fireOverOutEvents(target, e);\n }\n else {\n this._transformObject(e);\n }\n this._handleEvent(e, 'move');\n this._resetTransformEventData();\n },\n\n /**\n * Manage the mouseout, mouseover events for the fabric object on the canvas\n * @param {Fabric.Object} target the target where the target from the mousemove event\n * @param {Event} e Event object fired on mousemove\n * @private\n */\n _fireOverOutEvents: function(target, e) {\n var _hoveredTarget = this._hoveredTarget,\n _hoveredTargets = this._hoveredTargets, targets = this.targets,\n length = Math.max(_hoveredTargets.length, targets.length);\n\n this.fireSyntheticInOutEvents(target, e, {\n oldTarget: _hoveredTarget,\n evtOut: 'mouseout',\n canvasEvtOut: 'mouse:out',\n evtIn: 'mouseover',\n canvasEvtIn: 'mouse:over',\n });\n for (var i = 0; i < length; i++){\n this.fireSyntheticInOutEvents(targets[i], e, {\n oldTarget: _hoveredTargets[i],\n evtOut: 'mouseout',\n evtIn: 'mouseover',\n });\n }\n this._hoveredTarget = target;\n this._hoveredTargets = this.targets.concat();\n },\n\n /**\n * Manage the dragEnter, dragLeave events for the fabric objects on the canvas\n * @param {Fabric.Object} target the target where the target from the onDrag event\n * @param {Event} e Event object fired on ondrag\n * @private\n */\n _fireEnterLeaveEvents: function(target, e) {\n var _draggedoverTarget = this._draggedoverTarget,\n _hoveredTargets = this._hoveredTargets, targets = this.targets,\n length = Math.max(_hoveredTargets.length, targets.length);\n\n this.fireSyntheticInOutEvents(target, e, {\n oldTarget: _draggedoverTarget,\n evtOut: 'dragleave',\n evtIn: 'dragenter',\n });\n for (var i = 0; i < length; i++) {\n this.fireSyntheticInOutEvents(targets[i], e, {\n oldTarget: _hoveredTargets[i],\n evtOut: 'dragleave',\n evtIn: 'dragenter',\n });\n }\n this._draggedoverTarget = target;\n },\n\n /**\n * Manage the synthetic in/out events for the fabric objects on the canvas\n * @param {Fabric.Object} target the target where the target from the supported events\n * @param {Event} e Event object fired\n * @param {Object} config configuration for the function to work\n * @param {String} config.targetName property on the canvas where the old target is stored\n * @param {String} [config.canvasEvtOut] name of the event to fire at canvas level for out\n * @param {String} config.evtOut name of the event to fire for out\n * @param {String} [config.canvasEvtIn] name of the event to fire at canvas level for in\n * @param {String} config.evtIn name of the event to fire for in\n * @private\n */\n fireSyntheticInOutEvents: function(target, e, config) {\n var inOpt, outOpt, oldTarget = config.oldTarget, outFires, inFires,\n targetChanged = oldTarget !== target, canvasEvtIn = config.canvasEvtIn, canvasEvtOut = config.canvasEvtOut;\n if (targetChanged) {\n inOpt = { e: e, target: target, previousTarget: oldTarget };\n outOpt = { e: e, target: oldTarget, nextTarget: target };\n }\n inFires = target && targetChanged;\n outFires = oldTarget && targetChanged;\n if (outFires) {\n canvasEvtOut && this.fire(canvasEvtOut, outOpt);\n oldTarget.fire(config.evtOut, outOpt);\n }\n if (inFires) {\n canvasEvtIn && this.fire(canvasEvtIn, inOpt);\n target.fire(config.evtIn, inOpt);\n }\n },\n\n /**\n * Method that defines actions when an Event Mouse Wheel\n * @param {Event} e Event object fired on mouseup\n */\n __onMouseWheel: function(e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'wheel');\n this._resetTransformEventData();\n },\n\n /**\n * @private\n * @param {Event} e Event fired on mousemove\n */\n _transformObject: function(e) {\n var pointer = this.getPointer(e),\n transform = this._currentTransform;\n\n transform.reset = false;\n transform.target.isMoving = true;\n transform.shiftKey = e.shiftKey;\n transform.altKey = e[this.centeredKey];\n\n this._performTransformAction(e, transform, pointer);\n transform.actionPerformed && this.requestRenderAll();\n },\n\n /**\n * @private\n */\n _performTransformAction: function(e, transform, pointer) {\n var x = pointer.x,\n y = pointer.y,\n action = transform.action,\n actionPerformed = false,\n actionHandler = transform.actionHandler;\n // this object could be created from the function in the control handlers\n\n\n if (actionHandler) {\n actionPerformed = actionHandler(e, transform, x, y);\n }\n if (action === 'drag' && actionPerformed) {\n this.setCursor(transform.target.moveCursor || this.moveCursor);\n }\n transform.actionPerformed = transform.actionPerformed || actionPerformed;\n },\n\n /**\n * @private\n */\n _fire: fabric.controlsUtils.fireEvent,\n\n /**\n * Sets the cursor depending on where the canvas is being hovered.\n * Note: very buggy in Opera\n * @param {Event} e Event object\n * @param {Object} target Object that the mouse is hovering, if so.\n */\n _setCursorFromEvent: function (e, target) {\n if (!target) {\n this.setCursor(this.defaultCursor);\n return false;\n }\n var hoverCursor = target.hoverCursor || this.hoverCursor,\n activeSelection = this._activeObject && this._activeObject.type === 'activeSelection' ?\n this._activeObject : null,\n // only show proper corner when group selection is not active\n corner = (!activeSelection || !activeSelection.contains(target))\n // here we call findTargetCorner always with undefined for the touch parameter.\n // we assume that if you are using a cursor you do not need to interact with\n // the bigger touch area.\n && target._findTargetCorner(this.getPointer(e, true));\n\n if (!corner) {\n if (target.subTargetCheck){\n // hoverCursor should come from top-most subTarget,\n // so we walk the array backwards\n this.targets.concat().reverse().map(function(_target){\n hoverCursor = _target.hoverCursor || hoverCursor;\n });\n }\n this.setCursor(hoverCursor);\n }\n else {\n this.setCursor(this.getCornerCursor(corner, target, e));\n }\n },\n\n /**\n * @private\n */\n getCornerCursor: function(corner, target, e) {\n var control = target.controls[corner];\n return control.cursorStyleHandler(e, control, target);\n }\n });\n})();\n\n\n(function() {\n\n var min = Math.min,\n max = Math.max;\n\n fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n * @return {Boolean}\n */\n _shouldGroup: function(e, target) {\n var activeObject = this._activeObject;\n return activeObject && this._isSelectionKeyPressed(e) && target && target.selectable && this.selection &&\n (activeObject !== target || activeObject.type === 'activeSelection') && !target.onSelect({ e: e });\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _handleGrouping: function (e, target) {\n var activeObject = this._activeObject;\n // avoid multi select when shift click on a corner\n if (activeObject.__corner) {\n return;\n }\n if (target === activeObject) {\n // if it's a group, find target again, using activeGroup objects\n target = this.findTarget(e, true);\n // if even object is not found or we are on activeObjectCorner, bail out\n if (!target || !target.selectable) {\n return;\n }\n }\n if (activeObject && activeObject.type === 'activeSelection') {\n this._updateActiveSelection(target, e);\n }\n else {\n this._createActiveSelection(target, e);\n }\n },\n\n /**\n * @private\n */\n _updateActiveSelection: function(target, e) {\n var activeSelection = this._activeObject,\n currentActiveObjects = activeSelection._objects.slice(0);\n if (activeSelection.contains(target)) {\n activeSelection.removeWithUpdate(target);\n this._hoveredTarget = target;\n this._hoveredTargets = this.targets.concat();\n if (activeSelection.size() === 1) {\n // activate last remaining object\n this._setActiveObject(activeSelection.item(0), e);\n }\n }\n else {\n activeSelection.addWithUpdate(target);\n this._hoveredTarget = activeSelection;\n this._hoveredTargets = this.targets.concat();\n }\n this._fireSelectionEvents(currentActiveObjects, e);\n },\n\n /**\n * @private\n */\n _createActiveSelection: function(target, e) {\n var currentActives = this.getActiveObjects(), group = this._createGroup(target);\n this._hoveredTarget = group;\n // ISSUE 4115: should we consider subTargets here?\n // this._hoveredTargets = [];\n // this._hoveredTargets = this.targets.concat();\n this._setActiveObject(group, e);\n this._fireSelectionEvents(currentActives, e);\n },\n\n /**\n * @private\n * @param {Object} target\n */\n _createGroup: function(target) {\n var objects = this._objects,\n isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target),\n groupObjects = isActiveLower\n ? [this._activeObject, target]\n : [target, this._activeObject];\n this._activeObject.isEditing && this._activeObject.exitEditing();\n return new fabric.ActiveSelection(groupObjects, {\n canvas: this\n });\n },\n\n /**\n * @private\n * @param {Event} e mouse event\n */\n _groupSelectedObjects: function (e) {\n\n var group = this._collectObjects(e),\n aGroup;\n\n // do not create group for 1 element only\n if (group.length === 1) {\n this.setActiveObject(group[0], e);\n }\n else if (group.length > 1) {\n aGroup = new fabric.ActiveSelection(group.reverse(), {\n canvas: this\n });\n this.setActiveObject(aGroup, e);\n }\n },\n\n /**\n * @private\n */\n _collectObjects: function(e) {\n var group = [],\n currentObject,\n x1 = this._groupSelector.ex,\n y1 = this._groupSelector.ey,\n x2 = x1 + this._groupSelector.left,\n y2 = y1 + this._groupSelector.top,\n selectionX1Y1 = new fabric.Point(min(x1, x2), min(y1, y2)),\n selectionX2Y2 = new fabric.Point(max(x1, x2), max(y1, y2)),\n allowIntersect = !this.selectionFullyContained,\n isClick = x1 === x2 && y1 === y2;\n // we iterate reverse order to collect top first in case of click.\n for (var i = this._objects.length; i--; ) {\n currentObject = this._objects[i];\n\n if (!currentObject || !currentObject.selectable || !currentObject.visible) {\n continue;\n }\n\n if ((allowIntersect && currentObject.intersectsWithRect(selectionX1Y1, selectionX2Y2)) ||\n currentObject.isContainedWithinRect(selectionX1Y1, selectionX2Y2) ||\n (allowIntersect && currentObject.containsPoint(selectionX1Y1)) ||\n (allowIntersect && currentObject.containsPoint(selectionX2Y2))\n ) {\n group.push(currentObject);\n // only add one object if it's a click\n if (isClick) {\n break;\n }\n }\n }\n\n if (group.length > 1) {\n group = group.filter(function(object) {\n return !object.onSelect({ e: e });\n });\n }\n\n return group;\n },\n\n /**\n * @private\n */\n _maybeGroupObjects: function(e) {\n if (this.selection && this._groupSelector) {\n this._groupSelectedObjects(e);\n }\n this.setCursor(this.defaultCursor);\n // clear selection and current transformation\n this._groupSelector = null;\n }\n });\n\n})();\n\n\n(function () {\n fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Exports canvas element to a dataurl image. Note that when multiplier is used, cropping is scaled appropriately\n * @param {Object} [options] Options object\n * @param {String} [options.format=png] The format of the output image. Either \"jpeg\" or \"png\"\n * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.\n * @param {Number} [options.multiplier=1] Multiplier to scale by, to have consistent\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 2.0.0\n * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format\n * @see {@link http://jsfiddle.net/fabricjs/NfZVb/|jsFiddle demo}\n * @example Generate jpeg dataURL with lower quality\n * var dataURL = canvas.toDataURL({\n * format: 'jpeg',\n * quality: 0.8\n * });\n * @example Generate cropped png dataURL (clipping of canvas)\n * var dataURL = canvas.toDataURL({\n * format: 'png',\n * left: 100,\n * top: 100,\n * width: 200,\n * height: 200\n * });\n * @example Generate double scaled png dataURL\n * var dataURL = canvas.toDataURL({\n * format: 'png',\n * multiplier: 2\n * });\n */\n toDataURL: function (options) {\n options || (options = { });\n\n var format = options.format || 'png',\n quality = options.quality || 1,\n multiplier = (options.multiplier || 1) * (options.enableRetinaScaling ? this.getRetinaScaling() : 1),\n canvasEl = this.toCanvasElement(multiplier, options);\n return fabric.util.toDataURL(canvasEl, format, quality);\n },\n\n /**\n * Create a new HTMLCanvas element painted with the current canvas content.\n * No need to resize the actual one or repaint it.\n * Will transfer object ownership to a new canvas, paint it, and set everything back.\n * This is an intermediary step used to get to a dataUrl but also it is useful to\n * create quick image copies of a canvas without passing for the dataUrl string\n * @param {Number} [multiplier] a zoom factor.\n * @param {Object} [cropping] Cropping informations\n * @param {Number} [cropping.left] Cropping left offset.\n * @param {Number} [cropping.top] Cropping top offset.\n * @param {Number} [cropping.width] Cropping width.\n * @param {Number} [cropping.height] Cropping height.\n */\n toCanvasElement: function(multiplier, cropping) {\n multiplier = multiplier || 1;\n cropping = cropping || { };\n var scaledWidth = (cropping.width || this.width) * multiplier,\n scaledHeight = (cropping.height || this.height) * multiplier,\n zoom = this.getZoom(),\n originalWidth = this.width,\n originalHeight = this.height,\n newZoom = zoom * multiplier,\n vp = this.viewportTransform,\n translateX = (vp[4] - (cropping.left || 0)) * multiplier,\n translateY = (vp[5] - (cropping.top || 0)) * multiplier,\n originalInteractive = this.interactive,\n newVp = [newZoom, 0, 0, newZoom, translateX, translateY],\n originalRetina = this.enableRetinaScaling,\n canvasEl = fabric.util.createCanvasElement(),\n originalContextTop = this.contextTop;\n canvasEl.width = scaledWidth;\n canvasEl.height = scaledHeight;\n this.contextTop = null;\n this.enableRetinaScaling = false;\n this.interactive = false;\n this.viewportTransform = newVp;\n this.width = scaledWidth;\n this.height = scaledHeight;\n this.calcViewportBoundaries();\n this.renderCanvas(canvasEl.getContext('2d'), this._objects);\n this.viewportTransform = vp;\n this.width = originalWidth;\n this.height = originalHeight;\n this.calcViewportBoundaries();\n this.interactive = originalInteractive;\n this.enableRetinaScaling = originalRetina;\n this.contextTop = originalContextTop;\n return canvasEl;\n },\n });\n\n})();\n\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n /**\n * Populates canvas with data from the specified JSON.\n * JSON format must conform to the one of {@link fabric.Canvas#toJSON}\n * @param {String|Object} json JSON string or object\n * @param {Function} callback Callback, invoked when json is parsed\n * and corresponding objects (e.g: {@link fabric.Image})\n * are initialized\n * @param {Function} [reviver] Method for further parsing of JSON elements, called after each fabric object created.\n * @return {fabric.Canvas} instance\n * @chainable\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#deserialization}\n * @see {@link http://jsfiddle.net/fabricjs/fmgXt/|jsFiddle demo}\n * @example loadFromJSON\n * canvas.loadFromJSON(json, canvas.renderAll.bind(canvas));\n * @example loadFromJSON with reviver\n * canvas.loadFromJSON(json, canvas.renderAll.bind(canvas), function(o, object) {\n * // `o` = json object\n * // `object` = fabric.Object instance\n * // ... do some stuff ...\n * });\n */\n loadFromJSON: function (json, callback, reviver) {\n if (!json) {\n return;\n }\n\n // serialize if it wasn't already\n var serialized = (typeof json === 'string')\n ? JSON.parse(json)\n : fabric.util.object.clone(json);\n\n var _this = this,\n clipPath = serialized.clipPath,\n renderOnAddRemove = this.renderOnAddRemove;\n\n this.renderOnAddRemove = false;\n\n delete serialized.clipPath;\n\n this._enlivenObjects(serialized.objects, function (enlivenedObjects) {\n _this.clear();\n _this._setBgOverlay(serialized, function () {\n if (clipPath) {\n _this._enlivenObjects([clipPath], function (enlivenedCanvasClip) {\n _this.clipPath = enlivenedCanvasClip[0];\n _this.__setupCanvas.call(_this, serialized, enlivenedObjects, renderOnAddRemove, callback);\n });\n }\n else {\n _this.__setupCanvas.call(_this, serialized, enlivenedObjects, renderOnAddRemove, callback);\n }\n });\n }, reviver);\n return this;\n },\n\n /**\n * @private\n * @param {Object} serialized Object with background and overlay information\n * @param {Array} restored canvas objects\n * @param {Function} cached renderOnAddRemove callback\n * @param {Function} callback Invoked after all background and overlay images/patterns loaded\n */\n __setupCanvas: function(serialized, enlivenedObjects, renderOnAddRemove, callback) {\n var _this = this;\n enlivenedObjects.forEach(function(obj, index) {\n // we splice the array just in case some custom classes restored from JSON\n // will add more object to canvas at canvas init.\n _this.insertAt(obj, index);\n });\n this.renderOnAddRemove = renderOnAddRemove;\n // remove parts i cannot set as options\n delete serialized.objects;\n delete serialized.backgroundImage;\n delete serialized.overlayImage;\n delete serialized.background;\n delete serialized.overlay;\n // this._initOptions does too many things to just\n // call it. Normally loading an Object from JSON\n // create the Object instance. Here the Canvas is\n // already an instance and we are just loading things over it\n this._setOptions(serialized);\n this.renderAll();\n callback && callback();\n },\n\n /**\n * @private\n * @param {Object} serialized Object with background and overlay information\n * @param {Function} callback Invoked after all background and overlay images/patterns loaded\n */\n _setBgOverlay: function(serialized, callback) {\n var loaded = {\n backgroundColor: false,\n overlayColor: false,\n backgroundImage: false,\n overlayImage: false\n };\n\n if (!serialized.backgroundImage && !serialized.overlayImage && !serialized.background && !serialized.overlay) {\n callback && callback();\n return;\n }\n\n var cbIfLoaded = function () {\n if (loaded.backgroundImage && loaded.overlayImage && loaded.backgroundColor && loaded.overlayColor) {\n callback && callback();\n }\n };\n\n this.__setBgOverlay('backgroundImage', serialized.backgroundImage, loaded, cbIfLoaded);\n this.__setBgOverlay('overlayImage', serialized.overlayImage, loaded, cbIfLoaded);\n this.__setBgOverlay('backgroundColor', serialized.background, loaded, cbIfLoaded);\n this.__setBgOverlay('overlayColor', serialized.overlay, loaded, cbIfLoaded);\n },\n\n /**\n * @private\n * @param {String} property Property to set (backgroundImage, overlayImage, backgroundColor, overlayColor)\n * @param {(Object|String)} value Value to set\n * @param {Object} loaded Set loaded property to true if property is set\n * @param {Object} callback Callback function to invoke after property is set\n */\n __setBgOverlay: function(property, value, loaded, callback) {\n var _this = this;\n\n if (!value) {\n loaded[property] = true;\n callback && callback();\n return;\n }\n\n if (property === 'backgroundImage' || property === 'overlayImage') {\n fabric.util.enlivenObjects([value], function(enlivedObject){\n _this[property] = enlivedObject[0];\n loaded[property] = true;\n callback && callback();\n });\n }\n else {\n this['set' + fabric.util.string.capitalize(property, true)](value, function() {\n loaded[property] = true;\n callback && callback();\n });\n }\n },\n\n /**\n * @private\n * @param {Array} objects\n * @param {Function} callback\n * @param {Function} [reviver]\n */\n _enlivenObjects: function (objects, callback, reviver) {\n if (!objects || objects.length === 0) {\n callback && callback([]);\n return;\n }\n\n fabric.util.enlivenObjects(objects, function(enlivenedObjects) {\n callback && callback(enlivenedObjects);\n }, null, reviver);\n },\n\n /**\n * @private\n * @param {String} format\n * @param {Function} callback\n */\n _toDataURL: function (format, callback) {\n this.clone(function (clone) {\n callback(clone.toDataURL(format));\n });\n },\n\n /**\n * @private\n * @param {String} format\n * @param {Number} multiplier\n * @param {Function} callback\n */\n _toDataURLWithMultiplier: function (format, multiplier, callback) {\n this.clone(function (clone) {\n callback(clone.toDataURLWithMultiplier(format, multiplier));\n });\n },\n\n /**\n * Clones canvas instance\n * @param {Object} [callback] Receives cloned instance as a first argument\n * @param {Array} [properties] Array of properties to include in the cloned canvas and children\n */\n clone: function (callback, properties) {\n var data = JSON.stringify(this.toJSON(properties));\n this.cloneWithoutData(function(clone) {\n clone.loadFromJSON(data, function() {\n callback && callback(clone);\n });\n });\n },\n\n /**\n * Clones canvas instance without cloning existing data.\n * This essentially copies canvas dimensions, clipping properties, etc.\n * but leaves data empty (so that you can populate it with your own)\n * @param {Object} [callback] Receives cloned instance as a first argument\n */\n cloneWithoutData: function(callback) {\n var el = fabric.util.createCanvasElement();\n\n el.width = this.width;\n el.height = this.height;\n\n var clone = new fabric.Canvas(el);\n if (this.backgroundImage) {\n clone.setBackgroundImage(this.backgroundImage.src, function() {\n clone.renderAll();\n callback && callback(clone);\n });\n clone.backgroundImageOpacity = this.backgroundImageOpacity;\n clone.backgroundImageStretch = this.backgroundImageStretch;\n }\n else {\n callback && callback(clone);\n }\n }\n});\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n toFixed = fabric.util.toFixed,\n capitalize = fabric.util.string.capitalize,\n degreesToRadians = fabric.util.degreesToRadians,\n supportsLineDash = fabric.StaticCanvas.supports('setLineDash'),\n objectCaching = !fabric.isLikelyNode,\n ALIASING_LIMIT = 2;\n\n if (fabric.Object) {\n return;\n }\n\n /**\n * Root object class from which all 2d shape classes inherit from\n * @class fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#objects}\n * @see {@link fabric.Object#initialize} for constructor definition\n *\n * @fires added\n * @fires removed\n *\n * @fires selected\n * @fires deselected\n * @fires modified\n * @fires modified\n * @fires moved\n * @fires scaled\n * @fires rotated\n * @fires skewed\n *\n * @fires rotating\n * @fires scaling\n * @fires moving\n * @fires skewing\n *\n * @fires mousedown\n * @fires mouseup\n * @fires mouseover\n * @fires mouseout\n * @fires mousewheel\n * @fires mousedblclick\n *\n * @fires dragover\n * @fires dragenter\n * @fires dragleave\n * @fires drop\n */\n fabric.Object = fabric.util.createClass(fabric.CommonMethods, /** @lends fabric.Object.prototype */ {\n\n /**\n * Type of an object (rect, circle, path, etc.).\n * Note that this property is meant to be read-only and not meant to be modified.\n * If you modify, certain parts of Fabric (such as JSON loading) won't work correctly.\n * @type String\n * @default\n */\n type: 'object',\n\n /**\n * Horizontal origin of transformation of an object (one of \"left\", \"right\", \"center\")\n * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups\n * @type String\n * @default\n */\n originX: 'left',\n\n /**\n * Vertical origin of transformation of an object (one of \"top\", \"bottom\", \"center\")\n * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups\n * @type String\n * @default\n */\n originY: 'top',\n\n /**\n * Top position of an object. Note that by default it's relative to object top. You can change this by setting originY={top/center/bottom}\n * @type Number\n * @default\n */\n top: 0,\n\n /**\n * Left position of an object. Note that by default it's relative to object left. You can change this by setting originX={left/center/right}\n * @type Number\n * @default\n */\n left: 0,\n\n /**\n * Object width\n * @type Number\n * @default\n */\n width: 0,\n\n /**\n * Object height\n * @type Number\n * @default\n */\n height: 0,\n\n /**\n * Object scale factor (horizontal)\n * @type Number\n * @default\n */\n scaleX: 1,\n\n /**\n * Object scale factor (vertical)\n * @type Number\n * @default\n */\n scaleY: 1,\n\n /**\n * When true, an object is rendered as flipped horizontally\n * @type Boolean\n * @default\n */\n flipX: false,\n\n /**\n * When true, an object is rendered as flipped vertically\n * @type Boolean\n * @default\n */\n flipY: false,\n\n /**\n * Opacity of an object\n * @type Number\n * @default\n */\n opacity: 1,\n\n /**\n * Angle of rotation of an object (in degrees)\n * @type Number\n * @default\n */\n angle: 0,\n\n /**\n * Angle of skew on x axes of an object (in degrees)\n * @type Number\n * @default\n */\n skewX: 0,\n\n /**\n * Angle of skew on y axes of an object (in degrees)\n * @type Number\n * @default\n */\n skewY: 0,\n\n /**\n * Size of object's controlling corners (in pixels)\n * @type Number\n * @default\n */\n cornerSize: 13,\n\n /**\n * Size of object's controlling corners when touch interaction is detected\n * @type Number\n * @default\n */\n touchCornerSize: 24,\n\n /**\n * When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill)\n * @type Boolean\n * @default\n */\n transparentCorners: true,\n\n /**\n * Default cursor value used when hovering over this object on canvas\n * @type String\n * @default\n */\n hoverCursor: null,\n\n /**\n * Default cursor value used when moving this object on canvas\n * @type String\n * @default\n */\n moveCursor: null,\n\n /**\n * Padding between object and its controlling borders (in pixels)\n * @type Number\n * @default\n */\n padding: 0,\n\n /**\n * Color of controlling borders of an object (when it's active)\n * @type String\n * @default\n */\n borderColor: 'rgb(178,204,255)',\n\n /**\n * Array specifying dash pattern of an object's borders (hasBorder must be true)\n * @since 1.6.2\n * @type Array\n */\n borderDashArray: null,\n\n /**\n * Color of controlling corners of an object (when it's active)\n * @type String\n * @default\n */\n cornerColor: 'rgb(178,204,255)',\n\n /**\n * Color of controlling corners of an object (when it's active and transparentCorners false)\n * @since 1.6.2\n * @type String\n * @default\n */\n cornerStrokeColor: null,\n\n /**\n * Specify style of control, 'rect' or 'circle'\n * @since 1.6.2\n * @type String\n */\n cornerStyle: 'rect',\n\n /**\n * Array specifying dash pattern of an object's control (hasBorder must be true)\n * @since 1.6.2\n * @type Array\n */\n cornerDashArray: null,\n\n /**\n * When true, this object will use center point as the origin of transformation\n * when being scaled via the controls.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredScaling: false,\n\n /**\n * When true, this object will use center point as the origin of transformation\n * when being rotated via the controls.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredRotation: true,\n\n /**\n * Color of object's fill\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n fill: 'rgb(0,0,0)',\n\n /**\n * Fill rule used to fill an object\n * accepted values are nonzero, evenodd\n * Backwards incompatibility note: This property was used for setting globalCompositeOperation until v1.4.12 (use `fabric.Object#globalCompositeOperation` instead)\n * @type String\n * @default\n */\n fillRule: 'nonzero',\n\n /**\n * Composite rule used for canvas globalCompositeOperation\n * @type String\n * @default\n */\n globalCompositeOperation: 'source-over',\n\n /**\n * Background color of an object.\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n backgroundColor: '',\n\n /**\n * Selection Background color of an object. colored layer behind the object when it is active.\n * does not mix good with globalCompositeOperation methods.\n * @type String\n * @default\n */\n selectionBackgroundColor: '',\n\n /**\n * When defined, an object is rendered via stroke and this property specifies its color\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n stroke: null,\n\n /**\n * Width of a stroke used to render this object\n * @type Number\n * @default\n */\n strokeWidth: 1,\n\n /**\n * Array specifying dash pattern of an object's stroke (stroke must be defined)\n * @type Array\n */\n strokeDashArray: null,\n\n /**\n * Line offset of an object's stroke\n * @type Number\n * @default\n */\n strokeDashOffset: 0,\n\n /**\n * Line endings style of an object's stroke (one of \"butt\", \"round\", \"square\")\n * @type String\n * @default\n */\n strokeLineCap: 'butt',\n\n /**\n * Corner style of an object's stroke (one of \"bevel\", \"round\", \"miter\")\n * @type String\n * @default\n */\n strokeLineJoin: 'miter',\n\n /**\n * Maximum miter length (used for strokeLineJoin = \"miter\") of an object's stroke\n * @type Number\n * @default\n */\n strokeMiterLimit: 4,\n\n /**\n * Shadow object representing shadow of this shape\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * Opacity of object's controlling borders when object is active and moving\n * @type Number\n * @default\n */\n borderOpacityWhenMoving: 0.4,\n\n /**\n * Scale factor of object's controlling borders\n * bigger number will make a thicker border\n * border is 1, so this is basically a border thickness\n * since there is no way to change the border itself.\n * @type Number\n * @default\n */\n borderScaleFactor: 1,\n\n /**\n * Minimum allowed scale value of an object\n * @type Number\n * @default\n */\n minScaleLimit: 0,\n\n /**\n * When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection).\n * But events still fire on it.\n * @type Boolean\n * @default\n */\n selectable: true,\n\n /**\n * When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4\n * @type Boolean\n * @default\n */\n evented: true,\n\n /**\n * When set to `false`, an object is not rendered on canvas\n * @type Boolean\n * @default\n */\n visible: true,\n\n /**\n * When set to `false`, object's controls are not displayed and can not be used to manipulate object\n * @type Boolean\n * @default\n */\n hasControls: true,\n\n /**\n * When set to `false`, object's controlling borders are not rendered\n * @type Boolean\n * @default\n */\n hasBorders: true,\n\n /**\n * When set to `true`, objects are \"found\" on canvas on per-pixel basis rather than according to bounding box\n * @type Boolean\n * @default\n */\n perPixelTargetFind: false,\n\n /**\n * When `false`, default object's values are not included in its serialization\n * @type Boolean\n * @default\n */\n includeDefaultValues: true,\n\n /**\n * When `true`, object horizontal movement is locked\n * @type Boolean\n * @default\n */\n lockMovementX: false,\n\n /**\n * When `true`, object vertical movement is locked\n * @type Boolean\n * @default\n */\n lockMovementY: false,\n\n /**\n * When `true`, object rotation is locked\n * @type Boolean\n * @default\n */\n lockRotation: false,\n\n /**\n * When `true`, object horizontal scaling is locked\n * @type Boolean\n * @default\n */\n lockScalingX: false,\n\n /**\n * When `true`, object vertical scaling is locked\n * @type Boolean\n * @default\n */\n lockScalingY: false,\n\n /**\n * When `true`, object horizontal skewing is locked\n * @type Boolean\n * @default\n */\n lockSkewingX: false,\n\n /**\n * When `true`, object vertical skewing is locked\n * @type Boolean\n * @default\n */\n lockSkewingY: false,\n\n /**\n * When `true`, object cannot be flipped by scaling into negative values\n * @type Boolean\n * @default\n */\n lockScalingFlip: false,\n\n /**\n * When `true`, object is not exported in OBJECT/JSON\n * @since 1.6.3\n * @type Boolean\n * @default\n */\n excludeFromExport: false,\n\n /**\n * When `true`, object is cached on an additional canvas.\n * When `false`, object is not cached unless necessary ( clipPath )\n * default to true\n * @since 1.7.0\n * @type Boolean\n * @default true\n */\n objectCaching: objectCaching,\n\n /**\n * When `true`, object properties are checked for cache invalidation. In some particular\n * situation you may want this to be disabled ( spray brush, very big, groups)\n * or if your application does not allow you to modify properties for groups child you want\n * to disable it for groups.\n * default to false\n * since 1.7.0\n * @type Boolean\n * @default false\n */\n statefullCache: false,\n\n /**\n * When `true`, cache does not get updated during scaling. The picture will get blocky if scaled\n * too much and will be redrawn with correct details at the end of scaling.\n * this setting is performance and application dependant.\n * default to true\n * since 1.7.0\n * @type Boolean\n * @default true\n */\n noScaleCache: true,\n\n /**\n * When `false`, the stoke width will scale with the object.\n * When `true`, the stroke will always match the exact pixel size entered for stroke width.\n * default to false\n * @since 2.6.0\n * @type Boolean\n * @default false\n * @type Boolean\n * @default false\n */\n strokeUniform: false,\n\n /**\n * When set to `true`, object's cache will be rerendered next render call.\n * since 1.7.0\n * @type Boolean\n * @default true\n */\n dirty: true,\n\n /**\n * keeps the value of the last hovered corner during mouse move.\n * 0 is no corner, or 'mt', 'ml', 'mtr' etc..\n * It should be private, but there is no harm in using it as\n * a read-only property.\n * @type number|string|any\n * @default 0\n */\n __corner: 0,\n\n /**\n * Determines if the fill or the stroke is drawn first (one of \"fill\" or \"stroke\")\n * @type String\n * @default\n */\n paintFirst: 'fill',\n\n /**\n * List of properties to consider when checking if state\n * of an object is changed (fabric.Object#hasStateChanged)\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: (\n 'top left width height scaleX scaleY flipX flipY originX originY transformMatrix ' +\n 'stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit ' +\n 'angle opacity fill globalCompositeOperation shadow visible backgroundColor ' +\n 'skewX skewY fillRule paintFirst clipPath strokeUniform'\n ).split(' '),\n\n /**\n * List of properties to consider when checking if cache needs refresh\n * Those properties are checked by statefullCache ON ( or lazy mode if we want ) or from single\n * calls to Object.set(key, value). If the key is in this list, the object is marked as dirty\n * and refreshed at the next render\n * @type Array\n */\n cacheProperties: (\n 'fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform' +\n ' strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath'\n ).split(' '),\n\n /**\n * List of properties to consider for animating colors.\n * @type Array\n */\n colorProperties: (\n 'fill stroke backgroundColor'\n ).split(' '),\n\n /**\n * a fabricObject that, without stroke define a clipping area with their shape. filled in black\n * the clipPath object gets used when the object has rendered, and the context is placed in the center\n * of the object cacheCanvas.\n * If you want 0,0 of a clipPath to align with an object center, use clipPath.originX/Y to 'center'\n * @type fabric.Object\n */\n clipPath: undefined,\n\n /**\n * Meaningful ONLY when the object is used as clipPath.\n * if true, the clipPath will make the object clip to the outside of the clipPath\n * since 2.4.0\n * @type boolean\n * @default false\n */\n inverted: false,\n\n /**\n * Meaningful ONLY when the object is used as clipPath.\n * if true, the clipPath will have its top and left relative to canvas, and will\n * not be influenced by the object transform. This will make the clipPath relative\n * to the canvas, but clipping just a particular object.\n * WARNING this is beta, this feature may change or be renamed.\n * since 2.4.0\n * @type boolean\n * @default false\n */\n absolutePositioned: false,\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n if (options) {\n this.setOptions(options);\n }\n },\n\n /**\n * Create a the canvas used to keep the cached copy of the object\n * @private\n */\n _createCacheCanvas: function() {\n this._cacheProperties = {};\n this._cacheCanvas = fabric.util.createCanvasElement();\n this._cacheContext = this._cacheCanvas.getContext('2d');\n this._updateCacheCanvas();\n // if canvas gets created, is empty, so dirty.\n this.dirty = true;\n },\n\n /**\n * Limit the cache dimensions so that X * Y do not cross fabric.perfLimitSizeTotal\n * and each side do not cross fabric.cacheSideLimit\n * those numbers are configurable so that you can get as much detail as you want\n * making bargain with performances.\n * @param {Object} dims\n * @param {Object} dims.width width of canvas\n * @param {Object} dims.height height of canvas\n * @param {Object} dims.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @param {Object} dims.zoomY zoomY zoom value to unscale the canvas before drawing cache\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _limitCacheSize: function(dims) {\n var perfLimitSizeTotal = fabric.perfLimitSizeTotal,\n width = dims.width, height = dims.height,\n max = fabric.maxCacheSideLimit, min = fabric.minCacheSideLimit;\n if (width <= max && height <= max && width * height <= perfLimitSizeTotal) {\n if (width < min) {\n dims.width = min;\n }\n if (height < min) {\n dims.height = min;\n }\n return dims;\n }\n var ar = width / height, limitedDims = fabric.util.limitDimsByArea(ar, perfLimitSizeTotal),\n capValue = fabric.util.capValue,\n x = capValue(min, limitedDims.x, max),\n y = capValue(min, limitedDims.y, max);\n if (width > x) {\n dims.zoomX /= width / x;\n dims.width = x;\n dims.capped = true;\n }\n if (height > y) {\n dims.zoomY /= height / y;\n dims.height = y;\n dims.capped = true;\n }\n return dims;\n },\n\n /**\n * Return the dimension and the zoom level needed to create a cache canvas\n * big enough to host the object to be cached.\n * @private\n * @return {Object}.x width of object to be cached\n * @return {Object}.y height of object to be cached\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _getCacheCanvasDimensions: function() {\n var objectScale = this.getTotalObjectScaling(),\n // caculate dimensions without skewing\n dim = this._getTransformedDimensions(0, 0),\n neededX = dim.x * objectScale.scaleX / this.scaleX,\n neededY = dim.y * objectScale.scaleY / this.scaleY;\n return {\n // for sure this ALIASING_LIMIT is slightly creating problem\n // in situation in which the cache canvas gets an upper limit\n // also objectScale contains already scaleX and scaleY\n width: neededX + ALIASING_LIMIT,\n height: neededY + ALIASING_LIMIT,\n zoomX: objectScale.scaleX,\n zoomY: objectScale.scaleY,\n x: neededX,\n y: neededY\n };\n },\n\n /**\n * Update width and height of the canvas for cache\n * returns true or false if canvas needed resize.\n * @private\n * @return {Boolean} true if the canvas has been resized\n */\n _updateCacheCanvas: function() {\n var targetCanvas = this.canvas;\n if (this.noScaleCache && targetCanvas && targetCanvas._currentTransform) {\n var target = targetCanvas._currentTransform.target,\n action = targetCanvas._currentTransform.action;\n if (this === target && action.slice && action.slice(0, 5) === 'scale') {\n return false;\n }\n }\n var canvas = this._cacheCanvas,\n dims = this._limitCacheSize(this._getCacheCanvasDimensions()),\n minCacheSize = fabric.minCacheSideLimit,\n width = dims.width, height = dims.height, drawingWidth, drawingHeight,\n zoomX = dims.zoomX, zoomY = dims.zoomY,\n dimensionsChanged = width !== this.cacheWidth || height !== this.cacheHeight,\n zoomChanged = this.zoomX !== zoomX || this.zoomY !== zoomY,\n shouldRedraw = dimensionsChanged || zoomChanged,\n additionalWidth = 0, additionalHeight = 0, shouldResizeCanvas = false;\n if (dimensionsChanged) {\n var canvasWidth = this._cacheCanvas.width,\n canvasHeight = this._cacheCanvas.height,\n sizeGrowing = width > canvasWidth || height > canvasHeight,\n sizeShrinking = (width < canvasWidth * 0.9 || height < canvasHeight * 0.9) &&\n canvasWidth > minCacheSize && canvasHeight > minCacheSize;\n shouldResizeCanvas = sizeGrowing || sizeShrinking;\n if (sizeGrowing && !dims.capped && (width > minCacheSize || height > minCacheSize)) {\n additionalWidth = width * 0.1;\n additionalHeight = height * 0.1;\n }\n }\n if (shouldRedraw) {\n if (shouldResizeCanvas) {\n canvas.width = Math.ceil(width + additionalWidth);\n canvas.height = Math.ceil(height + additionalHeight);\n }\n else {\n this._cacheContext.setTransform(1, 0, 0, 1, 0, 0);\n this._cacheContext.clearRect(0, 0, canvas.width, canvas.height);\n }\n drawingWidth = dims.x / 2;\n drawingHeight = dims.y / 2;\n this.cacheTranslationX = Math.round(canvas.width / 2 - drawingWidth) + drawingWidth;\n this.cacheTranslationY = Math.round(canvas.height / 2 - drawingHeight) + drawingHeight;\n this.cacheWidth = width;\n this.cacheHeight = height;\n this._cacheContext.translate(this.cacheTranslationX, this.cacheTranslationY);\n this._cacheContext.scale(zoomX, zoomY);\n this.zoomX = zoomX;\n this.zoomY = zoomY;\n return true;\n }\n return false;\n },\n\n /**\n * Sets object's properties from options\n * @param {Object} [options] Options object\n */\n setOptions: function(options) {\n this._setOptions(options);\n this._initGradient(options.fill, 'fill');\n this._initGradient(options.stroke, 'stroke');\n this._initPattern(options.fill, 'fill');\n this._initPattern(options.stroke, 'stroke');\n },\n\n /**\n * Transforms context when rendering an object\n * @param {CanvasRenderingContext2D} ctx Context\n */\n transform: function(ctx) {\n var needFullTransform = (this.group && !this.group._transformDone) ||\n (this.group && this.canvas && ctx === this.canvas.contextTop);\n var m = this.calcTransformMatrix(!needFullTransform);\n ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n },\n\n /**\n * Returns an object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS,\n\n object = {\n type: this.type,\n version: fabric.version,\n originX: this.originX,\n originY: this.originY,\n left: toFixed(this.left, NUM_FRACTION_DIGITS),\n top: toFixed(this.top, NUM_FRACTION_DIGITS),\n width: toFixed(this.width, NUM_FRACTION_DIGITS),\n height: toFixed(this.height, NUM_FRACTION_DIGITS),\n fill: (this.fill && this.fill.toObject) ? this.fill.toObject() : this.fill,\n stroke: (this.stroke && this.stroke.toObject) ? this.stroke.toObject() : this.stroke,\n strokeWidth: toFixed(this.strokeWidth, NUM_FRACTION_DIGITS),\n strokeDashArray: this.strokeDashArray ? this.strokeDashArray.concat() : this.strokeDashArray,\n strokeLineCap: this.strokeLineCap,\n strokeDashOffset: this.strokeDashOffset,\n strokeLineJoin: this.strokeLineJoin,\n strokeUniform: this.strokeUniform,\n strokeMiterLimit: toFixed(this.strokeMiterLimit, NUM_FRACTION_DIGITS),\n scaleX: toFixed(this.scaleX, NUM_FRACTION_DIGITS),\n scaleY: toFixed(this.scaleY, NUM_FRACTION_DIGITS),\n angle: toFixed(this.angle, NUM_FRACTION_DIGITS),\n flipX: this.flipX,\n flipY: this.flipY,\n opacity: toFixed(this.opacity, NUM_FRACTION_DIGITS),\n shadow: (this.shadow && this.shadow.toObject) ? this.shadow.toObject() : this.shadow,\n visible: this.visible,\n backgroundColor: this.backgroundColor,\n fillRule: this.fillRule,\n paintFirst: this.paintFirst,\n globalCompositeOperation: this.globalCompositeOperation,\n skewX: toFixed(this.skewX, NUM_FRACTION_DIGITS),\n skewY: toFixed(this.skewY, NUM_FRACTION_DIGITS),\n };\n\n if (this.clipPath) {\n object.clipPath = this.clipPath.toObject(propertiesToInclude);\n object.clipPath.inverted = this.clipPath.inverted;\n object.clipPath.absolutePositioned = this.clipPath.absolutePositioned;\n }\n\n fabric.util.populateWithProperties(this, object, propertiesToInclude);\n if (!this.includeDefaultValues) {\n object = this._removeDefaultValues(object);\n }\n\n return object;\n },\n\n /**\n * Returns (dataless) object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n // will be overwritten by subclasses\n return this.toObject(propertiesToInclude);\n },\n\n /**\n * @private\n * @param {Object} object\n */\n _removeDefaultValues: function(object) {\n var prototype = fabric.util.getKlass(object.type).prototype,\n stateProperties = prototype.stateProperties;\n stateProperties.forEach(function(prop) {\n if (prop === 'left' || prop === 'top') {\n return;\n }\n if (object[prop] === prototype[prop]) {\n delete object[prop];\n }\n var isArray = Object.prototype.toString.call(object[prop]) === '[object Array]' &&\n Object.prototype.toString.call(prototype[prop]) === '[object Array]';\n\n // basically a check for [] === []\n if (isArray && object[prop].length === 0 && prototype[prop].length === 0) {\n delete object[prop];\n }\n });\n\n return object;\n },\n\n /**\n * Returns a string representation of an instance\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Return the object scale factor counting also the group scaling\n * @return {Object} object with scaleX and scaleY properties\n */\n getObjectScaling: function() {\n var options = fabric.util.qrDecompose(this.calcTransformMatrix());\n return { scaleX: Math.abs(options.scaleX), scaleY: Math.abs(options.scaleY) };\n },\n\n /**\n * Return the object scale factor counting also the group scaling, zoom and retina\n * @return {Object} object with scaleX and scaleY properties\n */\n getTotalObjectScaling: function() {\n var scale = this.getObjectScaling(), scaleX = scale.scaleX, scaleY = scale.scaleY;\n if (this.canvas) {\n var zoom = this.canvas.getZoom();\n var retina = this.canvas.getRetinaScaling();\n scaleX *= zoom * retina;\n scaleY *= zoom * retina;\n }\n return { scaleX: scaleX, scaleY: scaleY };\n },\n\n /**\n * Return the object opacity counting also the group property\n * @return {Number}\n */\n getObjectOpacity: function() {\n var opacity = this.opacity;\n if (this.group) {\n opacity *= this.group.getObjectOpacity();\n }\n return opacity;\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Object} thisArg\n */\n _set: function(key, value) {\n var shouldConstrainValue = (key === 'scaleX' || key === 'scaleY'),\n isChanged = this[key] !== value, groupNeedsUpdate = false;\n\n if (shouldConstrainValue) {\n value = this._constrainScale(value);\n }\n if (key === 'scaleX' && value < 0) {\n this.flipX = !this.flipX;\n value *= -1;\n }\n else if (key === 'scaleY' && value < 0) {\n this.flipY = !this.flipY;\n value *= -1;\n }\n else if (key === 'shadow' && value && !(value instanceof fabric.Shadow)) {\n value = new fabric.Shadow(value);\n }\n else if (key === 'dirty' && this.group) {\n this.group.set('dirty', value);\n }\n\n this[key] = value;\n\n if (isChanged) {\n groupNeedsUpdate = this.group && this.group.isOnACache();\n if (this.cacheProperties.indexOf(key) > -1) {\n this.dirty = true;\n groupNeedsUpdate && this.group.set('dirty', true);\n }\n else if (groupNeedsUpdate && this.stateProperties.indexOf(key) > -1) {\n this.group.set('dirty', true);\n }\n }\n return this;\n },\n\n /**\n * This callback function is called by the parent group of an object every\n * time a non-delegated property changes on the group. It is passed the key\n * and value as parameters. Not adding in this function's signature to avoid\n * Travis build error about unused variables.\n */\n setOnGroup: function() {\n // implemented by sub-classes, as needed.\n },\n\n /**\n * Retrieves viewportTransform from Object's canvas if possible\n * @method getViewportTransform\n * @memberOf fabric.Object.prototype\n * @return {Array}\n */\n getViewportTransform: function() {\n if (this.canvas && this.canvas.viewportTransform) {\n return this.canvas.viewportTransform;\n }\n return fabric.iMatrix.concat();\n },\n\n /*\n * @private\n * return if the object would be visible in rendering\n * @memberOf fabric.Object.prototype\n * @return {Boolean}\n */\n isNotVisible: function() {\n return this.opacity === 0 ||\n (!this.width && !this.height && this.strokeWidth === 0) ||\n !this.visible;\n },\n\n /**\n * Renders an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n // do not render if width/height are zeros or object is not visible\n if (this.isNotVisible()) {\n return;\n }\n if (this.canvas && this.canvas.skipOffscreen && !this.group && !this.isOnScreen()) {\n return;\n }\n ctx.save();\n this._setupCompositeOperation(ctx);\n this.drawSelectionBackground(ctx);\n this.transform(ctx);\n this._setOpacity(ctx);\n this._setShadow(ctx, this);\n if (this.shouldCache()) {\n this.renderCache();\n this.drawCacheOnCanvas(ctx);\n }\n else {\n this._removeCacheCanvas();\n this.dirty = false;\n this.drawObject(ctx);\n if (this.objectCaching && this.statefullCache) {\n this.saveState({ propertySet: 'cacheProperties' });\n }\n }\n ctx.restore();\n },\n\n renderCache: function(options) {\n options = options || {};\n if (!this._cacheCanvas) {\n this._createCacheCanvas();\n }\n if (this.isCacheDirty()) {\n this.statefullCache && this.saveState({ propertySet: 'cacheProperties' });\n this.drawObject(this._cacheContext, options.forClipping);\n this.dirty = false;\n }\n },\n\n /**\n * Remove cacheCanvas and its dimensions from the objects\n */\n _removeCacheCanvas: function() {\n this._cacheCanvas = null;\n this.cacheWidth = 0;\n this.cacheHeight = 0;\n },\n\n /**\n * return true if the object will draw a stroke\n * Does not consider text styles. This is just a shortcut used at rendering time\n * We want it to be an approximation and be fast.\n * wrote to avoid extra caching, it has to return true when stroke happens,\n * can guess when it will not happen at 100% chance, does not matter if it misses\n * some use case where the stroke is invisible.\n * @since 3.0.0\n * @returns Boolean\n */\n hasStroke: function() {\n return this.stroke && this.stroke !== 'transparent' && this.strokeWidth !== 0;\n },\n\n /**\n * return true if the object will draw a fill\n * Does not consider text styles. This is just a shortcut used at rendering time\n * We want it to be an approximation and be fast.\n * wrote to avoid extra caching, it has to return true when fill happens,\n * can guess when it will not happen at 100% chance, does not matter if it misses\n * some use case where the fill is invisible.\n * @since 3.0.0\n * @returns Boolean\n */\n hasFill: function() {\n return this.fill && this.fill !== 'transparent';\n },\n\n /**\n * When set to `true`, force the object to have its own cache, even if it is inside a group\n * it may be needed when your object behave in a particular way on the cache and always needs\n * its own isolated canvas to render correctly.\n * Created to be overridden\n * since 1.7.12\n * @returns Boolean\n */\n needsItsOwnCache: function() {\n if (this.paintFirst === 'stroke' &&\n this.hasFill() && this.hasStroke() && typeof this.shadow === 'object') {\n return true;\n }\n if (this.clipPath) {\n return true;\n }\n return false;\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * Read as: cache if is needed, or if the feature is enabled but we are not already caching.\n * @return {Boolean}\n */\n shouldCache: function() {\n this.ownCaching = this.needsItsOwnCache() || (\n this.objectCaching &&\n (!this.group || !this.group.isOnACache())\n );\n return this.ownCaching;\n },\n\n /**\n * Check if this object or a child object will cast a shadow\n * used by Group.shouldCache to know if child has a shadow recursively\n * @return {Boolean}\n */\n willDrawShadow: function() {\n return !!this.shadow && (this.shadow.offsetX !== 0 || this.shadow.offsetY !== 0);\n },\n\n /**\n * Execute the drawing operation for an object clipPath\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawClipPathOnCache: function(ctx) {\n var path = this.clipPath;\n ctx.save();\n // DEBUG: uncomment this line, comment the following\n // ctx.globalAlpha = 0.4\n if (path.inverted) {\n ctx.globalCompositeOperation = 'destination-out';\n }\n else {\n ctx.globalCompositeOperation = 'destination-in';\n }\n //ctx.scale(1 / 2, 1 / 2);\n if (path.absolutePositioned) {\n var m = fabric.util.invertTransform(this.calcTransformMatrix());\n ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n path.transform(ctx);\n ctx.scale(1 / path.zoomX, 1 / path.zoomY);\n ctx.drawImage(path._cacheCanvas, -path.cacheTranslationX, -path.cacheTranslationY);\n ctx.restore();\n },\n\n /**\n * Execute the drawing operation for an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawObject: function(ctx, forClipping) {\n var originalFill = this.fill, originalStroke = this.stroke;\n if (forClipping) {\n this.fill = 'black';\n this.stroke = '';\n this._setClippingProperties(ctx);\n }\n else {\n this._renderBackground(ctx);\n }\n this._render(ctx);\n this._drawClipPath(ctx);\n this.fill = originalFill;\n this.stroke = originalStroke;\n },\n\n _drawClipPath: function(ctx) {\n var path = this.clipPath;\n if (!path) { return; }\n // needed to setup a couple of variables\n // path canvas gets overridden with this one.\n // TODO find a better solution?\n path.canvas = this.canvas;\n path.shouldCache();\n path._transformDone = true;\n path.renderCache({ forClipping: true });\n this.drawClipPathOnCache(ctx);\n },\n\n /**\n * Paint the cached copy of the object on the target context.\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawCacheOnCanvas: function(ctx) {\n ctx.scale(1 / this.zoomX, 1 / this.zoomY);\n ctx.drawImage(this._cacheCanvas, -this.cacheTranslationX, -this.cacheTranslationY);\n },\n\n /**\n * Check if cache is dirty\n * @param {Boolean} skipCanvas skip canvas checks because this object is painted\n * on parent canvas.\n */\n isCacheDirty: function(skipCanvas) {\n if (this.isNotVisible()) {\n return false;\n }\n if (this._cacheCanvas && !skipCanvas && this._updateCacheCanvas()) {\n // in this case the context is already cleared.\n return true;\n }\n else {\n if (this.dirty ||\n (this.clipPath && this.clipPath.absolutePositioned) ||\n (this.statefullCache && this.hasStateChanged('cacheProperties'))\n ) {\n if (this._cacheCanvas && !skipCanvas) {\n var width = this.cacheWidth / this.zoomX;\n var height = this.cacheHeight / this.zoomY;\n this._cacheContext.clearRect(-width / 2, -height / 2, width, height);\n }\n return true;\n }\n }\n return false;\n },\n\n /**\n * Draws a background for the object big as its untransformed dimensions\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderBackground: function(ctx) {\n if (!this.backgroundColor) {\n return;\n }\n var dim = this._getNonTransformedDimensions();\n ctx.fillStyle = this.backgroundColor;\n\n ctx.fillRect(\n -dim.x / 2,\n -dim.y / 2,\n dim.x,\n dim.y\n );\n // if there is background color no other shadows\n // should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _setOpacity: function(ctx) {\n if (this.group && !this.group._transformDone) {\n ctx.globalAlpha = this.getObjectOpacity();\n }\n else {\n ctx.globalAlpha *= this.opacity;\n }\n },\n\n _setStrokeStyles: function(ctx, decl) {\n var stroke = decl.stroke;\n if (stroke) {\n ctx.lineWidth = decl.strokeWidth;\n ctx.lineCap = decl.strokeLineCap;\n ctx.lineDashOffset = decl.strokeDashOffset;\n ctx.lineJoin = decl.strokeLineJoin;\n ctx.miterLimit = decl.strokeMiterLimit;\n if (stroke.toLive) {\n if (stroke.gradientUnits === 'percentage' || stroke.gradientTrasnform || stroke.patternTransform) {\n // need to transform gradient in a pattern.\n // this is a slow process. If you are hitting this codepath, and the object\n // is not using caching, you should consider switching it on.\n // we need a canvas as big as the current object caching canvas.\n this._applyPatternForTransformedGradient(ctx, stroke);\n }\n else {\n // is a simple gradient or pattern\n ctx.strokeStyle = stroke.toLive(ctx, this);\n this._applyPatternGradientTransform(ctx, stroke);\n }\n }\n else {\n // is a color\n ctx.strokeStyle = decl.stroke;\n }\n }\n },\n\n _setFillStyles: function(ctx, decl) {\n var fill = decl.fill;\n if (fill) {\n if (fill.toLive) {\n ctx.fillStyle = fill.toLive(ctx, this);\n this._applyPatternGradientTransform(ctx, decl.fill);\n }\n else {\n ctx.fillStyle = fill;\n }\n }\n },\n\n _setClippingProperties: function(ctx) {\n ctx.globalAlpha = 1;\n ctx.strokeStyle = 'transparent';\n ctx.fillStyle = '#000000';\n },\n\n /**\n * @private\n * Sets line dash\n * @param {CanvasRenderingContext2D} ctx Context to set the dash line on\n * @param {Array} dashArray array representing dashes\n * @param {Function} alternative function to call if browser does not support lineDash\n */\n _setLineDash: function(ctx, dashArray, alternative) {\n if (!dashArray || dashArray.length === 0) {\n return;\n }\n // Spec requires the concatenation of two copies the dash list when the number of elements is odd\n if (1 & dashArray.length) {\n dashArray.push.apply(dashArray, dashArray);\n }\n if (supportsLineDash) {\n ctx.setLineDash(dashArray);\n }\n else {\n alternative && alternative(ctx);\n }\n },\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n */\n _renderControls: function(ctx, styleOverride) {\n var vpt = this.getViewportTransform(),\n matrix = this.calcTransformMatrix(),\n options, drawBorders, drawControls;\n styleOverride = styleOverride || { };\n drawBorders = typeof styleOverride.hasBorders !== 'undefined' ? styleOverride.hasBorders : this.hasBorders;\n drawControls = typeof styleOverride.hasControls !== 'undefined' ? styleOverride.hasControls : this.hasControls;\n matrix = fabric.util.multiplyTransformMatrices(vpt, matrix);\n options = fabric.util.qrDecompose(matrix);\n ctx.save();\n ctx.translate(options.translateX, options.translateY);\n ctx.lineWidth = 1 * this.borderScaleFactor;\n if (!this.group) {\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n }\n if (styleOverride.forActiveSelection) {\n ctx.rotate(degreesToRadians(options.angle));\n drawBorders && this.drawBordersInGroup(ctx, options, styleOverride);\n }\n else {\n ctx.rotate(degreesToRadians(this.angle));\n drawBorders && this.drawBorders(ctx, styleOverride);\n }\n drawControls && this.drawControls(ctx, styleOverride);\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _setShadow: function(ctx) {\n if (!this.shadow) {\n return;\n }\n\n var shadow = this.shadow, canvas = this.canvas, scaling,\n multX = (canvas && canvas.viewportTransform[0]) || 1,\n multY = (canvas && canvas.viewportTransform[3]) || 1;\n if (shadow.nonScaling) {\n scaling = { scaleX: 1, scaleY: 1 };\n }\n else {\n scaling = this.getObjectScaling();\n }\n if (canvas && canvas._isRetinaScaling()) {\n multX *= fabric.devicePixelRatio;\n multY *= fabric.devicePixelRatio;\n }\n ctx.shadowColor = shadow.color;\n ctx.shadowBlur = shadow.blur * fabric.browserShadowBlurConstant *\n (multX + multY) * (scaling.scaleX + scaling.scaleY) / 4;\n ctx.shadowOffsetX = shadow.offsetX * multX * scaling.scaleX;\n ctx.shadowOffsetY = shadow.offsetY * multY * scaling.scaleY;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _removeShadow: function(ctx) {\n if (!this.shadow) {\n return;\n }\n\n ctx.shadowColor = '';\n ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} filler fabric.Pattern or fabric.Gradient\n * @return {Object} offset.offsetX offset for text rendering\n * @return {Object} offset.offsetY offset for text rendering\n */\n _applyPatternGradientTransform: function(ctx, filler) {\n if (!filler || !filler.toLive) {\n return { offsetX: 0, offsetY: 0 };\n }\n var t = filler.gradientTransform || filler.patternTransform;\n var offsetX = -this.width / 2 + filler.offsetX || 0,\n offsetY = -this.height / 2 + filler.offsetY || 0;\n\n if (filler.gradientUnits === 'percentage') {\n ctx.transform(this.width, 0, 0, this.height, offsetX, offsetY);\n }\n else {\n ctx.transform(1, 0, 0, 1, offsetX, offsetY);\n }\n if (t) {\n ctx.transform(t[0], t[1], t[2], t[3], t[4], t[5]);\n }\n return { offsetX: offsetX, offsetY: offsetY };\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderPaintInOrder: function(ctx) {\n if (this.paintFirst === 'stroke') {\n this._renderStroke(ctx);\n this._renderFill(ctx);\n }\n else {\n this._renderFill(ctx);\n this._renderStroke(ctx);\n }\n },\n\n /**\n * @private\n * function that actually render something on the context.\n * empty here to allow Obects to work on tests to benchmark fabric functionalites\n * not related to rendering\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(/* ctx */) {\n\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderFill: function(ctx) {\n if (!this.fill) {\n return;\n }\n\n ctx.save();\n this._setFillStyles(ctx, this);\n if (this.fillRule === 'evenodd') {\n ctx.fill('evenodd');\n }\n else {\n ctx.fill();\n }\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderStroke: function(ctx) {\n if (!this.stroke || this.strokeWidth === 0) {\n return;\n }\n\n if (this.shadow && !this.shadow.affectStroke) {\n this._removeShadow(ctx);\n }\n\n ctx.save();\n if (this.strokeUniform && this.group) {\n var scaling = this.getObjectScaling();\n ctx.scale(1 / scaling.scaleX, 1 / scaling.scaleY);\n }\n else if (this.strokeUniform) {\n ctx.scale(1 / this.scaleX, 1 / this.scaleY);\n }\n this._setLineDash(ctx, this.strokeDashArray, this._renderDashedStroke);\n this._setStrokeStyles(ctx, this);\n ctx.stroke();\n ctx.restore();\n },\n\n /**\n * This function try to patch the missing gradientTransform on canvas gradients.\n * transforming a context to transform the gradient, is going to transform the stroke too.\n * we want to transform the gradient but not the stroke operation, so we create\n * a transformed gradient on a pattern and then we use the pattern instead of the gradient.\n * this method has drwabacks: is slow, is in low resolution, needs a patch for when the size\n * is limited.\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {fabric.Gradient} filler a fabric gradient instance\n */\n _applyPatternForTransformedGradient: function(ctx, filler) {\n var dims = this._limitCacheSize(this._getCacheCanvasDimensions()),\n pCanvas = fabric.util.createCanvasElement(), pCtx, retinaScaling = this.canvas.getRetinaScaling(),\n width = dims.x / this.scaleX / retinaScaling, height = dims.y / this.scaleY / retinaScaling;\n pCanvas.width = width;\n pCanvas.height = height;\n pCtx = pCanvas.getContext('2d');\n pCtx.beginPath(); pCtx.moveTo(0, 0); pCtx.lineTo(width, 0); pCtx.lineTo(width, height);\n pCtx.lineTo(0, height); pCtx.closePath();\n pCtx.translate(width / 2, height / 2);\n pCtx.scale(\n dims.zoomX / this.scaleX / retinaScaling,\n dims.zoomY / this.scaleY / retinaScaling\n );\n this._applyPatternGradientTransform(pCtx, filler);\n pCtx.fillStyle = filler.toLive(ctx);\n pCtx.fill();\n ctx.translate(-this.width / 2 - this.strokeWidth / 2, -this.height / 2 - this.strokeWidth / 2);\n ctx.scale(\n retinaScaling * this.scaleX / dims.zoomX,\n retinaScaling * this.scaleY / dims.zoomY\n );\n ctx.strokeStyle = pCtx.createPattern(pCanvas, 'no-repeat');\n },\n\n /**\n * This function is an helper for svg import. it returns the center of the object in the svg\n * untransformed coordinates\n * @private\n * @return {Object} center point from element coordinates\n */\n _findCenterFromElement: function() {\n return { x: this.left + this.width / 2, y: this.top + this.height / 2 };\n },\n\n /**\n * This function is an helper for svg import. it decompose the transformMatrix\n * and assign properties to object.\n * untransformed coordinates\n * @private\n * @chainable\n */\n _assignTransformMatrixProps: function() {\n if (this.transformMatrix) {\n var options = fabric.util.qrDecompose(this.transformMatrix);\n this.flipX = false;\n this.flipY = false;\n this.set('scaleX', options.scaleX);\n this.set('scaleY', options.scaleY);\n this.angle = options.angle;\n this.skewX = options.skewX;\n this.skewY = 0;\n }\n },\n\n /**\n * This function is an helper for svg import. it removes the transform matrix\n * and set to object properties that fabricjs can handle\n * @private\n * @param {Object} preserveAspectRatioOptions\n * @return {thisArg}\n */\n _removeTransformMatrix: function(preserveAspectRatioOptions) {\n var center = this._findCenterFromElement();\n if (this.transformMatrix) {\n this._assignTransformMatrixProps();\n center = fabric.util.transformPoint(center, this.transformMatrix);\n }\n this.transformMatrix = null;\n if (preserveAspectRatioOptions) {\n this.scaleX *= preserveAspectRatioOptions.scaleX;\n this.scaleY *= preserveAspectRatioOptions.scaleY;\n this.cropX = preserveAspectRatioOptions.cropX;\n this.cropY = preserveAspectRatioOptions.cropY;\n center.x += preserveAspectRatioOptions.offsetLeft;\n center.y += preserveAspectRatioOptions.offsetTop;\n this.width = preserveAspectRatioOptions.width;\n this.height = preserveAspectRatioOptions.height;\n }\n this.setPositionByOrigin(center, 'center', 'center');\n },\n\n /**\n * Clones an instance, using a callback method will work for every object.\n * @param {Function} callback Callback is invoked with a clone as a first argument\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n */\n clone: function(callback, propertiesToInclude) {\n var objectForm = this.toObject(propertiesToInclude);\n if (this.constructor.fromObject) {\n this.constructor.fromObject(objectForm, callback);\n }\n else {\n fabric.Object._fromObject('Object', objectForm, callback);\n }\n },\n\n /**\n * Creates an instance of fabric.Image out of an object\n * makes use of toCanvasElement.\n * Once this method was based on toDataUrl and loadImage, so it also had a quality\n * and format option. toCanvasElement is faster and produce no loss of quality.\n * If you need to get a real Jpeg or Png from an object, using toDataURL is the right way to do it.\n * toCanvasElement and then toBlob from the obtained canvas is also a good option.\n * This method is sync now, but still support the callback because we did not want to break.\n * When fabricJS 5.0 will be planned, this will probably be changed to not have a callback.\n * @param {Function} callback callback, invoked with an instance as a first argument\n * @param {Object} [options] for clone as image, passed to toDataURL\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {fabric.Object} thisArg\n */\n cloneAsImage: function(callback, options) {\n var canvasEl = this.toCanvasElement(options);\n if (callback) {\n callback(new fabric.Image(canvasEl));\n }\n return this;\n },\n\n /**\n * Converts an object into a HTMLCanvas element\n * @param {Object} options Options object\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {HTMLCanvasElement} Returns DOM element with the fabric.Object\n */\n toCanvasElement: function(options) {\n options || (options = { });\n\n var utils = fabric.util, origParams = utils.saveObjectTransform(this),\n originalGroup = this.group,\n originalShadow = this.shadow, abs = Math.abs,\n multiplier = (options.multiplier || 1) * (options.enableRetinaScaling ? fabric.devicePixelRatio : 1);\n delete this.group;\n if (options.withoutTransform) {\n utils.resetObjectTransform(this);\n }\n if (options.withoutShadow) {\n this.shadow = null;\n }\n\n var el = fabric.util.createCanvasElement(),\n // skip canvas zoom and calculate with setCoords now.\n boundingRect = this.getBoundingRect(true, true),\n shadow = this.shadow, scaling,\n shadowOffset = { x: 0, y: 0 }, shadowBlur,\n width, height;\n\n if (shadow) {\n shadowBlur = shadow.blur;\n if (shadow.nonScaling) {\n scaling = { scaleX: 1, scaleY: 1 };\n }\n else {\n scaling = this.getObjectScaling();\n }\n // consider non scaling shadow.\n shadowOffset.x = 2 * Math.round(abs(shadow.offsetX) + shadowBlur) * (abs(scaling.scaleX));\n shadowOffset.y = 2 * Math.round(abs(shadow.offsetY) + shadowBlur) * (abs(scaling.scaleY));\n }\n width = boundingRect.width + shadowOffset.x;\n height = boundingRect.height + shadowOffset.y;\n // if the current width/height is not an integer\n // we need to make it so.\n el.width = Math.ceil(width);\n el.height = Math.ceil(height);\n var canvas = new fabric.StaticCanvas(el, {\n enableRetinaScaling: false,\n renderOnAddRemove: false,\n skipOffscreen: false,\n });\n if (options.format === 'jpeg') {\n canvas.backgroundColor = '#fff';\n }\n this.setPositionByOrigin(new fabric.Point(canvas.width / 2, canvas.height / 2), 'center', 'center');\n\n var originalCanvas = this.canvas;\n canvas.add(this);\n var canvasEl = canvas.toCanvasElement(multiplier || 1, options);\n this.shadow = originalShadow;\n this.set('canvas', originalCanvas);\n if (originalGroup) {\n this.group = originalGroup;\n }\n this.set(origParams).setCoords();\n // canvas.dispose will call image.dispose that will nullify the elements\n // since this canvas is a simple element for the process, we remove references\n // to objects in this way in order to avoid object trashing.\n canvas._objects = [];\n canvas.dispose();\n canvas = null;\n\n return canvasEl;\n },\n\n /**\n * Converts an object into a data-url-like string\n * @param {Object} options Options object\n * @param {String} [options.format=png] The format of the output image. Either \"jpeg\" or \"png\"\n * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format\n */\n toDataURL: function(options) {\n options || (options = { });\n return fabric.util.toDataURL(this.toCanvasElement(options), options.format || 'png', options.quality || 1);\n },\n\n /**\n * Returns true if specified type is identical to the type of an instance\n * @param {String} type Type to check against\n * @return {Boolean}\n */\n isType: function(type) {\n return this.type === type;\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity of this instance (is 1 unless subclassed)\n */\n complexity: function() {\n return 1;\n },\n\n /**\n * Returns a JSON representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} JSON\n */\n toJSON: function(propertiesToInclude) {\n // delegate, not alias\n return this.toObject(propertiesToInclude);\n },\n\n /**\n * Sets \"angle\" of an instance with centered rotation\n * @param {Number} angle Angle value (in degrees)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n rotate: function(angle) {\n var shouldCenterOrigin = (this.originX !== 'center' || this.originY !== 'center') && this.centeredRotation;\n\n if (shouldCenterOrigin) {\n this._setOriginToCenter();\n }\n\n this.set('angle', angle);\n\n if (shouldCenterOrigin) {\n this._resetOrigin();\n }\n\n return this;\n },\n\n /**\n * Centers object horizontally on canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n centerH: function () {\n this.canvas && this.canvas.centerObjectH(this);\n return this;\n },\n\n /**\n * Centers object horizontally on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenterH: function () {\n this.canvas && this.canvas.viewportCenterObjectH(this);\n return this;\n },\n\n /**\n * Centers object vertically on canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n centerV: function () {\n this.canvas && this.canvas.centerObjectV(this);\n return this;\n },\n\n /**\n * Centers object vertically on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenterV: function () {\n this.canvas && this.canvas.viewportCenterObjectV(this);\n return this;\n },\n\n /**\n * Centers object vertically and horizontally on canvas to which is was added last\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n center: function () {\n this.canvas && this.canvas.centerObject(this);\n return this;\n },\n\n /**\n * Centers object on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenter: function () {\n this.canvas && this.canvas.viewportCenterObject(this);\n return this;\n },\n\n /**\n * Returns coordinates of a pointer relative to an object\n * @param {Event} e Event to operate upon\n * @param {Object} [pointer] Pointer to operate upon (instead of event)\n * @return {Object} Coordinates of a pointer (x, y)\n */\n getLocalPointer: function(e, pointer) {\n pointer = pointer || this.canvas.getPointer(e);\n var pClicked = new fabric.Point(pointer.x, pointer.y),\n objectLeftTop = this._getLeftTopCoords();\n if (this.angle) {\n pClicked = fabric.util.rotatePoint(\n pClicked, objectLeftTop, degreesToRadians(-this.angle));\n }\n return {\n x: pClicked.x - objectLeftTop.x,\n y: pClicked.y - objectLeftTop.y\n };\n },\n\n /**\n * Sets canvas globalCompositeOperation for specific object\n * custom composition operation for the particular object can be specified using globalCompositeOperation property\n * @param {CanvasRenderingContext2D} ctx Rendering canvas context\n */\n _setupCompositeOperation: function (ctx) {\n if (this.globalCompositeOperation) {\n ctx.globalCompositeOperation = this.globalCompositeOperation;\n }\n }\n });\n\n fabric.util.createAccessors && fabric.util.createAccessors(fabric.Object);\n\n extend(fabric.Object.prototype, fabric.Observable);\n\n /**\n * Defines the number of fraction digits to use when serializing object values.\n * You can use it to increase/decrease precision of such values like left, top, scaleX, scaleY, etc.\n * @static\n * @memberOf fabric.Object\n * @constant\n * @type Number\n */\n fabric.Object.NUM_FRACTION_DIGITS = 2;\n\n fabric.Object._fromObject = function(className, object, callback, extraParam) {\n var klass = fabric[className];\n object = clone(object, true);\n fabric.util.enlivenPatterns([object.fill, object.stroke], function(patterns) {\n if (typeof patterns[0] !== 'undefined') {\n object.fill = patterns[0];\n }\n if (typeof patterns[1] !== 'undefined') {\n object.stroke = patterns[1];\n }\n fabric.util.enlivenObjects([object.clipPath], function(enlivedProps) {\n object.clipPath = enlivedProps[0];\n var instance = extraParam ? new klass(object[extraParam], object) : new klass(object);\n callback && callback(instance);\n });\n });\n };\n\n /**\n * Unique id used internally when creating SVG elements\n * @static\n * @memberOf fabric.Object\n * @type Number\n */\n fabric.Object.__uid = 0;\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n\n var degreesToRadians = fabric.util.degreesToRadians,\n originXOffset = {\n left: -0.5,\n center: 0,\n right: 0.5\n },\n originYOffset = {\n top: -0.5,\n center: 0,\n bottom: 0.5\n };\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Translates the coordinates from a set of origin to another (based on the object's dimensions)\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @param {String} fromOriginX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} fromOriginY Vertical origin: 'top', 'center' or 'bottom'\n * @param {String} toOriginX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} toOriginY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToGivenOrigin: function(point, fromOriginX, fromOriginY, toOriginX, toOriginY) {\n var x = point.x,\n y = point.y,\n offsetX, offsetY, dim;\n\n if (typeof fromOriginX === 'string') {\n fromOriginX = originXOffset[fromOriginX];\n }\n else {\n fromOriginX -= 0.5;\n }\n\n if (typeof toOriginX === 'string') {\n toOriginX = originXOffset[toOriginX];\n }\n else {\n toOriginX -= 0.5;\n }\n\n offsetX = toOriginX - fromOriginX;\n\n if (typeof fromOriginY === 'string') {\n fromOriginY = originYOffset[fromOriginY];\n }\n else {\n fromOriginY -= 0.5;\n }\n\n if (typeof toOriginY === 'string') {\n toOriginY = originYOffset[toOriginY];\n }\n else {\n toOriginY -= 0.5;\n }\n\n offsetY = toOriginY - fromOriginY;\n\n if (offsetX || offsetY) {\n dim = this._getTransformedDimensions();\n x = point.x + offsetX * dim.x;\n y = point.y + offsetY * dim.y;\n }\n\n return new fabric.Point(x, y);\n },\n\n /**\n * Translates the coordinates from origin to center coordinates (based on the object's dimensions)\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToCenterPoint: function(point, originX, originY) {\n var p = this.translateToGivenOrigin(point, originX, originY, 'center', 'center');\n if (this.angle) {\n return fabric.util.rotatePoint(p, point, degreesToRadians(this.angle));\n }\n return p;\n },\n\n /**\n * Translates the coordinates from center to origin coordinates (based on the object's dimensions)\n * @param {fabric.Point} center The point which corresponds to center of the object\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToOriginPoint: function(center, originX, originY) {\n var p = this.translateToGivenOrigin(center, 'center', 'center', originX, originY);\n if (this.angle) {\n return fabric.util.rotatePoint(p, center, degreesToRadians(this.angle));\n }\n return p;\n },\n\n /**\n * Returns the real center coordinates of the object\n * @return {fabric.Point}\n */\n getCenterPoint: function() {\n var leftTop = new fabric.Point(this.left, this.top);\n return this.translateToCenterPoint(leftTop, this.originX, this.originY);\n },\n\n /**\n * Returns the coordinates of the object based on center coordinates\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @return {fabric.Point}\n */\n // getOriginPoint: function(center) {\n // return this.translateToOriginPoint(center, this.originX, this.originY);\n // },\n\n /**\n * Returns the coordinates of the object as if it has a different origin\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n getPointByOrigin: function(originX, originY) {\n var center = this.getCenterPoint();\n return this.translateToOriginPoint(center, originX, originY);\n },\n\n /**\n * Returns the point in local coordinates\n * @param {fabric.Point} point The point relative to the global coordinate system\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n toLocalPoint: function(point, originX, originY) {\n var center = this.getCenterPoint(),\n p, p2;\n\n if (typeof originX !== 'undefined' && typeof originY !== 'undefined' ) {\n p = this.translateToGivenOrigin(center, 'center', 'center', originX, originY);\n }\n else {\n p = new fabric.Point(this.left, this.top);\n }\n\n p2 = new fabric.Point(point.x, point.y);\n if (this.angle) {\n p2 = fabric.util.rotatePoint(p2, center, -degreesToRadians(this.angle));\n }\n return p2.subtractEquals(p);\n },\n\n /**\n * Returns the point in global coordinates\n * @param {fabric.Point} The point relative to the local coordinate system\n * @return {fabric.Point}\n */\n // toGlobalPoint: function(point) {\n // return fabric.util.rotatePoint(point, this.getCenterPoint(), degreesToRadians(this.angle)).addEquals(new fabric.Point(this.left, this.top));\n // },\n\n /**\n * Sets the position of the object taking into consideration the object's origin\n * @param {fabric.Point} pos The new position of the object\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {void}\n */\n setPositionByOrigin: function(pos, originX, originY) {\n var center = this.translateToCenterPoint(pos, originX, originY),\n position = this.translateToOriginPoint(center, this.originX, this.originY);\n this.set('left', position.x);\n this.set('top', position.y);\n },\n\n /**\n * @param {String} to One of 'left', 'center', 'right'\n */\n adjustPosition: function(to) {\n var angle = degreesToRadians(this.angle),\n hypotFull = this.getScaledWidth(),\n xFull = fabric.util.cos(angle) * hypotFull,\n yFull = fabric.util.sin(angle) * hypotFull,\n offsetFrom, offsetTo;\n\n //TODO: this function does not consider mixed situation like top, center.\n if (typeof this.originX === 'string') {\n offsetFrom = originXOffset[this.originX];\n }\n else {\n offsetFrom = this.originX - 0.5;\n }\n if (typeof to === 'string') {\n offsetTo = originXOffset[to];\n }\n else {\n offsetTo = to - 0.5;\n }\n this.left += xFull * (offsetTo - offsetFrom);\n this.top += yFull * (offsetTo - offsetFrom);\n this.setCoords();\n this.originX = to;\n },\n\n /**\n * Sets the origin/position of the object to it's center point\n * @private\n * @return {void}\n */\n _setOriginToCenter: function() {\n this._originalOriginX = this.originX;\n this._originalOriginY = this.originY;\n\n var center = this.getCenterPoint();\n\n this.originX = 'center';\n this.originY = 'center';\n\n this.left = center.x;\n this.top = center.y;\n },\n\n /**\n * Resets the origin/position of the object to it's original origin\n * @private\n * @return {void}\n */\n _resetOrigin: function() {\n var originPoint = this.translateToOriginPoint(\n this.getCenterPoint(),\n this._originalOriginX,\n this._originalOriginY);\n\n this.originX = this._originalOriginX;\n this.originY = this._originalOriginY;\n\n this.left = originPoint.x;\n this.top = originPoint.y;\n\n this._originalOriginX = null;\n this._originalOriginY = null;\n },\n\n /**\n * @private\n */\n _getLeftTopCoords: function() {\n return this.translateToOriginPoint(this.getCenterPoint(), 'left', 'top');\n },\n });\n\n})();\n\n\n(function() {\n\n function arrayFromCoords(coords) {\n return [\n new fabric.Point(coords.tl.x, coords.tl.y),\n new fabric.Point(coords.tr.x, coords.tr.y),\n new fabric.Point(coords.br.x, coords.br.y),\n new fabric.Point(coords.bl.x, coords.bl.y)\n ];\n }\n\n var util = fabric.util,\n degreesToRadians = util.degreesToRadians,\n multiplyMatrices = util.multiplyTransformMatrices,\n transformPoint = util.transformPoint;\n\n util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Describe object's corner position in canvas element coordinates.\n * properties are depending on control keys and padding the main controls.\n * each property is an object with x, y and corner.\n * The `corner` property contains in a similar manner the 4 points of the\n * interactive area of the corner.\n * The coordinates depends from the controls positionHandler and are used\n * to draw and locate controls\n * @memberOf fabric.Object.prototype\n */\n oCoords: null,\n\n /**\n * Describe object's corner position in canvas object absolute coordinates\n * properties are tl,tr,bl,br and describe the four main corner.\n * each property is an object with x, y, instance of Fabric.Point.\n * The coordinates depends from this properties: width, height, scaleX, scaleY\n * skewX, skewY, angle, strokeWidth, top, left.\n * Those coordinates are useful to understand where an object is. They get updated\n * with oCoords but they do not need to be updated when zoom or panning change.\n * The coordinates get updated with @method setCoords.\n * You can calculate them without updating with @method calcACoords();\n * @memberOf fabric.Object.prototype\n */\n aCoords: null,\n\n /**\n * Describe object's corner position in canvas element coordinates.\n * includes padding. Used of object detection.\n * set and refreshed with setCoords and calcCoords.\n * @memberOf fabric.Object.prototype\n */\n lineCoords: null,\n\n /**\n * storage for object transform matrix\n */\n ownMatrixCache: null,\n\n /**\n * storage for object full transform matrix\n */\n matrixCache: null,\n\n /**\n * custom controls interface\n * controls are added by default_controls.js\n */\n controls: { },\n\n /**\n * return correct set of coordinates for intersection\n * this will return either aCoords or lineCoords.\n * @param {Boolean} absolute will return aCoords if true or lineCoords\n * @return {Object} {tl, tr, br, bl} points\n */\n _getCoords: function(absolute, calculate) {\n if (calculate) {\n return (absolute ? this.calcACoords() : this.calcLineCoords());\n }\n if (!this.aCoords || !this.lineCoords) {\n this.setCoords(true);\n }\n return (absolute ? this.aCoords : this.lineCoords);\n },\n\n /**\n * return correct set of coordinates for intersection\n * this will return either aCoords or lineCoords.\n * The coords are returned in an array.\n * @return {Array} [tl, tr, br, bl] of points\n */\n getCoords: function(absolute, calculate) {\n return arrayFromCoords(this._getCoords(absolute, calculate));\n },\n\n /**\n * Checks if object intersects with an area formed by 2 points\n * @param {Object} pointTL top-left point of area\n * @param {Object} pointBR bottom-right point of area\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object intersects with an area formed by 2 points\n */\n intersectsWithRect: function(pointTL, pointBR, absolute, calculate) {\n var coords = this.getCoords(absolute, calculate),\n intersection = fabric.Intersection.intersectPolygonRectangle(\n coords,\n pointTL,\n pointBR\n );\n return intersection.status === 'Intersection';\n },\n\n /**\n * Checks if object intersects with another object\n * @param {Object} other Object to test\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object intersects with another object\n */\n intersectsWithObject: function(other, absolute, calculate) {\n var intersection = fabric.Intersection.intersectPolygonPolygon(\n this.getCoords(absolute, calculate),\n other.getCoords(absolute, calculate)\n );\n\n return intersection.status === 'Intersection'\n || other.isContainedWithinObject(this, absolute, calculate)\n || this.isContainedWithinObject(other, absolute, calculate);\n },\n\n /**\n * Checks if object is fully contained within area of another object\n * @param {Object} other Object to test\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is fully contained within area of another object\n */\n isContainedWithinObject: function(other, absolute, calculate) {\n var points = this.getCoords(absolute, calculate),\n otherCoords = absolute ? other.aCoords : other.lineCoords,\n i = 0, lines = other._getImageLines(otherCoords);\n for (; i < 4; i++) {\n if (!other.containsPoint(points[i], lines)) {\n return false;\n }\n }\n return true;\n },\n\n /**\n * Checks if object is fully contained within area formed by 2 points\n * @param {Object} pointTL top-left point of area\n * @param {Object} pointBR bottom-right point of area\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is fully contained within area formed by 2 points\n */\n isContainedWithinRect: function(pointTL, pointBR, absolute, calculate) {\n var boundingRect = this.getBoundingRect(absolute, calculate);\n\n return (\n boundingRect.left >= pointTL.x &&\n boundingRect.left + boundingRect.width <= pointBR.x &&\n boundingRect.top >= pointTL.y &&\n boundingRect.top + boundingRect.height <= pointBR.y\n );\n },\n\n /**\n * Checks if point is inside the object\n * @param {fabric.Point} point Point to check against\n * @param {Object} [lines] object returned from @method _getImageLines\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if point is inside the object\n */\n containsPoint: function(point, lines, absolute, calculate) {\n var coords = this._getCoords(absolute, calculate),\n lines = lines || this._getImageLines(coords),\n xPoints = this._findCrossPoints(point, lines);\n // if xPoints is odd then point is inside the object\n return (xPoints !== 0 && xPoints % 2 === 1);\n },\n\n /**\n * Checks if object is contained within the canvas with current viewportTransform\n * the check is done stopping at first point that appears on screen\n * @param {Boolean} [calculate] use coordinates of current position instead of .aCoords\n * @return {Boolean} true if object is fully or partially contained within canvas\n */\n isOnScreen: function(calculate) {\n if (!this.canvas) {\n return false;\n }\n var pointTL = this.canvas.vptCoords.tl, pointBR = this.canvas.vptCoords.br;\n var points = this.getCoords(true, calculate);\n // if some point is on screen, the object is on screen.\n if (points.some(function(point) {\n return point.x <= pointBR.x && point.x >= pointTL.x &&\n point.y <= pointBR.y && point.y >= pointTL.y;\n })) {\n return true;\n }\n // no points on screen, check intersection with absolute coordinates\n if (this.intersectsWithRect(pointTL, pointBR, true, calculate)) {\n return true;\n }\n return this._containsCenterOfCanvas(pointTL, pointBR, calculate);\n },\n\n /**\n * Checks if the object contains the midpoint between canvas extremities\n * Does not make sense outside the context of isOnScreen and isPartiallyOnScreen\n * @private\n * @param {Fabric.Point} pointTL Top Left point\n * @param {Fabric.Point} pointBR Top Right point\n * @param {Boolean} calculate use coordinates of current position instead of .oCoords\n * @return {Boolean} true if the object contains the point\n */\n _containsCenterOfCanvas: function(pointTL, pointBR, calculate) {\n // worst case scenario the object is so big that contains the screen\n var centerPoint = { x: (pointTL.x + pointBR.x) / 2, y: (pointTL.y + pointBR.y) / 2 };\n if (this.containsPoint(centerPoint, null, true, calculate)) {\n return true;\n }\n return false;\n },\n\n /**\n * Checks if object is partially contained within the canvas with current viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is partially contained within canvas\n */\n isPartiallyOnScreen: function(calculate) {\n if (!this.canvas) {\n return false;\n }\n var pointTL = this.canvas.vptCoords.tl, pointBR = this.canvas.vptCoords.br;\n if (this.intersectsWithRect(pointTL, pointBR, true, calculate)) {\n return true;\n }\n var allPointsAreOutside = this.getCoords(true, calculate).every(function(point) {\n return (point.x >= pointBR.x || point.x <= pointTL.x) &&\n (point.y >= pointBR.y || point.y <= pointTL.y);\n });\n return allPointsAreOutside && this._containsCenterOfCanvas(pointTL, pointBR, calculate);\n },\n\n /**\n * Method that returns an object with the object edges in it, given the coordinates of the corners\n * @private\n * @param {Object} oCoords Coordinates of the object corners\n */\n _getImageLines: function(oCoords) {\n\n var lines = {\n topline: {\n o: oCoords.tl,\n d: oCoords.tr\n },\n rightline: {\n o: oCoords.tr,\n d: oCoords.br\n },\n bottomline: {\n o: oCoords.br,\n d: oCoords.bl\n },\n leftline: {\n o: oCoords.bl,\n d: oCoords.tl\n }\n };\n\n // // debugging\n // if (this.canvas.contextTop) {\n // this.canvas.contextTop.fillRect(lines.bottomline.d.x, lines.bottomline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.bottomline.o.x, lines.bottomline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.leftline.d.x, lines.leftline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.leftline.o.x, lines.leftline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.topline.d.x, lines.topline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.topline.o.x, lines.topline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.rightline.d.x, lines.rightline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.rightline.o.x, lines.rightline.o.y, 2, 2);\n // }\n\n return lines;\n },\n\n /**\n * Helper method to determine how many cross points are between the 4 object edges\n * and the horizontal line determined by a point on canvas\n * @private\n * @param {fabric.Point} point Point to check\n * @param {Object} lines Coordinates of the object being evaluated\n */\n // remove yi, not used but left code here just in case.\n _findCrossPoints: function(point, lines) {\n var b1, b2, a1, a2, xi, // yi,\n xcount = 0,\n iLine;\n\n for (var lineKey in lines) {\n iLine = lines[lineKey];\n // optimisation 1: line below point. no cross\n if ((iLine.o.y < point.y) && (iLine.d.y < point.y)) {\n continue;\n }\n // optimisation 2: line above point. no cross\n if ((iLine.o.y >= point.y) && (iLine.d.y >= point.y)) {\n continue;\n }\n // optimisation 3: vertical line case\n if ((iLine.o.x === iLine.d.x) && (iLine.o.x >= point.x)) {\n xi = iLine.o.x;\n // yi = point.y;\n }\n // calculate the intersection point\n else {\n b1 = 0;\n b2 = (iLine.d.y - iLine.o.y) / (iLine.d.x - iLine.o.x);\n a1 = point.y - b1 * point.x;\n a2 = iLine.o.y - b2 * iLine.o.x;\n\n xi = -(a1 - a2) / (b1 - b2);\n // yi = a1 + b1 * xi;\n }\n // dont count xi < point.x cases\n if (xi >= point.x) {\n xcount += 1;\n }\n // optimisation 4: specific for square images\n if (xcount === 2) {\n break;\n }\n }\n return xcount;\n },\n\n /**\n * Returns coordinates of object's bounding rectangle (left, top, width, height)\n * the box is intended as aligned to axis of canvas.\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords / .aCoords\n * @return {Object} Object with left, top, width, height properties\n */\n getBoundingRect: function(absolute, calculate) {\n var coords = this.getCoords(absolute, calculate);\n return util.makeBoundingBoxFromPoints(coords);\n },\n\n /**\n * Returns width of an object's bounding box counting transformations\n * before 2.0 it was named getWidth();\n * @return {Number} width value\n */\n getScaledWidth: function() {\n return this._getTransformedDimensions().x;\n },\n\n /**\n * Returns height of an object bounding box counting transformations\n * before 2.0 it was named getHeight();\n * @return {Number} height value\n */\n getScaledHeight: function() {\n return this._getTransformedDimensions().y;\n },\n\n /**\n * Makes sure the scale is valid and modifies it if necessary\n * @private\n * @param {Number} value\n * @return {Number}\n */\n _constrainScale: function(value) {\n if (Math.abs(value) < this.minScaleLimit) {\n if (value < 0) {\n return -this.minScaleLimit;\n }\n else {\n return this.minScaleLimit;\n }\n }\n else if (value === 0) {\n return 0.0001;\n }\n return value;\n },\n\n /**\n * Scales an object (equally by x and y)\n * @param {Number} value Scale factor\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scale: function(value) {\n this._set('scaleX', value);\n this._set('scaleY', value);\n return this.setCoords();\n },\n\n /**\n * Scales an object to a given width, with respect to bounding box (scaling by x/y equally)\n * @param {Number} value New width value\n * @param {Boolean} absolute ignore viewport\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scaleToWidth: function(value, absolute) {\n // adjust to bounding rect factor so that rotated shapes would fit as well\n var boundingRectFactor = this.getBoundingRect(absolute).width / this.getScaledWidth();\n return this.scale(value / this.width / boundingRectFactor);\n },\n\n /**\n * Scales an object to a given height, with respect to bounding box (scaling by x/y equally)\n * @param {Number} value New height value\n * @param {Boolean} absolute ignore viewport\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scaleToHeight: function(value, absolute) {\n // adjust to bounding rect factor so that rotated shapes would fit as well\n var boundingRectFactor = this.getBoundingRect(absolute).height / this.getScaledHeight();\n return this.scale(value / this.height / boundingRectFactor);\n },\n\n /**\n * Calculates and returns the .coords of an object.\n * unused by the library, only for the end dev.\n * @return {Object} Object with tl, tr, br, bl ....\n * @chainable\n * @deprecated\n */\n calcCoords: function(absolute) {\n // this is a compatibility function to avoid removing calcCoords now.\n if (absolute) {\n return this.calcACoords();\n }\n return this.calcOCoords();\n },\n\n calcLineCoords: function() {\n var vpt = this.getViewportTransform(),\n padding = this.padding, angle = degreesToRadians(this.angle),\n cos = util.cos(angle), sin = util.sin(angle),\n cosP = cos * padding, sinP = sin * padding, cosPSinP = cosP + sinP,\n cosPMinusSinP = cosP - sinP, aCoords = this.calcACoords();\n\n var lineCoords = {\n tl: transformPoint(aCoords.tl, vpt),\n tr: transformPoint(aCoords.tr, vpt),\n bl: transformPoint(aCoords.bl, vpt),\n br: transformPoint(aCoords.br, vpt),\n };\n\n if (padding) {\n lineCoords.tl.x -= cosPMinusSinP;\n lineCoords.tl.y -= cosPSinP;\n lineCoords.tr.x += cosPSinP;\n lineCoords.tr.y -= cosPMinusSinP;\n lineCoords.bl.x -= cosPSinP;\n lineCoords.bl.y += cosPMinusSinP;\n lineCoords.br.x += cosPMinusSinP;\n lineCoords.br.y += cosPSinP;\n }\n\n return lineCoords;\n },\n\n calcOCoords: function() {\n var rotateMatrix = this._calcRotateMatrix(),\n translateMatrix = this._calcTranslateMatrix(),\n vpt = this.getViewportTransform(),\n startMatrix = multiplyMatrices(vpt, translateMatrix),\n finalMatrix = multiplyMatrices(startMatrix, rotateMatrix),\n finalMatrix = multiplyMatrices(finalMatrix, [1 / vpt[0], 0, 0, 1 / vpt[3], 0, 0]),\n dim = this._calculateCurrentDimensions(),\n coords = {};\n this.forEachControl(function(control, key, fabricObject) {\n coords[key] = control.positionHandler(dim, finalMatrix, fabricObject);\n });\n\n // debug code\n // var canvas = this.canvas;\n // setTimeout(function() {\n // canvas.contextTop.clearRect(0, 0, 700, 700);\n // canvas.contextTop.fillStyle = 'green';\n // Object.keys(coords).forEach(function(key) {\n // var control = coords[key];\n // canvas.contextTop.fillRect(control.x, control.y, 3, 3);\n // });\n // }, 50);\n return coords;\n },\n\n calcACoords: function() {\n var rotateMatrix = this._calcRotateMatrix(),\n translateMatrix = this._calcTranslateMatrix(),\n finalMatrix = multiplyMatrices(translateMatrix, rotateMatrix),\n dim = this._getTransformedDimensions(),\n w = dim.x / 2, h = dim.y / 2;\n return {\n // corners\n tl: transformPoint({ x: -w, y: -h }, finalMatrix),\n tr: transformPoint({ x: w, y: -h }, finalMatrix),\n bl: transformPoint({ x: -w, y: h }, finalMatrix),\n br: transformPoint({ x: w, y: h }, finalMatrix)\n };\n },\n\n /**\n * Sets corner and controls position coordinates based on current angle, width and height, left and top.\n * oCoords are used to find the corners\n * aCoords are used to quickly find an object on the canvas\n * lineCoords are used to quickly find object during pointer events.\n * See {@link https://github.com/kangax/fabric.js/wiki/When-to-call-setCoords|When-to-call-setCoords}\n * @param {Boolean} [skipCorners] skip calculation of oCoords.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setCoords: function(skipCorners) {\n this.aCoords = this.calcACoords();\n // in case we are in a group, for how the inner group target check works,\n // lineCoords are exactly aCoords. Since the vpt gets absorbed by the normalized pointer.\n this.lineCoords = this.group ? this.aCoords : this.calcLineCoords();\n if (skipCorners) {\n return this;\n }\n // set coordinates of the draggable boxes in the corners used to scale/rotate the image\n this.oCoords = this.calcOCoords();\n this._setCornerCoords && this._setCornerCoords();\n return this;\n },\n\n /**\n * calculate rotation matrix of an object\n * @return {Array} rotation matrix for the object\n */\n _calcRotateMatrix: function() {\n return util.calcRotateMatrix(this);\n },\n\n /**\n * calculate the translation matrix for an object transform\n * @return {Array} rotation matrix for the object\n */\n _calcTranslateMatrix: function() {\n var center = this.getCenterPoint();\n return [1, 0, 0, 1, center.x, center.y];\n },\n\n transformMatrixKey: function(skipGroup) {\n var sep = '_', prefix = '';\n if (!skipGroup && this.group) {\n prefix = this.group.transformMatrixKey(skipGroup) + sep;\n };\n return prefix + this.top + sep + this.left + sep + this.scaleX + sep + this.scaleY +\n sep + this.skewX + sep + this.skewY + sep + this.angle + sep + this.originX + sep + this.originY +\n sep + this.width + sep + this.height + sep + this.strokeWidth + this.flipX + this.flipY;\n },\n\n /**\n * calculate transform matrix that represents the current transformations from the\n * object's properties.\n * @param {Boolean} [skipGroup] return transform matrix for object not counting parent transformations\n * There are some situation in which this is useful to avoid the fake rotation.\n * @return {Array} transform matrix for the object\n */\n calcTransformMatrix: function(skipGroup) {\n var matrix = this.calcOwnMatrix();\n if (skipGroup || !this.group) {\n return matrix;\n }\n var key = this.transformMatrixKey(skipGroup), cache = this.matrixCache || (this.matrixCache = {});\n if (cache.key === key) {\n return cache.value;\n }\n if (this.group) {\n matrix = multiplyMatrices(this.group.calcTransformMatrix(false), matrix);\n }\n cache.key = key;\n cache.value = matrix;\n return matrix;\n },\n\n /**\n * calculate transform matrix that represents the current transformations from the\n * object's properties, this matrix does not include the group transformation\n * @return {Array} transform matrix for the object\n */\n calcOwnMatrix: function() {\n var key = this.transformMatrixKey(true), cache = this.ownMatrixCache || (this.ownMatrixCache = {});\n if (cache.key === key) {\n return cache.value;\n }\n var tMatrix = this._calcTranslateMatrix(),\n options = {\n angle: this.angle,\n translateX: tMatrix[4],\n translateY: tMatrix[5],\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n skewX: this.skewX,\n skewY: this.skewY,\n flipX: this.flipX,\n flipY: this.flipY,\n };\n cache.key = key;\n cache.value = util.composeMatrix(options);\n return cache.value;\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n * @deprecated since 3.4.0, please use fabric.util._calcDimensionsTransformMatrix\n * not including or including flipX, flipY to emulate the flipping boolean\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _calcDimensionsTransformMatrix: function(skewX, skewY, flipping) {\n return util.calcDimensionsMatrix({\n skewX: skewX,\n skewY: skewY,\n scaleX: this.scaleX * (flipping && this.flipX ? -1 : 1),\n scaleY: this.scaleY * (flipping && this.flipY ? -1 : 1)\n });\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _getNonTransformedDimensions: function() {\n var strokeWidth = this.strokeWidth,\n w = this.width + strokeWidth,\n h = this.height + strokeWidth;\n return { x: w, y: h };\n },\n\n /*\n * Calculate object bounding box dimensions from its properties scale, skew.\n * @param {Number} skewX, a value to override current skewX\n * @param {Number} skewY, a value to override current skewY\n * @private\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _getTransformedDimensions: function(skewX, skewY) {\n if (typeof skewX === 'undefined') {\n skewX = this.skewX;\n }\n if (typeof skewY === 'undefined') {\n skewY = this.skewY;\n }\n var dimensions = this._getNonTransformedDimensions(), dimX, dimY,\n noSkew = skewX === 0 && skewY === 0;\n\n if (this.strokeUniform) {\n dimX = this.width;\n dimY = this.height;\n }\n else {\n dimX = dimensions.x;\n dimY = dimensions.y;\n }\n if (noSkew) {\n return this._finalizeDimensions(dimX * this.scaleX, dimY * this.scaleY);\n }\n var bbox = util.sizeAfterTransform(dimX, dimY, {\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n skewX: skewX,\n skewY: skewY,\n });\n return this._finalizeDimensions(bbox.x, bbox.y);\n },\n\n /*\n * Calculate object bounding box dimensions from its properties scale, skew.\n * @param Number width width of the bbox\n * @param Number height height of the bbox\n * @private\n * @return {Object} .x finalized width dimension\n * @return {Object} .y finalized height dimension\n */\n _finalizeDimensions: function(width, height) {\n return this.strokeUniform ?\n { x: width + this.strokeWidth, y: height + this.strokeWidth }\n :\n { x: width, y: height };\n },\n\n /*\n * Calculate object dimensions for controls box, including padding and canvas zoom.\n * and active selection\n * private\n */\n _calculateCurrentDimensions: function() {\n var vpt = this.getViewportTransform(),\n dim = this._getTransformedDimensions(),\n p = transformPoint(dim, vpt, true);\n return p.scalarAdd(2 * this.padding);\n },\n });\n})();\n\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Moves an object to the bottom of the stack of drawn objects\n * @return {fabric.Object} thisArg\n * @chainable\n */\n sendToBack: function() {\n if (this.group) {\n fabric.StaticCanvas.prototype.sendToBack.call(this.group, this);\n }\n else if (this.canvas) {\n this.canvas.sendToBack(this);\n }\n return this;\n },\n\n /**\n * Moves an object to the top of the stack of drawn objects\n * @return {fabric.Object} thisArg\n * @chainable\n */\n bringToFront: function() {\n if (this.group) {\n fabric.StaticCanvas.prototype.bringToFront.call(this.group, this);\n }\n else if (this.canvas) {\n this.canvas.bringToFront(this);\n }\n return this;\n },\n\n /**\n * Moves an object down in stack of drawn objects\n * @param {Boolean} [intersecting] If `true`, send object behind next lower intersecting object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n sendBackwards: function(intersecting) {\n if (this.group) {\n fabric.StaticCanvas.prototype.sendBackwards.call(this.group, this, intersecting);\n }\n else if (this.canvas) {\n this.canvas.sendBackwards(this, intersecting);\n }\n return this;\n },\n\n /**\n * Moves an object up in stack of drawn objects\n * @param {Boolean} [intersecting] If `true`, send object in front of next upper intersecting object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n bringForward: function(intersecting) {\n if (this.group) {\n fabric.StaticCanvas.prototype.bringForward.call(this.group, this, intersecting);\n }\n else if (this.canvas) {\n this.canvas.bringForward(this, intersecting);\n }\n return this;\n },\n\n /**\n * Moves an object to specified level in stack of drawn objects\n * @param {Number} index New position of object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n moveTo: function(index) {\n if (this.group && this.group.type !== 'activeSelection') {\n fabric.StaticCanvas.prototype.moveTo.call(this.group, this, index);\n }\n else if (this.canvas) {\n this.canvas.moveTo(this, index);\n }\n return this;\n }\n});\n\n\n/* _TO_SVG_START_ */\n(function() {\n function getSvgColorString(prop, value) {\n if (!value) {\n return prop + ': none; ';\n }\n else if (value.toLive) {\n return prop + ': url(#SVGID_' + value.id + '); ';\n }\n else {\n var color = new fabric.Color(value),\n str = prop + ': ' + color.toRgb() + '; ',\n opacity = color.getAlpha();\n if (opacity !== 1) {\n //change the color in rgb + opacity\n str += prop + '-opacity: ' + opacity.toString() + '; ';\n }\n return str;\n }\n }\n\n var toFixed = fabric.util.toFixed;\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n /**\n * Returns styles-string for svg-export\n * @param {Boolean} skipShadow a boolean to skip shadow filter output\n * @return {String}\n */\n getSvgStyles: function(skipShadow) {\n\n var fillRule = this.fillRule ? this.fillRule : 'nonzero',\n strokeWidth = this.strokeWidth ? this.strokeWidth : '0',\n strokeDashArray = this.strokeDashArray ? this.strokeDashArray.join(' ') : 'none',\n strokeDashOffset = this.strokeDashOffset ? this.strokeDashOffset : '0',\n strokeLineCap = this.strokeLineCap ? this.strokeLineCap : 'butt',\n strokeLineJoin = this.strokeLineJoin ? this.strokeLineJoin : 'miter',\n strokeMiterLimit = this.strokeMiterLimit ? this.strokeMiterLimit : '4',\n opacity = typeof this.opacity !== 'undefined' ? this.opacity : '1',\n visibility = this.visible ? '' : ' visibility: hidden;',\n filter = skipShadow ? '' : this.getSvgFilter(),\n fill = getSvgColorString('fill', this.fill),\n stroke = getSvgColorString('stroke', this.stroke);\n\n return [\n stroke,\n 'stroke-width: ', strokeWidth, '; ',\n 'stroke-dasharray: ', strokeDashArray, '; ',\n 'stroke-linecap: ', strokeLineCap, '; ',\n 'stroke-dashoffset: ', strokeDashOffset, '; ',\n 'stroke-linejoin: ', strokeLineJoin, '; ',\n 'stroke-miterlimit: ', strokeMiterLimit, '; ',\n fill,\n 'fill-rule: ', fillRule, '; ',\n 'opacity: ', opacity, ';',\n filter,\n visibility\n ].join('');\n },\n\n /**\n * Returns styles-string for svg-export\n * @param {Object} style the object from which to retrieve style properties\n * @param {Boolean} useWhiteSpace a boolean to include an additional attribute in the style.\n * @return {String}\n */\n getSvgSpanStyles: function(style, useWhiteSpace) {\n var term = '; ';\n var fontFamily = style.fontFamily ?\n 'font-family: ' + (((style.fontFamily.indexOf('\\'') === -1 && style.fontFamily.indexOf('\"') === -1) ?\n '\\'' + style.fontFamily + '\\'' : style.fontFamily)) + term : '';\n var strokeWidth = style.strokeWidth ? 'stroke-width: ' + style.strokeWidth + term : '',\n fontFamily = fontFamily,\n fontSize = style.fontSize ? 'font-size: ' + style.fontSize + 'px' + term : '',\n fontStyle = style.fontStyle ? 'font-style: ' + style.fontStyle + term : '',\n fontWeight = style.fontWeight ? 'font-weight: ' + style.fontWeight + term : '',\n fill = style.fill ? getSvgColorString('fill', style.fill) : '',\n stroke = style.stroke ? getSvgColorString('stroke', style.stroke) : '',\n textDecoration = this.getSvgTextDecoration(style),\n deltaY = style.deltaY ? 'baseline-shift: ' + (-style.deltaY) + '; ' : '';\n if (textDecoration) {\n textDecoration = 'text-decoration: ' + textDecoration + term;\n }\n\n return [\n stroke,\n strokeWidth,\n fontFamily,\n fontSize,\n fontStyle,\n fontWeight,\n textDecoration,\n fill,\n deltaY,\n useWhiteSpace ? 'white-space: pre; ' : ''\n ].join('');\n },\n\n /**\n * Returns text-decoration property for svg-export\n * @param {Object} style the object from which to retrieve style properties\n * @return {String}\n */\n getSvgTextDecoration: function(style) {\n return ['overline', 'underline', 'line-through'].filter(function(decoration) {\n return style[decoration.replace('-', '')];\n }).join(' ');\n },\n\n /**\n * Returns filter for svg shadow\n * @return {String}\n */\n getSvgFilter: function() {\n return this.shadow ? 'filter: url(#SVGID_' + this.shadow.id + ');' : '';\n },\n\n /**\n * Returns id attribute for svg output\n * @return {String}\n */\n getSvgCommons: function() {\n return [\n this.id ? 'id=\"' + this.id + '\" ' : '',\n this.clipPath ? 'clip-path=\"url(#' + this.clipPath.clipPathId + ')\" ' : '',\n ].join('');\n },\n\n /**\n * Returns transform-string for svg-export\n * @param {Boolean} use the full transform or the single object one.\n * @return {String}\n */\n getSvgTransform: function(full, additionalTransform) {\n var transform = full ? this.calcTransformMatrix() : this.calcOwnMatrix(),\n svgTransform = 'transform=\"' + fabric.util.matrixToSVG(transform);\n return svgTransform +\n (additionalTransform || '') + '\" ';\n },\n\n _setSVGBg: function(textBgRects) {\n if (this.backgroundColor) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n textBgRects.push(\n '\\t\\t\\n');\n }\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n return this._createBaseSVGMarkup(this._toSVG(reviver), { reviver: reviver });\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n return '\\t' + this._createBaseClipPathSVGMarkup(this._toSVG(reviver), { reviver: reviver });\n },\n\n /**\n * @private\n */\n _createBaseClipPathSVGMarkup: function(objectMarkup, options) {\n options = options || {};\n var reviver = options.reviver,\n additionalTransform = options.additionalTransform || '',\n commonPieces = [\n this.getSvgTransform(true, additionalTransform),\n this.getSvgCommons(),\n ].join(''),\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS');\n objectMarkup[index] = commonPieces;\n return reviver ? reviver(objectMarkup.join('')) : objectMarkup.join('');\n },\n\n /**\n * @private\n */\n _createBaseSVGMarkup: function(objectMarkup, options) {\n options = options || {};\n var noStyle = options.noStyle,\n reviver = options.reviver,\n styleInfo = noStyle ? '' : 'style=\"' + this.getSvgStyles() + '\" ',\n shadowInfo = options.withShadow ? 'style=\"' + this.getSvgFilter() + '\" ' : '',\n clipPath = this.clipPath,\n vectorEffect = this.strokeUniform ? 'vector-effect=\"non-scaling-stroke\" ' : '',\n absoluteClipPath = clipPath && clipPath.absolutePositioned,\n stroke = this.stroke, fill = this.fill, shadow = this.shadow,\n commonPieces, markup = [], clipPathMarkup,\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS'),\n additionalTransform = options.additionalTransform;\n if (clipPath) {\n clipPath.clipPathId = 'CLIPPATH_' + fabric.Object.__uid++;\n clipPathMarkup = '\\n' +\n clipPath.toClipPathSVG(reviver) +\n '\\n';\n }\n if (absoluteClipPath) {\n markup.push(\n '\\n'\n );\n }\n markup.push(\n '\\n'\n );\n commonPieces = [\n styleInfo,\n vectorEffect,\n noStyle ? '' : this.addPaintOrder(), ' ',\n additionalTransform ? 'transform=\"' + additionalTransform + '\" ' : '',\n ].join('');\n objectMarkup[index] = commonPieces;\n if (fill && fill.toLive) {\n markup.push(fill.toSVG(this));\n }\n if (stroke && stroke.toLive) {\n markup.push(stroke.toSVG(this));\n }\n if (shadow) {\n markup.push(shadow.toSVG(this));\n }\n if (clipPath) {\n markup.push(clipPathMarkup);\n }\n markup.push(objectMarkup.join(''));\n markup.push('\\n');\n absoluteClipPath && markup.push('\\n');\n return reviver ? reviver(markup.join('')) : markup.join('');\n },\n\n addPaintOrder: function() {\n return this.paintFirst !== 'fill' ? ' paint-order=\"' + this.paintFirst + '\" ' : '';\n }\n });\n})();\n/* _TO_SVG_END_ */\n\n\n(function() {\n\n var extend = fabric.util.object.extend,\n originalSet = 'stateProperties';\n\n /*\n Depends on `stateProperties`\n */\n function saveProps(origin, destination, props) {\n var tmpObj = { }, deep = true;\n props.forEach(function(prop) {\n tmpObj[prop] = origin[prop];\n });\n\n extend(origin[destination], tmpObj, deep);\n }\n\n function _isEqual(origValue, currentValue, firstPass) {\n if (origValue === currentValue) {\n // if the objects are identical, return\n return true;\n }\n else if (Array.isArray(origValue)) {\n if (!Array.isArray(currentValue) || origValue.length !== currentValue.length) {\n return false;\n }\n for (var i = 0, len = origValue.length; i < len; i++) {\n if (!_isEqual(origValue[i], currentValue[i])) {\n return false;\n }\n }\n return true;\n }\n else if (origValue && typeof origValue === 'object') {\n var keys = Object.keys(origValue), key;\n if (!currentValue ||\n typeof currentValue !== 'object' ||\n (!firstPass && keys.length !== Object.keys(currentValue).length)\n ) {\n return false;\n }\n for (var i = 0, len = keys.length; i < len; i++) {\n key = keys[i];\n // since clipPath is in the statefull cache list and the clipPath objects\n // would be iterated as an object, this would lead to possible infinite recursion\n // we do not want to compare those.\n if (key === 'canvas' || key === 'group') {\n continue;\n }\n if (!_isEqual(origValue[key], currentValue[key])) {\n return false;\n }\n }\n return true;\n }\n }\n\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Returns true if object state (one of its state properties) was changed\n * @param {String} [propertySet] optional name for the set of property we want to save\n * @return {Boolean} true if instance' state has changed since `{@link fabric.Object#saveState}` was called\n */\n hasStateChanged: function(propertySet) {\n propertySet = propertySet || originalSet;\n var dashedPropertySet = '_' + propertySet;\n if (Object.keys(this[dashedPropertySet]).length < this[propertySet].length) {\n return true;\n }\n return !_isEqual(this[dashedPropertySet], this, true);\n },\n\n /**\n * Saves state of an object\n * @param {Object} [options] Object with additional `stateProperties` array to include when saving state\n * @return {fabric.Object} thisArg\n */\n saveState: function(options) {\n var propertySet = options && options.propertySet || originalSet,\n destination = '_' + propertySet;\n if (!this[destination]) {\n return this.setupState(options);\n }\n saveProps(this, destination, this[propertySet]);\n if (options && options.stateProperties) {\n saveProps(this, destination, options.stateProperties);\n }\n return this;\n },\n\n /**\n * Setups state of an object\n * @param {Object} [options] Object with additional `stateProperties` array to include when saving state\n * @return {fabric.Object} thisArg\n */\n setupState: function(options) {\n options = options || { };\n var propertySet = options.propertySet || originalSet;\n options.propertySet = propertySet;\n this['_' + propertySet] = { };\n this.saveState(options);\n return this;\n }\n });\n})();\n\n\n(function() {\n\n var degreesToRadians = fabric.util.degreesToRadians;\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n /**\n * Determines which corner has been clicked\n * @private\n * @param {Object} pointer The pointer indicating the mouse position\n * @return {String|Boolean} corner code (tl, tr, bl, br, etc.), or false if nothing is found\n */\n _findTargetCorner: function(pointer, forTouch) {\n // objects in group, anykind, are not self modificable,\n // must not return an hovered corner.\n if (!this.hasControls || this.group || (!this.canvas || this.canvas._activeObject !== this)) {\n return false;\n }\n\n var ex = pointer.x,\n ey = pointer.y,\n xPoints,\n lines, keys = Object.keys(this.oCoords),\n j = keys.length - 1, i;\n this.__corner = 0;\n\n // cycle in reverse order so we pick first the one on top\n for (; j >= 0; j--) {\n i = keys[j];\n if (!this.isControlVisible(i)) {\n continue;\n }\n\n lines = this._getImageLines(forTouch ? this.oCoords[i].touchCorner : this.oCoords[i].corner);\n // // debugging\n //\n // this.canvas.contextTop.fillRect(lines.bottomline.d.x, lines.bottomline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.bottomline.o.x, lines.bottomline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.leftline.d.x, lines.leftline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.leftline.o.x, lines.leftline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.topline.d.x, lines.topline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.topline.o.x, lines.topline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.rightline.d.x, lines.rightline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.rightline.o.x, lines.rightline.o.y, 2, 2);\n\n xPoints = this._findCrossPoints({ x: ex, y: ey }, lines);\n if (xPoints !== 0 && xPoints % 2 === 1) {\n this.__corner = i;\n return i;\n }\n }\n return false;\n },\n\n /**\n * Calls a function for each control. The function gets called,\n * with the control, the object that is calling the iterator and the control's key\n * @param {Function} fn function to iterate over the controls over\n */\n forEachControl: function(fn) {\n for (var i in this.controls) {\n fn(this.controls[i], i, this);\n };\n },\n\n /**\n * Sets the coordinates of the draggable boxes in the corners of\n * the image used to scale/rotate it.\n * note: if we would switch to ROUND corner area, all of this would disappear.\n * everything would resolve to a single point and a pythagorean theorem for the distance\n * @private\n */\n _setCornerCoords: function() {\n var coords = this.oCoords;\n\n for (var control in coords) {\n var controlObject = this.controls[control];\n coords[control].corner = controlObject.calcCornerCoords(\n this.angle, this.cornerSize, coords[control].x, coords[control].y, false);\n coords[control].touchCorner = controlObject.calcCornerCoords(\n this.angle, this.touchCornerSize, coords[control].x, coords[control].y, true);\n }\n },\n\n /**\n * Draws a colored layer behind the object, inside its selection borders.\n * Requires public options: padding, selectionBackgroundColor\n * this function is called when the context is transformed\n * has checks to be skipped when the object is on a staticCanvas\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawSelectionBackground: function(ctx) {\n if (!this.selectionBackgroundColor ||\n (this.canvas && !this.canvas.interactive) ||\n (this.canvas && this.canvas._activeObject !== this)\n ) {\n return this;\n }\n ctx.save();\n var center = this.getCenterPoint(), wh = this._calculateCurrentDimensions(),\n vpt = this.canvas.viewportTransform;\n ctx.translate(center.x, center.y);\n ctx.scale(1 / vpt[0], 1 / vpt[3]);\n ctx.rotate(degreesToRadians(this.angle));\n ctx.fillStyle = this.selectionBackgroundColor;\n ctx.fillRect(-wh.x / 2, -wh.y / 2, wh.x, wh.y);\n ctx.restore();\n return this;\n },\n\n /**\n * Draws borders of an object's bounding box.\n * Requires public properties: width, height\n * Requires public options: padding, borderColor\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawBorders: function(ctx, styleOverride) {\n styleOverride = styleOverride || {};\n var wh = this._calculateCurrentDimensions(),\n strokeWidth = this.borderScaleFactor,\n width = wh.x + strokeWidth,\n height = wh.y + strokeWidth,\n hasControls = typeof styleOverride.hasControls !== 'undefined' ?\n styleOverride.hasControls : this.hasControls,\n shouldStroke = false;\n\n ctx.save();\n ctx.strokeStyle = styleOverride.borderColor || this.borderColor;\n this._setLineDash(ctx, styleOverride.borderDashArray || this.borderDashArray, null);\n\n ctx.strokeRect(\n -width / 2,\n -height / 2,\n width,\n height\n );\n\n if (hasControls) {\n ctx.beginPath();\n this.forEachControl(function(control, key, fabricObject) {\n // in this moment, the ctx is centered on the object.\n // width and height of the above function are the size of the bbox.\n if (control.withConnection && control.getVisibility(fabricObject, key)) {\n // reset movement for each control\n shouldStroke = true;\n ctx.moveTo(control.x * width, control.y * height);\n ctx.lineTo(\n control.x * width + control.offsetX,\n control.y * height + control.offsetY\n );\n }\n });\n if (shouldStroke) {\n ctx.stroke();\n }\n }\n ctx.restore();\n return this;\n },\n\n /**\n * Draws borders of an object's bounding box when it is inside a group.\n * Requires public properties: width, height\n * Requires public options: padding, borderColor\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {object} options object representing current object parameters\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawBordersInGroup: function(ctx, options, styleOverride) {\n styleOverride = styleOverride || {};\n var bbox = fabric.util.sizeAfterTransform(this.width, this.height, options),\n strokeWidth = this.strokeWidth,\n strokeUniform = this.strokeUniform,\n borderScaleFactor = this.borderScaleFactor,\n width =\n bbox.x + strokeWidth * (strokeUniform ? this.canvas.getZoom() : options.scaleX) + borderScaleFactor,\n height =\n bbox.y + strokeWidth * (strokeUniform ? this.canvas.getZoom() : options.scaleY) + borderScaleFactor;\n ctx.save();\n this._setLineDash(ctx, styleOverride.borderDashArray || this.borderDashArray, null);\n ctx.strokeStyle = styleOverride.borderColor || this.borderColor;\n ctx.strokeRect(\n -width / 2,\n -height / 2,\n width,\n height\n );\n\n ctx.restore();\n return this;\n },\n\n /**\n * Draws corners of an object's bounding box.\n * Requires public properties: width, height\n * Requires public options: cornerSize, padding\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawControls: function(ctx, styleOverride) {\n styleOverride = styleOverride || {};\n ctx.save();\n ctx.setTransform(this.canvas.getRetinaScaling(), 0, 0, this.canvas.getRetinaScaling(), 0, 0);\n ctx.strokeStyle = ctx.fillStyle = styleOverride.cornerColor || this.cornerColor;\n if (!this.transparentCorners) {\n ctx.strokeStyle = styleOverride.cornerStrokeColor || this.cornerStrokeColor;\n }\n this._setLineDash(ctx, styleOverride.cornerDashArray || this.cornerDashArray, null);\n this.setCoords();\n this.forEachControl(function(control, key, fabricObject) {\n if (control.getVisibility(fabricObject, key)) {\n control.render(ctx,\n fabricObject.oCoords[key].x,\n fabricObject.oCoords[key].y, styleOverride, fabricObject);\n }\n });\n ctx.restore();\n\n return this;\n },\n\n /**\n * Returns true if the specified control is visible, false otherwise.\n * @param {String} controlKey The key of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.\n * @returns {Boolean} true if the specified control is visible, false otherwise\n */\n isControlVisible: function(controlKey) {\n return this.controls[controlKey] && this.controls[controlKey].getVisibility(this, controlKey);\n },\n\n /**\n * Sets the visibility of the specified control.\n * @param {String} controlKey The key of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.\n * @param {Boolean} visible true to set the specified control visible, false otherwise\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setControlVisible: function(controlKey, visible) {\n if (!this._controlsVisibility) {\n this._controlsVisibility = {};\n }\n this._controlsVisibility[controlKey] = visible;\n return this;\n },\n\n /**\n * Sets the visibility state of object controls.\n * @param {Object} [options] Options object\n * @param {Boolean} [options.bl] true to enable the bottom-left control, false to disable it\n * @param {Boolean} [options.br] true to enable the bottom-right control, false to disable it\n * @param {Boolean} [options.mb] true to enable the middle-bottom control, false to disable it\n * @param {Boolean} [options.ml] true to enable the middle-left control, false to disable it\n * @param {Boolean} [options.mr] true to enable the middle-right control, false to disable it\n * @param {Boolean} [options.mt] true to enable the middle-top control, false to disable it\n * @param {Boolean} [options.tl] true to enable the top-left control, false to disable it\n * @param {Boolean} [options.tr] true to enable the top-right control, false to disable it\n * @param {Boolean} [options.mtr] true to enable the middle-top-rotate control, false to disable it\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setControlsVisibility: function(options) {\n options || (options = { });\n\n for (var p in options) {\n this.setControlVisible(p, options[p]);\n }\n return this;\n },\n\n\n /**\n * This callback function is called every time _discardActiveObject or _setActiveObject\n * try to to deselect this object. If the function returns true, the process is cancelled\n * @param {Object} [options] options sent from the upper functions\n * @param {Event} [options.e] event if the process is generated by an event\n */\n onDeselect: function() {\n // implemented by sub-classes, as needed.\n },\n\n\n /**\n * This callback function is called every time _discardActiveObject or _setActiveObject\n * try to to select this object. If the function returns true, the process is cancelled\n * @param {Object} [options] options sent from the upper functions\n * @param {Event} [options.e] event if the process is generated by an event\n */\n onSelect: function() {\n // implemented by sub-classes, as needed.\n }\n });\n})();\n\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Animation duration (in ms) for fx* methods\n * @type Number\n * @default\n */\n FX_DURATION: 500,\n\n /**\n * Centers object horizontally with animation.\n * @param {fabric.Object} object Object to center\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxCenterObjectH: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.left,\n endValue: this.getCenter().left,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('left', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function() {\n object.setCoords();\n onComplete();\n }\n });\n\n return this;\n },\n\n /**\n * Centers object vertically with animation.\n * @param {fabric.Object} object Object to center\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxCenterObjectV: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.top,\n endValue: this.getCenter().top,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('top', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function() {\n object.setCoords();\n onComplete();\n }\n });\n\n return this;\n },\n\n /**\n * Same as `fabric.Canvas#remove` but animated\n * @param {fabric.Object} object Object to remove\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxRemove: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.opacity,\n endValue: 0,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('opacity', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function () {\n _this.remove(object);\n onComplete();\n }\n });\n\n return this;\n }\n});\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n /**\n * Animates object's properties\n * @param {String|Object} property Property to animate (if string) or properties to animate (if object)\n * @param {Number|Object} value Value to animate property to (if string was given first) or options object\n * @return {fabric.Object} thisArg\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#animation}\n * @chainable\n *\n * As object — multiple properties\n *\n * object.animate({ left: ..., top: ... });\n * object.animate({ left: ..., top: ... }, { duration: ... });\n *\n * As string — one property\n *\n * object.animate('left', ...);\n * object.animate('left', { duration: ... });\n *\n */\n animate: function() {\n if (arguments[0] && typeof arguments[0] === 'object') {\n var propsToAnimate = [], prop, skipCallbacks;\n for (prop in arguments[0]) {\n propsToAnimate.push(prop);\n }\n for (var i = 0, len = propsToAnimate.length; i < len; i++) {\n prop = propsToAnimate[i];\n skipCallbacks = i !== len - 1;\n this._animate(prop, arguments[0][prop], arguments[1], skipCallbacks);\n }\n }\n else {\n this._animate.apply(this, arguments);\n }\n return this;\n },\n\n /**\n * @private\n * @param {String} property Property to animate\n * @param {String} to Value to animate to\n * @param {Object} [options] Options object\n * @param {Boolean} [skipCallbacks] When true, callbacks like onchange and oncomplete are not invoked\n */\n _animate: function(property, to, options, skipCallbacks) {\n var _this = this, propPair;\n\n to = to.toString();\n\n if (!options) {\n options = { };\n }\n else {\n options = fabric.util.object.clone(options);\n }\n\n if (~property.indexOf('.')) {\n propPair = property.split('.');\n }\n\n var propIsColor =\n _this.colorProperties.indexOf(property) > -1 ||\n (propPair && _this.colorProperties.indexOf(propPair[1]) > -1);\n\n var currentValue = propPair\n ? this.get(propPair[0])[propPair[1]]\n : this.get(property);\n\n if (!('from' in options)) {\n options.from = currentValue;\n }\n\n if (!propIsColor) {\n if (~to.indexOf('=')) {\n to = currentValue + parseFloat(to.replace('=', ''));\n }\n else {\n to = parseFloat(to);\n }\n }\n\n var _options = {\n startValue: options.from,\n endValue: to,\n byValue: options.by,\n easing: options.easing,\n duration: options.duration,\n abort: options.abort && function () {\n return options.abort.call(_this);\n },\n onChange: function (value, valueProgress, timeProgress) {\n if (propPair) {\n _this[propPair[0]][propPair[1]] = value;\n }\n else {\n _this.set(property, value);\n }\n if (skipCallbacks) {\n return;\n }\n options.onChange && options.onChange(value, valueProgress, timeProgress);\n },\n onComplete: function (value, valueProgress, timeProgress) {\n if (skipCallbacks) {\n return;\n }\n\n _this.setCoords();\n options.onComplete && options.onComplete(value, valueProgress, timeProgress);\n }\n };\n\n if (propIsColor) {\n fabric.util.animateColor(_options.startValue, _options.endValue, _options.duration, _options);\n }\n else {\n fabric.util.animate(_options);\n }\n }\n});\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n coordProps = { x1: 1, x2: 1, y1: 1, y2: 1 },\n supportsLineDash = fabric.StaticCanvas.supports('setLineDash');\n\n if (fabric.Line) {\n fabric.warn('fabric.Line is already defined');\n return;\n }\n\n /**\n * Line class\n * @class fabric.Line\n * @extends fabric.Object\n * @see {@link fabric.Line#initialize} for constructor definition\n */\n fabric.Line = fabric.util.createClass(fabric.Object, /** @lends fabric.Line.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'line',\n\n /**\n * x value or first line edge\n * @type Number\n * @default\n */\n x1: 0,\n\n /**\n * y value or first line edge\n * @type Number\n * @default\n */\n y1: 0,\n\n /**\n * x value or second line edge\n * @type Number\n * @default\n */\n x2: 0,\n\n /**\n * y value or second line edge\n * @type Number\n * @default\n */\n y2: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('x1', 'x2', 'y1', 'y2'),\n\n /**\n * Constructor\n * @param {Array} [points] Array of points\n * @param {Object} [options] Options object\n * @return {fabric.Line} thisArg\n */\n initialize: function(points, options) {\n if (!points) {\n points = [0, 0, 0, 0];\n }\n\n this.callSuper('initialize', options);\n\n this.set('x1', points[0]);\n this.set('y1', points[1]);\n this.set('x2', points[2]);\n this.set('y2', points[3]);\n\n this._setWidthHeight(options);\n },\n\n /**\n * @private\n * @param {Object} [options] Options\n */\n _setWidthHeight: function(options) {\n options || (options = { });\n\n this.width = Math.abs(this.x2 - this.x1);\n this.height = Math.abs(this.y2 - this.y1);\n\n this.left = 'left' in options\n ? options.left\n : this._getLeftToOriginX();\n\n this.top = 'top' in options\n ? options.top\n : this._getTopToOriginY();\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n if (typeof coordProps[key] !== 'undefined') {\n this._setWidthHeight();\n }\n return this;\n },\n\n /**\n * @private\n * @return {Number} leftToOriginX Distance from left edge of canvas to originX of Line.\n */\n _getLeftToOriginX: makeEdgeToOriginGetter(\n { // property names\n origin: 'originX',\n axis1: 'x1',\n axis2: 'x2',\n dimension: 'width'\n },\n { // possible values of origin\n nearest: 'left',\n center: 'center',\n farthest: 'right'\n }\n ),\n\n /**\n * @private\n * @return {Number} topToOriginY Distance from top edge of canvas to originY of Line.\n */\n _getTopToOriginY: makeEdgeToOriginGetter(\n { // property names\n origin: 'originY',\n axis1: 'y1',\n axis2: 'y2',\n dimension: 'height'\n },\n { // possible values of origin\n nearest: 'top',\n center: 'center',\n farthest: 'bottom'\n }\n ),\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n\n if (!this.strokeDashArray || this.strokeDashArray && supportsLineDash) {\n // move from center (of virtual box) to its left/top corner\n // we can't assume x1, y1 is top left and x2, y2 is bottom right\n var p = this.calcLinePoints();\n ctx.moveTo(p.x1, p.y1);\n ctx.lineTo(p.x2, p.y2);\n }\n\n ctx.lineWidth = this.strokeWidth;\n\n // TODO: test this\n // make sure setting \"fill\" changes color of a line\n // (by copying fillStyle to strokeStyle, since line is stroked, not filled)\n var origStrokeStyle = ctx.strokeStyle;\n ctx.strokeStyle = this.stroke || ctx.fillStyle;\n this.stroke && this._renderStroke(ctx);\n ctx.strokeStyle = origStrokeStyle;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var p = this.calcLinePoints();\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, p.x1, p.y1, p.x2, p.y2, this.strokeDashArray);\n ctx.closePath();\n },\n\n /**\n * This function is an helper for svg import. it returns the center of the object in the svg\n * untransformed coordinates\n * @private\n * @return {Object} center point from element coordinates\n */\n _findCenterFromElement: function() {\n return {\n x: (this.x1 + this.x2) / 2,\n y: (this.y1 + this.y2) / 2,\n };\n },\n\n /**\n * Returns object representation of an instance\n * @method toObject\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), this.calcLinePoints());\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n */\n _getNonTransformedDimensions: function() {\n var dim = this.callSuper('_getNonTransformedDimensions');\n if (this.strokeLineCap === 'butt') {\n if (this.width === 0) {\n dim.y -= this.strokeWidth;\n }\n if (this.height === 0) {\n dim.x -= this.strokeWidth;\n }\n }\n return dim;\n },\n\n /**\n * Recalculates line points given width and height\n * @private\n */\n calcLinePoints: function() {\n var xMult = this.x1 <= this.x2 ? -1 : 1,\n yMult = this.y1 <= this.y2 ? -1 : 1,\n x1 = (xMult * this.width * 0.5),\n y1 = (yMult * this.height * 0.5),\n x2 = (xMult * this.width * -0.5),\n y2 = (yMult * this.height * -0.5);\n\n return {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2\n };\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var p = this.calcLinePoints();\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Line.fromElement})\n * @static\n * @memberOf fabric.Line\n * @see http://www.w3.org/TR/SVG/shapes.html#LineElement\n */\n fabric.Line.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x1 y1 x2 y2'.split(' '));\n\n /**\n * Returns fabric.Line instance from an SVG element\n * @static\n * @memberOf fabric.Line\n * @param {SVGElement} element Element to parse\n * @param {Object} [options] Options object\n * @param {Function} [callback] callback function invoked after parsing\n */\n fabric.Line.fromElement = function(element, callback, options) {\n options = options || { };\n var parsedAttributes = fabric.parseAttributes(element, fabric.Line.ATTRIBUTE_NAMES),\n points = [\n parsedAttributes.x1 || 0,\n parsedAttributes.y1 || 0,\n parsedAttributes.x2 || 0,\n parsedAttributes.y2 || 0\n ];\n callback(new fabric.Line(points, extend(parsedAttributes, options)));\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Line instance from an object representation\n * @static\n * @memberOf fabric.Line\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n */\n fabric.Line.fromObject = function(object, callback) {\n function _callback(instance) {\n delete instance.points;\n callback && callback(instance);\n };\n var options = clone(object, true);\n options.points = [object.x1, object.y1, object.x2, object.y2];\n fabric.Object._fromObject('Line', options, _callback, 'points');\n };\n\n /**\n * Produces a function that calculates distance from canvas edge to Line origin.\n */\n function makeEdgeToOriginGetter(propertyNames, originValues) {\n var origin = propertyNames.origin,\n axis1 = propertyNames.axis1,\n axis2 = propertyNames.axis2,\n dimension = propertyNames.dimension,\n nearest = originValues.nearest,\n center = originValues.center,\n farthest = originValues.farthest;\n\n return function() {\n switch (this.get(origin)) {\n case nearest:\n return Math.min(this.get(axis1), this.get(axis2));\n case center:\n return Math.min(this.get(axis1), this.get(axis2)) + (0.5 * this.get(dimension));\n case farthest:\n return Math.max(this.get(axis1), this.get(axis2));\n }\n };\n\n }\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n pi = Math.PI;\n\n if (fabric.Circle) {\n fabric.warn('fabric.Circle is already defined.');\n return;\n }\n\n /**\n * Circle class\n * @class fabric.Circle\n * @extends fabric.Object\n * @see {@link fabric.Circle#initialize} for constructor definition\n */\n fabric.Circle = fabric.util.createClass(fabric.Object, /** @lends fabric.Circle.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'circle',\n\n /**\n * Radius of this circle\n * @type Number\n * @default\n */\n radius: 0,\n\n /**\n * Start angle of the circle, moving clockwise\n * deprecated type, this should be in degree, this was an oversight.\n * probably will change to degrees in next major version\n * @type Number\n * @default 0\n */\n startAngle: 0,\n\n /**\n * End angle of the circle\n * deprecated type, this should be in degree, this was an oversight.\n * probably will change to degrees in next major version\n * @type Number\n * @default 2Pi\n */\n endAngle: pi * 2,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('radius', 'startAngle', 'endAngle'),\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Circle} thisArg\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n\n if (key === 'radius') {\n this.setRadius(value);\n }\n\n return this;\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['radius', 'startAngle', 'endAngle'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var svgString, x = 0, y = 0,\n angle = (this.endAngle - this.startAngle) % ( 2 * pi);\n\n if (angle === 0) {\n svgString = [\n '\\n'\n ];\n }\n else {\n var startX = fabric.util.cos(this.startAngle) * this.radius,\n startY = fabric.util.sin(this.startAngle) * this.radius,\n endX = fabric.util.cos(this.endAngle) * this.radius,\n endY = fabric.util.sin(this.endAngle) * this.radius,\n largeFlag = angle > pi ? '1' : '0';\n svgString = [\n '\\n'\n ];\n }\n return svgString;\n },\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n ctx.arc(\n 0,\n 0,\n this.radius,\n this.startAngle,\n this.endAngle, false);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusX: function() {\n return this.get('radius') * this.get('scaleX');\n },\n\n /**\n * Returns vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusY: function() {\n return this.get('radius') * this.get('scaleY');\n },\n\n /**\n * Sets radius of an object (and updates width accordingly)\n * @return {fabric.Circle} thisArg\n */\n setRadius: function(value) {\n this.radius = value;\n return this.set('width', value * 2).set('height', value * 2);\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Circle.fromElement})\n * @static\n * @memberOf fabric.Circle\n * @see: http://www.w3.org/TR/SVG/shapes.html#CircleElement\n */\n fabric.Circle.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy r'.split(' '));\n\n /**\n * Returns {@link fabric.Circle} instance from an SVG element\n * @static\n * @memberOf fabric.Circle\n * @param {SVGElement} element Element to parse\n * @param {Function} [callback] Options callback invoked after parsing is finished\n * @param {Object} [options] Options object\n * @throws {Error} If value of `r` attribute is missing or invalid\n */\n fabric.Circle.fromElement = function(element, callback) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Circle.ATTRIBUTE_NAMES);\n\n if (!isValidRadius(parsedAttributes)) {\n throw new Error('value of `r` attribute is required and can not be negative');\n }\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.radius;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.radius;\n callback(new fabric.Circle(parsedAttributes));\n };\n\n /**\n * @private\n */\n function isValidRadius(attributes) {\n return (('radius' in attributes) && (attributes.radius >= 0));\n }\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Circle} instance from an object representation\n * @static\n * @memberOf fabric.Circle\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n * @return {Object} Instance of fabric.Circle\n */\n fabric.Circle.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Circle', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Triangle) {\n fabric.warn('fabric.Triangle is already defined');\n return;\n }\n\n /**\n * Triangle class\n * @class fabric.Triangle\n * @extends fabric.Object\n * @return {fabric.Triangle} thisArg\n * @see {@link fabric.Triangle#initialize} for constructor definition\n */\n fabric.Triangle = fabric.util.createClass(fabric.Object, /** @lends fabric.Triangle.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'triangle',\n\n /**\n * Width is set to 100 to compensate the old initialize code that was setting it to 100\n * @type Number\n * @default\n */\n width: 100,\n\n /**\n * Height is set to 100 to compensate the old initialize code that was setting it to 100\n * @type Number\n * @default\n */\n height: 100,\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\n\n ctx.beginPath();\n ctx.moveTo(-widthBy2, heightBy2);\n ctx.lineTo(0, -heightBy2);\n ctx.lineTo(widthBy2, heightBy2);\n ctx.closePath();\n\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, -widthBy2, heightBy2, 0, -heightBy2, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, 0, -heightBy2, widthBy2, heightBy2, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, widthBy2, heightBy2, -widthBy2, heightBy2, this.strokeDashArray);\n ctx.closePath();\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2,\n points = [\n -widthBy2 + ' ' + heightBy2,\n '0 ' + -heightBy2,\n widthBy2 + ' ' + heightBy2\n ].join(',');\n return [\n ''\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /**\n * Returns {@link fabric.Triangle} instance from an object representation\n * @static\n * @memberOf fabric.Triangle\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n */\n fabric.Triangle.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Triangle', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n piBy2 = Math.PI * 2;\n\n if (fabric.Ellipse) {\n fabric.warn('fabric.Ellipse is already defined.');\n return;\n }\n\n /**\n * Ellipse class\n * @class fabric.Ellipse\n * @extends fabric.Object\n * @return {fabric.Ellipse} thisArg\n * @see {@link fabric.Ellipse#initialize} for constructor definition\n */\n fabric.Ellipse = fabric.util.createClass(fabric.Object, /** @lends fabric.Ellipse.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'ellipse',\n\n /**\n * Horizontal radius\n * @type Number\n * @default\n */\n rx: 0,\n\n /**\n * Vertical radius\n * @type Number\n * @default\n */\n ry: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('rx', 'ry'),\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n * @return {fabric.Ellipse} thisArg\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n this.set('rx', options && options.rx || 0);\n this.set('ry', options && options.ry || 0);\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Ellipse} thisArg\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n switch (key) {\n\n case 'rx':\n this.rx = value;\n this.set('width', value * 2);\n break;\n\n case 'ry':\n this.ry = value;\n this.set('height', value * 2);\n break;\n\n }\n return this;\n },\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRx: function() {\n return this.get('rx') * this.get('scaleX');\n },\n\n /**\n * Returns Vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRy: function() {\n return this.get('ry') * this.get('scaleY');\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['rx', 'ry'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n ctx.save();\n ctx.transform(1, 0, 0, this.ry / this.rx, 0, 0);\n ctx.arc(\n 0,\n 0,\n this.rx,\n 0,\n piBy2,\n false);\n ctx.restore();\n this._renderPaintInOrder(ctx);\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Ellipse.fromElement})\n * @static\n * @memberOf fabric.Ellipse\n * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement\n */\n fabric.Ellipse.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy rx ry'.split(' '));\n\n /**\n * Returns {@link fabric.Ellipse} instance from an SVG element\n * @static\n * @memberOf fabric.Ellipse\n * @param {SVGElement} element Element to parse\n * @param {Function} [callback] Options callback invoked after parsing is finished\n * @return {fabric.Ellipse}\n */\n fabric.Ellipse.fromElement = function(element, callback) {\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Ellipse.ATTRIBUTE_NAMES);\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.rx;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.ry;\n callback(new fabric.Ellipse(parsedAttributes));\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Ellipse} instance from an object representation\n * @static\n * @memberOf fabric.Ellipse\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n * @return {fabric.Ellipse}\n */\n fabric.Ellipse.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Ellipse', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend;\n\n if (fabric.Rect) {\n fabric.warn('fabric.Rect is already defined');\n return;\n }\n\n /**\n * Rectangle class\n * @class fabric.Rect\n * @extends fabric.Object\n * @return {fabric.Rect} thisArg\n * @see {@link fabric.Rect#initialize} for constructor definition\n */\n fabric.Rect = fabric.util.createClass(fabric.Object, /** @lends fabric.Rect.prototype */ {\n\n /**\n * List of properties to consider when checking if state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat('rx', 'ry'),\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'rect',\n\n /**\n * Horizontal border radius\n * @type Number\n * @default\n */\n rx: 0,\n\n /**\n * Vertical border radius\n * @type Number\n * @default\n */\n ry: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('rx', 'ry'),\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n this._initRxRy();\n },\n\n /**\n * Initializes rx/ry attributes\n * @private\n */\n _initRxRy: function() {\n if (this.rx && !this.ry) {\n this.ry = this.rx;\n }\n else if (this.ry && !this.rx) {\n this.rx = this.ry;\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n\n // 1x1 case (used in spray brush) optimization was removed because\n // with caching and higher zoom level this makes more damage than help\n\n var rx = this.rx ? Math.min(this.rx, this.width / 2) : 0,\n ry = this.ry ? Math.min(this.ry, this.height / 2) : 0,\n w = this.width,\n h = this.height,\n x = -this.width / 2,\n y = -this.height / 2,\n isRounded = rx !== 0 || ry !== 0,\n /* \"magic number\" for bezier approximations of arcs (http://itc.ktu.lt/itc354/Riskus354.pdf) */\n k = 1 - 0.5522847498;\n ctx.beginPath();\n\n ctx.moveTo(x + rx, y);\n\n ctx.lineTo(x + w - rx, y);\n isRounded && ctx.bezierCurveTo(x + w - k * rx, y, x + w, y + k * ry, x + w, y + ry);\n\n ctx.lineTo(x + w, y + h - ry);\n isRounded && ctx.bezierCurveTo(x + w, y + h - k * ry, x + w - k * rx, y + h, x + w - rx, y + h);\n\n ctx.lineTo(x + rx, y + h);\n isRounded && ctx.bezierCurveTo(x + k * rx, y + h, x, y + h - k * ry, x, y + h - ry);\n\n ctx.lineTo(x, y + ry);\n isRounded && ctx.bezierCurveTo(x, y + k * ry, x + k * rx, y, x + rx, y);\n\n ctx.closePath();\n\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var x = -this.width / 2,\n y = -this.height / 2,\n w = this.width,\n h = this.height;\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, x, y, x + w, y, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y, x + w, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y + h, x, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x, y + h, x, y, this.strokeDashArray);\n ctx.closePath();\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['rx', 'ry'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var x = -this.width / 2, y = -this.height / 2;\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Rect.fromElement`)\n * @static\n * @memberOf fabric.Rect\n * @see: http://www.w3.org/TR/SVG/shapes.html#RectElement\n */\n fabric.Rect.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x y rx ry width height'.split(' '));\n\n /**\n * Returns {@link fabric.Rect} instance from an SVG element\n * @static\n * @memberOf fabric.Rect\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Rect.fromElement = function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n options = options || { };\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Rect.ATTRIBUTE_NAMES);\n parsedAttributes.left = parsedAttributes.left || 0;\n parsedAttributes.top = parsedAttributes.top || 0;\n parsedAttributes.height = parsedAttributes.height || 0;\n parsedAttributes.width = parsedAttributes.width || 0;\n var rect = new fabric.Rect(extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes));\n rect.visible = rect.visible && rect.width > 0 && rect.height > 0;\n callback(rect);\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Rect} instance from an object representation\n * @static\n * @memberOf fabric.Rect\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Rect instance is created\n */\n fabric.Rect.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Rect', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n min = fabric.util.array.min,\n max = fabric.util.array.max,\n toFixed = fabric.util.toFixed;\n\n if (fabric.Polyline) {\n fabric.warn('fabric.Polyline is already defined');\n return;\n }\n\n /**\n * Polyline class\n * @class fabric.Polyline\n * @extends fabric.Object\n * @see {@link fabric.Polyline#initialize} for constructor definition\n */\n fabric.Polyline = fabric.util.createClass(fabric.Object, /** @lends fabric.Polyline.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'polyline',\n\n /**\n * Points array\n * @type Array\n * @default\n */\n points: null,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('points'),\n\n /**\n * Constructor\n * @param {Array} points Array of points (where each point is an object with x and y)\n * @param {Object} [options] Options object\n * @return {fabric.Polyline} thisArg\n * @example\n * var poly = new fabric.Polyline([\n * { x: 10, y: 10 },\n * { x: 50, y: 30 },\n * { x: 40, y: 70 },\n * { x: 60, y: 50 },\n * { x: 100, y: 150 },\n * { x: 40, y: 100 }\n * ], {\n * stroke: 'red',\n * left: 100,\n * top: 100\n * });\n */\n initialize: function(points, options) {\n options = options || {};\n this.points = points || [];\n this.callSuper('initialize', options);\n this._setPositionDimensions(options);\n },\n\n _setPositionDimensions: function(options) {\n var calcDim = this._calcDimensions(options), correctLeftTop;\n this.width = calcDim.width;\n this.height = calcDim.height;\n if (!options.fromSVG) {\n correctLeftTop = this.translateToGivenOrigin(\n { x: calcDim.left - this.strokeWidth / 2, y: calcDim.top - this.strokeWidth / 2 },\n 'left',\n 'top',\n this.originX,\n this.originY\n );\n }\n if (typeof options.left === 'undefined') {\n this.left = options.fromSVG ? calcDim.left : correctLeftTop.x;\n }\n if (typeof options.top === 'undefined') {\n this.top = options.fromSVG ? calcDim.top : correctLeftTop.y;\n }\n this.pathOffset = {\n x: calcDim.left + this.width / 2,\n y: calcDim.top + this.height / 2\n };\n },\n\n /**\n * Calculate the polygon min and max point from points array,\n * returning an object with left, top, width, height to measure the\n * polygon size\n * @return {Object} object.left X coordinate of the polygon leftmost point\n * @return {Object} object.top Y coordinate of the polygon topmost point\n * @return {Object} object.width distance between X coordinates of the polygon leftmost and rightmost point\n * @return {Object} object.height distance between Y coordinates of the polygon topmost and bottommost point\n * @private\n */\n _calcDimensions: function() {\n\n var points = this.points,\n minX = min(points, 'x') || 0,\n minY = min(points, 'y') || 0,\n maxX = max(points, 'x') || 0,\n maxY = max(points, 'y') || 0,\n width = (maxX - minX),\n height = (maxY - minY);\n\n return {\n left: minX,\n top: minY,\n width: width,\n height: height\n };\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), {\n points: this.points.concat()\n });\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var points = [], diffX = this.pathOffset.x, diffY = this.pathOffset.y,\n NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n\n for (var i = 0, len = this.points.length; i < len; i++) {\n points.push(\n toFixed(this.points[i].x - diffX, NUM_FRACTION_DIGITS), ',',\n toFixed(this.points[i].y - diffY, NUM_FRACTION_DIGITS), ' '\n );\n }\n return [\n '<' + this.type + ' ', 'COMMON_PARTS',\n 'points=\"', points.join(''),\n '\" />\\n'\n ];\n },\n /* _TO_SVG_END_ */\n\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n commonRender: function(ctx) {\n var point, len = this.points.length,\n x = this.pathOffset.x,\n y = this.pathOffset.y;\n\n if (!len || isNaN(this.points[len - 1].y)) {\n // do not draw if no points or odd points\n // NaN comes from parseFloat of a empty string in parser\n return false;\n }\n ctx.beginPath();\n ctx.moveTo(this.points[0].x - x, this.points[0].y - y);\n for (var i = 0; i < len; i++) {\n point = this.points[i];\n ctx.lineTo(point.x - x, point.y - y);\n }\n return true;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n if (!this.commonRender(ctx)) {\n return;\n }\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var p1, p2;\n\n ctx.beginPath();\n for (var i = 0, len = this.points.length; i < len; i++) {\n p1 = this.points[i];\n p2 = this.points[i + 1] || p1;\n fabric.util.drawDashedLine(ctx, p1.x, p1.y, p2.x, p2.y, this.strokeDashArray);\n }\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity of this instance\n */\n complexity: function() {\n return this.get('points').length;\n }\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Polyline.fromElement})\n * @static\n * @memberOf fabric.Polyline\n * @see: http://www.w3.org/TR/SVG/shapes.html#PolylineElement\n */\n fabric.Polyline.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat();\n\n /**\n * Returns fabric.Polyline instance from an SVG element\n * @static\n * @memberOf fabric.Polyline\n * @param {SVGElement} element Element to parser\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Polyline.fromElementGenerator = function(_class) {\n return function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n options || (options = { });\n\n var points = fabric.parsePointsAttribute(element.getAttribute('points')),\n parsedAttributes = fabric.parseAttributes(element, fabric[_class].ATTRIBUTE_NAMES);\n parsedAttributes.fromSVG = true;\n callback(new fabric[_class](points, extend(parsedAttributes, options)));\n };\n };\n\n fabric.Polyline.fromElement = fabric.Polyline.fromElementGenerator('Polyline');\n\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Polyline instance from an object representation\n * @static\n * @memberOf fabric.Polyline\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Polyline.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Polyline', object, callback, 'points');\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Polygon) {\n fabric.warn('fabric.Polygon is already defined');\n return;\n }\n\n /**\n * Polygon class\n * @class fabric.Polygon\n * @extends fabric.Polyline\n * @see {@link fabric.Polygon#initialize} for constructor definition\n */\n fabric.Polygon = fabric.util.createClass(fabric.Polyline, /** @lends fabric.Polygon.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'polygon',\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n if (!this.commonRender(ctx)) {\n return;\n }\n ctx.closePath();\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n this.callSuper('_renderDashedStroke', ctx);\n ctx.closePath();\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Polygon.fromElement`)\n * @static\n * @memberOf fabric.Polygon\n * @see: http://www.w3.org/TR/SVG/shapes.html#PolygonElement\n */\n fabric.Polygon.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat();\n\n /**\n * Returns {@link fabric.Polygon} instance from an SVG element\n * @static\n * @memberOf fabric.Polygon\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Polygon.fromElement = fabric.Polyline.fromElementGenerator('Polygon');\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Polygon instance from an object representation\n * @static\n * @memberOf fabric.Polygon\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Polygon.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Polygon', object, callback, 'points');\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n min = fabric.util.array.min,\n max = fabric.util.array.max,\n extend = fabric.util.object.extend,\n _toString = Object.prototype.toString,\n toFixed = fabric.util.toFixed;\n\n if (fabric.Path) {\n fabric.warn('fabric.Path is already defined');\n return;\n }\n\n /**\n * Path class\n * @class fabric.Path\n * @extends fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#path_and_pathgroup}\n * @see {@link fabric.Path#initialize} for constructor definition\n */\n fabric.Path = fabric.util.createClass(fabric.Object, /** @lends fabric.Path.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'path',\n\n /**\n * Array of path points\n * @type Array\n * @default\n */\n path: null,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('path', 'fillRule'),\n\n stateProperties: fabric.Object.prototype.stateProperties.concat('path'),\n\n /**\n * Constructor\n * @param {Array|String} path Path data (sequence of coordinates and corresponding \"command\" tokens)\n * @param {Object} [options] Options object\n * @return {fabric.Path} thisArg\n */\n initialize: function(path, options) {\n options = options || { };\n this.callSuper('initialize', options);\n if (!path) {\n path = [];\n }\n\n var fromArray = _toString.call(path) === '[object Array]';\n\n this.path = fromArray\n ? fabric.util.makePathSimpler(path)\n\n : fabric.util.makePathSimpler(\n fabric.util.parsePath(path)\n );\n\n if (!this.path) {\n return;\n }\n fabric.Polyline.prototype._setPositionDimensions.call(this, options);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render path on\n */\n _renderPathCommands: function(ctx) {\n var current, // current instruction\n subpathStartX = 0,\n subpathStartY = 0,\n x = 0, // current x\n y = 0, // current y\n controlX = 0, // current control point x\n controlY = 0, // current control point y\n l = -this.pathOffset.x,\n t = -this.pathOffset.y;\n\n ctx.beginPath();\n\n for (var i = 0, len = this.path.length; i < len; ++i) {\n\n current = this.path[i];\n\n switch (current[0]) { // first letter\n\n case 'L': // lineto, absolute\n x = current[1];\n y = current[2];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'M': // moveTo, absolute\n x = current[1];\n y = current[2];\n subpathStartX = x;\n subpathStartY = y;\n ctx.moveTo(x + l, y + t);\n break;\n\n case 'C': // bezierCurveTo, absolute\n x = current[5];\n y = current[6];\n controlX = current[3];\n controlY = current[4];\n ctx.bezierCurveTo(\n current[1] + l,\n current[2] + t,\n controlX + l,\n controlY + t,\n x + l,\n y + t\n );\n break;\n\n case 'Q': // quadraticCurveTo, absolute\n ctx.quadraticCurveTo(\n current[1] + l,\n current[2] + t,\n current[3] + l,\n current[4] + t\n );\n x = current[3];\n y = current[4];\n controlX = current[1];\n controlY = current[2];\n break;\n\n case 'z':\n case 'Z':\n x = subpathStartX;\n y = subpathStartY;\n ctx.closePath();\n break;\n }\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render path on\n */\n _render: function(ctx) {\n this._renderPathCommands(ctx);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} string representation of an instance\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), {\n path: this.path.map(function(item) { return item.slice(); }),\n });\n },\n\n /**\n * Returns dataless object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n var o = this.toObject(['sourcePath'].concat(propertiesToInclude));\n if (o.sourcePath) {\n delete o.path;\n }\n return o;\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var path = this.path.map(function(path) {\n return path.join(' ');\n }).join(' ');\n return [\n '\\n'\n ];\n },\n\n _getOffsetTransform: function() {\n var digits = fabric.Object.NUM_FRACTION_DIGITS;\n return ' translate(' + toFixed(-this.pathOffset.x, digits) + ', ' +\n toFixed(-this.pathOffset.y, digits) + ')';\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n var additionalTransform = this._getOffsetTransform();\n return '\\t' + this._createBaseClipPathSVGMarkup(\n this._toSVG(), { reviver: reviver, additionalTransform: additionalTransform }\n );\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n var additionalTransform = this._getOffsetTransform();\n return this._createBaseSVGMarkup(this._toSVG(), { reviver: reviver, additionalTransform: additionalTransform });\n },\n /* _TO_SVG_END_ */\n\n /**\n * Returns number representation of an instance complexity\n * @return {Number} complexity of this instance\n */\n complexity: function() {\n return this.path.length;\n },\n\n /**\n * @private\n */\n _calcDimensions: function() {\n\n var aX = [],\n aY = [],\n current, // current instruction\n subpathStartX = 0,\n subpathStartY = 0,\n x = 0, // current x\n y = 0, // current y\n bounds;\n\n for (var i = 0, len = this.path.length; i < len; ++i) {\n\n current = this.path[i];\n\n switch (current[0]) { // first letter\n\n case 'L': // lineto, absolute\n x = current[1];\n y = current[2];\n bounds = [];\n break;\n\n case 'M': // moveTo, absolute\n x = current[1];\n y = current[2];\n subpathStartX = x;\n subpathStartY = y;\n bounds = [];\n break;\n\n case 'C': // bezierCurveTo, absolute\n bounds = fabric.util.getBoundsOfCurve(x, y,\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6]\n );\n x = current[5];\n y = current[6];\n break;\n\n case 'Q': // quadraticCurveTo, absolute\n bounds = fabric.util.getBoundsOfCurve(x, y,\n current[1],\n current[2],\n current[1],\n current[2],\n current[3],\n current[4]\n );\n x = current[3];\n y = current[4];\n break;\n\n case 'z':\n case 'Z':\n x = subpathStartX;\n y = subpathStartY;\n break;\n }\n bounds.forEach(function (point) {\n aX.push(point.x);\n aY.push(point.y);\n });\n aX.push(x);\n aY.push(y);\n }\n\n var minX = min(aX) || 0,\n minY = min(aY) || 0,\n maxX = max(aX) || 0,\n maxY = max(aY) || 0,\n deltaX = maxX - minX,\n deltaY = maxY - minY;\n\n return {\n left: minX,\n top: minY,\n width: deltaX,\n height: deltaY\n };\n }\n });\n\n /**\n * Creates an instance of fabric.Path from an object\n * @static\n * @memberOf fabric.Path\n * @param {Object} object\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Path.fromObject = function(object, callback) {\n if (typeof object.sourcePath === 'string') {\n var pathUrl = object.sourcePath;\n fabric.loadSVGFromURL(pathUrl, function (elements) {\n var path = elements[0];\n path.setOptions(object);\n callback && callback(path);\n });\n }\n else {\n fabric.Object._fromObject('Path', object, callback, 'path');\n }\n };\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Path.fromElement`)\n * @static\n * @memberOf fabric.Path\n * @see http://www.w3.org/TR/SVG/paths.html#PathElement\n */\n fabric.Path.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(['d']);\n\n /**\n * Creates an instance of fabric.Path from an SVG element\n * @static\n * @memberOf fabric.Path\n * @param {SVGElement} element to parse\n * @param {Function} callback Callback to invoke when an fabric.Path instance is created\n * @param {Object} [options] Options object\n * @param {Function} [callback] Options callback invoked after parsing is finished\n */\n fabric.Path.fromElement = function(element, callback, options) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Path.ATTRIBUTE_NAMES);\n parsedAttributes.fromSVG = true;\n callback(new fabric.Path(parsedAttributes.d, extend(parsedAttributes, options)));\n };\n /* _FROM_SVG_END_ */\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n min = fabric.util.array.min,\n max = fabric.util.array.max;\n\n if (fabric.Group) {\n return;\n }\n\n /**\n * Group class\n * @class fabric.Group\n * @extends fabric.Object\n * @mixes fabric.Collection\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#groups}\n * @see {@link fabric.Group#initialize} for constructor definition\n */\n fabric.Group = fabric.util.createClass(fabric.Object, fabric.Collection, /** @lends fabric.Group.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'group',\n\n /**\n * Width of stroke\n * @type Number\n * @default\n */\n strokeWidth: 0,\n\n /**\n * Indicates if click, mouseover, mouseout events & hoverCursor should also check for subtargets\n * @type Boolean\n * @default\n */\n subTargetCheck: false,\n\n /**\n * Groups are container, do not render anything on theyr own, ence no cache properties\n * @type Array\n * @default\n */\n cacheProperties: [],\n\n /**\n * setOnGroup is a method used for TextBox that is no more used since 2.0.0 The behavior is still\n * available setting this boolean to true.\n * @type Boolean\n * @since 2.0.0\n * @default\n */\n useSetOnGroup: false,\n\n /**\n * Constructor\n * @param {Object} objects Group objects\n * @param {Object} [options] Options object\n * @param {Boolean} [isAlreadyGrouped] if true, objects have been grouped already.\n * @return {Object} thisArg\n */\n initialize: function(objects, options, isAlreadyGrouped) {\n options = options || {};\n this._objects = [];\n // if objects enclosed in a group have been grouped already,\n // we cannot change properties of objects.\n // Thus we need to set options to group without objects,\n isAlreadyGrouped && this.callSuper('initialize', options);\n this._objects = objects || [];\n for (var i = this._objects.length; i--; ) {\n this._objects[i].group = this;\n }\n\n if (!isAlreadyGrouped) {\n var center = options && options.centerPoint;\n // we want to set origins before calculating the bounding box.\n // so that the topleft can be set with that in mind.\n // if specific top and left are passed, are overwritten later\n // with the callSuper('initialize', options)\n if (options.originX !== undefined) {\n this.originX = options.originX;\n }\n if (options.originY !== undefined) {\n this.originY = options.originY;\n }\n // if coming from svg i do not want to calc bounds.\n // i assume width and height are passed along options\n center || this._calcBounds();\n this._updateObjectsCoords(center);\n delete options.centerPoint;\n this.callSuper('initialize', options);\n }\n else {\n this._updateObjectsACoords();\n }\n\n this.setCoords();\n },\n\n /**\n * @private\n */\n _updateObjectsACoords: function() {\n var skipControls = true;\n for (var i = this._objects.length; i--; ){\n this._objects[i].setCoords(skipControls);\n }\n },\n\n /**\n * @private\n * @param {Boolean} [skipCoordsChange] if true, coordinates of objects enclosed in a group do not change\n */\n _updateObjectsCoords: function(center) {\n var center = center || this.getCenterPoint();\n for (var i = this._objects.length; i--; ){\n this._updateObjectCoords(this._objects[i], center);\n }\n },\n\n /**\n * @private\n * @param {Object} object\n * @param {fabric.Point} center, current center of group.\n */\n _updateObjectCoords: function(object, center) {\n var objectLeft = object.left,\n objectTop = object.top,\n skipControls = true;\n\n object.set({\n left: objectLeft - center.x,\n top: objectTop - center.y\n });\n object.group = this;\n object.setCoords(skipControls);\n },\n\n /**\n * Returns string represenation of a group\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Adds an object to a group; Then recalculates group's dimension, position.\n * @param {Object} object\n * @return {fabric.Group} thisArg\n * @chainable\n */\n addWithUpdate: function(object) {\n this._restoreObjectsState();\n fabric.util.resetObjectTransform(this);\n if (object) {\n this._objects.push(object);\n object.group = this;\n object._set('canvas', this.canvas);\n }\n this._calcBounds();\n this._updateObjectsCoords();\n this.setCoords();\n this.dirty = true;\n return this;\n },\n\n /**\n * Removes an object from a group; Then recalculates group's dimension, position.\n * @param {Object} object\n * @return {fabric.Group} thisArg\n * @chainable\n */\n removeWithUpdate: function(object) {\n this._restoreObjectsState();\n fabric.util.resetObjectTransform(this);\n\n this.remove(object);\n this._calcBounds();\n this._updateObjectsCoords();\n this.setCoords();\n this.dirty = true;\n return this;\n },\n\n /**\n * @private\n */\n _onObjectAdded: function(object) {\n this.dirty = true;\n object.group = this;\n object._set('canvas', this.canvas);\n },\n\n /**\n * @private\n */\n _onObjectRemoved: function(object) {\n this.dirty = true;\n delete object.group;\n },\n\n /**\n * @private\n */\n _set: function(key, value) {\n var i = this._objects.length;\n if (this.useSetOnGroup) {\n while (i--) {\n this._objects[i].setOnGroup(key, value);\n }\n }\n if (key === 'canvas') {\n while (i--) {\n this._objects[i]._set(key, value);\n }\n }\n fabric.Object.prototype._set.call(this, key, value);\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var _includeDefaultValues = this.includeDefaultValues;\n var objsToObject = this._objects.map(function(obj) {\n var originalDefaults = obj.includeDefaultValues;\n obj.includeDefaultValues = _includeDefaultValues;\n var _obj = obj.toObject(propertiesToInclude);\n obj.includeDefaultValues = originalDefaults;\n return _obj;\n });\n var obj = fabric.Object.prototype.toObject.call(this, propertiesToInclude);\n obj.objects = objsToObject;\n return obj;\n },\n\n /**\n * Returns object representation of an instance, in dataless mode.\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n var objsToObject, sourcePath = this.sourcePath;\n if (sourcePath) {\n objsToObject = sourcePath;\n }\n else {\n var _includeDefaultValues = this.includeDefaultValues;\n objsToObject = this._objects.map(function(obj) {\n var originalDefaults = obj.includeDefaultValues;\n obj.includeDefaultValues = _includeDefaultValues;\n var _obj = obj.toDatalessObject(propertiesToInclude);\n obj.includeDefaultValues = originalDefaults;\n return _obj;\n });\n }\n var obj = fabric.Object.prototype.toDatalessObject.call(this, propertiesToInclude);\n obj.objects = objsToObject;\n return obj;\n },\n\n /**\n * Renders instance on a given context\n * @param {CanvasRenderingContext2D} ctx context to render instance on\n */\n render: function(ctx) {\n this._transformDone = true;\n this.callSuper('render', ctx);\n this._transformDone = false;\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group is already cached.\n * @return {Boolean}\n */\n shouldCache: function() {\n var ownCache = fabric.Object.prototype.shouldCache.call(this);\n if (ownCache) {\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].willDrawShadow()) {\n this.ownCaching = false;\n return false;\n }\n }\n }\n return ownCache;\n },\n\n /**\n * Check if this object or a child object will cast a shadow\n * @return {Boolean}\n */\n willDrawShadow: function() {\n if (fabric.Object.prototype.willDrawShadow.call(this)) {\n return true;\n }\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].willDrawShadow()) {\n return true;\n }\n }\n return false;\n },\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache: function() {\n return this.ownCaching || (this.group && this.group.isOnACache());\n },\n\n /**\n * Execute the drawing operation for an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawObject: function(ctx) {\n for (var i = 0, len = this._objects.length; i < len; i++) {\n this._objects[i].render(ctx);\n }\n this._drawClipPath(ctx);\n },\n\n /**\n * Check if cache is dirty\n */\n isCacheDirty: function(skipCanvas) {\n if (this.callSuper('isCacheDirty', skipCanvas)) {\n return true;\n }\n if (!this.statefullCache) {\n return false;\n }\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].isCacheDirty(true)) {\n if (this._cacheCanvas) {\n // if this group has not a cache canvas there is nothing to clean\n var x = this.cacheWidth / this.zoomX, y = this.cacheHeight / this.zoomY;\n this._cacheContext.clearRect(-x / 2, -y / 2, x, y);\n }\n return true;\n }\n }\n return false;\n },\n\n /**\n * Restores original state of each of group objects (original state is that which was before group was created).\n * @private\n * @return {fabric.Group} thisArg\n * @chainable\n */\n _restoreObjectsState: function() {\n this._objects.forEach(this._restoreObjectState, this);\n return this;\n },\n\n /**\n * Realises the transform from this group onto the supplied object\n * i.e. it tells you what would happen if the supplied object was in\n * the group, and then the group was destroyed. It mutates the supplied\n * object.\n * @param {fabric.Object} object\n * @return {fabric.Object} transformedObject\n */\n realizeTransform: function(object) {\n var matrix = object.calcTransformMatrix(),\n options = fabric.util.qrDecompose(matrix),\n center = new fabric.Point(options.translateX, options.translateY);\n object.flipX = false;\n object.flipY = false;\n object.set('scaleX', options.scaleX);\n object.set('scaleY', options.scaleY);\n object.skewX = options.skewX;\n object.skewY = options.skewY;\n object.angle = options.angle;\n object.setPositionByOrigin(center, 'center', 'center');\n return object;\n },\n\n /**\n * Restores original state of a specified object in group\n * @private\n * @param {fabric.Object} object\n * @return {fabric.Group} thisArg\n */\n _restoreObjectState: function(object) {\n this.realizeTransform(object);\n delete object.group;\n object.setCoords();\n return this;\n },\n\n /**\n * Destroys a group (restoring state of its objects)\n * @return {fabric.Group} thisArg\n * @chainable\n */\n destroy: function() {\n // when group is destroyed objects needs to get a repaint to be eventually\n // displayed on canvas.\n this._objects.forEach(function(object) {\n object.set('dirty', true);\n });\n return this._restoreObjectsState();\n },\n\n /**\n * make a group an active selection, remove the group from canvas\n * the group has to be on canvas for this to work.\n * @return {fabric.ActiveSelection} thisArg\n * @chainable\n */\n toActiveSelection: function() {\n if (!this.canvas) {\n return;\n }\n var objects = this._objects, canvas = this.canvas;\n this._objects = [];\n var options = this.toObject();\n delete options.objects;\n var activeSelection = new fabric.ActiveSelection([]);\n activeSelection.set(options);\n activeSelection.type = 'activeSelection';\n canvas.remove(this);\n objects.forEach(function(object) {\n object.group = activeSelection;\n object.dirty = true;\n canvas.add(object);\n });\n activeSelection.canvas = canvas;\n activeSelection._objects = objects;\n canvas._activeObject = activeSelection;\n activeSelection.setCoords();\n return activeSelection;\n },\n\n /**\n * Destroys a group (restoring state of its objects)\n * @return {fabric.Group} thisArg\n * @chainable\n */\n ungroupOnCanvas: function() {\n return this._restoreObjectsState();\n },\n\n /**\n * Sets coordinates of all objects inside group\n * @return {fabric.Group} thisArg\n * @chainable\n */\n setObjectsCoords: function() {\n var skipControls = true;\n this.forEachObject(function(object) {\n object.setCoords(skipControls);\n });\n return this;\n },\n\n /**\n * @private\n */\n _calcBounds: function(onlyWidthHeight) {\n var aX = [],\n aY = [],\n o, prop,\n props = ['tr', 'br', 'bl', 'tl'],\n i = 0, iLen = this._objects.length,\n j, jLen = props.length;\n\n for ( ; i < iLen; ++i) {\n o = this._objects[i];\n o.aCoords = o.calcACoords();\n for (j = 0; j < jLen; j++) {\n prop = props[j];\n aX.push(o.aCoords[prop].x);\n aY.push(o.aCoords[prop].y);\n }\n }\n\n this._getBounds(aX, aY, onlyWidthHeight);\n },\n\n /**\n * @private\n */\n _getBounds: function(aX, aY, onlyWidthHeight) {\n var minXY = new fabric.Point(min(aX), min(aY)),\n maxXY = new fabric.Point(max(aX), max(aY)),\n top = minXY.y || 0, left = minXY.x || 0,\n width = (maxXY.x - minXY.x) || 0,\n height = (maxXY.y - minXY.y) || 0;\n this.width = width;\n this.height = height;\n if (!onlyWidthHeight) {\n // the bounding box always finds the topleft most corner.\n // whatever is the group origin, we set up here the left/top position.\n this.setPositionByOrigin({ x: left, y: top }, 'left', 'top');\n }\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n _toSVG: function(reviver) {\n var svgString = ['\\n'];\n\n for (var i = 0, len = this._objects.length; i < len; i++) {\n svgString.push('\\t\\t', this._objects[i].toSVG(reviver));\n }\n svgString.push('\\n');\n return svgString;\n },\n\n /**\n * Returns styles-string for svg-export, specific version for group\n * @return {String}\n */\n getSvgStyles: function() {\n var opacity = typeof this.opacity !== 'undefined' && this.opacity !== 1 ?\n 'opacity: ' + this.opacity + ';' : '',\n visibility = this.visible ? '' : ' visibility: hidden;';\n return [\n opacity,\n this.getSvgFilter(),\n visibility\n ].join('');\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n var svgString = [];\n\n for (var i = 0, len = this._objects.length; i < len; i++) {\n svgString.push('\\t', this._objects[i].toClipPathSVG(reviver));\n }\n\n return this._createBaseClipPathSVGMarkup(svgString, { reviver: reviver });\n },\n /* _TO_SVG_END_ */\n });\n\n /**\n * Returns {@link fabric.Group} instance from an object representation\n * @static\n * @memberOf fabric.Group\n * @param {Object} object Object to create a group from\n * @param {Function} [callback] Callback to invoke when an group instance is created\n */\n fabric.Group.fromObject = function(object, callback) {\n var objects = object.objects,\n options = fabric.util.object.clone(object, true);\n delete options.objects;\n if (typeof objects === 'string') {\n // it has to be an url or something went wrong.\n fabric.loadSVGFromURL(objects, function (elements) {\n var group = fabric.util.groupSVGElements(elements, object, objects);\n group.set(options);\n callback && callback(group);\n });\n return;\n }\n fabric.util.enlivenObjects(objects, function(enlivenedObjects) {\n fabric.util.enlivenObjects([object.clipPath], function(enlivedClipPath) {\n var options = fabric.util.object.clone(object, true);\n options.clipPath = enlivedClipPath[0];\n delete options.objects;\n callback && callback(new fabric.Group(enlivenedObjects, options, true));\n });\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.ActiveSelection) {\n return;\n }\n\n /**\n * Group class\n * @class fabric.ActiveSelection\n * @extends fabric.Group\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#groups}\n * @see {@link fabric.ActiveSelection#initialize} for constructor definition\n */\n fabric.ActiveSelection = fabric.util.createClass(fabric.Group, /** @lends fabric.ActiveSelection.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'activeSelection',\n\n /**\n * Constructor\n * @param {Object} objects ActiveSelection objects\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(objects, options) {\n options = options || {};\n this._objects = objects || [];\n for (var i = this._objects.length; i--; ) {\n this._objects[i].group = this;\n }\n\n if (options.originX) {\n this.originX = options.originX;\n }\n if (options.originY) {\n this.originY = options.originY;\n }\n this._calcBounds();\n this._updateObjectsCoords();\n fabric.Object.prototype.initialize.call(this, options);\n this.setCoords();\n },\n\n /**\n * Change te activeSelection to a normal group,\n * High level function that automatically adds it to canvas as\n * active object. no events fired.\n * @since 2.0.0\n * @return {fabric.Group}\n */\n toGroup: function() {\n var objects = this._objects.concat();\n this._objects = [];\n var options = fabric.Object.prototype.toObject.call(this);\n var newGroup = new fabric.Group([]);\n delete options.type;\n newGroup.set(options);\n objects.forEach(function(object) {\n object.canvas.remove(object);\n object.group = newGroup;\n });\n newGroup._objects = objects;\n if (!this.canvas) {\n return newGroup;\n }\n var canvas = this.canvas;\n canvas.add(newGroup);\n canvas._activeObject = newGroup;\n newGroup.setCoords();\n return newGroup;\n },\n\n /**\n * If returns true, deselection is cancelled.\n * @since 2.0.0\n * @return {Boolean} [cancel]\n */\n onDeselect: function() {\n this.destroy();\n return false;\n },\n\n /**\n * Returns string representation of a group\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * @return {Boolean}\n */\n shouldCache: function() {\n return false;\n },\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache: function() {\n return false;\n },\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n * @param {Object} [childrenOverride] properties to override the children overrides\n */\n _renderControls: function(ctx, styleOverride, childrenOverride) {\n ctx.save();\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n this.callSuper('_renderControls', ctx, styleOverride);\n childrenOverride = childrenOverride || { };\n if (typeof childrenOverride.hasControls === 'undefined') {\n childrenOverride.hasControls = false;\n }\n childrenOverride.forActiveSelection = true;\n for (var i = 0, len = this._objects.length; i < len; i++) {\n this._objects[i]._renderControls(ctx, childrenOverride);\n }\n ctx.restore();\n },\n });\n\n /**\n * Returns {@link fabric.ActiveSelection} instance from an object representation\n * @static\n * @memberOf fabric.ActiveSelection\n * @param {Object} object Object to create a group from\n * @param {Function} [callback] Callback to invoke when an ActiveSelection instance is created\n */\n fabric.ActiveSelection.fromObject = function(object, callback) {\n fabric.util.enlivenObjects(object.objects, function(enlivenedObjects) {\n delete object.objects;\n callback && callback(new fabric.ActiveSelection(enlivenedObjects, object, true));\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var extend = fabric.util.object.extend;\n\n if (!global.fabric) {\n global.fabric = { };\n }\n\n if (global.fabric.Image) {\n fabric.warn('fabric.Image is already defined.');\n return;\n }\n\n /**\n * Image class\n * @class fabric.Image\n * @extends fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#images}\n * @see {@link fabric.Image#initialize} for constructor definition\n */\n fabric.Image = fabric.util.createClass(fabric.Object, /** @lends fabric.Image.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'image',\n\n /**\n * Width of a stroke.\n * For image quality a stroke multiple of 2 gives better results.\n * @type Number\n * @default\n */\n strokeWidth: 0,\n\n /**\n * When calling {@link fabric.Image.getSrc}, return value from element src with `element.getAttribute('src')`.\n * This allows for relative urls as image src.\n * @since 2.7.0\n * @type Boolean\n * @default\n */\n srcFromAttribute: false,\n\n /**\n * private\n * contains last value of scaleX to detect\n * if the Image got resized after the last Render\n * @type Number\n */\n _lastScaleX: 1,\n\n /**\n * private\n * contains last value of scaleY to detect\n * if the Image got resized after the last Render\n * @type Number\n */\n _lastScaleY: 1,\n\n /**\n * private\n * contains last value of scaling applied by the apply filter chain\n * @type Number\n */\n _filterScalingX: 1,\n\n /**\n * private\n * contains last value of scaling applied by the apply filter chain\n * @type Number\n */\n _filterScalingY: 1,\n\n /**\n * minimum scale factor under which any resizeFilter is triggered to resize the image\n * 0 will disable the automatic resize. 1 will trigger automatically always.\n * number bigger than 1 are not implemented yet.\n * @type Number\n */\n minimumScaleTrigger: 0.5,\n\n /**\n * List of properties to consider when checking if\n * state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat('cropX', 'cropY'),\n\n /**\n * key used to retrieve the texture representing this image\n * @since 2.0.0\n * @type String\n * @default\n */\n cacheKey: '',\n\n /**\n * Image crop in pixels from original image size.\n * @since 2.0.0\n * @type Number\n * @default\n */\n cropX: 0,\n\n /**\n * Image crop in pixels from original image size.\n * @since 2.0.0\n * @type Number\n * @default\n */\n cropY: 0,\n\n /**\n * Indicates whether this canvas will use image smoothing when painting this image.\n * Also influence if the cacheCanvas for this image uses imageSmoothing\n * @since 4.0.0-beta.11\n * @type Boolean\n * @default\n */\n imageSmoothing: true,\n\n /**\n * Constructor\n * @param {HTMLImageElement | String} element Image element\n * @param {Object} [options] Options object\n * @param {function} [callback] callback function to call after eventual filters applied.\n * @return {fabric.Image} thisArg\n */\n initialize: function(element, options) {\n options || (options = { });\n this.filters = [];\n this.cacheKey = 'texture' + fabric.Object.__uid++;\n this.callSuper('initialize', options);\n this._initElement(element, options);\n },\n\n /**\n * Returns image element which this instance if based on\n * @return {HTMLImageElement} Image element\n */\n getElement: function() {\n return this._element || {};\n },\n\n /**\n * Sets image element for this instance to a specified one.\n * If filters defined they are applied to new image.\n * You might need to call `canvas.renderAll` and `object.setCoords` after replacing, to render new image and update controls area.\n * @param {HTMLImageElement} element\n * @param {Object} [options] Options object\n * @return {fabric.Image} thisArg\n * @chainable\n */\n setElement: function(element, options) {\n this.removeTexture(this.cacheKey);\n this.removeTexture(this.cacheKey + '_filtered');\n this._element = element;\n this._originalElement = element;\n this._initConfig(options);\n if (this.filters.length !== 0) {\n this.applyFilters();\n }\n // resizeFilters work on the already filtered copy.\n // we need to apply resizeFilters AFTER normal filters.\n // applyResizeFilters is run more often than normal filters\n // and is triggered by user interactions rather than dev code\n if (this.resizeFilter) {\n this.applyResizeFilters();\n }\n return this;\n },\n\n /**\n * Delete a single texture if in webgl mode\n */\n removeTexture: function(key) {\n var backend = fabric.filterBackend;\n if (backend && backend.evictCachesForKey) {\n backend.evictCachesForKey(key);\n }\n },\n\n /**\n * Delete textures, reference to elements and eventually JSDOM cleanup\n */\n dispose: function() {\n this.removeTexture(this.cacheKey);\n this.removeTexture(this.cacheKey + '_filtered');\n this._cacheContext = undefined;\n ['_originalElement', '_element', '_filteredEl', '_cacheCanvas'].forEach((function(element) {\n fabric.util.cleanUpJsdomNode(this[element]);\n this[element] = undefined;\n }).bind(this));\n },\n\n /**\n * Get the crossOrigin value (of the corresponding image element)\n */\n getCrossOrigin: function() {\n return this._originalElement && (this._originalElement.crossOrigin || null);\n },\n\n /**\n * Returns original size of an image\n * @return {Object} Object with \"width\" and \"height\" properties\n */\n getOriginalSize: function() {\n var element = this.getElement();\n return {\n width: element.naturalWidth || element.width,\n height: element.naturalHeight || element.height\n };\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _stroke: function(ctx) {\n if (!this.stroke || this.strokeWidth === 0) {\n return;\n }\n var w = this.width / 2, h = this.height / 2;\n ctx.beginPath();\n ctx.moveTo(-w, -h);\n ctx.lineTo(w, -h);\n ctx.lineTo(w, h);\n ctx.lineTo(-w, h);\n ctx.lineTo(-w, -h);\n ctx.closePath();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var x = -this.width / 2,\n y = -this.height / 2,\n w = this.width,\n h = this.height;\n\n ctx.save();\n this._setStrokeStyles(ctx, this);\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, x, y, x + w, y, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y, x + w, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y + h, x, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x, y + h, x, y, this.strokeDashArray);\n ctx.closePath();\n ctx.restore();\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var filters = [];\n\n this.filters.forEach(function(filterObj) {\n if (filterObj) {\n filters.push(filterObj.toObject());\n }\n });\n var object = extend(\n this.callSuper(\n 'toObject',\n ['cropX', 'cropY'].concat(propertiesToInclude)\n ), {\n src: this.getSrc(),\n crossOrigin: this.getCrossOrigin(),\n filters: filters,\n });\n if (this.resizeFilter) {\n object.resizeFilter = this.resizeFilter.toObject();\n }\n return object;\n },\n\n /**\n * Returns true if an image has crop applied, inspecting values of cropX,cropY,width,height.\n * @return {Boolean}\n */\n hasCrop: function() {\n return this.cropX || this.cropY || this.width < this._element.width || this.height < this._element.height;\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var svgString = [], imageMarkup = [], strokeSvg, element = this._element,\n x = -this.width / 2, y = -this.height / 2, clipPath = '', imageRendering = '';\n if (!element) {\n return [];\n }\n if (this.hasCrop()) {\n var clipPathId = fabric.Object.__uid++;\n svgString.push(\n '\\n',\n '\\t\\n',\n '\\n'\n );\n clipPath = ' clip-path=\"url(#imageCrop_' + clipPathId + ')\" ';\n }\n if (!this.imageSmoothing) {\n imageRendering = '\" image-rendering=\"optimizeSpeed';\n }\n imageMarkup.push('\\t element with actual transformation, then offsetting object to the top/left\n // so that object's center aligns with container's left/top\n '\" width=\"', element.width || element.naturalWidth,\n '\" height=\"', element.height || element.height,\n imageRendering,\n '\"', clipPath,\n '>\\n');\n\n if (this.stroke || this.strokeDashArray) {\n var origFill = this.fill;\n this.fill = null;\n strokeSvg = [\n '\\t\\n'\n ];\n this.fill = origFill;\n }\n if (this.paintFirst !== 'fill') {\n svgString = svgString.concat(strokeSvg, imageMarkup);\n }\n else {\n svgString = svgString.concat(imageMarkup, strokeSvg);\n }\n return svgString;\n },\n /* _TO_SVG_END_ */\n\n /**\n * Returns source of an image\n * @param {Boolean} filtered indicates if the src is needed for svg\n * @return {String} Source of an image\n */\n getSrc: function(filtered) {\n var element = filtered ? this._element : this._originalElement;\n if (element) {\n if (element.toDataURL) {\n return element.toDataURL();\n }\n\n if (this.srcFromAttribute) {\n return element.getAttribute('src');\n }\n else {\n return element.src;\n }\n }\n else {\n return this.src || '';\n }\n },\n\n /**\n * Sets source of an image\n * @param {String} src Source string (URL)\n * @param {Function} [callback] Callback is invoked when image has been loaded (and all filters have been applied)\n * @param {Object} [options] Options object\n * @param {String} [options.crossOrigin] crossOrigin value (one of \"\", \"anonymous\", \"use-credentials\")\n * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes\n * @return {fabric.Image} thisArg\n * @chainable\n */\n setSrc: function(src, callback, options) {\n fabric.util.loadImage(src, function(img, isError) {\n this.setElement(img, options);\n this._setWidthHeight();\n callback && callback(this, isError);\n }, this, options && options.crossOrigin);\n return this;\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} String representation of an instance\n */\n toString: function() {\n return '#';\n },\n\n applyResizeFilters: function() {\n var filter = this.resizeFilter,\n minimumScale = this.minimumScaleTrigger,\n objectScale = this.getTotalObjectScaling(),\n scaleX = objectScale.scaleX,\n scaleY = objectScale.scaleY,\n elementToFilter = this._filteredEl || this._originalElement;\n if (this.group) {\n this.set('dirty', true);\n }\n if (!filter || (scaleX > minimumScale && scaleY > minimumScale)) {\n this._element = elementToFilter;\n this._filterScalingX = 1;\n this._filterScalingY = 1;\n this._lastScaleX = scaleX;\n this._lastScaleY = scaleY;\n return;\n }\n if (!fabric.filterBackend) {\n fabric.filterBackend = fabric.initFilterBackend();\n }\n var canvasEl = fabric.util.createCanvasElement(),\n cacheKey = this._filteredEl ? (this.cacheKey + '_filtered') : this.cacheKey,\n sourceWidth = elementToFilter.width, sourceHeight = elementToFilter.height;\n canvasEl.width = sourceWidth;\n canvasEl.height = sourceHeight;\n this._element = canvasEl;\n this._lastScaleX = filter.scaleX = scaleX;\n this._lastScaleY = filter.scaleY = scaleY;\n fabric.filterBackend.applyFilters(\n [filter], elementToFilter, sourceWidth, sourceHeight, this._element, cacheKey);\n this._filterScalingX = canvasEl.width / this._originalElement.width;\n this._filterScalingY = canvasEl.height / this._originalElement.height;\n },\n\n /**\n * Applies filters assigned to this image (from \"filters\" array) or from filter param\n * @method applyFilters\n * @param {Array} filters to be applied\n * @param {Boolean} forResizing specify if the filter operation is a resize operation\n * @return {thisArg} return the fabric.Image object\n * @chainable\n */\n applyFilters: function(filters) {\n\n filters = filters || this.filters || [];\n filters = filters.filter(function(filter) { return filter && !filter.isNeutralState(); });\n this.set('dirty', true);\n\n // needs to clear out or WEBGL will not resize correctly\n this.removeTexture(this.cacheKey + '_filtered');\n\n if (filters.length === 0) {\n this._element = this._originalElement;\n this._filteredEl = null;\n this._filterScalingX = 1;\n this._filterScalingY = 1;\n return this;\n }\n\n var imgElement = this._originalElement,\n sourceWidth = imgElement.naturalWidth || imgElement.width,\n sourceHeight = imgElement.naturalHeight || imgElement.height;\n\n if (this._element === this._originalElement) {\n // if the element is the same we need to create a new element\n var canvasEl = fabric.util.createCanvasElement();\n canvasEl.width = sourceWidth;\n canvasEl.height = sourceHeight;\n this._element = canvasEl;\n this._filteredEl = canvasEl;\n }\n else {\n // clear the existing element to get new filter data\n // also dereference the eventual resized _element\n this._element = this._filteredEl;\n this._filteredEl.getContext('2d').clearRect(0, 0, sourceWidth, sourceHeight);\n // we also need to resize again at next renderAll, so remove saved _lastScaleX/Y\n this._lastScaleX = 1;\n this._lastScaleY = 1;\n }\n if (!fabric.filterBackend) {\n fabric.filterBackend = fabric.initFilterBackend();\n }\n fabric.filterBackend.applyFilters(\n filters, this._originalElement, sourceWidth, sourceHeight, this._element, this.cacheKey);\n if (this._originalElement.width !== this._element.width ||\n this._originalElement.height !== this._element.height) {\n this._filterScalingX = this._element.width / this._originalElement.width;\n this._filterScalingY = this._element.height / this._originalElement.height;\n }\n return this;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n fabric.util.setImageSmoothing(ctx, this.imageSmoothing);\n if (this.isMoving !== true && this.resizeFilter && this._needsResize()) {\n this.applyResizeFilters();\n }\n this._stroke(ctx);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Paint the cached copy of the object on the target context.\n * it will set the imageSmoothing for the draw operation\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawCacheOnCanvas: function(ctx) {\n fabric.util.setImageSmoothing(ctx, this.imageSmoothing);\n fabric.Object.prototype.drawCacheOnCanvas.call(this, ctx);\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * This is the special image version where we would like to avoid caching where possible.\n * Essentially images do not benefit from caching. They may require caching, and in that\n * case we do it. Also caching an image usually ends in a loss of details.\n * A full performance audit should be done.\n * @return {Boolean}\n */\n shouldCache: function() {\n return this.needsItsOwnCache();\n },\n\n _renderFill: function(ctx) {\n var elementToDraw = this._element;\n if (!elementToDraw) {\n return;\n }\n var scaleX = this._filterScalingX, scaleY = this._filterScalingY,\n w = this.width, h = this.height, min = Math.min, max = Math.max,\n // crop values cannot be lesser than 0.\n cropX = max(this.cropX, 0), cropY = max(this.cropY, 0),\n elWidth = elementToDraw.naturalWidth || elementToDraw.width,\n elHeight = elementToDraw.naturalHeight || elementToDraw.height,\n sX = cropX * scaleX,\n sY = cropY * scaleY,\n // the width height cannot exceed element width/height, starting from the crop offset.\n sW = min(w * scaleX, elWidth - sX),\n sH = min(h * scaleY, elHeight - sY),\n x = -w / 2, y = -h / 2,\n maxDestW = min(w, elWidth / scaleX - cropX),\n maxDestH = min(h, elHeight / scaleX - cropY);\n\n elementToDraw && ctx.drawImage(elementToDraw, sX, sY, sW, sH, x, y, maxDestW, maxDestH);\n },\n\n /**\n * needed to check if image needs resize\n * @private\n */\n _needsResize: function() {\n var scale = this.getTotalObjectScaling();\n return (scale.scaleX !== this._lastScaleX || scale.scaleY !== this._lastScaleY);\n },\n\n /**\n * @private\n */\n _resetWidthHeight: function() {\n this.set(this.getOriginalSize());\n },\n\n /**\n * The Image class's initialization method. This method is automatically\n * called by the constructor.\n * @private\n * @param {HTMLImageElement|String} element The element representing the image\n * @param {Object} [options] Options object\n */\n _initElement: function(element, options) {\n this.setElement(fabric.util.getById(element), options);\n fabric.util.addClass(this.getElement(), fabric.Image.CSS_CANVAS);\n },\n\n /**\n * @private\n * @param {Object} [options] Options object\n */\n _initConfig: function(options) {\n options || (options = { });\n this.setOptions(options);\n this._setWidthHeight(options);\n },\n\n /**\n * @private\n * @param {Array} filters to be initialized\n * @param {Function} callback Callback to invoke when all fabric.Image.filters instances are created\n */\n _initFilters: function(filters, callback) {\n if (filters && filters.length) {\n fabric.util.enlivenObjects(filters, function(enlivenedObjects) {\n callback && callback(enlivenedObjects);\n }, 'fabric.Image.filters');\n }\n else {\n callback && callback();\n }\n },\n\n /**\n * @private\n * Set the width and the height of the image object, using the element or the\n * options.\n * @param {Object} [options] Object with width/height properties\n */\n _setWidthHeight: function(options) {\n options || (options = { });\n var el = this.getElement();\n this.width = options.width || el.naturalWidth || el.width || 0;\n this.height = options.height || el.naturalHeight || el.height || 0;\n },\n\n /**\n * Calculate offset for center and scale factor for the image in order to respect\n * the preserveAspectRatio attribute\n * @private\n * @return {Object}\n */\n parsePreserveAspectRatioAttribute: function() {\n var pAR = fabric.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio || ''),\n rWidth = this._element.width, rHeight = this._element.height,\n scaleX = 1, scaleY = 1, offsetLeft = 0, offsetTop = 0, cropX = 0, cropY = 0,\n offset, pWidth = this.width, pHeight = this.height, parsedAttributes = { width: pWidth, height: pHeight };\n if (pAR && (pAR.alignX !== 'none' || pAR.alignY !== 'none')) {\n if (pAR.meetOrSlice === 'meet') {\n scaleX = scaleY = fabric.util.findScaleToFit(this._element, parsedAttributes);\n offset = (pWidth - rWidth * scaleX) / 2;\n if (pAR.alignX === 'Min') {\n offsetLeft = -offset;\n }\n if (pAR.alignX === 'Max') {\n offsetLeft = offset;\n }\n offset = (pHeight - rHeight * scaleY) / 2;\n if (pAR.alignY === 'Min') {\n offsetTop = -offset;\n }\n if (pAR.alignY === 'Max') {\n offsetTop = offset;\n }\n }\n if (pAR.meetOrSlice === 'slice') {\n scaleX = scaleY = fabric.util.findScaleToCover(this._element, parsedAttributes);\n offset = rWidth - pWidth / scaleX;\n if (pAR.alignX === 'Mid') {\n cropX = offset / 2;\n }\n if (pAR.alignX === 'Max') {\n cropX = offset;\n }\n offset = rHeight - pHeight / scaleY;\n if (pAR.alignY === 'Mid') {\n cropY = offset / 2;\n }\n if (pAR.alignY === 'Max') {\n cropY = offset;\n }\n rWidth = pWidth / scaleX;\n rHeight = pHeight / scaleY;\n }\n }\n else {\n scaleX = pWidth / rWidth;\n scaleY = pHeight / rHeight;\n }\n return {\n width: rWidth,\n height: rHeight,\n scaleX: scaleX,\n scaleY: scaleY,\n offsetLeft: offsetLeft,\n offsetTop: offsetTop,\n cropX: cropX,\n cropY: cropY\n };\n }\n });\n\n /**\n * Default CSS class name for canvas\n * @static\n * @type String\n * @default\n */\n fabric.Image.CSS_CANVAS = 'canvas-img';\n\n /**\n * Alias for getSrc\n * @static\n */\n fabric.Image.prototype.getSvgSrc = fabric.Image.prototype.getSrc;\n\n /**\n * Creates an instance of fabric.Image from its object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} callback Callback to invoke when an image instance is created\n */\n fabric.Image.fromObject = function(_object, callback) {\n var object = fabric.util.object.clone(_object);\n fabric.util.loadImage(object.src, function(img, isError) {\n if (isError) {\n callback && callback(null, true);\n return;\n }\n fabric.Image.prototype._initFilters.call(object, object.filters, function(filters) {\n object.filters = filters || [];\n fabric.Image.prototype._initFilters.call(object, [object.resizeFilter], function(resizeFilters) {\n object.resizeFilter = resizeFilters[0];\n fabric.util.enlivenObjects([object.clipPath], function(enlivedProps) {\n object.clipPath = enlivedProps[0];\n var image = new fabric.Image(img, object);\n callback(image, false);\n });\n });\n });\n }, null, object.crossOrigin);\n };\n\n /**\n * Creates an instance of fabric.Image from an URL string\n * @static\n * @param {String} url URL to create an image from\n * @param {Function} [callback] Callback to invoke when image is created (newly created image is passed as a first argument). Second argument is a boolean indicating if an error occurred or not.\n * @param {Object} [imgOptions] Options object\n */\n fabric.Image.fromURL = function(url, callback, imgOptions) {\n fabric.util.loadImage(url, function(img, isError) {\n callback && callback(new fabric.Image(img, imgOptions), isError);\n }, null, imgOptions && imgOptions.crossOrigin);\n };\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Image.fromElement})\n * @static\n * @see {@link http://www.w3.org/TR/SVG/struct.html#ImageElement}\n */\n fabric.Image.ATTRIBUTE_NAMES =\n fabric.SHARED_ATTRIBUTES.concat(\n 'x y width height preserveAspectRatio xlink:href crossOrigin image-rendering'.split(' ')\n );\n\n /**\n * Returns {@link fabric.Image} instance from an SVG element\n * @static\n * @param {SVGElement} element Element to parse\n * @param {Object} [options] Options object\n * @param {Function} callback Callback to execute when fabric.Image object is created\n * @return {fabric.Image} Instance of fabric.Image\n */\n fabric.Image.fromElement = function(element, callback, options) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Image.ATTRIBUTE_NAMES);\n fabric.Image.fromURL(parsedAttributes['xlink:href'], callback,\n extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes));\n };\n /* _FROM_SVG_END_ */\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * @private\n * @return {Number} angle value\n */\n _getAngleValueForStraighten: function() {\n var angle = this.angle % 360;\n if (angle > 0) {\n return Math.round((angle - 1) / 90) * 90;\n }\n return Math.round(angle / 90) * 90;\n },\n\n /**\n * Straightens an object (rotating it from current angle to one of 0, 90, 180, 270, etc. depending on which is closer)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n straighten: function() {\n this.rotate(this._getAngleValueForStraighten());\n return this;\n },\n\n /**\n * Same as {@link fabric.Object.prototype.straighten} but with animation\n * @param {Object} callbacks Object with callback functions\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Object} thisArg\n * @chainable\n */\n fxStraighten: function(callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: this.get('angle'),\n endValue: this._getAngleValueForStraighten(),\n duration: this.FX_DURATION,\n onChange: function(value) {\n _this.rotate(value);\n onChange();\n },\n onComplete: function() {\n _this.setCoords();\n onComplete();\n },\n });\n\n return this;\n }\n});\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Straightens object, then rerenders canvas\n * @param {fabric.Object} object Object to straighten\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n straightenObject: function (object) {\n object.straighten();\n this.requestRenderAll();\n return this;\n },\n\n /**\n * Same as {@link fabric.Canvas.prototype.straightenObject}, but animated\n * @param {fabric.Object} object Object to straighten\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxStraightenObject: function (object) {\n object.fxStraighten({\n onChange: this.requestRenderAllBound\n });\n return this;\n }\n});\n\n\n(function() {\n\n 'use strict';\n\n /**\n * Tests if webgl supports certain precision\n * @param {WebGL} Canvas WebGL context to test on\n * @param {String} Precision to test can be any of following: 'lowp', 'mediump', 'highp'\n * @returns {Boolean} Whether the user's browser WebGL supports given precision.\n */\n function testPrecision(gl, precision){\n var fragmentSource = 'precision ' + precision + ' float;\\nvoid main(){}';\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n return false;\n }\n return true;\n }\n\n /**\n * Indicate whether this filtering backend is supported by the user's browser.\n * @param {Number} tileSize check if the tileSize is supported\n * @returns {Boolean} Whether the user's browser supports WebGL.\n */\n fabric.isWebglSupported = function(tileSize) {\n if (fabric.isLikelyNode) {\n return false;\n }\n tileSize = tileSize || fabric.WebglFilterBackend.prototype.tileSize;\n var canvas = document.createElement('canvas');\n var gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n var isSupported = false;\n // eslint-disable-next-line\n if (gl) {\n fabric.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n isSupported = fabric.maxTextureSize >= tileSize;\n var precisions = ['highp', 'mediump', 'lowp'];\n for (var i = 0; i < 3; i++){\n if (testPrecision(gl, precisions[i])){\n fabric.webGlPrecision = precisions[i];\n break;\n };\n }\n }\n this.isSupported = isSupported;\n return isSupported;\n };\n\n fabric.WebglFilterBackend = WebglFilterBackend;\n\n /**\n * WebGL filter backend.\n */\n function WebglFilterBackend(options) {\n if (options && options.tileSize) {\n this.tileSize = options.tileSize;\n }\n this.setupGLContext(this.tileSize, this.tileSize);\n this.captureGPUInfo();\n };\n\n WebglFilterBackend.prototype = /** @lends fabric.WebglFilterBackend.prototype */ {\n\n tileSize: 2048,\n\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you probably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: {\n\n },\n\n /**\n * Setup a WebGL context suitable for filtering, and bind any needed event handlers.\n */\n setupGLContext: function(width, height) {\n this.dispose();\n this.createWebGLCanvas(width, height);\n // eslint-disable-next-line\n this.aPosition = new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]);\n this.chooseFastestCopyGLTo2DMethod(width, height);\n },\n\n /**\n * Pick a method to copy data from GL context to 2d canvas. In some browsers using\n * putImageData is faster than drawImage for that specific operation.\n */\n chooseFastestCopyGLTo2DMethod: function(width, height) {\n var canMeasurePerf = typeof window.performance !== 'undefined', canUseImageData;\n try {\n new ImageData(1, 1);\n canUseImageData = true;\n }\n catch (e) {\n canUseImageData = false;\n }\n // eslint-disable-next-line no-undef\n var canUseArrayBuffer = typeof ArrayBuffer !== 'undefined';\n // eslint-disable-next-line no-undef\n var canUseUint8Clamped = typeof Uint8ClampedArray !== 'undefined';\n\n if (!(canMeasurePerf && canUseImageData && canUseArrayBuffer && canUseUint8Clamped)) {\n return;\n }\n\n var targetCanvas = fabric.util.createCanvasElement();\n // eslint-disable-next-line no-undef\n var imageBuffer = new ArrayBuffer(width * height * 4);\n if (fabric.forceGLPutImageData) {\n this.imageBuffer = imageBuffer;\n this.copyGLTo2D = copyGLTo2DPutImageData;\n return;\n }\n var testContext = {\n imageBuffer: imageBuffer,\n destinationWidth: width,\n destinationHeight: height,\n targetCanvas: targetCanvas\n };\n var startTime, drawImageTime, putImageDataTime;\n targetCanvas.width = width;\n targetCanvas.height = height;\n\n startTime = window.performance.now();\n copyGLTo2DDrawImage.call(testContext, this.gl, testContext);\n drawImageTime = window.performance.now() - startTime;\n\n startTime = window.performance.now();\n copyGLTo2DPutImageData.call(testContext, this.gl, testContext);\n putImageDataTime = window.performance.now() - startTime;\n\n if (drawImageTime > putImageDataTime) {\n this.imageBuffer = imageBuffer;\n this.copyGLTo2D = copyGLTo2DPutImageData;\n }\n else {\n this.copyGLTo2D = copyGLTo2DDrawImage;\n }\n },\n\n /**\n * Create a canvas element and associated WebGL context and attaches them as\n * class properties to the GLFilterBackend class.\n */\n createWebGLCanvas: function(width, height) {\n var canvas = fabric.util.createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n var glOptions = {\n alpha: true,\n premultipliedAlpha: false,\n depth: false,\n stencil: false,\n antialias: false\n },\n gl = canvas.getContext('webgl', glOptions);\n if (!gl) {\n gl = canvas.getContext('experimental-webgl', glOptions);\n }\n if (!gl) {\n return;\n }\n gl.clearColor(0, 0, 0, 0);\n // this canvas can fire webglcontextlost and webglcontextrestored\n this.canvas = canvas;\n this.gl = gl;\n },\n\n /**\n * Attempts to apply the requested filters to the source provided, drawing the filtered output\n * to the provided target canvas.\n *\n * @param {Array} filters The filters to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} source The source to be filtered.\n * @param {Number} width The width of the source input.\n * @param {Number} height The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n * @param {String|undefined} cacheKey A key used to cache resources related to the source. If\n * omitted, caching will be skipped.\n */\n applyFilters: function(filters, source, width, height, targetCanvas, cacheKey) {\n var gl = this.gl;\n var cachedTexture;\n if (cacheKey) {\n cachedTexture = this.getCachedTexture(cacheKey, source);\n }\n var pipelineState = {\n originalWidth: source.width || source.originalWidth,\n originalHeight: source.height || source.originalHeight,\n sourceWidth: width,\n sourceHeight: height,\n destinationWidth: width,\n destinationHeight: height,\n context: gl,\n sourceTexture: this.createTexture(gl, width, height, !cachedTexture && source),\n targetTexture: this.createTexture(gl, width, height),\n originalTexture: cachedTexture ||\n this.createTexture(gl, width, height, !cachedTexture && source),\n passes: filters.length,\n webgl: true,\n aPosition: this.aPosition,\n programCache: this.programCache,\n pass: 0,\n filterBackend: this,\n targetCanvas: targetCanvas\n };\n var tempFbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, tempFbo);\n filters.forEach(function(filter) { filter && filter.applyTo(pipelineState); });\n resizeCanvasIfNeeded(pipelineState);\n this.copyGLTo2D(gl, pipelineState);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.deleteTexture(pipelineState.sourceTexture);\n gl.deleteTexture(pipelineState.targetTexture);\n gl.deleteFramebuffer(tempFbo);\n targetCanvas.getContext('2d').setTransform(1, 0, 0, 1, 0, 0);\n return pipelineState;\n },\n\n /**\n * Detach event listeners, remove references, and clean up caches.\n */\n dispose: function() {\n if (this.canvas) {\n this.canvas = null;\n this.gl = null;\n }\n this.clearWebGLCaches();\n },\n\n /**\n * Wipe out WebGL-related caches.\n */\n clearWebGLCaches: function() {\n this.programCache = {};\n this.textureCache = {};\n },\n\n /**\n * Create a WebGL texture object.\n *\n * Accepts specific dimensions to initialize the texture to or a source image.\n *\n * @param {WebGLRenderingContext} gl The GL context to use for creating the texture.\n * @param {Number} width The width to initialize the texture at.\n * @param {Number} height The height to initialize the texture.\n * @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source for the texture data.\n * @returns {WebGLTexture}\n */\n createTexture: function(gl, width, height, textureImageSource) {\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n if (textureImageSource) {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, textureImageSource);\n }\n else {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n }\n return texture;\n },\n\n /**\n * Can be optionally used to get a texture from the cache array\n *\n * If an existing texture is not found, a new texture is created and cached.\n *\n * @param {String} uniqueId A cache key to use to find an existing texture.\n * @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source to use to create the\n * texture cache entry if one does not already exist.\n */\n getCachedTexture: function(uniqueId, textureImageSource) {\n if (this.textureCache[uniqueId]) {\n return this.textureCache[uniqueId];\n }\n else {\n var texture = this.createTexture(\n this.gl, textureImageSource.width, textureImageSource.height, textureImageSource);\n this.textureCache[uniqueId] = texture;\n return texture;\n }\n },\n\n /**\n * Clear out cached resources related to a source image that has been\n * filtered previously.\n *\n * @param {String} cacheKey The cache key provided when the source image was filtered.\n */\n evictCachesForKey: function(cacheKey) {\n if (this.textureCache[cacheKey]) {\n this.gl.deleteTexture(this.textureCache[cacheKey]);\n delete this.textureCache[cacheKey];\n }\n },\n\n copyGLTo2D: copyGLTo2DDrawImage,\n\n /**\n * Attempt to extract GPU information strings from a WebGL context.\n *\n * Useful information when debugging or blacklisting specific GPUs.\n *\n * @returns {Object} A GPU info object with renderer and vendor strings.\n */\n captureGPUInfo: function() {\n if (this.gpuInfo) {\n return this.gpuInfo;\n }\n var gl = this.gl, gpuInfo = { renderer: '', vendor: '' };\n if (!gl) {\n return gpuInfo;\n }\n var ext = gl.getExtension('WEBGL_debug_renderer_info');\n if (ext) {\n var renderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);\n var vendor = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);\n if (renderer) {\n gpuInfo.renderer = renderer.toLowerCase();\n }\n if (vendor) {\n gpuInfo.vendor = vendor.toLowerCase();\n }\n }\n this.gpuInfo = gpuInfo;\n return gpuInfo;\n },\n };\n})();\n\nfunction resizeCanvasIfNeeded(pipelineState) {\n var targetCanvas = pipelineState.targetCanvas,\n width = targetCanvas.width, height = targetCanvas.height,\n dWidth = pipelineState.destinationWidth,\n dHeight = pipelineState.destinationHeight;\n\n if (width !== dWidth || height !== dHeight) {\n targetCanvas.width = dWidth;\n targetCanvas.height = dHeight;\n }\n}\n\n/**\n * Copy an input WebGL canvas on to an output 2D canvas.\n *\n * The WebGL canvas is assumed to be upside down, with the top-left pixel of the\n * desired output image appearing in the bottom-left corner of the WebGL canvas.\n *\n * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.\n * @param {HTMLCanvasElement} targetCanvas The 2D target canvas to copy on to.\n * @param {Object} pipelineState The 2D target canvas to copy on to.\n */\nfunction copyGLTo2DDrawImage(gl, pipelineState) {\n var glCanvas = gl.canvas, targetCanvas = pipelineState.targetCanvas,\n ctx = targetCanvas.getContext('2d');\n ctx.translate(0, targetCanvas.height); // move it down again\n ctx.scale(1, -1); // vertical flip\n // where is my image on the big glcanvas?\n var sourceY = glCanvas.height - targetCanvas.height;\n ctx.drawImage(glCanvas, 0, sourceY, targetCanvas.width, targetCanvas.height, 0, 0,\n targetCanvas.width, targetCanvas.height);\n}\n\n/**\n * Copy an input WebGL canvas on to an output 2D canvas using 2d canvas' putImageData\n * API. Measurably faster than using ctx.drawImage in Firefox (version 54 on OSX Sierra).\n *\n * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.\n * @param {HTMLCanvasElement} targetCanvas The 2D target canvas to copy on to.\n * @param {Object} pipelineState The 2D target canvas to copy on to.\n */\nfunction copyGLTo2DPutImageData(gl, pipelineState) {\n var targetCanvas = pipelineState.targetCanvas, ctx = targetCanvas.getContext('2d'),\n dWidth = pipelineState.destinationWidth,\n dHeight = pipelineState.destinationHeight,\n numBytes = dWidth * dHeight * 4;\n\n // eslint-disable-next-line no-undef\n var u8 = new Uint8Array(this.imageBuffer, 0, numBytes);\n // eslint-disable-next-line no-undef\n var u8Clamped = new Uint8ClampedArray(this.imageBuffer, 0, numBytes);\n\n gl.readPixels(0, 0, dWidth, dHeight, gl.RGBA, gl.UNSIGNED_BYTE, u8);\n var imgData = new ImageData(u8Clamped, dWidth, dHeight);\n ctx.putImageData(imgData, 0, 0);\n}\n\n\n(function() {\n\n 'use strict';\n\n var noop = function() {};\n\n fabric.Canvas2dFilterBackend = Canvas2dFilterBackend;\n\n /**\n * Canvas 2D filter backend.\n */\n function Canvas2dFilterBackend() {};\n\n Canvas2dFilterBackend.prototype = /** @lends fabric.Canvas2dFilterBackend.prototype */ {\n evictCachesForKey: noop,\n dispose: noop,\n clearWebGLCaches: noop,\n\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you probably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: {\n\n },\n\n /**\n * Apply a set of filters against a source image and draw the filtered output\n * to the provided destination canvas.\n *\n * @param {EnhancedFilter} filters The filter to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.\n * @param {Number} sourceWidth The width of the source input.\n * @param {Number} sourceHeight The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n */\n applyFilters: function(filters, sourceElement, sourceWidth, sourceHeight, targetCanvas) {\n var ctx = targetCanvas.getContext('2d');\n ctx.drawImage(sourceElement, 0, 0, sourceWidth, sourceHeight);\n var imageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n var originalImageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n var pipelineState = {\n sourceWidth: sourceWidth,\n sourceHeight: sourceHeight,\n imageData: imageData,\n originalEl: sourceElement,\n originalImageData: originalImageData,\n canvasEl: targetCanvas,\n ctx: ctx,\n filterBackend: this,\n };\n filters.forEach(function(filter) { filter.applyTo(pipelineState); });\n if (pipelineState.imageData.width !== sourceWidth || pipelineState.imageData.height !== sourceHeight) {\n targetCanvas.width = pipelineState.imageData.width;\n targetCanvas.height = pipelineState.imageData.height;\n }\n ctx.putImageData(pipelineState.imageData, 0, 0);\n return pipelineState;\n },\n\n };\n})();\n\n\n/**\n * @namespace fabric.Image.filters\n * @memberOf fabric.Image\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#image_filters}\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n */\nfabric.Image = fabric.Image || { };\nfabric.Image.filters = fabric.Image.filters || { };\n\n/**\n * Root filter class from which all filter classes inherit from\n * @class fabric.Image.filters.BaseFilter\n * @memberOf fabric.Image.filters\n */\nfabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Image.filters.BaseFilter.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'BaseFilter',\n\n /**\n * Array of attributes to send with buffers. do not modify\n * @private\n */\n\n vertexSource: 'attribute vec2 aPosition;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vTexCoord = aPosition;\\n' +\n 'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n' +\n '}',\n\n fragmentSource: 'precision highp float;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'void main() {\\n' +\n 'gl_FragColor = texture2D(uTexture, vTexCoord);\\n' +\n '}',\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n if (options) {\n this.setOptions(options);\n }\n },\n\n /**\n * Sets filter's properties from options\n * @param {Object} [options] Options object\n */\n setOptions: function(options) {\n for (var prop in options) {\n this[prop] = options[prop];\n }\n },\n\n /**\n * Compile this filter's shader program.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context to use for shader compilation.\n * @param {String} fragmentSource fragmentShader source for compilation\n * @param {String} vertexSource vertexShader source for compilation\n */\n createProgram: function(gl, fragmentSource, vertexSource) {\n fragmentSource = fragmentSource || this.fragmentSource;\n vertexSource = vertexSource || this.vertexSource;\n if (fabric.webGlPrecision !== 'highp'){\n fragmentSource = fragmentSource.replace(\n /precision highp float/g,\n 'precision ' + fabric.webGlPrecision + ' float'\n );\n }\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexSource);\n gl.compileShader(vertexShader);\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Vertex shader compile error for ' + this.type + ': ' +\n gl.getShaderInfoLog(vertexShader)\n );\n }\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Fragment shader compile error for ' + this.type + ': ' +\n gl.getShaderInfoLog(fragmentShader)\n );\n }\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Shader link error for \"${this.type}\" ' +\n gl.getProgramInfoLog(program)\n );\n }\n\n var attributeLocations = this.getAttributeLocations(gl, program);\n var uniformLocations = this.getUniformLocations(gl, program) || { };\n uniformLocations.uStepW = gl.getUniformLocation(program, 'uStepW');\n uniformLocations.uStepH = gl.getUniformLocation(program, 'uStepH');\n return {\n program: program,\n attributeLocations: attributeLocations,\n uniformLocations: uniformLocations\n };\n },\n\n /**\n * Return a map of attribute names to WebGLAttributeLocation objects.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {WebGLShaderProgram} program The shader program from which to take attribute locations.\n * @returns {Object} A map of attribute names to attribute locations.\n */\n getAttributeLocations: function(gl, program) {\n return {\n aPosition: gl.getAttribLocation(program, 'aPosition'),\n };\n },\n\n /**\n * Return a map of uniform names to WebGLUniformLocation objects.\n *\n * Intended to be overridden by subclasses.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {WebGLShaderProgram} program The shader program from which to take uniform locations.\n * @returns {Object} A map of uniform names to uniform locations.\n */\n getUniformLocations: function (/* gl, program */) {\n // in case i do not need any special uniform i need to return an empty object\n return { };\n },\n\n /**\n * Send attribute data from this filter to its shader program on the GPU.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {Object} attributeLocations A map of shader attribute names to their locations.\n */\n sendAttributeData: function(gl, attributeLocations, aPositionData) {\n var attributeLocation = attributeLocations.aPosition;\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.enableVertexAttribArray(attributeLocation);\n gl.vertexAttribPointer(attributeLocation, 2, gl.FLOAT, false, 0, 0);\n gl.bufferData(gl.ARRAY_BUFFER, aPositionData, gl.STATIC_DRAW);\n },\n\n _setupFrameBuffer: function(options) {\n var gl = options.context, width, height;\n if (options.passes > 1) {\n width = options.destinationWidth;\n height = options.destinationHeight;\n if (options.sourceWidth !== width || options.sourceHeight !== height) {\n gl.deleteTexture(options.targetTexture);\n options.targetTexture = options.filterBackend.createTexture(gl, width, height);\n }\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D,\n options.targetTexture, 0);\n }\n else {\n // draw last filter on canvas and not to framebuffer.\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n gl.finish();\n }\n },\n\n _swapTextures: function(options) {\n options.passes--;\n options.pass++;\n var temp = options.targetTexture;\n options.targetTexture = options.sourceTexture;\n options.sourceTexture = temp;\n },\n\n /**\n * Generic isNeutral implementation for one parameter based filters.\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * Other filters may need their own version ( ColorMatrix, HueRotation, gamma, ComposedFilter )\n * @param {Object} options\n **/\n isNeutralState: function(/* options */) {\n var main = this.mainParameter,\n _class = fabric.Image.filters[this.type].prototype;\n if (main) {\n if (Array.isArray(_class[main])) {\n for (var i = _class[main].length; i--;) {\n if (this[main][i] !== _class[main][i]) {\n return false;\n }\n }\n return true;\n }\n else {\n return _class[main] === this[main];\n }\n }\n else {\n return false;\n }\n },\n\n /**\n * Apply this filter to the input image data provided.\n *\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n if (options.webgl) {\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n if (!options.programCache.hasOwnProperty(this.type)) {\n options.programCache[this.type] = this.createProgram(options.context);\n }\n return options.programCache[this.type];\n },\n\n /**\n * Apply this filter using webgl.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.originalTexture The texture of the original input image.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyToWebGL: function(options) {\n var gl = options.context;\n var shader = this.retrieveShader(options);\n if (options.pass === 0 && options.originalTexture) {\n gl.bindTexture(gl.TEXTURE_2D, options.originalTexture);\n }\n else {\n gl.bindTexture(gl.TEXTURE_2D, options.sourceTexture);\n }\n gl.useProgram(shader.program);\n this.sendAttributeData(gl, shader.attributeLocations, options.aPosition);\n\n gl.uniform1f(shader.uniformLocations.uStepW, 1 / options.sourceWidth);\n gl.uniform1f(shader.uniformLocations.uStepH, 1 / options.sourceHeight);\n\n this.sendUniformData(gl, shader.uniformLocations);\n gl.viewport(0, 0, options.destinationWidth, options.destinationHeight);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n },\n\n bindAdditionalTexture: function(gl, texture, textureUnit) {\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n // reset active texture to 0 as usual\n gl.activeTexture(gl.TEXTURE0);\n },\n\n unbindAdditionalTexture: function(gl, textureUnit) {\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.activeTexture(gl.TEXTURE0);\n },\n\n getMainParameter: function() {\n return this[this.mainParameter];\n },\n\n setMainParameter: function(value) {\n this[this.mainParameter] = value;\n },\n\n /**\n * Send uniform data from this filter to its shader program on the GPU.\n *\n * Intended to be overridden by subclasses.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {Object} uniformLocations A map of shader uniform names to their locations.\n */\n sendUniformData: function(/* gl, uniformLocations */) {\n // Intentionally left blank. Override me in subclasses.\n },\n\n /**\n * If needed by a 2d filter, this functions can create an helper canvas to be used\n * remember that options.targetCanvas is available for use till end of chain.\n */\n createHelpLayer: function(options) {\n if (!options.helpLayer) {\n var helpLayer = document.createElement('canvas');\n helpLayer.width = options.sourceWidth;\n helpLayer.height = options.sourceHeight;\n options.helpLayer = helpLayer;\n }\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n var object = { type: this.type }, mainP = this.mainParameter;\n if (mainP) {\n object[mainP] = this[mainP];\n }\n return object;\n },\n\n /**\n * Returns a JSON representation of an instance\n * @return {Object} JSON\n */\n toJSON: function() {\n // delegate, not alias\n return this.toObject();\n }\n});\n\nfabric.Image.filters.BaseFilter.fromObject = function(object, callback) {\n var filter = new fabric.Image.filters[object.type](object);\n callback && callback(filter);\n return filter;\n};\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Color Matrix filter class\n * @class fabric.Image.filters.ColorMatrix\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.ColorMatrix#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://www.webwasp.co.uk/tutorials/219/Color_Matrix_Filter.php}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl}\n * @example Kodachrome filter\n * var filter = new fabric.Image.filters.ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.ColorMatrix = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.ColorMatrix.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'ColorMatrix',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'uniform mat4 uColorMatrix;\\n' +\n 'uniform vec4 uConstants;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color *= uColorMatrix;\\n' +\n 'color += uConstants;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n matrix: [\n 1, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1, 0, 0,\n 0, 0, 0, 1, 0\n ],\n\n mainParameter: 'matrix',\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, manly for non webgl scenario\n * to save some calculation\n */\n colorsOnly: true,\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n // create a new array instead mutating the prototype with push\n this.matrix = this.matrix.slice(0);\n },\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = data.length,\n m = this.matrix,\n r, g, b, a, i, colorsOnly = this.colorsOnly;\n\n for (i = 0; i < iLen; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n }\n else {\n a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] = r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uColorMatrix: gl.getUniformLocation(program, 'uColorMatrix'),\n uConstants: gl.getUniformLocation(program, 'uConstants'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var m = this.matrix,\n matrix = [\n m[0], m[1], m[2], m[3],\n m[5], m[6], m[7], m[8],\n m[10], m[11], m[12], m[13],\n m[15], m[16], m[17], m[18]\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] function to invoke after filter creation\n * @return {fabric.Image.filters.ColorMatrix} Instance of fabric.Image.filters.ColorMatrix\n */\n fabric.Image.filters.ColorMatrix.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Brightness filter class\n * @class fabric.Image.filters.Brightness\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Brightness#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Brightness({\n * brightness: 0.05\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Brightness = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Brightness.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Brightness',\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uBrightness;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color.rgb += uBrightness;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Brightness value, from -1 to 1.\n * translated to -255 to 255 for 2d\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Number} brightness\n * @default\n */\n brightness: 0,\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'brightness',\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.brightness === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, i, len = data.length,\n brightness = Math.round(this.brightness * 255);\n for (i = 0; i < len; i += 4) {\n data[i] = data[i] + brightness;\n data[i + 1] = data[i + 1] + brightness;\n data[i + 2] = data[i + 2] + brightness;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uBrightness: gl.getUniformLocation(program, 'uBrightness'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uBrightness, this.brightness);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Brightness} Instance of fabric.Image.filters.Brightness\n */\n fabric.Image.filters.Brightness.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Adapted from html5rocks article\n * @class fabric.Image.filters.Convolute\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Convolute#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example Sharpen filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 0, -1, 0,\n * -1, 5, -1,\n * 0, -1, 0 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Blur filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Emboss filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Emboss filter with opaqueness\n * var filter = new fabric.Image.filters.Convolute({\n * opaque: true,\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Convolute = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Convolute.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Convolute',\n\n /*\n * Opaque value (true/false)\n */\n opaque: false,\n\n /*\n * matrix for the filter, max 9x9\n */\n matrix: [0, 0, 0, 0, 1, 0, 0, 0, 0],\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: {\n Convolute_3_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[9];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 3.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 3.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_3_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[9];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 3.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 3.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_5_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[25];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 5.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 5.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_5_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[25];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 5.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 5.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_7_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[49];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 7.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 7.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_7_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[49];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 7.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 7.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_9_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[81];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 9.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 9.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_9_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[81];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 9.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 9.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n },\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Convolute.prototype\n * @param {Object} [options] Options object\n * @param {Boolean} [options.opaque=false] Opaque value (true/false)\n * @param {Array} [options.matrix] Filter matrix\n */\n\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var size = Math.sqrt(this.matrix.length);\n var cacheKey = this.type + '_' + size + '_' + (this.opaque ? 1 : 0);\n var shaderSource = this.fragmentSource[cacheKey];\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n weights = this.matrix,\n side = Math.round(Math.sqrt(weights.length)),\n halfSide = Math.floor(side / 2),\n sw = imageData.width,\n sh = imageData.height,\n output = options.ctx.createImageData(sw, sh),\n dst = output.data,\n // go through the destination image pixels\n alphaFac = this.opaque ? 1 : 0,\n r, g, b, a, dstOff,\n scx, scy, srcOff, wt,\n x, y, cx, cy;\n\n for (y = 0; y < sh; y++) {\n for (x = 0; x < sw; x++) {\n dstOff = (y * sw + x) * 4;\n // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n r = 0; g = 0; b = 0; a = 0;\n\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scy = y + cy - halfSide;\n scx = x + cx - halfSide;\n\n // eslint-disable-next-line max-depth\n if (scy < 0 || scy >= sh || scx < 0 || scx >= sw) {\n continue;\n }\n\n srcOff = (scy * sw + scx) * 4;\n wt = weights[cy * side + cx];\n\n r += data[srcOff] * wt;\n g += data[srcOff + 1] * wt;\n b += data[srcOff + 2] * wt;\n // eslint-disable-next-line max-depth\n if (!alphaFac) {\n a += data[srcOff + 3] * wt;\n }\n }\n }\n dst[dstOff] = r;\n dst[dstOff + 1] = g;\n dst[dstOff + 2] = b;\n if (!alphaFac) {\n dst[dstOff + 3] = a;\n }\n else {\n dst[dstOff + 3] = data[dstOff + 3];\n }\n }\n }\n options.imageData = output;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uMatrix: gl.getUniformLocation(program, 'uMatrix'),\n uOpaque: gl.getUniformLocation(program, 'uOpaque'),\n uHalfSize: gl.getUniformLocation(program, 'uHalfSize'),\n uSize: gl.getUniformLocation(program, 'uSize'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1fv(uniformLocations.uMatrix, this.matrix);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n opaque: this.opaque,\n matrix: this.matrix\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Convolute} Instance of fabric.Image.filters.Convolute\n */\n fabric.Image.filters.Convolute.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Grayscale image filter class\n * @class fabric.Image.filters.Grayscale\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Grayscale();\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Grayscale = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Grayscale.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Grayscale',\n\n fragmentSource: {\n average: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = (color.r + color.b + color.g) / 3.0;\\n' +\n 'gl_FragColor = vec4(average, average, average, color.a);\\n' +\n '}',\n lightness: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uMode;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 col = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\\n' +\n 'gl_FragColor = vec4(average, average, average, col.a);\\n' +\n '}',\n luminosity: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uMode;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 col = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\\n' +\n 'gl_FragColor = vec4(average, average, average, col.a);\\n' +\n '}',\n },\n\n\n /**\n * Grayscale mode, between 'average', 'lightness', 'luminosity'\n * @param {String} type\n * @default\n */\n mode: 'average',\n\n mainParameter: 'mode',\n\n /**\n * Apply the Grayscale operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n len = data.length, value,\n mode = this.mode;\n for (i = 0; i < len; i += 4) {\n if (mode === 'average') {\n value = (data[i] + data[i + 1] + data[i + 2]) / 3;\n }\n else if (mode === 'lightness') {\n value = (Math.min(data[i], data[i + 1], data[i + 2]) +\n Math.max(data[i], data[i + 1], data[i + 2])) / 2;\n }\n else if (mode === 'luminosity') {\n value = 0.21 * data[i] + 0.72 * data[i + 1] + 0.07 * data[i + 2];\n }\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n }\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n var shaderSource = this.fragmentSource[this.mode];\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uMode: gl.getUniformLocation(program, 'uMode'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n // default average mode.\n var mode = 1;\n gl.uniform1i(uniformLocations.uMode, mode);\n },\n\n /**\n * Grayscale filter isNeutralState implementation\n * The filter is never neutral\n * on the image\n **/\n isNeutralState: function() {\n return false;\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Grayscale} Instance of fabric.Image.filters.Grayscale\n */\n fabric.Image.filters.Grayscale.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Invert filter class\n * @class fabric.Image.filters.Invert\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\n filters.Invert = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Invert.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Invert',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uInvert;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'if (uInvert == 1) {\\n' +\n 'gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\\n' +\n '} else {\\n' +\n 'gl_FragColor = color;\\n' +\n '}\\n' +\n '}',\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n invert: true,\n\n mainParameter: 'invert',\n\n /**\n * Apply the Invert operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n len = data.length;\n for (i = 0; i < len; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n }\n },\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState: function() {\n return !this.invert;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uInvert: gl.getUniformLocation(program, 'uInvert'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1i(uniformLocations.uInvert, this.invert);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Invert} Instance of fabric.Image.filters.Invert\n */\n fabric.Image.filters.Invert.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Noise filter class\n * @class fabric.Image.filters.Noise\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Noise#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Noise = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Noise.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Noise',\n\n /**\n * Fragment source for the noise program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uStepH;\\n' +\n 'uniform float uNoise;\\n' +\n 'uniform float uSeed;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'float rand(vec2 co, float seed, float vScale) {\\n' +\n 'return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\\n' +\n '}\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'noise',\n\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n noise: 0,\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.noise === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, i, len = data.length,\n noise = this.noise, rand;\n\n for (i = 0, len = data.length; i < len; i += 4) {\n\n rand = (0.5 - Math.random()) * noise;\n\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uNoise: gl.getUniformLocation(program, 'uNoise'),\n uSeed: gl.getUniformLocation(program, 'uSeed'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uNoise, this.noise / 255);\n gl.uniform1f(uniformLocations.uSeed, Math.random());\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n noise: this.noise\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Noise} Instance of fabric.Image.filters.Noise\n */\n fabric.Image.filters.Noise.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Pixelate filter class\n * @class fabric.Image.filters.Pixelate\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Pixelate#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Pixelate({\n * blocksize: 8\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Pixelate = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Pixelate.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Pixelate',\n\n blocksize: 4,\n\n mainParameter: 'blocksize',\n\n /**\n * Fragment source for the Pixelate program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uBlocksize;\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'float blockW = uBlocksize * uStepW;\\n' +\n 'float blockH = uBlocksize * uStepW;\\n' +\n 'int posX = int(vTexCoord.x / blockW);\\n' +\n 'int posY = int(vTexCoord.y / blockH);\\n' +\n 'float fposX = float(posX);\\n' +\n 'float fposY = float(posY);\\n' +\n 'vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\\n' +\n 'vec4 color = texture2D(uTexture, squareCoords);\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Apply the Pixelate operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = imageData.height,\n jLen = imageData.width,\n index, i, j, r, g, b, a,\n _i, _j, _iLen, _jLen;\n\n for (i = 0; i < iLen; i += this.blocksize) {\n for (j = 0; j < jLen; j += this.blocksize) {\n\n index = (i * 4) * jLen + (j * 4);\n\n r = data[index];\n g = data[index + 1];\n b = data[index + 2];\n a = data[index + 3];\n\n _iLen = Math.min(i + this.blocksize, iLen);\n _jLen = Math.min(j + this.blocksize, jLen);\n for (_i = i; _i < _iLen; _i++) {\n for (_j = j; _j < _jLen; _j++) {\n index = (_i * 4) * jLen + (_j * 4);\n data[index] = r;\n data[index + 1] = g;\n data[index + 2] = b;\n data[index + 3] = a;\n }\n }\n }\n }\n },\n\n /**\n * Indicate when the filter is not gonna apply changes to the image\n **/\n isNeutralState: function() {\n return this.blocksize === 1;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uBlocksize: gl.getUniformLocation(program, 'uBlocksize'),\n uStepW: gl.getUniformLocation(program, 'uStepW'),\n uStepH: gl.getUniformLocation(program, 'uStepH'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uBlocksize, this.blocksize);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Pixelate} Instance of fabric.Image.filters.Pixelate\n */\n fabric.Image.filters.Pixelate.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Remove white filter class\n * @class fabric.Image.filters.RemoveColor\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.RemoveColor#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.RemoveColor({\n * threshold: 0.2,\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.RemoveColor = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.RemoveColor.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'RemoveColor',\n\n /**\n * Color to remove, in any format understood by fabric.Color.\n * @param {String} type\n * @default\n */\n color: '#FFFFFF',\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec4 uLow;\\n' +\n 'uniform vec4 uHigh;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'gl_FragColor = texture2D(uTexture, vTexCoord);\\n' +\n 'if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\\n' +\n 'gl_FragColor.a = 0.0;\\n' +\n '}\\n' +\n '}',\n\n /**\n * distance to actual color, as value up or down from each r,g,b\n * between 0 and 1\n **/\n distance: 0.02,\n\n /**\n * For color to remove inside distance, use alpha channel for a smoother deletion\n * NOT IMPLEMENTED YET\n **/\n useAlpha: false,\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.RemoveWhite.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.color=#RRGGBB] Threshold value\n * @param {Number} [options.distance=10] Distance value\n */\n\n /**\n * Applies filter to canvas element\n * @param {Object} canvasEl Canvas element to apply filter to\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n distance = this.distance * 255,\n r, g, b,\n source = new fabric.Color(this.color).getSource(),\n lowC = [\n source[0] - distance,\n source[1] - distance,\n source[2] - distance,\n ],\n highC = [\n source[0] + distance,\n source[1] + distance,\n source[2] + distance,\n ];\n\n\n for (i = 0; i < data.length; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n\n if (r > lowC[0] &&\n g > lowC[1] &&\n b > lowC[2] &&\n r < highC[0] &&\n g < highC[1] &&\n b < highC[2]) {\n data[i + 3] = 0;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uLow: gl.getUniformLocation(program, 'uLow'),\n uHigh: gl.getUniformLocation(program, 'uHigh'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var source = new fabric.Color(this.color).getSource(),\n distance = parseFloat(this.distance),\n lowC = [\n 0 + source[0] / 255 - distance,\n 0 + source[1] / 255 - distance,\n 0 + source[2] / 255 - distance,\n 1\n ],\n highC = [\n source[0] / 255 + distance,\n source[1] / 255 + distance,\n source[2] / 255 + distance,\n 1\n ];\n gl.uniform4fv(uniformLocations.uLow, lowC);\n gl.uniform4fv(uniformLocations.uHigh, highC);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n color: this.color,\n distance: this.distance\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.RemoveColor} Instance of fabric.Image.filters.RemoveWhite\n */\n fabric.Image.filters.RemoveColor.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n var matrices = {\n Brownie: [\n 0.59970,0.34553,-0.27082,0,0.186,\n -0.03770,0.86095,0.15059,0,-0.1449,\n 0.24113,-0.07441,0.44972,0,-0.02965,\n 0,0,0,1,0\n ],\n Vintage: [\n 0.62793,0.32021,-0.03965,0,0.03784,\n 0.02578,0.64411,0.03259,0,0.02926,\n 0.04660,-0.08512,0.52416,0,0.02023,\n 0,0,0,1,0\n ],\n Kodachrome: [\n 1.12855,-0.39673,-0.03992,0,0.24991,\n -0.16404,1.08352,-0.05498,0,0.09698,\n -0.16786,-0.56034,1.60148,0,0.13972,\n 0,0,0,1,0\n ],\n Technicolor: [\n 1.91252,-0.85453,-0.09155,0,0.04624,\n -0.30878,1.76589,-0.10601,0,-0.27589,\n -0.23110,-0.75018,1.84759,0,0.12137,\n 0,0,0,1,0\n ],\n Polaroid: [\n 1.438,-0.062,-0.062,0,0,\n -0.122,1.378,-0.122,0,0,\n -0.016,-0.016,1.483,0,0,\n 0,0,0,1,0\n ],\n Sepia: [\n 0.393, 0.769, 0.189, 0, 0,\n 0.349, 0.686, 0.168, 0, 0,\n 0.272, 0.534, 0.131, 0, 0,\n 0, 0, 0, 1, 0\n ],\n BlackWhite: [\n 1.5, 1.5, 1.5, 0, -1,\n 1.5, 1.5, 1.5, 0, -1,\n 1.5, 1.5, 1.5, 0, -1,\n 0, 0, 0, 1, 0,\n ]\n };\n\n for (var key in matrices) {\n filters[key] = createClass(filters.ColorMatrix, /** @lends fabric.Image.filters.Sepia.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: key,\n\n /**\n * Colormatrix for the effect\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n matrix: matrices[key],\n\n /**\n * Lock the matrix export for this kind of static, parameter less filters.\n */\n mainParameter: false,\n /**\n * Lock the colormatrix on the color part, skipping alpha\n */\n colorsOnly: true,\n\n });\n fabric.Image.filters[key].fromObject = fabric.Image.filters.BaseFilter.fromObject;\n }\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n 'use strict';\n\n var fabric = global.fabric,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Color Blend filter class\n * @class fabric.Image.filter.BlendColor\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @example\n * var filter = new fabric.Image.filters.BlendColor({\n * color: '#000',\n * mode: 'multiply'\n * });\n *\n * var filter = new fabric.Image.filters.BlendImage({\n * image: fabricImageObject,\n * mode: 'multiply',\n * alpha: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n\n filters.BlendColor = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Blend.prototype */ {\n type: 'BlendColor',\n\n /**\n * Color to make the blend operation with. default to a reddish color since black or white\n * gives always strong result.\n **/\n color: '#F95C63',\n\n /**\n * Blend mode for the filter: one of multiply, add, diff, screen, subtract,\n * darken, lighten, overlay, exclusion, tint.\n **/\n mode: 'multiply',\n\n /**\n * alpha value. represent the strength of the blend color operation.\n **/\n alpha: 1,\n\n /**\n * Fragment source for the Multiply program\n */\n fragmentSource: {\n multiply: 'gl_FragColor.rgb *= uColor.rgb;\\n',\n screen: 'gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\\n',\n add: 'gl_FragColor.rgb += uColor.rgb;\\n',\n diff: 'gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\\n',\n subtract: 'gl_FragColor.rgb -= uColor.rgb;\\n',\n lighten: 'gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\\n',\n darken: 'gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\\n',\n exclusion: 'gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\\n',\n overlay: 'if (uColor.r < 0.5) {\\n' +\n 'gl_FragColor.r *= 2.0 * uColor.r;\\n' +\n '} else {\\n' +\n 'gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\\n' +\n '}\\n' +\n 'if (uColor.g < 0.5) {\\n' +\n 'gl_FragColor.g *= 2.0 * uColor.g;\\n' +\n '} else {\\n' +\n 'gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\\n' +\n '}\\n' +\n 'if (uColor.b < 0.5) {\\n' +\n 'gl_FragColor.b *= 2.0 * uColor.b;\\n' +\n '} else {\\n' +\n 'gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\\n' +\n '}\\n',\n tint: 'gl_FragColor.rgb *= (1.0 - uColor.a);\\n' +\n 'gl_FragColor.rgb += uColor.rgb;\\n',\n },\n\n /**\n * build the fragment source for the filters, joining the common part with\n * the specific one.\n * @param {String} mode the mode of the filter, a key of this.fragmentSource\n * @return {String} the source to be compiled\n * @private\n */\n buildSource: function(mode) {\n return 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'gl_FragColor = color;\\n' +\n 'if (color.a > 0.0) {\\n' +\n this.fragmentSource[mode] +\n '}\\n' +\n '}';\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode, shaderSource;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n shaderSource = this.buildSource(this.mode);\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, iLen = data.length,\n tr, tg, tb,\n r, g, b,\n source, alpha1 = 1 - this.alpha;\n\n source = new fabric.Color(this.color).getSource();\n tr = source[0] * this.alpha;\n tg = source[1] * this.alpha;\n tb = source[2] * this.alpha;\n\n for (var i = 0; i < iLen; i += 4) {\n\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n\n switch (this.mode) {\n case 'multiply':\n data[i] = r * tr / 255;\n data[i + 1] = g * tg / 255;\n data[i + 2] = b * tb / 255;\n break;\n case 'screen':\n data[i] = 255 - (255 - r) * (255 - tr) / 255;\n data[i + 1] = 255 - (255 - g) * (255 - tg) / 255;\n data[i + 2] = 255 - (255 - b) * (255 - tb) / 255;\n break;\n case 'add':\n data[i] = r + tr;\n data[i + 1] = g + tg;\n data[i + 2] = b + tb;\n break;\n case 'diff':\n case 'difference':\n data[i] = Math.abs(r - tr);\n data[i + 1] = Math.abs(g - tg);\n data[i + 2] = Math.abs(b - tb);\n break;\n case 'subtract':\n data[i] = r - tr;\n data[i + 1] = g - tg;\n data[i + 2] = b - tb;\n break;\n case 'darken':\n data[i] = Math.min(r, tr);\n data[i + 1] = Math.min(g, tg);\n data[i + 2] = Math.min(b, tb);\n break;\n case 'lighten':\n data[i] = Math.max(r, tr);\n data[i + 1] = Math.max(g, tg);\n data[i + 2] = Math.max(b, tb);\n break;\n case 'overlay':\n data[i] = tr < 128 ? (2 * r * tr / 255) : (255 - 2 * (255 - r) * (255 - tr) / 255);\n data[i + 1] = tg < 128 ? (2 * g * tg / 255) : (255 - 2 * (255 - g) * (255 - tg) / 255);\n data[i + 2] = tb < 128 ? (2 * b * tb / 255) : (255 - 2 * (255 - b) * (255 - tb) / 255);\n break;\n case 'exclusion':\n data[i] = tr + r - ((2 * tr * r) / 255);\n data[i + 1] = tg + g - ((2 * tg * g) / 255);\n data[i + 2] = tb + b - ((2 * tb * b) / 255);\n break;\n case 'tint':\n data[i] = tr + r * alpha1;\n data[i + 1] = tg + g * alpha1;\n data[i + 2] = tb + b * alpha1;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uColor: gl.getUniformLocation(program, 'uColor'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var source = new fabric.Color(this.color).getSource();\n source[0] = this.alpha * source[0] / 255;\n source[1] = this.alpha * source[1] / 255;\n source[2] = this.alpha * source[2] / 255;\n source[3] = this.alpha;\n gl.uniform4fv(uniformLocations.uColor, source);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n color: this.color,\n mode: this.mode,\n alpha: this.alpha\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.BlendColor} Instance of fabric.Image.filters.BlendColor\n */\n fabric.Image.filters.BlendColor.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n 'use strict';\n\n var fabric = global.fabric,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Image Blend filter class\n * @class fabric.Image.filter.BlendImage\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @example\n * var filter = new fabric.Image.filters.BlendColor({\n * color: '#000',\n * mode: 'multiply'\n * });\n *\n * var filter = new fabric.Image.filters.BlendImage({\n * image: fabricImageObject,\n * mode: 'multiply',\n * alpha: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n\n filters.BlendImage = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.BlendImage.prototype */ {\n type: 'BlendImage',\n\n /**\n * Color to make the blend operation with. default to a reddish color since black or white\n * gives always strong result.\n **/\n image: null,\n\n /**\n * Blend mode for the filter: one of multiply, add, diff, screen, subtract,\n * darken, lighten, overlay, exclusion, tint.\n **/\n mode: 'multiply',\n\n /**\n * alpha value. represent the strength of the blend image operation.\n * not implemented.\n **/\n alpha: 1,\n\n vertexSource: 'attribute vec2 aPosition;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'uniform mat3 uTransformMatrix;\\n' +\n 'void main() {\\n' +\n 'vTexCoord = aPosition;\\n' +\n 'vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\\n' +\n 'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n' +\n '}',\n\n /**\n * Fragment source for the Multiply program\n */\n fragmentSource: {\n multiply: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform sampler2D uImage;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec4 color2 = texture2D(uImage, vTexCoord2);\\n' +\n 'color.rgba *= color2.rgba;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n mask: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform sampler2D uImage;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec4 color2 = texture2D(uImage, vTexCoord2);\\n' +\n 'color.a = color2.a;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode;\n var shaderSource = this.fragmentSource[this.mode];\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n applyToWebGL: function(options) {\n // load texture to blend.\n var gl = options.context,\n texture = this.createTexture(options.filterBackend, this.image);\n this.bindAdditionalTexture(gl, texture, gl.TEXTURE1);\n this.callSuper('applyToWebGL', options);\n this.unbindAdditionalTexture(gl, gl.TEXTURE1);\n },\n\n createTexture: function(backend, image) {\n return backend.getCachedTexture(image.cacheKey, image._element);\n },\n\n /**\n * Calculate a transformMatrix to adapt the image to blend over\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n calculateMatrix: function() {\n var image = this.image,\n width = image._element.width,\n height = image._element.height;\n return [\n 1 / image.scaleX, 0, 0,\n 0, 1 / image.scaleY, 0,\n -image.left / width, -image.top / height, 1\n ];\n },\n\n /**\n * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n resources = options.filterBackend.resources,\n data = imageData.data, iLen = data.length,\n width = imageData.width,\n height = imageData.height,\n tr, tg, tb, ta,\n r, g, b, a,\n canvas1, context, image = this.image, blendData;\n\n if (!resources.blendImage) {\n resources.blendImage = fabric.util.createCanvasElement();\n }\n canvas1 = resources.blendImage;\n context = canvas1.getContext('2d');\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas1.width = width;\n canvas1.height = height;\n }\n else {\n context.clearRect(0, 0, width, height);\n }\n context.setTransform(image.scaleX, 0, 0, image.scaleY, image.left, image.top);\n context.drawImage(image._element, 0, 0, width, height);\n blendData = context.getImageData(0, 0, width, height).data;\n for (var i = 0; i < iLen; i += 4) {\n\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n\n tr = blendData[i];\n tg = blendData[i + 1];\n tb = blendData[i + 2];\n ta = blendData[i + 3];\n\n switch (this.mode) {\n case 'multiply':\n data[i] = r * tr / 255;\n data[i + 1] = g * tg / 255;\n data[i + 2] = b * tb / 255;\n data[i + 3] = a * ta / 255;\n break;\n case 'mask':\n data[i + 3] = ta;\n break;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uTransformMatrix: gl.getUniformLocation(program, 'uTransformMatrix'),\n uImage: gl.getUniformLocation(program, 'uImage'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var matrix = this.calculateMatrix();\n gl.uniform1i(uniformLocations.uImage, 1); // texture unit 1.\n gl.uniformMatrix3fv(uniformLocations.uTransformMatrix, false, matrix);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n image: this.image && this.image.toObject(),\n mode: this.mode,\n alpha: this.alpha\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} callback to be invoked after filter creation\n * @return {fabric.Image.filters.BlendImage} Instance of fabric.Image.filters.BlendImage\n */\n fabric.Image.filters.BlendImage.fromObject = function(object, callback) {\n fabric.Image.fromObject(object.image, function(image) {\n var options = fabric.util.object.clone(object);\n options.image = image;\n callback(new fabric.Image.filters.BlendImage(options));\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }), pow = Math.pow, floor = Math.floor,\n sqrt = Math.sqrt, abs = Math.abs, round = Math.round, sin = Math.sin,\n ceil = Math.ceil,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Resize image filter class\n * @class fabric.Image.filters.Resize\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Resize();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\n filters.Resize = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Resize.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Resize',\n\n /**\n * Resize type\n * for webgl resizeType is just lanczos, for canvas2d can be:\n * bilinear, hermite, sliceHack, lanczos.\n * @param {String} resizeType\n * @default\n */\n resizeType: 'hermite',\n\n /**\n * Scale factor for resizing, x axis\n * @param {Number} scaleX\n * @default\n */\n scaleX: 1,\n\n /**\n * Scale factor for resizing, y axis\n * @param {Number} scaleY\n * @default\n */\n scaleY: 1,\n\n /**\n * LanczosLobes parameter for lanczos filter, valid for resizeType lanczos\n * @param {Number} lanczosLobes\n * @default\n */\n lanczosLobes: 3,\n\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uDelta: gl.getUniformLocation(program, 'uDelta'),\n uTaps: gl.getUniformLocation(program, 'uTaps'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform2fv(uniformLocations.uDelta, this.horizontal ? [1 / this.width, 0] : [0, 1 / this.height]);\n gl.uniform1fv(uniformLocations.uTaps, this.taps);\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var filterWindow = this.getFilterWindow(), cacheKey = this.type + '_' + filterWindow;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n var fragmentShader = this.generateShader(filterWindow);\n options.programCache[cacheKey] = this.createProgram(options.context, fragmentShader);\n }\n return options.programCache[cacheKey];\n },\n\n getFilterWindow: function() {\n var scale = this.tempScale;\n return Math.ceil(this.lanczosLobes / scale);\n },\n\n getTaps: function() {\n var lobeFunction = this.lanczosCreate(this.lanczosLobes), scale = this.tempScale,\n filterWindow = this.getFilterWindow(), taps = new Array(filterWindow);\n for (var i = 1; i <= filterWindow; i++) {\n taps[i - 1] = lobeFunction(i * scale);\n }\n return taps;\n },\n\n /**\n * Generate vertex and shader sources from the necessary steps numbers\n * @param {Number} filterWindow\n */\n generateShader: function(filterWindow) {\n var offsets = new Array(filterWindow),\n fragmentShader = this.fragmentSourceTOP, filterWindow;\n\n for (var i = 1; i <= filterWindow; i++) {\n offsets[i - 1] = i + '.0 * uDelta';\n }\n\n fragmentShader += 'uniform float uTaps[' + filterWindow + '];\\n';\n fragmentShader += 'void main() {\\n';\n fragmentShader += ' vec4 color = texture2D(uTexture, vTexCoord);\\n';\n fragmentShader += ' float sum = 1.0;\\n';\n\n offsets.forEach(function(offset, i) {\n fragmentShader += ' color += texture2D(uTexture, vTexCoord + ' + offset + ') * uTaps[' + i + '];\\n';\n fragmentShader += ' color += texture2D(uTexture, vTexCoord - ' + offset + ') * uTaps[' + i + '];\\n';\n fragmentShader += ' sum += 2.0 * uTaps[' + i + '];\\n';\n });\n fragmentShader += ' gl_FragColor = color / sum;\\n';\n fragmentShader += '}';\n return fragmentShader;\n },\n\n fragmentSourceTOP: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec2 uDelta;\\n' +\n 'varying vec2 vTexCoord;\\n',\n\n /**\n * Apply the resize filter to the image\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n if (options.webgl) {\n options.passes++;\n this.width = options.sourceWidth;\n this.horizontal = true;\n this.dW = Math.round(this.width * this.scaleX);\n this.dH = options.sourceHeight;\n this.tempScale = this.dW / this.width;\n this.taps = this.getTaps();\n options.destinationWidth = this.dW;\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n options.sourceWidth = options.destinationWidth;\n\n this.height = options.sourceHeight;\n this.horizontal = false;\n this.dH = Math.round(this.height * this.scaleY);\n this.tempScale = this.dH / this.height;\n this.taps = this.getTaps();\n options.destinationHeight = this.dH;\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n options.sourceHeight = options.destinationHeight;\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n isNeutralState: function() {\n return this.scaleX === 1 && this.scaleY === 1;\n },\n\n lanczosCreate: function(lobes) {\n return function(x) {\n if (x >= lobes || x <= -lobes) {\n return 0.0;\n }\n if (x < 1.19209290E-07 && x > -1.19209290E-07) {\n return 1.0;\n }\n x *= Math.PI;\n var xx = x / lobes;\n return (sin(x) / x) * sin(xx) / xx;\n };\n },\n\n /**\n * Applies filter to canvas element\n * @memberOf fabric.Image.filters.Resize.prototype\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} scaleX\n * @param {Number} scaleY\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n scaleX = this.scaleX,\n scaleY = this.scaleY;\n\n this.rcpScaleX = 1 / scaleX;\n this.rcpScaleY = 1 / scaleY;\n\n var oW = imageData.width, oH = imageData.height,\n dW = round(oW * scaleX), dH = round(oH * scaleY),\n newData;\n\n if (this.resizeType === 'sliceHack') {\n newData = this.sliceByTwo(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'hermite') {\n newData = this.hermiteFastResize(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'bilinear') {\n newData = this.bilinearFiltering(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'lanczos') {\n newData = this.lanczosResize(options, oW, oH, dW, dH);\n }\n options.imageData = newData;\n },\n\n /**\n * Filter sliceByTwo\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n sliceByTwo: function(options, oW, oH, dW, dH) {\n var imageData = options.imageData,\n mult = 0.5, doneW = false, doneH = false, stepW = oW * mult,\n stepH = oH * mult, resources = fabric.filterBackend.resources,\n tmpCanvas, ctx, sX = 0, sY = 0, dX = oW, dY = 0;\n if (!resources.sliceByTwo) {\n resources.sliceByTwo = document.createElement('canvas');\n }\n tmpCanvas = resources.sliceByTwo;\n if (tmpCanvas.width < oW * 1.5 || tmpCanvas.height < oH) {\n tmpCanvas.width = oW * 1.5;\n tmpCanvas.height = oH;\n }\n ctx = tmpCanvas.getContext('2d');\n ctx.clearRect(0, 0, oW * 1.5, oH);\n ctx.putImageData(imageData, 0, 0);\n\n dW = floor(dW);\n dH = floor(dH);\n\n while (!doneW || !doneH) {\n oW = stepW;\n oH = stepH;\n if (dW < floor(stepW * mult)) {\n stepW = floor(stepW * mult);\n }\n else {\n stepW = dW;\n doneW = true;\n }\n if (dH < floor(stepH * mult)) {\n stepH = floor(stepH * mult);\n }\n else {\n stepH = dH;\n doneH = true;\n }\n ctx.drawImage(tmpCanvas, sX, sY, oW, oH, dX, dY, stepW, stepH);\n sX = dX;\n sY = dY;\n dY += stepH;\n }\n return ctx.getImageData(sX, sY, dW, dH);\n },\n\n /**\n * Filter lanczosResize\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n lanczosResize: function(options, oW, oH, dW, dH) {\n\n function process(u) {\n var v, i, weight, idx, a, red, green,\n blue, alpha, fX, fY;\n center.x = (u + 0.5) * ratioX;\n icenter.x = floor(center.x);\n for (v = 0; v < dH; v++) {\n center.y = (v + 0.5) * ratioY;\n icenter.y = floor(center.y);\n a = 0; red = 0; green = 0; blue = 0; alpha = 0;\n for (i = icenter.x - range2X; i <= icenter.x + range2X; i++) {\n if (i < 0 || i >= oW) {\n continue;\n }\n fX = floor(1000 * abs(i - center.x));\n if (!cacheLanc[fX]) {\n cacheLanc[fX] = { };\n }\n for (var j = icenter.y - range2Y; j <= icenter.y + range2Y; j++) {\n if (j < 0 || j >= oH) {\n continue;\n }\n fY = floor(1000 * abs(j - center.y));\n if (!cacheLanc[fX][fY]) {\n cacheLanc[fX][fY] = lanczos(sqrt(pow(fX * rcpRatioX, 2) + pow(fY * rcpRatioY, 2)) / 1000);\n }\n weight = cacheLanc[fX][fY];\n if (weight > 0) {\n idx = (j * oW + i) * 4;\n a += weight;\n red += weight * srcData[idx];\n green += weight * srcData[idx + 1];\n blue += weight * srcData[idx + 2];\n alpha += weight * srcData[idx + 3];\n }\n }\n }\n idx = (v * dW + u) * 4;\n destData[idx] = red / a;\n destData[idx + 1] = green / a;\n destData[idx + 2] = blue / a;\n destData[idx + 3] = alpha / a;\n }\n\n if (++u < dW) {\n return process(u);\n }\n else {\n return destImg;\n }\n }\n\n var srcData = options.imageData.data,\n destImg = options.ctx.createImageData(dW, dH),\n destData = destImg.data,\n lanczos = this.lanczosCreate(this.lanczosLobes),\n ratioX = this.rcpScaleX, ratioY = this.rcpScaleY,\n rcpRatioX = 2 / this.rcpScaleX, rcpRatioY = 2 / this.rcpScaleY,\n range2X = ceil(ratioX * this.lanczosLobes / 2),\n range2Y = ceil(ratioY * this.lanczosLobes / 2),\n cacheLanc = { }, center = { }, icenter = { };\n\n return process(0);\n },\n\n /**\n * bilinearFiltering\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n bilinearFiltering: function(options, oW, oH, dW, dH) {\n var a, b, c, d, x, y, i, j, xDiff, yDiff, chnl,\n color, offset = 0, origPix, ratioX = this.rcpScaleX,\n ratioY = this.rcpScaleY,\n w4 = 4 * (oW - 1), img = options.imageData,\n pixels = img.data, destImage = options.ctx.createImageData(dW, dH),\n destPixels = destImage.data;\n for (i = 0; i < dH; i++) {\n for (j = 0; j < dW; j++) {\n x = floor(ratioX * j);\n y = floor(ratioY * i);\n xDiff = ratioX * j - x;\n yDiff = ratioY * i - y;\n origPix = 4 * (y * oW + x);\n\n for (chnl = 0; chnl < 4; chnl++) {\n a = pixels[origPix + chnl];\n b = pixels[origPix + 4 + chnl];\n c = pixels[origPix + w4 + chnl];\n d = pixels[origPix + w4 + 4 + chnl];\n color = a * (1 - xDiff) * (1 - yDiff) + b * xDiff * (1 - yDiff) +\n c * yDiff * (1 - xDiff) + d * xDiff * yDiff;\n destPixels[offset++] = color;\n }\n }\n }\n return destImage;\n },\n\n /**\n * hermiteFastResize\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n hermiteFastResize: function(options, oW, oH, dW, dH) {\n var ratioW = this.rcpScaleX, ratioH = this.rcpScaleY,\n ratioWHalf = ceil(ratioW / 2),\n ratioHHalf = ceil(ratioH / 2),\n img = options.imageData, data = img.data,\n img2 = options.ctx.createImageData(dW, dH), data2 = img2.data;\n for (var j = 0; j < dH; j++) {\n for (var i = 0; i < dW; i++) {\n var x2 = (i + j * dW) * 4, weight = 0, weights = 0, weightsAlpha = 0,\n gxR = 0, gxG = 0, gxB = 0, gxA = 0, centerY = (j + 0.5) * ratioH;\n for (var yy = floor(j * ratioH); yy < (j + 1) * ratioH; yy++) {\n var dy = abs(centerY - (yy + 0.5)) / ratioHHalf,\n centerX = (i + 0.5) * ratioW, w0 = dy * dy;\n for (var xx = floor(i * ratioW); xx < (i + 1) * ratioW; xx++) {\n var dx = abs(centerX - (xx + 0.5)) / ratioWHalf,\n w = sqrt(w0 + dx * dx);\n /* eslint-disable max-depth */\n if (w > 1 && w < -1) {\n continue;\n }\n //hermite filter\n weight = 2 * w * w * w - 3 * w * w + 1;\n if (weight > 0) {\n dx = 4 * (xx + yy * oW);\n //alpha\n gxA += weight * data[dx + 3];\n weightsAlpha += weight;\n //colors\n if (data[dx + 3] < 255) {\n weight = weight * data[dx + 3] / 250;\n }\n gxR += weight * data[dx];\n gxG += weight * data[dx + 1];\n gxB += weight * data[dx + 2];\n weights += weight;\n }\n /* eslint-enable max-depth */\n }\n }\n data2[x2] = gxR / weights;\n data2[x2 + 1] = gxG / weights;\n data2[x2 + 2] = gxB / weights;\n data2[x2 + 3] = gxA / weightsAlpha;\n }\n }\n return img2;\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n resizeType: this.resizeType,\n lanczosLobes: this.lanczosLobes\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Resize} Instance of fabric.Image.filters.Resize\n */\n fabric.Image.filters.Resize.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Contrast filter class\n * @class fabric.Image.filters.Contrast\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Contrast#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Contrast({\n * contrast: 0.25\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Contrast = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Contrast.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Contrast',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uContrast;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\\n' +\n 'color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * contrast value, range from -1 to 1.\n * @param {Number} contrast\n * @default 0\n */\n contrast: 0,\n\n mainParameter: 'contrast',\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Contrast.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.contrast=0] Value to contrast the image up (-1...1)\n */\n\n /**\n * Apply the Contrast operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n if (this.contrast === 0) {\n return;\n }\n var imageData = options.imageData, i, len,\n data = imageData.data, len = data.length,\n contrast = Math.floor(this.contrast * 255),\n contrastF = 259 * (contrast + 255) / (255 * (259 - contrast));\n\n for (i = 0; i < len; i += 4) {\n data[i] = contrastF * (data[i] - 128) + 128;\n data[i + 1] = contrastF * (data[i + 1] - 128) + 128;\n data[i + 2] = contrastF * (data[i + 2] - 128) + 128;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uContrast: gl.getUniformLocation(program, 'uContrast'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uContrast, this.contrast);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Contrast} Instance of fabric.Image.filters.Contrast\n */\n fabric.Image.filters.Contrast.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Saturate filter class\n * @class fabric.Image.filters.Saturation\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Saturation#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Saturation({\n * saturation: 100\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Saturation = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Saturation.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Saturation',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uSaturation;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float rgMax = max(color.r, color.g);\\n' +\n 'float rgbMax = max(rgMax, color.b);\\n' +\n 'color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\\n' +\n 'color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\\n' +\n 'color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n saturation: 0,\n\n mainParameter: 'saturation',\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Saturate.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.saturate=0] Value to saturate the image (-1...1)\n */\n\n /**\n * Apply the Saturation operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.saturation === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, len = data.length,\n adjust = -this.saturation, i, max;\n\n for (i = 0; i < len; i += 4) {\n max = Math.max(data[i], data[i + 1], data[i + 2]);\n data[i] += max !== data[i] ? (max - data[i]) * adjust : 0;\n data[i + 1] += max !== data[i + 1] ? (max - data[i + 1]) * adjust : 0;\n data[i + 2] += max !== data[i + 2] ? (max - data[i + 2]) * adjust : 0;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uSaturation: gl.getUniformLocation(program, 'uSaturation'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uSaturation, -this.saturation);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Saturation} Instance of fabric.Image.filters.Saturate\n */\n fabric.Image.filters.Saturation.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Blur filter class\n * @class fabric.Image.filters.Blur\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Blur#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Blur({\n * blur: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Blur = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Blur.prototype */ {\n\n type: 'Blur',\n\n /*\n'gl_FragColor = vec4(0.0);',\n'gl_FragColor += texture2D(texture, vTexCoord + -7 * uDelta)*0.0044299121055113265;',\n'gl_FragColor += texture2D(texture, vTexCoord + -6 * uDelta)*0.00895781211794;',\n'gl_FragColor += texture2D(texture, vTexCoord + -5 * uDelta)*0.0215963866053;',\n'gl_FragColor += texture2D(texture, vTexCoord + -4 * uDelta)*0.0443683338718;',\n'gl_FragColor += texture2D(texture, vTexCoord + -3 * uDelta)*0.0776744219933;',\n'gl_FragColor += texture2D(texture, vTexCoord + -2 * uDelta)*0.115876621105;',\n'gl_FragColor += texture2D(texture, vTexCoord + -1 * uDelta)*0.147308056121;',\n'gl_FragColor += texture2D(texture, vTexCoord )*0.159576912161;',\n'gl_FragColor += texture2D(texture, vTexCoord + 1 * uDelta)*0.147308056121;',\n'gl_FragColor += texture2D(texture, vTexCoord + 2 * uDelta)*0.115876621105;',\n'gl_FragColor += texture2D(texture, vTexCoord + 3 * uDelta)*0.0776744219933;',\n'gl_FragColor += texture2D(texture, vTexCoord + 4 * uDelta)*0.0443683338718;',\n'gl_FragColor += texture2D(texture, vTexCoord + 5 * uDelta)*0.0215963866053;',\n'gl_FragColor += texture2D(texture, vTexCoord + 6 * uDelta)*0.00895781211794;',\n'gl_FragColor += texture2D(texture, vTexCoord + 7 * uDelta)*0.0044299121055113265;',\n*/\n\n /* eslint-disable max-len */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec2 uDelta;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'const float nSamples = 15.0;\\n' +\n 'vec3 v3offset = vec3(12.9898, 78.233, 151.7182);\\n' +\n 'float random(vec3 scale) {\\n' +\n /* use the fragment position for a different seed per-pixel */\n 'return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\\n' +\n '}\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0.0);\\n' +\n 'float total = 0.0;\\n' +\n 'float offset = random(v3offset);\\n' +\n 'for (float t = -nSamples; t <= nSamples; t++) {\\n' +\n 'float percent = (t + offset - 0.5) / nSamples;\\n' +\n 'float weight = 1.0 - abs(percent);\\n' +\n 'color += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\\n' +\n 'total += weight;\\n' +\n '}\\n' +\n 'gl_FragColor = color / total;\\n' +\n '}',\n /* eslint-enable max-len */\n\n /**\n * blur value, in percentage of image dimensions.\n * specific to keep the image blur constant at different resolutions\n * range between 0 and 1.\n */\n blur: 0,\n\n mainParameter: 'blur',\n\n applyTo: function(options) {\n if (options.webgl) {\n // this aspectRatio is used to give the same blur to vertical and horizontal\n this.aspectRatio = options.sourceWidth / options.sourceHeight;\n options.passes++;\n this._setupFrameBuffer(options);\n this.horizontal = true;\n this.applyToWebGL(options);\n this._swapTextures(options);\n this._setupFrameBuffer(options);\n this.horizontal = false;\n this.applyToWebGL(options);\n this._swapTextures(options);\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n applyTo2d: function(options) {\n // paint canvasEl with current image data.\n //options.ctx.putImageData(options.imageData, 0, 0);\n options.imageData = this.simpleBlur(options);\n },\n\n simpleBlur: function(options) {\n var resources = options.filterBackend.resources, canvas1, canvas2,\n width = options.imageData.width,\n height = options.imageData.height;\n\n if (!resources.blurLayer1) {\n resources.blurLayer1 = fabric.util.createCanvasElement();\n resources.blurLayer2 = fabric.util.createCanvasElement();\n }\n canvas1 = resources.blurLayer1;\n canvas2 = resources.blurLayer2;\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas2.width = canvas1.width = width;\n canvas2.height = canvas1.height = height;\n }\n var ctx1 = canvas1.getContext('2d'),\n ctx2 = canvas2.getContext('2d'),\n nSamples = 15,\n random, percent, j, i,\n blur = this.blur * 0.06 * 0.5;\n\n // load first canvas\n ctx1.putImageData(options.imageData, 0, 0);\n ctx2.clearRect(0, 0, width, height);\n\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * width + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, j, random);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * height + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, random, j);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n options.ctx.drawImage(canvas1, 0, 0);\n var newImageData = options.ctx.getImageData(0, 0, canvas1.width, canvas1.height);\n ctx1.globalAlpha = 1;\n ctx1.clearRect(0, 0, canvas1.width, canvas1.height);\n return newImageData;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n delta: gl.getUniformLocation(program, 'uDelta'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var delta = this.chooseRightDelta();\n gl.uniform2fv(uniformLocations.delta, delta);\n },\n\n /**\n * choose right value of image percentage to blur with\n * @returns {Array} a numeric array with delta values\n */\n chooseRightDelta: function() {\n var blurScale = 1, delta = [0, 0], blur;\n if (this.horizontal) {\n if (this.aspectRatio > 1) {\n // image is wide, i want to shrink radius horizontal\n blurScale = 1 / this.aspectRatio;\n }\n }\n else {\n if (this.aspectRatio < 1) {\n // image is tall, i want to shrink radius vertical\n blurScale = this.aspectRatio;\n }\n }\n blur = blurScale * this.blur * 0.12;\n if (this.horizontal) {\n delta[0] = blur;\n }\n else {\n delta[1] = blur;\n }\n return delta;\n },\n });\n\n /**\n * Deserialize a JSON definition of a BlurFilter into a concrete instance.\n */\n filters.Blur.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Gamma filter class\n * @class fabric.Image.filters.Gamma\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Gamma#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Gamma({\n * gamma: [1, 0.5, 2.1]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Gamma = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Gamma.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Gamma',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec3 uGamma;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec3 correction = (1.0 / uGamma);\\n' +\n 'color.r = pow(color.r, correction.r);\\n' +\n 'color.g = pow(color.g, correction.g);\\n' +\n 'color.b = pow(color.b, correction.b);\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.rgb *= color.a;\\n' +\n '}',\n\n /**\n * Gamma array value, from 0.01 to 2.2.\n * @param {Array} gamma\n * @default\n */\n gamma: [1, 1, 1],\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'gamma',\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.gamma = [1, 1, 1];\n filters.BaseFilter.prototype.initialize.call(this, options);\n },\n\n /**\n * Apply the Gamma operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData, data = imageData.data,\n gamma = this.gamma, len = data.length,\n rInv = 1 / gamma[0], gInv = 1 / gamma[1],\n bInv = 1 / gamma[2], i;\n\n if (!this.rVals) {\n // eslint-disable-next-line\n this.rVals = new Uint8Array(256);\n // eslint-disable-next-line\n this.gVals = new Uint8Array(256);\n // eslint-disable-next-line\n this.bVals = new Uint8Array(256);\n }\n\n // This is an optimization - pre-compute a look-up table for each color channel\n // instead of performing these pow calls for each pixel in the image.\n for (i = 0, len = 256; i < len; i++) {\n this.rVals[i] = Math.pow(i / 255, rInv) * 255;\n this.gVals[i] = Math.pow(i / 255, gInv) * 255;\n this.bVals[i] = Math.pow(i / 255, bInv) * 255;\n }\n for (i = 0, len = data.length; i < len; i += 4) {\n data[i] = this.rVals[data[i]];\n data[i + 1] = this.gVals[data[i + 1]];\n data[i + 2] = this.bVals[data[i + 2]];\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uGamma: gl.getUniformLocation(program, 'uGamma'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform3fv(uniformLocations.uGamma, this.gamma);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Gamma} Instance of fabric.Image.filters.Gamma\n */\n fabric.Image.filters.Gamma.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * A container class that knows how to apply a sequence of filters to an input image.\n */\n filters.Composed = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Composed.prototype */ {\n\n type: 'Composed',\n\n /**\n * A non sparse array of filters to apply\n */\n subFilters: [],\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n // create a new array instead mutating the prototype with push\n this.subFilters = this.subFilters.slice(0);\n },\n\n /**\n * Apply this container's filters to the input image provided.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be applied.\n */\n applyTo: function(options) {\n options.passes += this.subFilters.length - 1;\n this.subFilters.forEach(function(filter) {\n filter.applyTo(options);\n });\n },\n\n /**\n * Serialize this filter into JSON.\n *\n * @returns {Object} A JSON representation of this filter.\n */\n toObject: function() {\n return fabric.util.object.extend(this.callSuper('toObject'), {\n subFilters: this.subFilters.map(function(filter) { return filter.toObject(); }),\n });\n },\n\n isNeutralState: function() {\n return !this.subFilters.some(function(filter) { return !filter.isNeutralState(); });\n }\n });\n\n /**\n * Deserialize a JSON definition of a ComposedFilter into a concrete instance.\n */\n fabric.Image.filters.Composed.fromObject = function(object, callback) {\n var filters = object.subFilters || [],\n subFilters = filters.map(function(filter) {\n return new fabric.Image.filters[filter.type](filter);\n }),\n instance = new fabric.Image.filters.Composed({ subFilters: subFilters });\n callback && callback(instance);\n return instance;\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * HueRotation filter class\n * @class fabric.Image.filters.HueRotation\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.HueRotation#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.HueRotation({\n * rotation: -0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.HueRotation = createClass(filters.ColorMatrix, /** @lends fabric.Image.filters.HueRotation.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'HueRotation',\n\n /**\n * HueRotation value, from -1 to 1.\n * the unit is radians\n * @param {Number} myParameter\n * @default\n */\n rotation: 0,\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'rotation',\n\n calculateMatrix: function() {\n var rad = this.rotation * Math.PI, cos = fabric.util.cos(rad), sin = fabric.util.sin(rad),\n aThird = 1 / 3, aThirdSqtSin = Math.sqrt(aThird) * sin, OneMinusCos = 1 - cos;\n this.matrix = [\n 1, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1, 0, 0,\n 0, 0, 0, 1, 0\n ];\n this.matrix[0] = cos + OneMinusCos / 3;\n this.matrix[1] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[2] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[5] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[6] = cos + aThird * OneMinusCos;\n this.matrix[7] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[10] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[11] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[12] = cos + aThird * OneMinusCos;\n },\n\n /**\n * HueRotation isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState: function(options) {\n this.calculateMatrix();\n return filters.BaseFilter.prototype.isNeutralState.call(this, options);\n },\n\n /**\n * Apply this filter to the input image data provided.\n *\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n this.calculateMatrix();\n filters.BaseFilter.prototype.applyTo.call(this, options);\n },\n\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.HueRotation} Instance of fabric.Image.filters.HueRotation\n */\n fabric.Image.filters.HueRotation.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n clone = fabric.util.object.clone;\n\n if (fabric.Text) {\n fabric.warn('fabric.Text is already defined');\n return;\n }\n\n var additionalProps =\n ('fontFamily fontWeight fontSize text underline overline linethrough' +\n ' textAlign fontStyle lineHeight textBackgroundColor charSpacing styles path').split(' ');\n\n /**\n * Text class\n * @class fabric.Text\n * @extends fabric.Object\n * @return {fabric.Text} thisArg\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#text}\n * @see {@link fabric.Text#initialize} for constructor definition\n */\n fabric.Text = fabric.util.createClass(fabric.Object, /** @lends fabric.Text.prototype */ {\n\n /**\n * Properties which when set cause object to change dimensions\n * @type Array\n * @private\n */\n _dimensionAffectingProps: [\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontStyle',\n 'lineHeight',\n 'text',\n 'charSpacing',\n 'textAlign',\n 'styles',\n 'path'\n ],\n\n /**\n * @private\n */\n _reNewline: /\\r?\\n/,\n\n /**\n * Use this regular expression to filter for whitespaces that is not a new line.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reSpacesAndTabs: /[ \\t\\r]/g,\n\n /**\n * Use this regular expression to filter for whitespace that is not a new line.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reSpaceAndTab: /[ \\t\\r]/,\n\n /**\n * Use this regular expression to filter consecutive groups of non spaces.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reWords: /\\S+/g,\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'text',\n\n /**\n * Font size (in pixels)\n * @type Number\n * @default\n */\n fontSize: 40,\n\n /**\n * Font weight (e.g. bold, normal, 400, 600, 800)\n * @type {(Number|String)}\n * @default\n */\n fontWeight: 'normal',\n\n /**\n * Font family\n * @type String\n * @default\n */\n fontFamily: 'Times New Roman',\n\n /**\n * Text decoration underline.\n * @type Boolean\n * @default\n */\n underline: false,\n\n /**\n * Text decoration overline.\n * @type Boolean\n * @default\n */\n overline: false,\n\n /**\n * Text decoration linethrough.\n * @type Boolean\n * @default\n */\n linethrough: false,\n\n /**\n * Text alignment. Possible values: \"left\", \"center\", \"right\", \"justify\",\n * \"justify-left\", \"justify-center\" or \"justify-right\".\n * @type String\n * @default\n */\n textAlign: 'left',\n\n /**\n * Font style . Possible values: \"\", \"normal\", \"italic\" or \"oblique\".\n * @type String\n * @default\n */\n fontStyle: 'normal',\n\n /**\n * Line height\n * @type Number\n * @default\n */\n lineHeight: 1.16,\n\n /**\n * Superscript schema object (minimum overlap)\n * @type {Object}\n * @default\n */\n superscript: {\n size: 0.60, // fontSize factor\n baseline: -0.35 // baseline-shift factor (upwards)\n },\n\n /**\n * Subscript schema object (minimum overlap)\n * @type {Object}\n * @default\n */\n subscript: {\n size: 0.60, // fontSize factor\n baseline: 0.11 // baseline-shift factor (downwards)\n },\n\n /**\n * Background color of text lines\n * @type String\n * @default\n */\n textBackgroundColor: '',\n\n /**\n * List of properties to consider when checking if\n * state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat(additionalProps),\n\n /**\n * List of properties to consider when checking if cache needs refresh\n * @type Array\n */\n cacheProperties: fabric.Object.prototype.cacheProperties.concat(additionalProps),\n\n /**\n * When defined, an object is rendered via stroke and this property specifies its color.\n * Backwards incompatibility note: This property was named \"strokeStyle\" until v1.1.6\n * @type String\n * @default\n */\n stroke: null,\n\n /**\n * Shadow object representing shadow of this shape.\n * Backwards incompatibility note: This property was named \"textShadow\" (String) until v1.2.11\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * @private\n */\n _fontSizeFraction: 0.222,\n\n /**\n * @private\n */\n offsets: {\n underline: 0.10,\n linethrough: -0.315,\n overline: -0.88\n },\n\n /**\n * Text Line proportion to font Size (in pixels)\n * @type Number\n * @default\n */\n _fontSizeMult: 1.13,\n\n /**\n * additional space between characters\n * expressed in thousands of em unit\n * @type Number\n * @default\n */\n charSpacing: 0,\n\n /**\n * Object containing character styles - top-level properties -> line numbers,\n * 2nd-level properties - character numbers\n * @type Object\n * @default\n */\n styles: null,\n\n /**\n * Reference to a context to measure text char or couple of chars\n * the cacheContext of the canvas will be used or a freshly created one if the object is not on canvas\n * once created it will be referenced on fabric._measuringContext to avoid creating a canvas for every\n * text object created.\n * @type {CanvasRenderingContext2D}\n * @default\n */\n _measuringContext: null,\n\n /**\n * Baseline shift, styles only, keep at 0 for the main text object\n * @type {Number}\n * @default\n */\n deltaY: 0,\n\n /**\n * Array of properties that define a style unit (of 'styles').\n * @type {Array}\n * @default\n */\n _styleProperties: [\n 'stroke',\n 'strokeWidth',\n 'fill',\n 'fontFamily',\n 'fontSize',\n 'fontWeight',\n 'fontStyle',\n 'underline',\n 'overline',\n 'linethrough',\n 'deltaY',\n 'textBackgroundColor',\n ],\n\n /**\n * contains characters bounding boxes\n */\n __charBounds: [],\n\n /**\n * use this size when measuring text. To avoid IE11 rounding errors\n * @type {Number}\n * @default\n * @readonly\n * @private\n */\n CACHE_FONT_SIZE: 400,\n\n /**\n * contains the min text width to avoid getting 0\n * @type {Number}\n * @default\n */\n MIN_TEXT_WIDTH: 2,\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.Text} thisArg\n */\n initialize: function(text, options) {\n this.styles = options ? (options.styles || { }) : { };\n this.text = text;\n this.__skipDimension = true;\n this.callSuper('initialize', options);\n if (this.path) {\n this.setPathInfo();\n }\n this.__skipDimension = false;\n this.initDimensions();\n this.setCoords();\n this.setupState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * If text has a path, it will add the extra information needed\n * for path and text calculations\n * @return {fabric.Text} thisArg\n */\n setPathInfo: function() {\n var path = this.path;\n if (path) {\n path.segmentsInfo = fabric.util.getPathSegmentsInfo(path.path);\n }\n },\n\n /**\n * Return a context for measurement of text string.\n * if created it gets stored for reuse\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.Text} thisArg\n */\n getMeasuringContext: function() {\n // if we did not return we have to measure something.\n if (!fabric._measuringContext) {\n fabric._measuringContext = this.canvas && this.canvas.contextCache ||\n fabric.util.createCanvasElement().getContext('2d');\n }\n return fabric._measuringContext;\n },\n\n /**\n * @private\n * Divides text into lines of text and lines of graphemes.\n */\n _splitText: function() {\n var newLines = this._splitTextIntoLines(this.text);\n this.textLines = newLines.lines;\n this._textLines = newLines.graphemeLines;\n this._unwrappedTextLines = newLines._unwrappedLines;\n this._text = newLines.graphemeText;\n return newLines;\n },\n\n /**\n * Initialize or update text dimensions.\n * Updates this.width and this.height with the proper values.\n * Does not return dimensions.\n */\n initDimensions: function() {\n if (this.__skipDimension) {\n return;\n }\n this._splitText();\n this._clearCache();\n if (this.path) {\n this.width = this.path.width;\n this.height = this.path.height;\n }\n else {\n this.width = this.calcTextWidth() || this.cursorWidth || this.MIN_TEXT_WIDTH;\n this.height = this.calcTextHeight();\n }\n if (this.textAlign.indexOf('justify') !== -1) {\n // once text is measured we need to make space fatter to make justified text.\n this.enlargeSpaces();\n }\n this.saveState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * Enlarge space boxes and shift the others\n */\n enlargeSpaces: function() {\n var diffSpace, currentLineWidth, numberOfSpaces, accumulatedSpace, line, charBound, spaces;\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n if (this.textAlign !== 'justify' && (i === len - 1 || this.isEndOfWrapping(i))) {\n continue;\n }\n accumulatedSpace = 0;\n line = this._textLines[i];\n currentLineWidth = this.getLineWidth(i);\n if (currentLineWidth < this.width && (spaces = this.textLines[i].match(this._reSpacesAndTabs))) {\n numberOfSpaces = spaces.length;\n diffSpace = (this.width - currentLineWidth) / numberOfSpaces;\n for (var j = 0, jlen = line.length; j <= jlen; j++) {\n charBound = this.__charBounds[i][j];\n if (this._reSpaceAndTab.test(line[j])) {\n charBound.width += diffSpace;\n charBound.kernedWidth += diffSpace;\n charBound.left += accumulatedSpace;\n accumulatedSpace += diffSpace;\n }\n else {\n charBound.left += accumulatedSpace;\n }\n }\n }\n }\n },\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @return {Boolean}\n */\n isEndOfWrapping: function(lineIndex) {\n return lineIndex === this._textLines.length - 1;\n },\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * It return always for text and Itext.\n * @return Number\n */\n missingNewlineOffset: function() {\n return 1;\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} String representation of text object\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Return the dimension and the zoom level needed to create a cache canvas\n * big enough to host the object to be cached.\n * @private\n * @param {Object} dim.x width of object to be cached\n * @param {Object} dim.y height of object to be cached\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _getCacheCanvasDimensions: function() {\n var dims = this.callSuper('_getCacheCanvasDimensions');\n var fontSize = this.fontSize;\n dims.width += fontSize * dims.zoomX;\n dims.height += fontSize * dims.zoomY;\n return dims;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n this._setTextStyles(ctx);\n this._renderTextLinesBackground(ctx);\n this._renderTextDecoration(ctx, 'underline');\n this._renderText(ctx);\n this._renderTextDecoration(ctx, 'overline');\n this._renderTextDecoration(ctx, 'linethrough');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderText: function(ctx) {\n if (this.paintFirst === 'stroke') {\n this._renderTextStroke(ctx);\n this._renderTextFill(ctx);\n }\n else {\n this._renderTextFill(ctx);\n this._renderTextStroke(ctx);\n }\n },\n\n /**\n * Set the font parameter of the context with the object properties or with charStyle\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [charStyle] object with font style properties\n * @param {String} [charStyle.fontFamily] Font Family\n * @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )\n * @param {String} [charStyle.fontWeight] Font weight\n * @param {String} [charStyle.fontStyle] Font style (italic|normal)\n */\n _setTextStyles: function(ctx, charStyle, forMeasuring) {\n ctx.textBaseline = 'alphabetic';\n ctx.font = this._getFontDeclaration(charStyle, forMeasuring);\n },\n\n /**\n * calculate and return the text Width measuring each line.\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @return {Number} Maximum width of fabric.Text object\n */\n calcTextWidth: function() {\n var maxWidth = this.getLineWidth(0);\n\n for (var i = 1, len = this._textLines.length; i < len; i++) {\n var currentLineWidth = this.getLineWidth(i);\n if (currentLineWidth > maxWidth) {\n maxWidth = currentLineWidth;\n }\n }\n return maxWidth;\n },\n\n /**\n * @private\n * @param {String} method Method name (\"fillText\" or \"strokeText\")\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {String} line Text to render\n * @param {Number} left Left position of text\n * @param {Number} top Top position of text\n * @param {Number} lineIndex Index of a line in a text\n */\n _renderTextLine: function(method, ctx, line, left, top, lineIndex) {\n this._renderChars(method, ctx, line, left, top, lineIndex);\n },\n\n /**\n * Renders the text background for lines, taking care of style\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextLinesBackground: function(ctx) {\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor')) {\n return;\n }\n var heightOfLine,\n lineLeftOffset, originalFill = ctx.fillStyle,\n line, lastColor,\n leftOffset = this._getLeftOffset(),\n lineTopOffset = this._getTopOffset(),\n boxStart = 0, boxWidth = 0, charBox, currentColor, path = this.path;\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n heightOfLine = this.getHeightOfLine(i);\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor', i)) {\n lineTopOffset += heightOfLine;\n continue;\n }\n line = this._textLines[i];\n lineLeftOffset = this._getLineLeftOffset(i);\n boxWidth = 0;\n boxStart = 0;\n lastColor = this.getValueOfPropertyAt(i, 0, 'textBackgroundColor');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentColor = this.getValueOfPropertyAt(i, j, 'textBackgroundColor');\n if (path) {\n ctx.save();\n ctx.translate(charBox.renderLeft, charBox.renderTop);\n ctx.rotate(charBox.angle);\n ctx.fillStyle = currentColor;\n currentColor && ctx.fillRect(\n -charBox.width / 2,\n -heightOfLine / this.lineHeight * (1 - this._fontSizeFraction),\n charBox.width,\n heightOfLine / this.lineHeight\n );\n ctx.restore();\n }\n else if (currentColor !== lastColor) {\n ctx.fillStyle = lastColor;\n lastColor && ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n lineTopOffset,\n boxWidth,\n heightOfLine / this.lineHeight\n );\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastColor = currentColor;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n if (currentColor && !path) {\n ctx.fillStyle = currentColor;\n ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n lineTopOffset,\n boxWidth,\n heightOfLine / this.lineHeight\n );\n }\n lineTopOffset += heightOfLine;\n }\n ctx.fillStyle = originalFill;\n // if there is text background color no\n // other shadows should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * @private\n * @param {Object} decl style declaration for cache\n * @param {String} decl.fontFamily fontFamily\n * @param {String} decl.fontStyle fontStyle\n * @param {String} decl.fontWeight fontWeight\n * @return {Object} reference to cache\n */\n getFontCache: function(decl) {\n var fontFamily = decl.fontFamily.toLowerCase();\n if (!fabric.charWidthsCache[fontFamily]) {\n fabric.charWidthsCache[fontFamily] = { };\n }\n var cache = fabric.charWidthsCache[fontFamily],\n cacheProp = decl.fontStyle.toLowerCase() + '_' + (decl.fontWeight + '').toLowerCase();\n if (!cache[cacheProp]) {\n cache[cacheProp] = { };\n }\n return cache[cacheProp];\n },\n\n /**\n * measure and return the width of a single character.\n * possibly overridden to accommodate different measure logic or\n * to hook some external lib for character measurement\n * @private\n * @param {String} _char, char to be measured\n * @param {Object} charStyle style of char to be measured\n * @param {String} [previousChar] previous char\n * @param {Object} [prevCharStyle] style of previous char\n */\n _measureChar: function(_char, charStyle, previousChar, prevCharStyle) {\n // first i try to return from cache\n var fontCache = this.getFontCache(charStyle), fontDeclaration = this._getFontDeclaration(charStyle),\n previousFontDeclaration = this._getFontDeclaration(prevCharStyle), couple = previousChar + _char,\n stylesAreEqual = fontDeclaration === previousFontDeclaration, width, coupleWidth, previousWidth,\n fontMultiplier = charStyle.fontSize / this.CACHE_FONT_SIZE, kernedWidth;\n\n if (previousChar && fontCache[previousChar] !== undefined) {\n previousWidth = fontCache[previousChar];\n }\n if (fontCache[_char] !== undefined) {\n kernedWidth = width = fontCache[_char];\n }\n if (stylesAreEqual && fontCache[couple] !== undefined) {\n coupleWidth = fontCache[couple];\n kernedWidth = coupleWidth - previousWidth;\n }\n if (width === undefined || previousWidth === undefined || coupleWidth === undefined) {\n var ctx = this.getMeasuringContext();\n // send a TRUE to specify measuring font size CACHE_FONT_SIZE\n this._setTextStyles(ctx, charStyle, true);\n }\n if (width === undefined) {\n kernedWidth = width = ctx.measureText(_char).width;\n fontCache[_char] = width;\n }\n if (previousWidth === undefined && stylesAreEqual && previousChar) {\n previousWidth = ctx.measureText(previousChar).width;\n fontCache[previousChar] = previousWidth;\n }\n if (stylesAreEqual && coupleWidth === undefined) {\n // we can measure the kerning couple and subtract the width of the previous character\n coupleWidth = ctx.measureText(couple).width;\n fontCache[couple] = coupleWidth;\n kernedWidth = coupleWidth - previousWidth;\n }\n return { width: width * fontMultiplier, kernedWidth: kernedWidth * fontMultiplier };\n },\n\n /**\n * Computes height of character at given position\n * @param {Number} line the line index number\n * @param {Number} _char the character index number\n * @return {Number} fontSize of the character\n */\n getHeightOfChar: function(line, _char) {\n return this.getValueOfPropertyAt(line, _char, 'fontSize');\n },\n\n /**\n * measure a text line measuring all characters.\n * @param {Number} lineIndex line number\n * @return {Number} Line width\n */\n measureLine: function(lineIndex) {\n var lineInfo = this._measureLine(lineIndex);\n if (this.charSpacing !== 0) {\n lineInfo.width -= this._getWidthOfCharSpacing();\n }\n if (lineInfo.width < 0) {\n lineInfo.width = 0;\n }\n return lineInfo;\n },\n\n /**\n * measure every grapheme of a line, populating __charBounds\n * @param {Number} lineIndex\n * @return {Object} object.width total width of characters\n * @return {Object} object.widthOfSpaces length of chars that match this._reSpacesAndTabs\n */\n _measureLine: function(lineIndex) {\n var width = 0, i, grapheme, line = this._textLines[lineIndex], prevGrapheme,\n graphemeInfo, numOfSpaces = 0, lineBounds = new Array(line.length),\n positionInPath = 0, startingPoint, totalPathLength, path = this.path;\n\n this.__charBounds[lineIndex] = lineBounds;\n if (path) {\n startingPoint = fabric.util.getPointOnPath(path.path, 0, path.segmentsInfo);\n totalPathLength = path.segmentsInfo[path.segmentsInfo.length - 1].length;\n startingPoint.x += path.pathOffset.x;\n startingPoint.y += path.pathOffset.y;\n }\n for (i = 0; i < line.length; i++) {\n grapheme = line[i];\n graphemeInfo = this._getGraphemeBox(grapheme, lineIndex, i, prevGrapheme);\n if (path) {\n if (positionInPath > totalPathLength) {\n positionInPath %= totalPathLength;\n }\n // it would probably much fater to send all the grapheme position for a line\n // and calculate path position/angle at once.\n this._setGraphemeOnPath(positionInPath, graphemeInfo, startingPoint);\n }\n lineBounds[i] = graphemeInfo;\n width += graphemeInfo.kernedWidth;\n positionInPath += graphemeInfo.kernedWidth;\n prevGrapheme = grapheme;\n }\n // this latest bound box represent the last character of the line\n // to simplify cursor handling in interactive mode.\n lineBounds[i] = {\n left: graphemeInfo ? graphemeInfo.left + graphemeInfo.width : 0,\n width: 0,\n kernedWidth: 0,\n height: this.fontSize\n };\n return { width: width, numOfSpaces: numOfSpaces };\n },\n\n /**\n * Calculate the angle and the left,top position of the char that follow a path.\n * It appends it to graphemeInfo to be reused later at rendering\n * @private\n * @param {Number} positionInPath to be measured\n * @param {Object} graphemeInfo current grapheme box information\n * @param {Object} startingPoint position of the point\n */\n _setGraphemeOnPath: function(positionInPath, graphemeInfo, startingPoint) {\n var centerPosition = positionInPath + graphemeInfo.kernedWidth / 2,\n path = this.path;\n\n // we are at currentPositionOnPath. we want to know what point on the path is.\n var info = fabric.util.getPointOnPath(path.path, centerPosition, path.segmentsInfo);\n graphemeInfo.renderLeft = info.x - startingPoint.x;\n graphemeInfo.renderTop = info.y - startingPoint.y;\n graphemeInfo.angle = info.angle;\n },\n\n /**\n * Measure and return the info of a single grapheme.\n * needs the the info of previous graphemes already filled\n * @private\n * @param {String} grapheme to be measured\n * @param {Number} lineIndex index of the line where the char is\n * @param {Number} charIndex position in the line\n * @param {String} [prevGrapheme] character preceding the one to be measured\n */\n _getGraphemeBox: function(grapheme, lineIndex, charIndex, prevGrapheme, skipLeft) {\n var style = this.getCompleteStyleDeclaration(lineIndex, charIndex),\n prevStyle = prevGrapheme ? this.getCompleteStyleDeclaration(lineIndex, charIndex - 1) : { },\n info = this._measureChar(grapheme, style, prevGrapheme, prevStyle),\n kernedWidth = info.kernedWidth,\n width = info.width, charSpacing;\n\n if (this.charSpacing !== 0) {\n charSpacing = this._getWidthOfCharSpacing();\n width += charSpacing;\n kernedWidth += charSpacing;\n }\n\n var box = {\n width: width,\n left: 0,\n height: style.fontSize,\n kernedWidth: kernedWidth,\n deltaY: style.deltaY,\n };\n if (charIndex > 0 && !skipLeft) {\n var previousBox = this.__charBounds[lineIndex][charIndex - 1];\n box.left = previousBox.left + previousBox.width + info.kernedWidth - info.width;\n }\n return box;\n },\n\n /**\n * Calculate height of line at 'lineIndex'\n * @param {Number} lineIndex index of line to calculate\n * @return {Number}\n */\n getHeightOfLine: function(lineIndex) {\n if (this.__lineHeights[lineIndex]) {\n return this.__lineHeights[lineIndex];\n }\n\n var line = this._textLines[lineIndex],\n // char 0 is measured before the line cycle because it nneds to char\n // emptylines\n maxHeight = this.getHeightOfChar(lineIndex, 0);\n for (var i = 1, len = line.length; i < len; i++) {\n maxHeight = Math.max(this.getHeightOfChar(lineIndex, i), maxHeight);\n }\n\n return this.__lineHeights[lineIndex] = maxHeight * this.lineHeight * this._fontSizeMult;\n },\n\n /**\n * Calculate text box height\n */\n calcTextHeight: function() {\n var lineHeight, height = 0;\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n lineHeight = this.getHeightOfLine(i);\n height += (i === len - 1 ? lineHeight / this.lineHeight : lineHeight);\n }\n return height;\n },\n\n /**\n * @private\n * @return {Number} Left offset\n */\n _getLeftOffset: function() {\n return -this.width / 2;\n },\n\n /**\n * @private\n * @return {Number} Top offset\n */\n _getTopOffset: function() {\n return -this.height / 2;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {String} method Method name (\"fillText\" or \"strokeText\")\n */\n _renderTextCommon: function(ctx, method) {\n ctx.save();\n var lineHeights = 0, left = this._getLeftOffset(), top = this._getTopOffset();\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n var heightOfLine = this.getHeightOfLine(i),\n maxHeight = heightOfLine / this.lineHeight,\n leftOffset = this._getLineLeftOffset(i);\n this._renderTextLine(\n method,\n ctx,\n this._textLines[i],\n left + leftOffset,\n top + lineHeights + maxHeight,\n i\n );\n lineHeights += heightOfLine;\n }\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextFill: function(ctx) {\n if (!this.fill && !this.styleHas('fill')) {\n return;\n }\n\n this._renderTextCommon(ctx, 'fillText');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextStroke: function(ctx) {\n if ((!this.stroke || this.strokeWidth === 0) && this.isEmptyStyles()) {\n return;\n }\n\n if (this.shadow && !this.shadow.affectStroke) {\n this._removeShadow(ctx);\n }\n\n ctx.save();\n this._setLineDash(ctx, this.strokeDashArray);\n ctx.beginPath();\n this._renderTextCommon(ctx, 'strokeText');\n ctx.closePath();\n ctx.restore();\n },\n\n /**\n * @private\n * @param {String} method fillText or strokeText.\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Array} line Content of the line, splitted in an array by grapheme\n * @param {Number} left\n * @param {Number} top\n * @param {Number} lineIndex\n */\n _renderChars: function(method, ctx, line, left, top, lineIndex) {\n // set proper line offset\n var lineHeight = this.getHeightOfLine(lineIndex),\n isJustify = this.textAlign.indexOf('justify') !== -1,\n actualStyle,\n nextStyle,\n charsToRender = '',\n charBox,\n boxWidth = 0,\n timeToRender,\n path = this.path,\n shortCut = !isJustify && this.charSpacing === 0 && this.isEmptyStyles(lineIndex) && !path;\n\n ctx.save();\n top -= lineHeight * this._fontSizeFraction / this.lineHeight;\n if (shortCut) {\n // render all the line in one pass without checking\n this._renderChar(method, ctx, lineIndex, 0, line.join(''), left, top, lineHeight);\n ctx.restore();\n return;\n }\n for (var i = 0, len = line.length - 1; i <= len; i++) {\n timeToRender = i === len || this.charSpacing || path;\n charsToRender += line[i];\n charBox = this.__charBounds[lineIndex][i];\n if (boxWidth === 0) {\n left += charBox.kernedWidth - charBox.width;\n boxWidth += charBox.width;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n if (isJustify && !timeToRender) {\n if (this._reSpaceAndTab.test(line[i])) {\n timeToRender = true;\n }\n }\n if (!timeToRender) {\n // if we have charSpacing, we render char by char\n actualStyle = actualStyle || this.getCompleteStyleDeclaration(lineIndex, i);\n nextStyle = this.getCompleteStyleDeclaration(lineIndex, i + 1);\n timeToRender = this._hasStyleChanged(actualStyle, nextStyle);\n }\n if (timeToRender) {\n if (path) {\n ctx.save();\n ctx.translate(charBox.renderLeft, charBox.renderTop);\n ctx.rotate(charBox.angle);\n this._renderChar(method, ctx, lineIndex, i, charsToRender, -boxWidth / 2, 0, lineHeight);\n ctx.restore();\n }\n else {\n this._renderChar(method, ctx, lineIndex, i, charsToRender, left, top, lineHeight);\n }\n charsToRender = '';\n actualStyle = nextStyle;\n left += boxWidth;\n boxWidth = 0;\n }\n }\n ctx.restore();\n },\n\n /**\n * This function try to patch the missing gradientTransform on canvas gradients.\n * transforming a context to transform the gradient, is going to transform the stroke too.\n * we want to transform the gradient but not the stroke operation, so we create\n * a transformed gradient on a pattern and then we use the pattern instead of the gradient.\n * this method has drawbacks: is slow, is in low resolution, needs a patch for when the size\n * is limited.\n * @private\n * @param {fabric.Gradient} filler a fabric gradient instance\n * @return {CanvasPattern} a pattern to use as fill/stroke style\n */\n _applyPatternGradientTransformText: function(filler) {\n var pCanvas = fabric.util.createCanvasElement(), pCtx,\n // TODO: verify compatibility with strokeUniform\n width = this.width + this.strokeWidth, height = this.height + this.strokeWidth;\n pCanvas.width = width;\n pCanvas.height = height;\n pCtx = pCanvas.getContext('2d');\n pCtx.beginPath(); pCtx.moveTo(0, 0); pCtx.lineTo(width, 0); pCtx.lineTo(width, height);\n pCtx.lineTo(0, height); pCtx.closePath();\n pCtx.translate(width / 2, height / 2);\n pCtx.fillStyle = filler.toLive(pCtx);\n this._applyPatternGradientTransform(pCtx, filler);\n pCtx.fill();\n return pCtx.createPattern(pCanvas, 'no-repeat');\n },\n\n handleFiller: function(ctx, property, filler) {\n var offsetX, offsetY;\n if (filler.toLive) {\n if (filler.gradientUnits === 'percentage' || filler.gradientTrasnform || filler.patternTransform) {\n // need to transform gradient in a pattern.\n // this is a slow process. If you are hitting this codepath, and the object\n // is not using caching, you should consider switching it on.\n // we need a canvas as big as the current object caching canvas.\n offsetX = -this.width / 2;\n offsetY = -this.height / 2;\n ctx.translate(offsetX, offsetY);\n ctx[property] = this._applyPatternGradientTransformText(filler);\n return { offsetX: offsetX, offsetY: offsetY };\n }\n else {\n // is a simple gradient or pattern\n ctx[property] = filler.toLive(ctx, this);\n return this._applyPatternGradientTransform(ctx, filler);\n }\n }\n else {\n // is a color\n ctx[property] = filler;\n }\n return { offsetX: 0, offsetY: 0 };\n },\n\n _setStrokeStyles: function(ctx, decl) {\n ctx.lineWidth = decl.strokeWidth;\n ctx.lineCap = this.strokeLineCap;\n ctx.lineDashOffset = this.strokeDashOffset;\n ctx.lineJoin = this.strokeLineJoin;\n ctx.miterLimit = this.strokeMiterLimit;\n return this.handleFiller(ctx, 'strokeStyle', decl.stroke);\n },\n\n _setFillStyles: function(ctx, decl) {\n return this.handleFiller(ctx, 'fillStyle', decl.fill);\n },\n\n /**\n * @private\n * @param {String} method\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {String} _char\n * @param {Number} left Left coordinate\n * @param {Number} top Top coordinate\n * @param {Number} lineHeight Height of the line\n */\n _renderChar: function(method, ctx, lineIndex, charIndex, _char, left, top) {\n var decl = this._getStyleDeclaration(lineIndex, charIndex),\n fullDecl = this.getCompleteStyleDeclaration(lineIndex, charIndex),\n shouldFill = method === 'fillText' && fullDecl.fill,\n shouldStroke = method === 'strokeText' && fullDecl.stroke && fullDecl.strokeWidth,\n fillOffsets, strokeOffsets;\n\n if (!shouldStroke && !shouldFill) {\n return;\n }\n ctx.save();\n\n shouldFill && (fillOffsets = this._setFillStyles(ctx, fullDecl));\n shouldStroke && (strokeOffsets = this._setStrokeStyles(ctx, fullDecl));\n\n ctx.font = this._getFontDeclaration(fullDecl);\n\n\n if (decl && decl.textBackgroundColor) {\n this._removeShadow(ctx);\n }\n if (decl && decl.deltaY) {\n top += decl.deltaY;\n }\n shouldFill && ctx.fillText(_char, left - fillOffsets.offsetX, top - fillOffsets.offsetY);\n shouldStroke && ctx.strokeText(_char, left - strokeOffsets.offsetX, top - strokeOffsets.offsetY);\n ctx.restore();\n },\n\n /**\n * Turns the character into a 'superior figure' (i.e. 'superscript')\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n setSuperscript: function(start, end) {\n return this._setScript(start, end, this.superscript);\n },\n\n /**\n * Turns the character into an 'inferior figure' (i.e. 'subscript')\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n setSubscript: function(start, end) {\n return this._setScript(start, end, this.subscript);\n },\n\n /**\n * Applies 'schema' at given position\n * @private\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @param {Number} schema\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n _setScript: function(start, end, schema) {\n var loc = this.get2DCursorLocation(start, true),\n fontSize = this.getValueOfPropertyAt(loc.lineIndex, loc.charIndex, 'fontSize'),\n dy = this.getValueOfPropertyAt(loc.lineIndex, loc.charIndex, 'deltaY'),\n style = { fontSize: fontSize * schema.size, deltaY: dy + fontSize * schema.baseline };\n this.setSelectionStyles(style, start, end);\n return this;\n },\n\n /**\n * @private\n * @param {Object} prevStyle\n * @param {Object} thisStyle\n */\n _hasStyleChanged: function(prevStyle, thisStyle) {\n return prevStyle.fill !== thisStyle.fill ||\n prevStyle.stroke !== thisStyle.stroke ||\n prevStyle.strokeWidth !== thisStyle.strokeWidth ||\n prevStyle.fontSize !== thisStyle.fontSize ||\n prevStyle.fontFamily !== thisStyle.fontFamily ||\n prevStyle.fontWeight !== thisStyle.fontWeight ||\n prevStyle.fontStyle !== thisStyle.fontStyle ||\n prevStyle.deltaY !== thisStyle.deltaY;\n },\n\n /**\n * @private\n * @param {Object} prevStyle\n * @param {Object} thisStyle\n */\n _hasStyleChangedForSvg: function(prevStyle, thisStyle) {\n return this._hasStyleChanged(prevStyle, thisStyle) ||\n prevStyle.overline !== thisStyle.overline ||\n prevStyle.underline !== thisStyle.underline ||\n prevStyle.linethrough !== thisStyle.linethrough;\n },\n\n /**\n * @private\n * @param {Number} lineIndex index text line\n * @return {Number} Line left offset\n */\n _getLineLeftOffset: function(lineIndex) {\n var lineWidth = this.getLineWidth(lineIndex);\n if (this.textAlign === 'center') {\n return (this.width - lineWidth) / 2;\n }\n if (this.textAlign === 'right') {\n return this.width - lineWidth;\n }\n if (this.textAlign === 'justify-center' && this.isEndOfWrapping(lineIndex)) {\n return (this.width - lineWidth) / 2;\n }\n if (this.textAlign === 'justify-right' && this.isEndOfWrapping(lineIndex)) {\n return this.width - lineWidth;\n }\n return 0;\n },\n\n /**\n * @private\n */\n _clearCache: function() {\n this.__lineWidths = [];\n this.__lineHeights = [];\n this.__charBounds = [];\n },\n\n /**\n * @private\n */\n _shouldClearDimensionCache: function() {\n var shouldClear = this._forceClearCache;\n shouldClear || (shouldClear = this.hasStateChanged('_dimensionAffectingProps'));\n if (shouldClear) {\n this.dirty = true;\n this._forceClearCache = false;\n }\n return shouldClear;\n },\n\n /**\n * Measure a single line given its index. Used to calculate the initial\n * text bounding box. The values are calculated and stored in __lineWidths cache.\n * @private\n * @param {Number} lineIndex line number\n * @return {Number} Line width\n */\n getLineWidth: function(lineIndex) {\n if (this.__lineWidths[lineIndex]) {\n return this.__lineWidths[lineIndex];\n }\n\n var width, line = this._textLines[lineIndex], lineInfo;\n\n if (line === '') {\n width = 0;\n }\n else {\n lineInfo = this.measureLine(lineIndex);\n width = lineInfo.width;\n }\n this.__lineWidths[lineIndex] = width;\n return width;\n },\n\n _getWidthOfCharSpacing: function() {\n if (this.charSpacing !== 0) {\n return this.fontSize * this.charSpacing / 1000;\n }\n return 0;\n },\n\n /**\n * Retrieves the value of property at given character position\n * @param {Number} lineIndex the line number\n * @param {Number} charIndex the character number\n * @param {String} property the property name\n * @returns the value of 'property'\n */\n getValueOfPropertyAt: function(lineIndex, charIndex, property) {\n var charStyle = this._getStyleDeclaration(lineIndex, charIndex);\n if (charStyle && typeof charStyle[property] !== 'undefined') {\n return charStyle[property];\n }\n return this[property];\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextDecoration: function(ctx, type) {\n if (!this[type] && !this.styleHas(type)) {\n return;\n }\n var heightOfLine, size, _size,\n lineLeftOffset, dy, _dy,\n line, lastDecoration,\n leftOffset = this._getLeftOffset(),\n topOffset = this._getTopOffset(), top,\n boxStart, boxWidth, charBox, currentDecoration,\n maxHeight, currentFill, lastFill, path = this.path,\n charSpacing = this._getWidthOfCharSpacing();\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n heightOfLine = this.getHeightOfLine(i);\n if (!this[type] && !this.styleHas(type, i)) {\n topOffset += heightOfLine;\n continue;\n }\n line = this._textLines[i];\n maxHeight = heightOfLine / this.lineHeight;\n lineLeftOffset = this._getLineLeftOffset(i);\n boxStart = 0;\n boxWidth = 0;\n lastDecoration = this.getValueOfPropertyAt(i, 0, type);\n lastFill = this.getValueOfPropertyAt(i, 0, 'fill');\n top = topOffset + maxHeight * (1 - this._fontSizeFraction);\n size = this.getHeightOfChar(i, 0);\n dy = this.getValueOfPropertyAt(i, 0, 'deltaY');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentDecoration = this.getValueOfPropertyAt(i, j, type);\n currentFill = this.getValueOfPropertyAt(i, j, 'fill');\n _size = this.getHeightOfChar(i, j);\n _dy = this.getValueOfPropertyAt(i, j, 'deltaY');\n if (path && currentDecoration && currentFill) {\n ctx.save();\n ctx.fillStyle = lastFill;\n ctx.translate(charBox.renderLeft, charBox.renderTop);\n ctx.rotate(charBox.angle);\n ctx.fillRect(\n -charBox.kernedWidth / 2,\n this.offsets[type] * _size + _dy,\n charBox.kernedWidth,\n this.fontSize / 15\n );\n ctx.restore();\n }\n else if (\n (currentDecoration !== lastDecoration || currentFill !== lastFill || _size !== size || _dy !== dy)\n && boxWidth > 0\n ) {\n lastDecoration && lastFill &&\n ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n top + this.offsets[type] * size + dy,\n boxWidth,\n this.fontSize / 15\n );\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastDecoration = currentDecoration;\n lastFill = currentFill;\n size = _size;\n dy = _dy;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n ctx.fillStyle = currentFill;\n currentDecoration && currentFill && ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n top + this.offsets[type] * size + dy,\n boxWidth - charSpacing,\n this.fontSize / 15\n );\n topOffset += heightOfLine;\n }\n // if there is text background color no\n // other shadows should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * return font declaration string for canvas context\n * @param {Object} [styleObject] object\n * @returns {String} font declaration formatted for canvas context.\n */\n _getFontDeclaration: function(styleObject, forMeasuring) {\n var style = styleObject || this, family = this.fontFamily,\n fontIsGeneric = fabric.Text.genericFonts.indexOf(family.toLowerCase()) > -1;\n var fontFamily = family === undefined ||\n family.indexOf('\\'') > -1 || family.indexOf(',') > -1 ||\n family.indexOf('\"') > -1 || fontIsGeneric\n ? style.fontFamily : '\"' + style.fontFamily + '\"';\n return [\n // node-canvas needs \"weight style\", while browsers need \"style weight\"\n // verify if this can be fixed in JSDOM\n (fabric.isLikelyNode ? style.fontWeight : style.fontStyle),\n (fabric.isLikelyNode ? style.fontStyle : style.fontWeight),\n forMeasuring ? this.CACHE_FONT_SIZE + 'px' : style.fontSize + 'px',\n fontFamily\n ].join(' ');\n },\n\n /**\n * Renders text instance on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n // do not render if object is not visible\n if (!this.visible) {\n return;\n }\n if (this.canvas && this.canvas.skipOffscreen && !this.group && !this.isOnScreen()) {\n return;\n }\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n }\n this.callSuper('render', ctx);\n },\n\n /**\n * Returns the text as an array of lines.\n * @param {String} text text to split\n * @returns {Array} Lines in the text\n */\n _splitTextIntoLines: function(text) {\n var lines = text.split(this._reNewline),\n newLines = new Array(lines.length),\n newLine = ['\\n'],\n newText = [];\n for (var i = 0; i < lines.length; i++) {\n newLines[i] = fabric.util.string.graphemeSplit(lines[i]);\n newText = newText.concat(newLines[i], newLine);\n }\n newText.pop();\n return { _unwrappedLines: newLines, lines: lines, graphemeText: newText, graphemeLines: newLines };\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var additionalProperties = [\n 'text',\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontStyle',\n 'lineHeight',\n 'underline',\n 'overline',\n 'linethrough',\n 'textAlign',\n 'textBackgroundColor',\n 'charSpacing',\n ].concat(propertiesToInclude);\n var obj = this.callSuper('toObject', additionalProperties);\n obj.styles = clone(this.styles, true);\n return obj;\n },\n\n /**\n * Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) `set` does not update position of object's borders/controls. If you need to update those, call `setCoords()`.\n * @param {String|Object} key Property name or object (if object, iterate over the object properties)\n * @param {Object|Function} value Property value (if function, the value is passed into it and its return value is used as a new one)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n set: function(key, value) {\n this.callSuper('set', key, value);\n var needsDims = false;\n var isAddingPath = false;\n if (typeof key === 'object') {\n for (var _key in key) {\n if (_key === 'path') {\n this.setPathInfo();\n }\n needsDims = needsDims || this._dimensionAffectingProps.indexOf(_key) !== -1;\n isAddingPath = isAddingPath || _key === 'path';\n }\n }\n else {\n needsDims = this._dimensionAffectingProps.indexOf(key) !== -1;\n isAddingPath = key === 'path';\n }\n if (isAddingPath) {\n this.setPathInfo();\n }\n if (needsDims) {\n this.initDimensions();\n this.setCoords();\n }\n return this;\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity\n */\n complexity: function() {\n return 1;\n }\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Text.fromElement})\n * @static\n * @memberOf fabric.Text\n * @see: http://www.w3.org/TR/SVG/text.html#TextElement\n */\n fabric.Text.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(\n 'x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor'.split(' '));\n\n /**\n * Default SVG font size\n * @static\n * @memberOf fabric.Text\n */\n fabric.Text.DEFAULT_SVG_FONT_SIZE = 16;\n\n /**\n * Returns fabric.Text instance from an SVG element (not yet implemented)\n * @static\n * @memberOf fabric.Text\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Text.fromElement = function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Text.ATTRIBUTE_NAMES),\n parsedAnchor = parsedAttributes.textAnchor || 'left';\n options = fabric.util.object.extend((options ? clone(options) : { }), parsedAttributes);\n\n options.top = options.top || 0;\n options.left = options.left || 0;\n if (parsedAttributes.textDecoration) {\n var textDecoration = parsedAttributes.textDecoration;\n if (textDecoration.indexOf('underline') !== -1) {\n options.underline = true;\n }\n if (textDecoration.indexOf('overline') !== -1) {\n options.overline = true;\n }\n if (textDecoration.indexOf('line-through') !== -1) {\n options.linethrough = true;\n }\n delete options.textDecoration;\n }\n if ('dx' in parsedAttributes) {\n options.left += parsedAttributes.dx;\n }\n if ('dy' in parsedAttributes) {\n options.top += parsedAttributes.dy;\n }\n if (!('fontSize' in options)) {\n options.fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;\n }\n\n var textContent = '';\n\n // The XML is not properly parsed in IE9 so a workaround to get\n // textContent is through firstChild.data. Another workaround would be\n // to convert XML loaded from a file to be converted using DOMParser (same way loadSVGFromString() does)\n if (!('textContent' in element)) {\n if ('firstChild' in element && element.firstChild !== null) {\n if ('data' in element.firstChild && element.firstChild.data !== null) {\n textContent = element.firstChild.data;\n }\n }\n }\n else {\n textContent = element.textContent;\n }\n\n textContent = textContent.replace(/^\\s+|\\s+$|\\n+/g, '').replace(/\\s+/g, ' ');\n var originalStrokeWidth = options.strokeWidth;\n options.strokeWidth = 0;\n\n var text = new fabric.Text(textContent, options),\n textHeightScaleFactor = text.getScaledHeight() / text.height,\n lineHeightDiff = (text.height + text.strokeWidth) * text.lineHeight - text.height,\n scaledDiff = lineHeightDiff * textHeightScaleFactor,\n textHeight = text.getScaledHeight() + scaledDiff,\n offX = 0;\n /*\n Adjust positioning:\n x/y attributes in SVG correspond to the bottom-left corner of text bounding box\n fabric output by default at top, left.\n */\n if (parsedAnchor === 'center') {\n offX = text.getScaledWidth() / 2;\n }\n if (parsedAnchor === 'right') {\n offX = text.getScaledWidth();\n }\n text.set({\n left: text.left - offX,\n top: text.top - (textHeight - text.fontSize * (0.07 + text._fontSizeFraction)) / text.lineHeight,\n strokeWidth: typeof originalStrokeWidth !== 'undefined' ? originalStrokeWidth : 1,\n });\n callback(text);\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Text instance from an object representation\n * @static\n * @memberOf fabric.Text\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Text instance is created\n */\n fabric.Text.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Text', object, callback, 'text');\n };\n\n fabric.Text.genericFonts = ['sans-serif', 'serif', 'cursive', 'fantasy', 'monospace'];\n\n fabric.util.createAccessors && fabric.util.createAccessors(fabric.Text);\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n fabric.util.object.extend(fabric.Text.prototype, /** @lends fabric.Text.prototype */ {\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles: function(lineIndex) {\n if (!this.styles) {\n return true;\n }\n if (typeof lineIndex !== 'undefined' && !this.styles[lineIndex]) {\n return true;\n }\n var obj = typeof lineIndex === 'undefined' ? this.styles : { line: this.styles[lineIndex] };\n for (var p1 in obj) {\n for (var p2 in obj[p1]) {\n // eslint-disable-next-line no-unused-vars\n for (var p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n return true;\n },\n\n /**\n * Returns true if object has a style property or has it ina specified line\n * This function is used to detect if a text will use a particular property or not.\n * @param {String} property to check for\n * @param {Number} lineIndex to check the style on\n * @return {Boolean}\n */\n styleHas: function(property, lineIndex) {\n if (!this.styles || !property || property === '') {\n return false;\n }\n if (typeof lineIndex !== 'undefined' && !this.styles[lineIndex]) {\n return false;\n }\n var obj = typeof lineIndex === 'undefined' ? this.styles : { 0: this.styles[lineIndex] };\n // eslint-disable-next-line\n for (var p1 in obj) {\n // eslint-disable-next-line\n for (var p2 in obj[p1]) {\n if (typeof obj[p1][p2][property] !== 'undefined') {\n return true;\n }\n }\n }\n return false;\n },\n\n /**\n * Check if characters in a text have a value for a property\n * whose value matches the textbox's value for that property. If so,\n * the character-level property is deleted. If the character\n * has no other properties, then it is also deleted. Finally,\n * if the line containing that character has no other characters\n * then it also is deleted.\n *\n * @param {string} property The property to compare between characters and text.\n */\n cleanStyle: function(property) {\n if (!this.styles || !property || property === '') {\n return false;\n }\n var obj = this.styles, stylesCount = 0, letterCount, stylePropertyValue,\n allStyleObjectPropertiesMatch = true, graphemeCount = 0, styleObject;\n // eslint-disable-next-line\n for (var p1 in obj) {\n letterCount = 0;\n // eslint-disable-next-line\n for (var p2 in obj[p1]) {\n var styleObject = obj[p1][p2],\n stylePropertyHasBeenSet = styleObject.hasOwnProperty(property);\n\n stylesCount++;\n\n if (stylePropertyHasBeenSet) {\n if (!stylePropertyValue) {\n stylePropertyValue = styleObject[property];\n }\n else if (styleObject[property] !== stylePropertyValue) {\n allStyleObjectPropertiesMatch = false;\n }\n\n if (styleObject[property] === this[property]) {\n delete styleObject[property];\n }\n }\n else {\n allStyleObjectPropertiesMatch = false;\n }\n\n if (Object.keys(styleObject).length !== 0) {\n letterCount++;\n }\n else {\n delete obj[p1][p2];\n }\n }\n\n if (letterCount === 0) {\n delete obj[p1];\n }\n }\n // if every grapheme has the same style set then\n // delete those styles and set it on the parent\n for (var i = 0; i < this._textLines.length; i++) {\n graphemeCount += this._textLines[i].length;\n }\n if (allStyleObjectPropertiesMatch && stylesCount === graphemeCount) {\n this[property] = stylePropertyValue;\n this.removeStyle(property);\n }\n },\n\n /**\n * Remove a style property or properties from all individual character styles\n * in a text object. Deletes the character style object if it contains no other style\n * props. Deletes a line style object if it contains no other character styles.\n *\n * @param {String} props The property to remove from character styles.\n */\n removeStyle: function(property) {\n if (!this.styles || !property || property === '') {\n return;\n }\n var obj = this.styles, line, lineNum, charNum;\n for (lineNum in obj) {\n line = obj[lineNum];\n for (charNum in line) {\n delete line[charNum][property];\n if (Object.keys(line[charNum]).length === 0) {\n delete line[charNum];\n }\n }\n if (Object.keys(line).length === 0) {\n delete obj[lineNum];\n }\n }\n },\n\n /**\n * @private\n */\n _extendStyles: function(index, styles) {\n var loc = this.get2DCursorLocation(index);\n\n if (!this._getLineStyle(loc.lineIndex)) {\n this._setLineStyle(loc.lineIndex);\n }\n\n if (!this._getStyleDeclaration(loc.lineIndex, loc.charIndex)) {\n this._setStyleDeclaration(loc.lineIndex, loc.charIndex, {});\n }\n\n fabric.util.object.extend(this._getStyleDeclaration(loc.lineIndex, loc.charIndex), styles);\n },\n\n /**\n * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)\n * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.\n * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.\n */\n get2DCursorLocation: function(selectionStart, skipWrapping) {\n if (typeof selectionStart === 'undefined') {\n selectionStart = this.selectionStart;\n }\n var lines = skipWrapping ? this._unwrappedTextLines : this._textLines,\n len = lines.length;\n for (var i = 0; i < len; i++) {\n if (selectionStart <= lines[i].length) {\n return {\n lineIndex: i,\n charIndex: selectionStart\n };\n }\n selectionStart -= lines[i].length + this.missingNewlineOffset(i);\n }\n return {\n lineIndex: i - 1,\n charIndex: lines[i - 1].length < selectionStart ? lines[i - 1].length : selectionStart\n };\n },\n\n /**\n * Gets style of a current selection/cursor (at the start position)\n * if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.\n * @param {Number} [startIndex] Start index to get styles at\n * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1\n * @param {Boolean} [complete] get full style or not\n * @return {Array} styles an array with one, zero or more Style objects\n */\n getSelectionStyles: function(startIndex, endIndex, complete) {\n if (typeof startIndex === 'undefined') {\n startIndex = this.selectionStart || 0;\n }\n if (typeof endIndex === 'undefined') {\n endIndex = this.selectionEnd || startIndex;\n }\n var styles = [];\n for (var i = startIndex; i < endIndex; i++) {\n styles.push(this.getStyleAtPosition(i, complete));\n }\n return styles;\n },\n\n /**\n * Gets style of a current selection/cursor position\n * @param {Number} position to get styles at\n * @param {Boolean} [complete] full style if true\n * @return {Object} style Style object at a specified index\n * @private\n */\n getStyleAtPosition: function(position, complete) {\n var loc = this.get2DCursorLocation(position),\n style = complete ? this.getCompleteStyleDeclaration(loc.lineIndex, loc.charIndex) :\n this._getStyleDeclaration(loc.lineIndex, loc.charIndex);\n return style || {};\n },\n\n /**\n * Sets style of a current selection, if no selection exist, do not set anything.\n * @param {Object} [styles] Styles object\n * @param {Number} [startIndex] Start index to get styles at\n * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1\n * @return {fabric.IText} thisArg\n * @chainable\n */\n setSelectionStyles: function(styles, startIndex, endIndex) {\n if (typeof startIndex === 'undefined') {\n startIndex = this.selectionStart || 0;\n }\n if (typeof endIndex === 'undefined') {\n endIndex = this.selectionEnd || startIndex;\n }\n for (var i = startIndex; i < endIndex; i++) {\n this._extendStyles(i, styles);\n }\n /* not included in _extendStyles to avoid clearing cache more than once */\n this._forceClearCache = true;\n return this;\n },\n\n /**\n * get the reference, not a clone, of the style object for a given character\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Object} style object\n */\n _getStyleDeclaration: function(lineIndex, charIndex) {\n var lineStyle = this.styles && this.styles[lineIndex];\n if (!lineStyle) {\n return null;\n }\n return lineStyle[charIndex];\n },\n\n /**\n * return a new object that contains all the style property for a character\n * the object returned is newly created\n * @param {Number} lineIndex of the line where the character is\n * @param {Number} charIndex position of the character on the line\n * @return {Object} style object\n */\n getCompleteStyleDeclaration: function(lineIndex, charIndex) {\n var style = this._getStyleDeclaration(lineIndex, charIndex) || { },\n styleObject = { }, prop;\n for (var i = 0; i < this._styleProperties.length; i++) {\n prop = this._styleProperties[i];\n styleObject[prop] = typeof style[prop] === 'undefined' ? this[prop] : style[prop];\n }\n return styleObject;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n _setStyleDeclaration: function(lineIndex, charIndex, style) {\n this.styles[lineIndex][charIndex] = style;\n },\n\n /**\n *\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _deleteStyleDeclaration: function(lineIndex, charIndex) {\n delete this.styles[lineIndex][charIndex];\n },\n\n /**\n * @param {Number} lineIndex\n * @return {Boolean} if the line exists or not\n * @private\n */\n _getLineStyle: function(lineIndex) {\n return !!this.styles[lineIndex];\n },\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @private\n */\n _setLineStyle: function(lineIndex) {\n this.styles[lineIndex] = {};\n },\n\n /**\n * @param {Number} lineIndex\n * @private\n */\n _deleteLineStyle: function(lineIndex) {\n delete this.styles[lineIndex];\n }\n });\n})();\n\n\n(function() {\n\n function parseDecoration(object) {\n if (object.textDecoration) {\n object.textDecoration.indexOf('underline') > -1 && (object.underline = true);\n object.textDecoration.indexOf('line-through') > -1 && (object.linethrough = true);\n object.textDecoration.indexOf('overline') > -1 && (object.overline = true);\n delete object.textDecoration;\n }\n }\n\n /**\n * IText class (introduced in v1.4) Events are also fired with \"text:\"\n * prefix when observing canvas.\n * @class fabric.IText\n * @extends fabric.Text\n * @mixes fabric.Observable\n *\n * @fires changed\n * @fires selection:changed\n * @fires editing:entered\n * @fires editing:exited\n *\n * @return {fabric.IText} thisArg\n * @see {@link fabric.IText#initialize} for constructor definition\n *\n *

Supported key combinations:

\n *
\n   *   Move cursor:                    left, right, up, down\n   *   Select character:               shift + left, shift + right\n   *   Select text vertically:         shift + up, shift + down\n   *   Move cursor by word:            alt + left, alt + right\n   *   Select words:                   shift + alt + left, shift + alt + right\n   *   Move cursor to line start/end:  cmd + left, cmd + right or home, end\n   *   Select till start/end of line:  cmd + shift + left, cmd + shift + right or shift + home, shift + end\n   *   Jump to start/end of text:      cmd + up, cmd + down\n   *   Select till start/end of text:  cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown\n   *   Delete character:               backspace\n   *   Delete word:                    alt + backspace\n   *   Delete line:                    cmd + backspace\n   *   Forward delete:                 delete\n   *   Copy text:                      ctrl/cmd + c\n   *   Paste text:                     ctrl/cmd + v\n   *   Cut text:                       ctrl/cmd + x\n   *   Select entire text:             ctrl/cmd + a\n   *   Quit editing                    tab or esc\n   * 
\n *\n *

Supported mouse/touch combination

\n *
\n   *   Position cursor:                click/touch\n   *   Create selection:               click/touch & drag\n   *   Create selection:               click & shift + click\n   *   Select word:                    double click\n   *   Select line:                    triple click\n   * 
\n */\n fabric.IText = fabric.util.createClass(fabric.Text, fabric.Observable, /** @lends fabric.IText.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'i-text',\n\n /**\n * Index where text selection starts (or where cursor is when there is no selection)\n * @type Number\n * @default\n */\n selectionStart: 0,\n\n /**\n * Index where text selection ends\n * @type Number\n * @default\n */\n selectionEnd: 0,\n\n /**\n * Color of text selection\n * @type String\n * @default\n */\n selectionColor: 'rgba(17,119,255,0.3)',\n\n /**\n * Indicates whether text is in editing mode\n * @type Boolean\n * @default\n */\n isEditing: false,\n\n /**\n * Indicates whether a text can be edited\n * @type Boolean\n * @default\n */\n editable: true,\n\n /**\n * Border color of text object while it's in editing mode\n * @type String\n * @default\n */\n editingBorderColor: 'rgba(102,153,255,0.25)',\n\n /**\n * Width of cursor (in px)\n * @type Number\n * @default\n */\n cursorWidth: 2,\n\n /**\n * Color of text cursor color in editing mode.\n * if not set (default) will take color from the text.\n * if set to a color value that fabric can understand, it will\n * be used instead of the color of the text at the current position.\n * @type String\n * @default\n */\n cursorColor: '',\n\n /**\n * Delay between cursor blink (in ms)\n * @type Number\n * @default\n */\n cursorDelay: 1000,\n\n /**\n * Duration of cursor fadein (in ms)\n * @type Number\n * @default\n */\n cursorDuration: 600,\n\n /**\n * Indicates whether internal text char widths can be cached\n * @type Boolean\n * @default\n */\n caching: true,\n\n /**\n * @private\n */\n _reSpace: /\\s|\\n/,\n\n /**\n * @private\n */\n _currentCursorOpacity: 0,\n\n /**\n * @private\n */\n _selectionDirection: null,\n\n /**\n * @private\n */\n _abortCursorAnimation: false,\n\n /**\n * @private\n */\n __widthOfSpace: [],\n\n /**\n * Helps determining when the text is in composition, so that the cursor\n * rendering is altered.\n */\n inCompositionMode: false,\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.IText} thisArg\n */\n initialize: function(text, options) {\n this.callSuper('initialize', text, options);\n this.initBehavior();\n },\n\n /**\n * Sets selection start (left boundary of a selection)\n * @param {Number} index Index to set selection start to\n */\n setSelectionStart: function(index) {\n index = Math.max(index, 0);\n this._updateAndFire('selectionStart', index);\n },\n\n /**\n * Sets selection end (right boundary of a selection)\n * @param {Number} index Index to set selection end to\n */\n setSelectionEnd: function(index) {\n index = Math.min(index, this.text.length);\n this._updateAndFire('selectionEnd', index);\n },\n\n /**\n * @private\n * @param {String} property 'selectionStart' or 'selectionEnd'\n * @param {Number} index new position of property\n */\n _updateAndFire: function(property, index) {\n if (this[property] !== index) {\n this._fireSelectionChanged();\n this[property] = index;\n }\n this._updateTextarea();\n },\n\n /**\n * Fires the even of selection changed\n * @private\n */\n _fireSelectionChanged: function() {\n this.fire('selection:changed');\n this.canvas && this.canvas.fire('text:selection:changed', { target: this });\n },\n\n /**\n * Initialize text dimensions. Render all text on given context\n * or on a offscreen canvas to get the text width with measureText.\n * Updates this.width and this.height with the proper values.\n * Does not return dimensions.\n * @private\n */\n initDimensions: function() {\n this.isEditing && this.initDelayedCursor();\n this.clearContextTop();\n this.callSuper('initDimensions');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n this.clearContextTop();\n this.callSuper('render', ctx);\n // clear the cursorOffsetCache, so we ensure to calculate once per renderCursor\n // the correct position but not at every cursor animation.\n this.cursorOffsetCache = { };\n this.renderCursorOrSelection();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n this.callSuper('_render', ctx);\n },\n\n /**\n * Prepare and clean the contextTop\n */\n clearContextTop: function(skipRestore) {\n if (!this.isEditing || !this.canvas || !this.canvas.contextTop) {\n return;\n }\n var ctx = this.canvas.contextTop, v = this.canvas.viewportTransform;\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n this.transform(ctx);\n this._clearTextArea(ctx);\n skipRestore || ctx.restore();\n },\n /**\n * Renders cursor or selection (depending on what exists)\n * it does on the contextTop. If contextTop is not available, do nothing.\n */\n renderCursorOrSelection: function() {\n if (!this.isEditing || !this.canvas || !this.canvas.contextTop) {\n return;\n }\n var boundaries = this._getCursorBoundaries(),\n ctx = this.canvas.contextTop;\n this.clearContextTop(true);\n if (this.selectionStart === this.selectionEnd) {\n this.renderCursor(boundaries, ctx);\n }\n else {\n this.renderSelection(boundaries, ctx);\n }\n ctx.restore();\n },\n\n _clearTextArea: function(ctx) {\n // we add 4 pixel, to be sure to do not leave any pixel out\n var width = this.width + 4, height = this.height + 4;\n ctx.clearRect(-width / 2, -height / 2, width, height);\n },\n\n /**\n * Returns cursor boundaries (left, top, leftOffset, topOffset)\n * @private\n * @param {Array} chars Array of characters\n * @param {String} typeOfBoundaries\n */\n _getCursorBoundaries: function(position) {\n\n // left/top are left/top of entire text box\n // leftOffset/topOffset are offset from that left/top point of a text box\n\n if (typeof position === 'undefined') {\n position = this.selectionStart;\n }\n\n var left = this._getLeftOffset(),\n top = this._getTopOffset(),\n offsets = this._getCursorBoundariesOffsets(position);\n\n return {\n left: left,\n top: top,\n leftOffset: offsets.left,\n topOffset: offsets.top\n };\n },\n\n /**\n * @private\n */\n _getCursorBoundariesOffsets: function(position) {\n if (this.cursorOffsetCache && 'top' in this.cursorOffsetCache) {\n return this.cursorOffsetCache;\n }\n var lineLeftOffset,\n lineIndex,\n charIndex,\n topOffset = 0,\n leftOffset = 0,\n boundaries,\n cursorPosition = this.get2DCursorLocation(position);\n charIndex = cursorPosition.charIndex;\n lineIndex = cursorPosition.lineIndex;\n for (var i = 0; i < lineIndex; i++) {\n topOffset += this.getHeightOfLine(i);\n }\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n var bound = this.__charBounds[lineIndex][charIndex];\n bound && (leftOffset = bound.left);\n if (this.charSpacing !== 0 && charIndex === this._textLines[lineIndex].length) {\n leftOffset -= this._getWidthOfCharSpacing();\n }\n boundaries = {\n top: topOffset,\n left: lineLeftOffset + (leftOffset > 0 ? leftOffset : 0),\n };\n this.cursorOffsetCache = boundaries;\n return this.cursorOffsetCache;\n },\n\n /**\n * Renders cursor\n * @param {Object} boundaries\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\n */\n renderCursor: function(boundaries, ctx) {\n var cursorLocation = this.get2DCursorLocation(),\n lineIndex = cursorLocation.lineIndex,\n charIndex = cursorLocation.charIndex > 0 ? cursorLocation.charIndex - 1 : 0,\n charHeight = this.getValueOfPropertyAt(lineIndex, charIndex, 'fontSize'),\n multiplier = this.scaleX * this.canvas.getZoom(),\n cursorWidth = this.cursorWidth / multiplier,\n topOffset = boundaries.topOffset,\n dy = this.getValueOfPropertyAt(lineIndex, charIndex, 'deltaY');\n\n topOffset += (1 - this._fontSizeFraction) * this.getHeightOfLine(lineIndex) / this.lineHeight\n - charHeight * (1 - this._fontSizeFraction);\n\n if (this.inCompositionMode) {\n this.renderSelection(boundaries, ctx);\n }\n\n ctx.fillStyle = this.cursorColor || this.getValueOfPropertyAt(lineIndex, charIndex, 'fill');\n ctx.globalAlpha = this.__isMousedown ? 1 : this._currentCursorOpacity;\n ctx.fillRect(\n boundaries.left + boundaries.leftOffset - cursorWidth / 2,\n topOffset + boundaries.top + dy,\n cursorWidth,\n charHeight);\n },\n\n /**\n * Renders text selection\n * @param {Object} boundaries Object with left/top/leftOffset/topOffset\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\n */\n renderSelection: function(boundaries, ctx) {\n\n var selectionStart = this.inCompositionMode ? this.hiddenTextarea.selectionStart : this.selectionStart,\n selectionEnd = this.inCompositionMode ? this.hiddenTextarea.selectionEnd : this.selectionEnd,\n isJustify = this.textAlign.indexOf('justify') !== -1,\n start = this.get2DCursorLocation(selectionStart),\n end = this.get2DCursorLocation(selectionEnd),\n startLine = start.lineIndex,\n endLine = end.lineIndex,\n startChar = start.charIndex < 0 ? 0 : start.charIndex,\n endChar = end.charIndex < 0 ? 0 : end.charIndex;\n\n for (var i = startLine; i <= endLine; i++) {\n var lineOffset = this._getLineLeftOffset(i) || 0,\n lineHeight = this.getHeightOfLine(i),\n realLineHeight = 0, boxStart = 0, boxEnd = 0;\n\n if (i === startLine) {\n boxStart = this.__charBounds[startLine][startChar].left;\n }\n if (i >= startLine && i < endLine) {\n boxEnd = isJustify && !this.isEndOfWrapping(i) ? this.width : this.getLineWidth(i) || 5; // WTF is this 5?\n }\n else if (i === endLine) {\n if (endChar === 0) {\n boxEnd = this.__charBounds[endLine][endChar].left;\n }\n else {\n var charSpacing = this._getWidthOfCharSpacing();\n boxEnd = this.__charBounds[endLine][endChar - 1].left\n + this.__charBounds[endLine][endChar - 1].width - charSpacing;\n }\n }\n realLineHeight = lineHeight;\n if (this.lineHeight < 1 || (i === endLine && this.lineHeight > 1)) {\n lineHeight /= this.lineHeight;\n }\n if (this.inCompositionMode) {\n ctx.fillStyle = this.compositionColor || 'black';\n ctx.fillRect(\n boundaries.left + lineOffset + boxStart,\n boundaries.top + boundaries.topOffset + lineHeight,\n boxEnd - boxStart,\n 1);\n }\n else {\n ctx.fillStyle = this.selectionColor;\n ctx.fillRect(\n boundaries.left + lineOffset + boxStart,\n boundaries.top + boundaries.topOffset,\n boxEnd - boxStart,\n lineHeight);\n }\n\n\n boundaries.topOffset += realLineHeight;\n }\n },\n\n /**\n * High level function to know the height of the cursor.\n * the currentChar is the one that precedes the cursor\n * Returns fontSize of char at the current cursor\n * Unused from the library, is for the end user\n * @return {Number} Character font size\n */\n getCurrentCharFontSize: function() {\n var cp = this._getCurrentCharIndex();\n return this.getValueOfPropertyAt(cp.l, cp.c, 'fontSize');\n },\n\n /**\n * High level function to know the color of the cursor.\n * the currentChar is the one that precedes the cursor\n * Returns color (fill) of char at the current cursor\n * Unused from the library, is for the end user\n * @return {String} Character color (fill)\n */\n getCurrentCharColor: function() {\n var cp = this._getCurrentCharIndex();\n return this.getValueOfPropertyAt(cp.l, cp.c, 'fill');\n },\n\n /**\n * Returns the cursor position for the getCurrent.. functions\n * @private\n */\n _getCurrentCharIndex: function() {\n var cursorPosition = this.get2DCursorLocation(this.selectionStart, true),\n charIndex = cursorPosition.charIndex > 0 ? cursorPosition.charIndex - 1 : 0;\n return { l: cursorPosition.lineIndex, c: charIndex };\n }\n });\n\n /**\n * Returns fabric.IText instance from an object representation\n * @static\n * @memberOf fabric.IText\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as argument\n */\n fabric.IText.fromObject = function(object, callback) {\n parseDecoration(object);\n if (object.styles) {\n for (var i in object.styles) {\n for (var j in object.styles[i]) {\n parseDecoration(object.styles[i][j]);\n }\n }\n }\n fabric.Object._fromObject('IText', object, callback, 'text');\n };\n})();\n\n\n(function() {\n\n var clone = fabric.util.object.clone;\n\n fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n\n /**\n * Initializes all the interactive behavior of IText\n */\n initBehavior: function() {\n this.initAddedHandler();\n this.initRemovedHandler();\n this.initCursorSelectionHandlers();\n this.initDoubleClickSimulation();\n this.mouseMoveHandler = this.mouseMoveHandler.bind(this);\n },\n\n onDeselect: function() {\n this.isEditing && this.exitEditing();\n this.selected = false;\n },\n\n /**\n * Initializes \"added\" event handler\n */\n initAddedHandler: function() {\n var _this = this;\n this.on('added', function() {\n var canvas = _this.canvas;\n if (canvas) {\n if (!canvas._hasITextHandlers) {\n canvas._hasITextHandlers = true;\n _this._initCanvasHandlers(canvas);\n }\n canvas._iTextInstances = canvas._iTextInstances || [];\n canvas._iTextInstances.push(_this);\n }\n });\n },\n\n initRemovedHandler: function() {\n var _this = this;\n this.on('removed', function() {\n var canvas = _this.canvas;\n if (canvas) {\n canvas._iTextInstances = canvas._iTextInstances || [];\n fabric.util.removeFromArray(canvas._iTextInstances, _this);\n if (canvas._iTextInstances.length === 0) {\n canvas._hasITextHandlers = false;\n _this._removeCanvasHandlers(canvas);\n }\n }\n });\n },\n\n /**\n * register canvas event to manage exiting on other instances\n * @private\n */\n _initCanvasHandlers: function(canvas) {\n canvas._mouseUpITextHandler = function() {\n if (canvas._iTextInstances) {\n canvas._iTextInstances.forEach(function(obj) {\n obj.__isMousedown = false;\n });\n }\n };\n canvas.on('mouse:up', canvas._mouseUpITextHandler);\n },\n\n /**\n * remove canvas event to manage exiting on other instances\n * @private\n */\n _removeCanvasHandlers: function(canvas) {\n canvas.off('mouse:up', canvas._mouseUpITextHandler);\n },\n\n /**\n * @private\n */\n _tick: function() {\n this._currentTickState = this._animateCursor(this, 1, this.cursorDuration, '_onTickComplete');\n },\n\n /**\n * @private\n */\n _animateCursor: function(obj, targetOpacity, duration, completeMethod) {\n\n var tickState;\n\n tickState = {\n isAborted: false,\n abort: function() {\n this.isAborted = true;\n },\n };\n\n obj.animate('_currentCursorOpacity', targetOpacity, {\n duration: duration,\n onComplete: function() {\n if (!tickState.isAborted) {\n obj[completeMethod]();\n }\n },\n onChange: function() {\n // we do not want to animate a selection, only cursor\n if (obj.canvas && obj.selectionStart === obj.selectionEnd) {\n obj.renderCursorOrSelection();\n }\n },\n abort: function() {\n return tickState.isAborted;\n }\n });\n return tickState;\n },\n\n /**\n * @private\n */\n _onTickComplete: function() {\n\n var _this = this;\n\n if (this._cursorTimeout1) {\n clearTimeout(this._cursorTimeout1);\n }\n this._cursorTimeout1 = setTimeout(function() {\n _this._currentTickCompleteState = _this._animateCursor(_this, 0, this.cursorDuration / 2, '_tick');\n }, 100);\n },\n\n /**\n * Initializes delayed cursor\n */\n initDelayedCursor: function(restart) {\n var _this = this,\n delay = restart ? 0 : this.cursorDelay;\n\n this.abortCursorAnimation();\n this._currentCursorOpacity = 1;\n this._cursorTimeout2 = setTimeout(function() {\n _this._tick();\n }, delay);\n },\n\n /**\n * Aborts cursor animation and clears all timeouts\n */\n abortCursorAnimation: function() {\n var shouldClear = this._currentTickState || this._currentTickCompleteState,\n canvas = this.canvas;\n this._currentTickState && this._currentTickState.abort();\n this._currentTickCompleteState && this._currentTickCompleteState.abort();\n\n clearTimeout(this._cursorTimeout1);\n clearTimeout(this._cursorTimeout2);\n\n this._currentCursorOpacity = 0;\n // to clear just itext area we need to transform the context\n // it may not be worth it\n if (shouldClear && canvas) {\n canvas.clearContext(canvas.contextTop || canvas.contextContainer);\n }\n\n },\n\n /**\n * Selects entire text\n * @return {fabric.IText} thisArg\n * @chainable\n */\n selectAll: function() {\n this.selectionStart = 0;\n this.selectionEnd = this._text.length;\n this._fireSelectionChanged();\n this._updateTextarea();\n return this;\n },\n\n /**\n * Returns selected text\n * @return {String}\n */\n getSelectedText: function() {\n return this._text.slice(this.selectionStart, this.selectionEnd).join('');\n },\n\n /**\n * Find new selection index representing start of current word according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findWordBoundaryLeft: function(startFrom) {\n var offset = 0, index = startFrom - 1;\n\n // remove space before cursor first\n if (this._reSpace.test(this._text[index])) {\n while (this._reSpace.test(this._text[index])) {\n offset++;\n index--;\n }\n }\n while (/\\S/.test(this._text[index]) && index > -1) {\n offset++;\n index--;\n }\n\n return startFrom - offset;\n },\n\n /**\n * Find new selection index representing end of current word according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findWordBoundaryRight: function(startFrom) {\n var offset = 0, index = startFrom;\n\n // remove space after cursor first\n if (this._reSpace.test(this._text[index])) {\n while (this._reSpace.test(this._text[index])) {\n offset++;\n index++;\n }\n }\n while (/\\S/.test(this._text[index]) && index < this._text.length) {\n offset++;\n index++;\n }\n\n return startFrom + offset;\n },\n\n /**\n * Find new selection index representing start of current line according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findLineBoundaryLeft: function(startFrom) {\n var offset = 0, index = startFrom - 1;\n\n while (!/\\n/.test(this._text[index]) && index > -1) {\n offset++;\n index--;\n }\n\n return startFrom - offset;\n },\n\n /**\n * Find new selection index representing end of current line according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findLineBoundaryRight: function(startFrom) {\n var offset = 0, index = startFrom;\n\n while (!/\\n/.test(this._text[index]) && index < this._text.length) {\n offset++;\n index++;\n }\n\n return startFrom + offset;\n },\n\n /**\n * Finds index corresponding to beginning or end of a word\n * @param {Number} selectionStart Index of a character\n * @param {Number} direction 1 or -1\n * @return {Number} Index of the beginning or end of a word\n */\n searchWordBoundary: function(selectionStart, direction) {\n var text = this._text,\n index = this._reSpace.test(text[selectionStart]) ? selectionStart - 1 : selectionStart,\n _char = text[index],\n // wrong\n reNonWord = fabric.reNonWord;\n\n while (!reNonWord.test(_char) && index > 0 && index < text.length) {\n index += direction;\n _char = text[index];\n }\n if (reNonWord.test(_char)) {\n index += direction === 1 ? 0 : 1;\n }\n return index;\n },\n\n /**\n * Selects a word based on the index\n * @param {Number} selectionStart Index of a character\n */\n selectWord: function(selectionStart) {\n selectionStart = selectionStart || this.selectionStart;\n var newSelectionStart = this.searchWordBoundary(selectionStart, -1), /* search backwards */\n newSelectionEnd = this.searchWordBoundary(selectionStart, 1); /* search forward */\n\n this.selectionStart = newSelectionStart;\n this.selectionEnd = newSelectionEnd;\n this._fireSelectionChanged();\n this._updateTextarea();\n this.renderCursorOrSelection();\n },\n\n /**\n * Selects a line based on the index\n * @param {Number} selectionStart Index of a character\n * @return {fabric.IText} thisArg\n * @chainable\n */\n selectLine: function(selectionStart) {\n selectionStart = selectionStart || this.selectionStart;\n var newSelectionStart = this.findLineBoundaryLeft(selectionStart),\n newSelectionEnd = this.findLineBoundaryRight(selectionStart);\n\n this.selectionStart = newSelectionStart;\n this.selectionEnd = newSelectionEnd;\n this._fireSelectionChanged();\n this._updateTextarea();\n return this;\n },\n\n /**\n * Enters editing state\n * @return {fabric.IText} thisArg\n * @chainable\n */\n enterEditing: function(e) {\n if (this.isEditing || !this.editable) {\n return;\n }\n\n if (this.canvas) {\n this.canvas.calcOffset();\n this.exitEditingOnOthers(this.canvas);\n }\n\n this.isEditing = true;\n\n this.initHiddenTextarea(e);\n this.hiddenTextarea.focus();\n this.hiddenTextarea.value = this.text;\n this._updateTextarea();\n this._saveEditingProps();\n this._setEditingProps();\n this._textBeforeEdit = this.text;\n\n this._tick();\n this.fire('editing:entered');\n this._fireSelectionChanged();\n if (!this.canvas) {\n return this;\n }\n this.canvas.fire('text:editing:entered', { target: this });\n this.initMouseMoveHandler();\n this.canvas.requestRenderAll();\n return this;\n },\n\n exitEditingOnOthers: function(canvas) {\n if (canvas._iTextInstances) {\n canvas._iTextInstances.forEach(function(obj) {\n obj.selected = false;\n if (obj.isEditing) {\n obj.exitEditing();\n }\n });\n }\n },\n\n /**\n * Initializes \"mousemove\" event handler\n */\n initMouseMoveHandler: function() {\n this.canvas.on('mouse:move', this.mouseMoveHandler);\n },\n\n /**\n * @private\n */\n mouseMoveHandler: function(options) {\n if (!this.__isMousedown || !this.isEditing) {\n return;\n }\n\n var newSelectionStart = this.getSelectionStartFromPointer(options.e),\n currentStart = this.selectionStart,\n currentEnd = this.selectionEnd;\n if (\n (newSelectionStart !== this.__selectionStartOnMouseDown || currentStart === currentEnd)\n &&\n (currentStart === newSelectionStart || currentEnd === newSelectionStart)\n ) {\n return;\n }\n if (newSelectionStart > this.__selectionStartOnMouseDown) {\n this.selectionStart = this.__selectionStartOnMouseDown;\n this.selectionEnd = newSelectionStart;\n }\n else {\n this.selectionStart = newSelectionStart;\n this.selectionEnd = this.__selectionStartOnMouseDown;\n }\n if (this.selectionStart !== currentStart || this.selectionEnd !== currentEnd) {\n this.restartCursorIfNeeded();\n this._fireSelectionChanged();\n this._updateTextarea();\n this.renderCursorOrSelection();\n }\n },\n\n /**\n * @private\n */\n _setEditingProps: function() {\n this.hoverCursor = 'text';\n\n if (this.canvas) {\n this.canvas.defaultCursor = this.canvas.moveCursor = 'text';\n }\n\n this.borderColor = this.editingBorderColor;\n this.hasControls = this.selectable = false;\n this.lockMovementX = this.lockMovementY = true;\n },\n\n /**\n * convert from textarea to grapheme indexes\n */\n fromStringToGraphemeSelection: function(start, end, text) {\n var smallerTextStart = text.slice(0, start),\n graphemeStart = fabric.util.string.graphemeSplit(smallerTextStart).length;\n if (start === end) {\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart };\n }\n var smallerTextEnd = text.slice(start, end),\n graphemeEnd = fabric.util.string.graphemeSplit(smallerTextEnd).length;\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart + graphemeEnd };\n },\n\n /**\n * convert from fabric to textarea values\n */\n fromGraphemeToStringSelection: function(start, end, _text) {\n var smallerTextStart = _text.slice(0, start),\n graphemeStart = smallerTextStart.join('').length;\n if (start === end) {\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart };\n }\n var smallerTextEnd = _text.slice(start, end),\n graphemeEnd = smallerTextEnd.join('').length;\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart + graphemeEnd };\n },\n\n /**\n * @private\n */\n _updateTextarea: function() {\n this.cursorOffsetCache = { };\n if (!this.hiddenTextarea) {\n return;\n }\n if (!this.inCompositionMode) {\n var newSelection = this.fromGraphemeToStringSelection(this.selectionStart, this.selectionEnd, this._text);\n this.hiddenTextarea.selectionStart = newSelection.selectionStart;\n this.hiddenTextarea.selectionEnd = newSelection.selectionEnd;\n }\n this.updateTextareaPosition();\n },\n\n /**\n * @private\n */\n updateFromTextArea: function() {\n if (!this.hiddenTextarea) {\n return;\n }\n this.cursorOffsetCache = { };\n this.text = this.hiddenTextarea.value;\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n var newSelection = this.fromStringToGraphemeSelection(\n this.hiddenTextarea.selectionStart, this.hiddenTextarea.selectionEnd, this.hiddenTextarea.value);\n this.selectionEnd = this.selectionStart = newSelection.selectionEnd;\n if (!this.inCompositionMode) {\n this.selectionStart = newSelection.selectionStart;\n }\n this.updateTextareaPosition();\n },\n\n /**\n * @private\n */\n updateTextareaPosition: function() {\n if (this.selectionStart === this.selectionEnd) {\n var style = this._calcTextareaPosition();\n this.hiddenTextarea.style.left = style.left;\n this.hiddenTextarea.style.top = style.top;\n }\n },\n\n /**\n * @private\n * @return {Object} style contains style for hiddenTextarea\n */\n _calcTextareaPosition: function() {\n if (!this.canvas) {\n return { x: 1, y: 1 };\n }\n var desiredPosition = this.inCompositionMode ? this.compositionStart : this.selectionStart,\n boundaries = this._getCursorBoundaries(desiredPosition),\n cursorLocation = this.get2DCursorLocation(desiredPosition),\n lineIndex = cursorLocation.lineIndex,\n charIndex = cursorLocation.charIndex,\n charHeight = this.getValueOfPropertyAt(lineIndex, charIndex, 'fontSize') * this.lineHeight,\n leftOffset = boundaries.leftOffset,\n m = this.calcTransformMatrix(),\n p = {\n x: boundaries.left + leftOffset,\n y: boundaries.top + boundaries.topOffset + charHeight\n },\n retinaScaling = this.canvas.getRetinaScaling(),\n upperCanvas = this.canvas.upperCanvasEl,\n upperCanvasWidth = upperCanvas.width / retinaScaling,\n upperCanvasHeight = upperCanvas.height / retinaScaling,\n maxWidth = upperCanvasWidth - charHeight,\n maxHeight = upperCanvasHeight - charHeight,\n scaleX = upperCanvas.clientWidth / upperCanvasWidth,\n scaleY = upperCanvas.clientHeight / upperCanvasHeight;\n\n p = fabric.util.transformPoint(p, m);\n p = fabric.util.transformPoint(p, this.canvas.viewportTransform);\n p.x *= scaleX;\n p.y *= scaleY;\n if (p.x < 0) {\n p.x = 0;\n }\n if (p.x > maxWidth) {\n p.x = maxWidth;\n }\n if (p.y < 0) {\n p.y = 0;\n }\n if (p.y > maxHeight) {\n p.y = maxHeight;\n }\n\n // add canvas offset on document\n p.x += this.canvas._offset.left;\n p.y += this.canvas._offset.top;\n\n return { left: p.x + 'px', top: p.y + 'px', fontSize: charHeight + 'px', charHeight: charHeight };\n },\n\n /**\n * @private\n */\n _saveEditingProps: function() {\n this._savedProps = {\n hasControls: this.hasControls,\n borderColor: this.borderColor,\n lockMovementX: this.lockMovementX,\n lockMovementY: this.lockMovementY,\n hoverCursor: this.hoverCursor,\n selectable: this.selectable,\n defaultCursor: this.canvas && this.canvas.defaultCursor,\n moveCursor: this.canvas && this.canvas.moveCursor\n };\n },\n\n /**\n * @private\n */\n _restoreEditingProps: function() {\n if (!this._savedProps) {\n return;\n }\n\n this.hoverCursor = this._savedProps.hoverCursor;\n this.hasControls = this._savedProps.hasControls;\n this.borderColor = this._savedProps.borderColor;\n this.selectable = this._savedProps.selectable;\n this.lockMovementX = this._savedProps.lockMovementX;\n this.lockMovementY = this._savedProps.lockMovementY;\n\n if (this.canvas) {\n this.canvas.defaultCursor = this._savedProps.defaultCursor;\n this.canvas.moveCursor = this._savedProps.moveCursor;\n }\n },\n\n /**\n * Exits from editing state\n * @return {fabric.IText} thisArg\n * @chainable\n */\n exitEditing: function() {\n var isTextChanged = (this._textBeforeEdit !== this.text);\n var hiddenTextarea = this.hiddenTextarea;\n this.selected = false;\n this.isEditing = false;\n\n this.selectionEnd = this.selectionStart;\n\n if (hiddenTextarea) {\n hiddenTextarea.blur && hiddenTextarea.blur();\n hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n }\n this.hiddenTextarea = null;\n this.abortCursorAnimation();\n this._restoreEditingProps();\n this._currentCursorOpacity = 0;\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this.fire('editing:exited');\n isTextChanged && this.fire('modified');\n if (this.canvas) {\n this.canvas.off('mouse:move', this.mouseMoveHandler);\n this.canvas.fire('text:editing:exited', { target: this });\n isTextChanged && this.canvas.fire('object:modified', { target: this });\n }\n return this;\n },\n\n /**\n * @private\n */\n _removeExtraneousStyles: function() {\n for (var prop in this.styles) {\n if (!this._textLines[prop]) {\n delete this.styles[prop];\n }\n }\n },\n\n /**\n * remove and reflow a style block from start to end.\n * @param {Number} start linear start position for removal (included in removal)\n * @param {Number} end linear end position for removal ( excluded from removal )\n */\n removeStyleFromTo: function(start, end) {\n var cursorStart = this.get2DCursorLocation(start, true),\n cursorEnd = this.get2DCursorLocation(end, true),\n lineStart = cursorStart.lineIndex,\n charStart = cursorStart.charIndex,\n lineEnd = cursorEnd.lineIndex,\n charEnd = cursorEnd.charIndex,\n i, styleObj;\n if (lineStart !== lineEnd) {\n // step1 remove the trailing of lineStart\n if (this.styles[lineStart]) {\n for (i = charStart; i < this._unwrappedTextLines[lineStart].length; i++) {\n delete this.styles[lineStart][i];\n }\n }\n // step2 move the trailing of lineEnd to lineStart if needed\n if (this.styles[lineEnd]) {\n for (i = charEnd; i < this._unwrappedTextLines[lineEnd].length; i++) {\n styleObj = this.styles[lineEnd][i];\n if (styleObj) {\n this.styles[lineStart] || (this.styles[lineStart] = { });\n this.styles[lineStart][charStart + i - charEnd] = styleObj;\n }\n }\n }\n // step3 detects lines will be completely removed.\n for (i = lineStart + 1; i <= lineEnd; i++) {\n delete this.styles[i];\n }\n // step4 shift remaining lines.\n this.shiftLineStyles(lineEnd, lineStart - lineEnd);\n }\n else {\n // remove and shift left on the same line\n if (this.styles[lineStart]) {\n styleObj = this.styles[lineStart];\n var diff = charEnd - charStart, numericChar, _char;\n for (i = charStart; i < charEnd; i++) {\n delete styleObj[i];\n }\n for (_char in this.styles[lineStart]) {\n numericChar = parseInt(_char, 10);\n if (numericChar >= charEnd) {\n styleObj[numericChar - diff] = styleObj[_char];\n delete styleObj[_char];\n }\n }\n }\n }\n },\n\n /**\n * Shifts line styles up or down\n * @param {Number} lineIndex Index of a line\n * @param {Number} offset Can any number?\n */\n shiftLineStyles: function(lineIndex, offset) {\n // shift all line styles by offset upward or downward\n // do not clone deep. we need new array, not new style objects\n var clonedStyles = clone(this.styles);\n for (var line in this.styles) {\n var numericLine = parseInt(line, 10);\n if (numericLine > lineIndex) {\n this.styles[numericLine + offset] = clonedStyles[numericLine];\n if (!clonedStyles[numericLine - offset]) {\n delete this.styles[numericLine];\n }\n }\n }\n },\n\n restartCursorIfNeeded: function() {\n if (!this._currentTickState || this._currentTickState.isAborted\n || !this._currentTickCompleteState || this._currentTickCompleteState.isAborted\n ) {\n this.initDelayedCursor();\n }\n },\n\n /**\n * Handle insertion of more consecutive style lines for when one or more\n * newlines gets added to the text. Since current style needs to be shifted\n * first we shift the current style of the number lines needed, then we add\n * new lines from the last to the first.\n * @param {Number} lineIndex Index of a line\n * @param {Number} charIndex Index of a char\n * @param {Number} qty number of lines to add\n * @param {Array} copiedStyle Array of objects styles\n */\n insertNewlineStyleObject: function(lineIndex, charIndex, qty, copiedStyle) {\n var currentCharStyle,\n newLineStyles = {},\n somethingAdded = false,\n isEndOfLine = this._unwrappedTextLines[lineIndex].length === charIndex;\n\n qty || (qty = 1);\n this.shiftLineStyles(lineIndex, qty);\n if (this.styles[lineIndex]) {\n currentCharStyle = this.styles[lineIndex][charIndex === 0 ? charIndex : charIndex - 1];\n }\n // we clone styles of all chars\n // after cursor onto the current line\n for (var index in this.styles[lineIndex]) {\n var numIndex = parseInt(index, 10);\n if (numIndex >= charIndex) {\n somethingAdded = true;\n newLineStyles[numIndex - charIndex] = this.styles[lineIndex][index];\n // remove lines from the previous line since they're on a new line now\n if (!(isEndOfLine && charIndex === 0)) {\n delete this.styles[lineIndex][index];\n }\n }\n }\n var styleCarriedOver = false;\n if (somethingAdded && !isEndOfLine) {\n // if is end of line, the extra style we copied\n // is probably not something we want\n this.styles[lineIndex + qty] = newLineStyles;\n styleCarriedOver = true;\n }\n if (styleCarriedOver) {\n // skip the last line of since we already prepared it.\n qty--;\n }\n // for the all the lines or all the other lines\n // we clone current char style onto the next (otherwise empty) line\n while (qty > 0) {\n if (copiedStyle && copiedStyle[qty - 1]) {\n this.styles[lineIndex + qty] = { 0: clone(copiedStyle[qty - 1]) };\n }\n else if (currentCharStyle) {\n this.styles[lineIndex + qty] = { 0: clone(currentCharStyle) };\n }\n else {\n delete this.styles[lineIndex + qty];\n }\n qty--;\n }\n this._forceClearCache = true;\n },\n\n /**\n * Inserts style object for a given line/char index\n * @param {Number} lineIndex Index of a line\n * @param {Number} charIndex Index of a char\n * @param {Number} quantity number Style object to insert, if given\n * @param {Array} copiedStyle array of style objects\n */\n insertCharStyleObject: function(lineIndex, charIndex, quantity, copiedStyle) {\n if (!this.styles) {\n this.styles = {};\n }\n var currentLineStyles = this.styles[lineIndex],\n currentLineStylesCloned = currentLineStyles ? clone(currentLineStyles) : {};\n\n quantity || (quantity = 1);\n // shift all char styles by quantity forward\n // 0,1,2,3 -> (charIndex=2) -> 0,1,3,4 -> (insert 2) -> 0,1,2,3,4\n for (var index in currentLineStylesCloned) {\n var numericIndex = parseInt(index, 10);\n if (numericIndex >= charIndex) {\n currentLineStyles[numericIndex + quantity] = currentLineStylesCloned[numericIndex];\n // only delete the style if there was nothing moved there\n if (!currentLineStylesCloned[numericIndex - quantity]) {\n delete currentLineStyles[numericIndex];\n }\n }\n }\n this._forceClearCache = true;\n if (copiedStyle) {\n while (quantity--) {\n if (!Object.keys(copiedStyle[quantity]).length) {\n continue;\n }\n if (!this.styles[lineIndex]) {\n this.styles[lineIndex] = {};\n }\n this.styles[lineIndex][charIndex + quantity] = clone(copiedStyle[quantity]);\n }\n return;\n }\n if (!currentLineStyles) {\n return;\n }\n var newStyle = currentLineStyles[charIndex ? charIndex - 1 : 1];\n while (newStyle && quantity--) {\n this.styles[lineIndex][charIndex + quantity] = clone(newStyle);\n }\n },\n\n /**\n * Inserts style object(s)\n * @param {Array} insertedText Characters at the location where style is inserted\n * @param {Number} start cursor index for inserting style\n * @param {Array} [copiedStyle] array of style objects to insert.\n */\n insertNewStyleBlock: function(insertedText, start, copiedStyle) {\n var cursorLoc = this.get2DCursorLocation(start, true),\n addedLines = [0], linesLength = 0;\n // get an array of how many char per lines are being added.\n for (var i = 0; i < insertedText.length; i++) {\n if (insertedText[i] === '\\n') {\n linesLength++;\n addedLines[linesLength] = 0;\n }\n else {\n addedLines[linesLength]++;\n }\n }\n // for the first line copy the style from the current char position.\n if (addedLines[0] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex, cursorLoc.charIndex, addedLines[0], copiedStyle);\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[0] + 1);\n }\n linesLength && this.insertNewlineStyleObject(\n cursorLoc.lineIndex, cursorLoc.charIndex + addedLines[0], linesLength);\n for (var i = 1; i < linesLength; i++) {\n if (addedLines[i] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex + i, 0, addedLines[i], copiedStyle);\n }\n else if (copiedStyle) {\n this.styles[cursorLoc.lineIndex + i][0] = copiedStyle[0];\n }\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[i] + 1);\n }\n // we use i outside the loop to get it like linesLength\n if (addedLines[i] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex + i, 0, addedLines[i], copiedStyle);\n }\n },\n\n /**\n * Set the selectionStart and selectionEnd according to the new position of cursor\n * mimic the key - mouse navigation when shift is pressed.\n */\n setSelectionStartEndWithShift: function(start, end, newSelection) {\n if (newSelection <= start) {\n if (end === start) {\n this._selectionDirection = 'left';\n }\n else if (this._selectionDirection === 'right') {\n this._selectionDirection = 'left';\n this.selectionEnd = start;\n }\n this.selectionStart = newSelection;\n }\n else if (newSelection > start && newSelection < end) {\n if (this._selectionDirection === 'right') {\n this.selectionEnd = newSelection;\n }\n else {\n this.selectionStart = newSelection;\n }\n }\n else {\n // newSelection is > selection start and end\n if (end === start) {\n this._selectionDirection = 'right';\n }\n else if (this._selectionDirection === 'left') {\n this._selectionDirection = 'right';\n this.selectionStart = end;\n }\n this.selectionEnd = newSelection;\n }\n },\n\n setSelectionInBoundaries: function() {\n var length = this.text.length;\n if (this.selectionStart > length) {\n this.selectionStart = length;\n }\n else if (this.selectionStart < 0) {\n this.selectionStart = 0;\n }\n if (this.selectionEnd > length) {\n this.selectionEnd = length;\n }\n else if (this.selectionEnd < 0) {\n this.selectionEnd = 0;\n }\n }\n });\n})();\n\n\nfabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n /**\n * Initializes \"dbclick\" event handler\n */\n initDoubleClickSimulation: function() {\n\n // for double click\n this.__lastClickTime = +new Date();\n\n // for triple click\n this.__lastLastClickTime = +new Date();\n\n this.__lastPointer = { };\n\n this.on('mousedown', this.onMouseDown);\n },\n\n /**\n * Default event handler to simulate triple click\n * @private\n */\n onMouseDown: function(options) {\n if (!this.canvas) {\n return;\n }\n this.__newClickTime = +new Date();\n var newPointer = options.pointer;\n if (this.isTripleClick(newPointer)) {\n this.fire('tripleclick', options);\n this._stopEvent(options.e);\n }\n this.__lastLastClickTime = this.__lastClickTime;\n this.__lastClickTime = this.__newClickTime;\n this.__lastPointer = newPointer;\n this.__lastIsEditing = this.isEditing;\n this.__lastSelected = this.selected;\n },\n\n isTripleClick: function(newPointer) {\n return this.__newClickTime - this.__lastClickTime < 500 &&\n this.__lastClickTime - this.__lastLastClickTime < 500 &&\n this.__lastPointer.x === newPointer.x &&\n this.__lastPointer.y === newPointer.y;\n },\n\n /**\n * @private\n */\n _stopEvent: function(e) {\n e.preventDefault && e.preventDefault();\n e.stopPropagation && e.stopPropagation();\n },\n\n /**\n * Initializes event handlers related to cursor or selection\n */\n initCursorSelectionHandlers: function() {\n this.initMousedownHandler();\n this.initMouseupHandler();\n this.initClicks();\n },\n\n /**\n * Default handler for double click, select a word\n */\n doubleClickHandler: function(options) {\n if (!this.isEditing) {\n return;\n }\n this.selectWord(this.getSelectionStartFromPointer(options.e));\n },\n\n /**\n * Default handler for triple click, select a line\n */\n tripleClickHandler: function(options) {\n if (!this.isEditing) {\n return;\n }\n this.selectLine(this.getSelectionStartFromPointer(options.e));\n },\n\n /**\n * Initializes double and triple click event handlers\n */\n initClicks: function() {\n this.on('mousedblclick', this.doubleClickHandler);\n this.on('tripleclick', this.tripleClickHandler);\n },\n\n /**\n * Default event handler for the basic functionalities needed on _mouseDown\n * can be overridden to do something different.\n * Scope of this implementation is: find the click position, set selectionStart\n * find selectionEnd, initialize the drawing of either cursor or selection area\n * initializing a mousedDown on a text area will cancel fabricjs knowledge of\n * current compositionMode. It will be set to false.\n */\n _mouseDownHandler: function(options) {\n if (!this.canvas || !this.editable || (options.e.button && options.e.button !== 1)) {\n return;\n }\n\n this.__isMousedown = true;\n\n if (this.selected) {\n this.inCompositionMode = false;\n this.setCursorByClick(options.e);\n }\n\n if (this.isEditing) {\n this.__selectionStartOnMouseDown = this.selectionStart;\n if (this.selectionStart === this.selectionEnd) {\n this.abortCursorAnimation();\n }\n this.renderCursorOrSelection();\n }\n },\n\n /**\n * Default event handler for the basic functionalities needed on mousedown:before\n * can be overridden to do something different.\n * Scope of this implementation is: verify the object is already selected when mousing down\n */\n _mouseDownHandlerBefore: function(options) {\n if (!this.canvas || !this.editable || (options.e.button && options.e.button !== 1)) {\n return;\n }\n // we want to avoid that an object that was selected and then becomes unselectable,\n // may trigger editing mode in some way.\n this.selected = this === this.canvas._activeObject;\n },\n\n /**\n * Initializes \"mousedown\" event handler\n */\n initMousedownHandler: function() {\n this.on('mousedown', this._mouseDownHandler);\n this.on('mousedown:before', this._mouseDownHandlerBefore);\n },\n\n /**\n * Initializes \"mouseup\" event handler\n */\n initMouseupHandler: function() {\n this.on('mouseup', this.mouseUpHandler);\n },\n\n /**\n * standard handler for mouse up, overridable\n * @private\n */\n mouseUpHandler: function(options) {\n this.__isMousedown = false;\n if (!this.editable || this.group ||\n (options.transform && options.transform.actionPerformed) ||\n (options.e.button && options.e.button !== 1)) {\n return;\n }\n\n if (this.canvas) {\n var currentActive = this.canvas._activeObject;\n if (currentActive && currentActive !== this) {\n // avoid running this logic when there is an active object\n // this because is possible with shift click and fast clicks,\n // to rapidly deselect and reselect this object and trigger an enterEdit\n return;\n }\n }\n\n if (this.__lastSelected && !this.__corner) {\n this.selected = false;\n this.__lastSelected = false;\n this.enterEditing(options.e);\n if (this.selectionStart === this.selectionEnd) {\n this.initDelayedCursor(true);\n }\n else {\n this.renderCursorOrSelection();\n }\n }\n else {\n this.selected = true;\n }\n },\n\n /**\n * Changes cursor location in a text depending on passed pointer (x/y) object\n * @param {Event} e Event object\n */\n setCursorByClick: function(e) {\n var newSelection = this.getSelectionStartFromPointer(e),\n start = this.selectionStart, end = this.selectionEnd;\n if (e.shiftKey) {\n this.setSelectionStartEndWithShift(start, end, newSelection);\n }\n else {\n this.selectionStart = newSelection;\n this.selectionEnd = newSelection;\n }\n if (this.isEditing) {\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Returns index of a character corresponding to where an object was clicked\n * @param {Event} e Event object\n * @return {Number} Index of a character\n */\n getSelectionStartFromPointer: function(e) {\n var mouseOffset = this.getLocalPointer(e),\n prevWidth = 0,\n width = 0,\n height = 0,\n charIndex = 0,\n lineIndex = 0,\n lineLeftOffset,\n line;\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n if (height <= mouseOffset.y) {\n height += this.getHeightOfLine(i) * this.scaleY;\n lineIndex = i;\n if (i > 0) {\n charIndex += this._textLines[i - 1].length + this.missingNewlineOffset(i - 1);\n }\n }\n else {\n break;\n }\n }\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n width = lineLeftOffset * this.scaleX;\n line = this._textLines[lineIndex];\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n prevWidth = width;\n // i removed something about flipX here, check.\n width += this.__charBounds[lineIndex][j].kernedWidth * this.scaleX;\n if (width <= mouseOffset.x) {\n charIndex++;\n }\n else {\n break;\n }\n }\n return this._getNewSelectionStartFromOffset(mouseOffset, prevWidth, width, charIndex, jlen);\n },\n\n /**\n * @private\n */\n _getNewSelectionStartFromOffset: function(mouseOffset, prevWidth, width, index, jlen) {\n // we need Math.abs because when width is after the last char, the offset is given as 1, while is 0\n var distanceBtwLastCharAndCursor = mouseOffset.x - prevWidth,\n distanceBtwNextCharAndCursor = width - mouseOffset.x,\n offset = distanceBtwNextCharAndCursor > distanceBtwLastCharAndCursor ||\n distanceBtwNextCharAndCursor < 0 ? 0 : 1,\n newSelectionStart = index + offset;\n // if object is horizontally flipped, mirror cursor location from the end\n if (this.flipX) {\n newSelectionStart = jlen - newSelectionStart;\n }\n\n if (newSelectionStart > this._text.length) {\n newSelectionStart = this._text.length;\n }\n\n return newSelectionStart;\n }\n});\n\n\nfabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n\n /**\n * Initializes hidden textarea (needed to bring up keyboard in iOS)\n */\n initHiddenTextarea: function() {\n this.hiddenTextarea = fabric.document.createElement('textarea');\n this.hiddenTextarea.setAttribute('autocapitalize', 'off');\n this.hiddenTextarea.setAttribute('autocorrect', 'off');\n this.hiddenTextarea.setAttribute('autocomplete', 'off');\n this.hiddenTextarea.setAttribute('spellcheck', 'false');\n this.hiddenTextarea.setAttribute('data-fabric-hiddentextarea', '');\n this.hiddenTextarea.setAttribute('wrap', 'off');\n var style = this._calcTextareaPosition();\n // line-height: 1px; was removed from the style to fix this:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=870966\n this.hiddenTextarea.style.cssText = 'position: absolute; top: ' + style.top +\n '; left: ' + style.left + '; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px;' +\n ' paddingーtop: ' + style.fontSize + ';';\n fabric.document.body.appendChild(this.hiddenTextarea);\n\n fabric.util.addListener(this.hiddenTextarea, 'keydown', this.onKeyDown.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'keyup', this.onKeyUp.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'input', this.onInput.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'copy', this.copy.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'cut', this.copy.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'paste', this.paste.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionstart', this.onCompositionStart.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionupdate', this.onCompositionUpdate.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionend', this.onCompositionEnd.bind(this));\n\n if (!this._clickHandlerInitialized && this.canvas) {\n fabric.util.addListener(this.canvas.upperCanvasEl, 'click', this.onClick.bind(this));\n this._clickHandlerInitialized = true;\n }\n },\n\n /**\n * For functionalities on keyDown\n * Map a special key to a function of the instance/prototype\n * If you need different behaviour for ESC or TAB or arrows, you have to change\n * this map setting the name of a function that you build on the fabric.Itext or\n * your prototype.\n * the map change will affect all Instances unless you need for only some text Instances\n * in that case you have to clone this object and assign your Instance.\n * this.keysMap = fabric.util.object.clone(this.keysMap);\n * The function must be in fabric.Itext.prototype.myFunction And will receive event as args[0]\n */\n keysMap: {\n 9: 'exitEditing',\n 27: 'exitEditing',\n 33: 'moveCursorUp',\n 34: 'moveCursorDown',\n 35: 'moveCursorRight',\n 36: 'moveCursorLeft',\n 37: 'moveCursorLeft',\n 38: 'moveCursorUp',\n 39: 'moveCursorRight',\n 40: 'moveCursorDown',\n },\n\n /**\n * For functionalities on keyUp + ctrl || cmd\n */\n ctrlKeysMapUp: {\n 67: 'copy',\n 88: 'cut'\n },\n\n /**\n * For functionalities on keyDown + ctrl || cmd\n */\n ctrlKeysMapDown: {\n 65: 'selectAll'\n },\n\n onClick: function() {\n // No need to trigger click event here, focus is enough to have the keyboard appear on Android\n this.hiddenTextarea && this.hiddenTextarea.focus();\n },\n\n /**\n * Handles keydown event\n * only used for arrows and combination of modifier keys.\n * @param {Event} e Event object\n */\n onKeyDown: function(e) {\n if (!this.isEditing) {\n return;\n }\n if (e.keyCode in this.keysMap) {\n this[this.keysMap[e.keyCode]](e);\n }\n else if ((e.keyCode in this.ctrlKeysMapDown) && (e.ctrlKey || e.metaKey)) {\n this[this.ctrlKeysMapDown[e.keyCode]](e);\n }\n else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n if (e.keyCode >= 33 && e.keyCode <= 40) {\n // if i press an arrow key just update selection\n this.inCompositionMode = false;\n this.clearContextTop();\n this.renderCursorOrSelection();\n }\n else {\n this.canvas && this.canvas.requestRenderAll();\n }\n },\n\n /**\n * Handles keyup event\n * We handle KeyUp because ie11 and edge have difficulties copy/pasting\n * if a copy/cut event fired, keyup is dismissed\n * @param {Event} e Event object\n */\n onKeyUp: function(e) {\n if (!this.isEditing || this._copyDone || this.inCompositionMode) {\n this._copyDone = false;\n return;\n }\n if ((e.keyCode in this.ctrlKeysMapUp) && (e.ctrlKey || e.metaKey)) {\n this[this.ctrlKeysMapUp[e.keyCode]](e);\n }\n else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n this.canvas && this.canvas.requestRenderAll();\n },\n\n /**\n * Handles onInput event\n * @param {Event} e Event object\n */\n onInput: function(e) {\n var fromPaste = this.fromPaste;\n this.fromPaste = false;\n e && e.stopPropagation();\n if (!this.isEditing) {\n return;\n }\n // decisions about style changes.\n var nextText = this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,\n charCount = this._text.length,\n nextCharCount = nextText.length,\n removedText, insertedText,\n charDiff = nextCharCount - charCount,\n selectionStart = this.selectionStart, selectionEnd = this.selectionEnd,\n selection = selectionStart !== selectionEnd,\n copiedStyle, removeFrom, removeTo;\n if (this.hiddenTextarea.value === '') {\n this.styles = { };\n this.updateFromTextArea();\n this.fire('changed');\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this });\n this.canvas.requestRenderAll();\n }\n return;\n }\n\n var textareaSelection = this.fromStringToGraphemeSelection(\n this.hiddenTextarea.selectionStart,\n this.hiddenTextarea.selectionEnd,\n this.hiddenTextarea.value\n );\n var backDelete = selectionStart > textareaSelection.selectionStart;\n\n if (selection) {\n removedText = this._text.slice(selectionStart, selectionEnd);\n charDiff += selectionEnd - selectionStart;\n }\n else if (nextCharCount < charCount) {\n if (backDelete) {\n removedText = this._text.slice(selectionEnd + charDiff, selectionEnd);\n }\n else {\n removedText = this._text.slice(selectionStart, selectionStart - charDiff);\n }\n }\n insertedText = nextText.slice(textareaSelection.selectionEnd - charDiff, textareaSelection.selectionEnd);\n if (removedText && removedText.length) {\n if (insertedText.length) {\n // let's copy some style before deleting.\n // we want to copy the style before the cursor OR the style at the cursor if selection\n // is bigger than 0.\n copiedStyle = this.getSelectionStyles(selectionStart, selectionStart + 1, false);\n // now duplicate the style one for each inserted text.\n copiedStyle = insertedText.map(function() {\n // this return an array of references, but that is fine since we are\n // copying the style later.\n return copiedStyle[0];\n });\n }\n if (selection) {\n removeFrom = selectionStart;\n removeTo = selectionEnd;\n }\n else if (backDelete) {\n // detect differences between forwardDelete and backDelete\n removeFrom = selectionEnd - removedText.length;\n removeTo = selectionEnd;\n }\n else {\n removeFrom = selectionEnd;\n removeTo = selectionEnd + removedText.length;\n }\n this.removeStyleFromTo(removeFrom, removeTo);\n }\n if (insertedText.length) {\n if (fromPaste && insertedText.join('') === fabric.copiedText && !fabric.disableStyleCopyPaste) {\n copiedStyle = fabric.copiedTextStyle;\n }\n this.insertNewStyleBlock(insertedText, selectionStart, copiedStyle);\n }\n this.updateFromTextArea();\n this.fire('changed');\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this });\n this.canvas.requestRenderAll();\n }\n },\n /**\n * Composition start\n */\n onCompositionStart: function() {\n this.inCompositionMode = true;\n },\n\n /**\n * Composition end\n */\n onCompositionEnd: function() {\n this.inCompositionMode = false;\n },\n\n // /**\n // * Composition update\n // */\n onCompositionUpdate: function(e) {\n this.compositionStart = e.target.selectionStart;\n this.compositionEnd = e.target.selectionEnd;\n this.updateTextareaPosition();\n },\n\n /**\n * Copies selected text\n * @param {Event} e Event object\n */\n copy: function() {\n if (this.selectionStart === this.selectionEnd) {\n //do not cut-copy if no selection\n return;\n }\n\n fabric.copiedText = this.getSelectedText();\n if (!fabric.disableStyleCopyPaste) {\n fabric.copiedTextStyle = this.getSelectionStyles(this.selectionStart, this.selectionEnd, true);\n }\n else {\n fabric.copiedTextStyle = null;\n }\n this._copyDone = true;\n },\n\n /**\n * Pastes text\n * @param {Event} e Event object\n */\n paste: function() {\n this.fromPaste = true;\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @return {Object} Clipboard data object\n */\n _getClipboardData: function(e) {\n return (e && e.clipboardData) || fabric.window.clipboardData;\n },\n\n /**\n * Finds the width in pixels before the cursor on the same line\n * @private\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Number} widthBeforeCursor width before cursor\n */\n _getWidthBeforeCursor: function(lineIndex, charIndex) {\n var widthBeforeCursor = this._getLineLeftOffset(lineIndex), bound;\n\n if (charIndex > 0) {\n bound = this.__charBounds[lineIndex][charIndex - 1];\n widthBeforeCursor += bound.left + bound.width;\n }\n return widthBeforeCursor;\n },\n\n /**\n * Gets start offset of a selection\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getDownCursorOffset: function(e, isRight) {\n var selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n // if on last line, down cursor goes to end of line\n if (lineIndex === this._textLines.length - 1 || e.metaKey || e.keyCode === 34) {\n // move to the end of a text\n return this._text.length - selectionProp;\n }\n var charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex + 1, widthBeforeCursor),\n textAfterCursor = this._textLines[lineIndex].slice(charIndex);\n return textAfterCursor.length + indexOnOtherLine + 1 + this.missingNewlineOffset(lineIndex);\n },\n\n /**\n * private\n * Helps finding if the offset should be counted from Start or End\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n _getSelectionForOffset: function(e, isRight) {\n if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {\n return this.selectionEnd;\n }\n else {\n return this.selectionStart;\n }\n },\n\n /**\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getUpCursorOffset: function(e, isRight) {\n var selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n if (lineIndex === 0 || e.metaKey || e.keyCode === 33) {\n // if on first line, up cursor goes to start of line\n return -selectionProp;\n }\n var charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex - 1, widthBeforeCursor),\n textBeforeCursor = this._textLines[lineIndex].slice(0, charIndex),\n missingNewlineOffset = this.missingNewlineOffset(lineIndex - 1);\n // return a negative offset\n return -this._textLines[lineIndex - 1].length\n + indexOnOtherLine - textBeforeCursor.length + (1 - missingNewlineOffset);\n },\n\n /**\n * for a given width it founds the matching character.\n * @private\n */\n _getIndexOnLine: function(lineIndex, width) {\n\n var line = this._textLines[lineIndex],\n lineLeftOffset = this._getLineLeftOffset(lineIndex),\n widthOfCharsOnLine = lineLeftOffset,\n indexOnLine = 0, charWidth, foundMatch;\n\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charWidth = this.__charBounds[lineIndex][j].width;\n widthOfCharsOnLine += charWidth;\n if (widthOfCharsOnLine > width) {\n foundMatch = true;\n var leftEdge = widthOfCharsOnLine - charWidth,\n rightEdge = widthOfCharsOnLine,\n offsetFromLeftEdge = Math.abs(leftEdge - width),\n offsetFromRightEdge = Math.abs(rightEdge - width);\n\n indexOnLine = offsetFromRightEdge < offsetFromLeftEdge ? j : (j - 1);\n break;\n }\n }\n\n // reached end\n if (!foundMatch) {\n indexOnLine = line.length - 1;\n }\n\n return indexOnLine;\n },\n\n\n /**\n * Moves cursor down\n * @param {Event} e Event object\n */\n moveCursorDown: function(e) {\n if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {\n return;\n }\n this._moveCursorUpOrDown('Down', e);\n },\n\n /**\n * Moves cursor up\n * @param {Event} e Event object\n */\n moveCursorUp: function(e) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorUpOrDown('Up', e);\n },\n\n /**\n * Moves cursor up or down, fires the events\n * @param {String} direction 'Up' or 'Down'\n * @param {Event} e Event object\n */\n _moveCursorUpOrDown: function(direction, e) {\n // getUpCursorOffset\n // getDownCursorOffset\n var action = 'get' + direction + 'CursorOffset',\n offset = this[action](e, this._selectionDirection === 'right');\n if (e.shiftKey) {\n this.moveCursorWithShift(offset);\n }\n else {\n this.moveCursorWithoutShift(offset);\n }\n if (offset !== 0) {\n this.setSelectionInBoundaries();\n this.abortCursorAnimation();\n this._currentCursorOpacity = 1;\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Moves cursor with shift\n * @param {Number} offset\n */\n moveCursorWithShift: function(offset) {\n var newSelection = this._selectionDirection === 'left'\n ? this.selectionStart + offset\n : this.selectionEnd + offset;\n this.setSelectionStartEndWithShift(this.selectionStart, this.selectionEnd, newSelection);\n return offset !== 0;\n },\n\n /**\n * Moves cursor up without shift\n * @param {Number} offset\n */\n moveCursorWithoutShift: function(offset) {\n if (offset < 0) {\n this.selectionStart += offset;\n this.selectionEnd = this.selectionStart;\n }\n else {\n this.selectionEnd += offset;\n this.selectionStart = this.selectionEnd;\n }\n return offset !== 0;\n },\n\n /**\n * Moves cursor left\n * @param {Event} e Event object\n */\n moveCursorLeft: function(e) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorLeftOrRight('Left', e);\n },\n\n /**\n * @private\n * @return {Boolean} true if a change happened\n */\n _move: function(e, prop, direction) {\n var newValue;\n if (e.altKey) {\n newValue = this['findWordBoundary' + direction](this[prop]);\n }\n else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36 ) {\n newValue = this['findLineBoundary' + direction](this[prop]);\n }\n else {\n this[prop] += direction === 'Left' ? -1 : 1;\n return true;\n }\n if (typeof newValue !== undefined && this[prop] !== newValue) {\n this[prop] = newValue;\n return true;\n }\n },\n\n /**\n * @private\n */\n _moveLeft: function(e, prop) {\n return this._move(e, prop, 'Left');\n },\n\n /**\n * @private\n */\n _moveRight: function(e, prop) {\n return this._move(e, prop, 'Right');\n },\n\n /**\n * Moves cursor left without keeping selection\n * @param {Event} e\n */\n moveCursorLeftWithoutShift: function(e) {\n var change = true;\n this._selectionDirection = 'left';\n\n // only move cursor when there is no selection,\n // otherwise we discard it, and leave cursor on same place\n if (this.selectionEnd === this.selectionStart && this.selectionStart !== 0) {\n change = this._moveLeft(e, 'selectionStart');\n\n }\n this.selectionEnd = this.selectionStart;\n return change;\n },\n\n /**\n * Moves cursor left while keeping selection\n * @param {Event} e\n */\n moveCursorLeftWithShift: function(e) {\n if (this._selectionDirection === 'right' && this.selectionStart !== this.selectionEnd) {\n return this._moveLeft(e, 'selectionEnd');\n }\n else if (this.selectionStart !== 0){\n this._selectionDirection = 'left';\n return this._moveLeft(e, 'selectionStart');\n }\n },\n\n /**\n * Moves cursor right\n * @param {Event} e Event object\n */\n moveCursorRight: function(e) {\n if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {\n return;\n }\n this._moveCursorLeftOrRight('Right', e);\n },\n\n /**\n * Moves cursor right or Left, fires event\n * @param {String} direction 'Left', 'Right'\n * @param {Event} e Event object\n */\n _moveCursorLeftOrRight: function(direction, e) {\n var actionName = 'moveCursor' + direction + 'With';\n this._currentCursorOpacity = 1;\n\n if (e.shiftKey) {\n actionName += 'Shift';\n }\n else {\n actionName += 'outShift';\n }\n if (this[actionName](e)) {\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Moves cursor right while keeping selection\n * @param {Event} e\n */\n moveCursorRightWithShift: function(e) {\n if (this._selectionDirection === 'left' && this.selectionStart !== this.selectionEnd) {\n return this._moveRight(e, 'selectionStart');\n }\n else if (this.selectionEnd !== this._text.length) {\n this._selectionDirection = 'right';\n return this._moveRight(e, 'selectionEnd');\n }\n },\n\n /**\n * Moves cursor right without keeping selection\n * @param {Event} e Event object\n */\n moveCursorRightWithoutShift: function(e) {\n var changed = true;\n this._selectionDirection = 'right';\n\n if (this.selectionStart === this.selectionEnd) {\n changed = this._moveRight(e, 'selectionStart');\n this.selectionEnd = this.selectionStart;\n }\n else {\n this.selectionStart = this.selectionEnd;\n }\n return changed;\n },\n\n /**\n * Removes characters from start/end\n * start/end ar per grapheme position in _text array.\n *\n * @param {Number} start\n * @param {Number} end default to start + 1\n */\n removeChars: function(start, end) {\n if (typeof end === 'undefined') {\n end = start + 1;\n }\n this.removeStyleFromTo(start, end);\n this._text.splice(start, end - start);\n this.text = this._text.join('');\n this.set('dirty', true);\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this._removeExtraneousStyles();\n },\n\n /**\n * insert characters at start position, before start position.\n * start equal 1 it means the text get inserted between actual grapheme 0 and 1\n * if style array is provided, it must be as the same length of text in graphemes\n * if end is provided and is bigger than start, old text is replaced.\n * start/end ar per grapheme position in _text array.\n *\n * @param {String} text text to insert\n * @param {Array} style array of style objects\n * @param {Number} start\n * @param {Number} end default to start + 1\n */\n insertChars: function(text, style, start, end) {\n if (typeof end === 'undefined') {\n end = start;\n }\n if (end > start) {\n this.removeStyleFromTo(start, end);\n }\n var graphemes = fabric.util.string.graphemeSplit(text);\n this.insertNewStyleBlock(graphemes, start, style);\n this._text = [].concat(this._text.slice(0, start), graphemes, this._text.slice(end));\n this.text = this._text.join('');\n this.set('dirty', true);\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this._removeExtraneousStyles();\n },\n\n});\n\n\n/* _TO_SVG_START_ */\n(function() {\n var toFixed = fabric.util.toFixed,\n multipleSpacesRegex = / +/g;\n\n fabric.util.object.extend(fabric.Text.prototype, /** @lends fabric.Text.prototype */ {\n\n /**\n * Returns SVG representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n _toSVG: function() {\n var offsets = this._getSVGLeftTopOffsets(),\n textAndBg = this._getSVGTextAndBg(offsets.textTop, offsets.textLeft);\n return this._wrapSVGTextAndBg(textAndBg);\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n return this._createBaseSVGMarkup(\n this._toSVG(),\n { reviver: reviver, noStyle: true, withShadow: true }\n );\n },\n\n /**\n * @private\n */\n _getSVGLeftTopOffsets: function() {\n return {\n textLeft: -this.width / 2,\n textTop: -this.height / 2,\n lineTop: this.getHeightOfLine(0)\n };\n },\n\n /**\n * @private\n */\n _wrapSVGTextAndBg: function(textAndBg) {\n var noShadow = true,\n textDecoration = this.getSvgTextDecoration(this);\n return [\n textAndBg.textBgRects.join(''),\n '\\t\\t',\n textAndBg.textSpans.join(''),\n '\\n'\n ];\n },\n\n /**\n * @private\n * @param {Number} textTopOffset Text top offset\n * @param {Number} textLeftOffset Text left offset\n * @return {Object}\n */\n _getSVGTextAndBg: function(textTopOffset, textLeftOffset) {\n var textSpans = [],\n textBgRects = [],\n height = textTopOffset, lineOffset;\n // bounding-box background\n this._setSVGBg(textBgRects);\n\n // text and text-background\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n lineOffset = this._getLineLeftOffset(i);\n if (this.textBackgroundColor || this.styleHas('textBackgroundColor', i)) {\n this._setSVGTextLineBg(textBgRects, i, textLeftOffset + lineOffset, height);\n }\n this._setSVGTextLineText(textSpans, i, textLeftOffset + lineOffset, height);\n height += this.getHeightOfLine(i);\n }\n\n return {\n textSpans: textSpans,\n textBgRects: textBgRects\n };\n },\n\n /**\n * @private\n */\n _createTextCharSpan: function(_char, styleDecl, left, top) {\n var shouldUseWhitespace = _char !== _char.trim() || _char.match(multipleSpacesRegex),\n styleProps = this.getSvgSpanStyles(styleDecl, shouldUseWhitespace),\n fillStyles = styleProps ? 'style=\"' + styleProps + '\"' : '',\n dy = styleDecl.deltaY, dySpan = '',\n NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n if (dy) {\n dySpan = ' dy=\"' + toFixed(dy, NUM_FRACTION_DIGITS) + '\" ';\n }\n return [\n '',\n fabric.util.string.escapeXml(_char),\n ''\n ].join('');\n },\n\n _setSVGTextLineText: function(textSpans, lineIndex, textLeftOffset, textTopOffset) {\n // set proper line offset\n var lineHeight = this.getHeightOfLine(lineIndex),\n isJustify = this.textAlign.indexOf('justify') !== -1,\n actualStyle,\n nextStyle,\n charsToRender = '',\n charBox, style,\n boxWidth = 0,\n line = this._textLines[lineIndex],\n timeToRender;\n\n textTopOffset += lineHeight * (1 - this._fontSizeFraction) / this.lineHeight;\n for (var i = 0, len = line.length - 1; i <= len; i++) {\n timeToRender = i === len || this.charSpacing;\n charsToRender += line[i];\n charBox = this.__charBounds[lineIndex][i];\n if (boxWidth === 0) {\n textLeftOffset += charBox.kernedWidth - charBox.width;\n boxWidth += charBox.width;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n if (isJustify && !timeToRender) {\n if (this._reSpaceAndTab.test(line[i])) {\n timeToRender = true;\n }\n }\n if (!timeToRender) {\n // if we have charSpacing, we render char by char\n actualStyle = actualStyle || this.getCompleteStyleDeclaration(lineIndex, i);\n nextStyle = this.getCompleteStyleDeclaration(lineIndex, i + 1);\n timeToRender = this._hasStyleChangedForSvg(actualStyle, nextStyle);\n }\n if (timeToRender) {\n style = this._getStyleDeclaration(lineIndex, i) || { };\n textSpans.push(this._createTextCharSpan(charsToRender, style, textLeftOffset, textTopOffset));\n charsToRender = '';\n actualStyle = nextStyle;\n textLeftOffset += boxWidth;\n boxWidth = 0;\n }\n }\n },\n\n _pushTextBgRect: function(textBgRects, color, left, top, width, height) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n textBgRects.push(\n '\\t\\t\\n');\n },\n\n _setSVGTextLineBg: function(textBgRects, i, leftOffset, textTopOffset) {\n var line = this._textLines[i],\n heightOfLine = this.getHeightOfLine(i) / this.lineHeight,\n boxWidth = 0,\n boxStart = 0,\n charBox, currentColor,\n lastColor = this.getValueOfPropertyAt(i, 0, 'textBackgroundColor');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentColor = this.getValueOfPropertyAt(i, j, 'textBackgroundColor');\n if (currentColor !== lastColor) {\n lastColor && this._pushTextBgRect(textBgRects, lastColor, leftOffset + boxStart,\n textTopOffset, boxWidth, heightOfLine);\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastColor = currentColor;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n currentColor && this._pushTextBgRect(textBgRects, currentColor, leftOffset + boxStart,\n textTopOffset, boxWidth, heightOfLine);\n },\n\n /**\n * Adobe Illustrator (at least CS5) is unable to render rgba()-based fill values\n * we work around it by \"moving\" alpha channel into opacity attribute and setting fill's alpha to 1\n *\n * @private\n * @param {*} value\n * @return {String}\n */\n _getFillAttributes: function(value) {\n var fillColor = (value && typeof value === 'string') ? new fabric.Color(value) : '';\n if (!fillColor || !fillColor.getSource() || fillColor.getAlpha() === 1) {\n return 'fill=\"' + value + '\"';\n }\n return 'opacity=\"' + fillColor.getAlpha() + '\" fill=\"' + fillColor.setAlpha(1).toRgb() + '\"';\n },\n\n /**\n * @private\n */\n _getSVGLineTopOffset: function(lineIndex) {\n var lineTopOffset = 0, lastHeight = 0;\n for (var j = 0; j < lineIndex; j++) {\n lineTopOffset += this.getHeightOfLine(j);\n }\n lastHeight = this.getHeightOfLine(j);\n return {\n lineTop: lineTopOffset,\n offset: (this._fontSizeMult - this._fontSizeFraction) * lastHeight / (this.lineHeight * this._fontSizeMult)\n };\n },\n\n /**\n * Returns styles-string for svg-export\n * @param {Boolean} skipShadow a boolean to skip shadow filter output\n * @return {String}\n */\n getSvgStyles: function(skipShadow) {\n var svgStyle = fabric.Object.prototype.getSvgStyles.call(this, skipShadow);\n return svgStyle + ' white-space: pre;';\n },\n });\n})();\n/* _TO_SVG_END_ */\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {});\n\n /**\n * Textbox class, based on IText, allows the user to resize the text rectangle\n * and wraps lines automatically. Textboxes have their Y scaling locked, the\n * user can only change width. Height is adjusted automatically based on the\n * wrapping of lines.\n * @class fabric.Textbox\n * @extends fabric.IText\n * @mixes fabric.Observable\n * @return {fabric.Textbox} thisArg\n * @see {@link fabric.Textbox#initialize} for constructor definition\n */\n fabric.Textbox = fabric.util.createClass(fabric.IText, fabric.Observable, {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'textbox',\n\n /**\n * Minimum width of textbox, in pixels.\n * @type Number\n * @default\n */\n minWidth: 20,\n\n /**\n * Minimum calculated width of a textbox, in pixels.\n * fixed to 2 so that an empty textbox cannot go to 0\n * and is still selectable without text.\n * @type Number\n * @default\n */\n dynamicMinWidth: 2,\n\n /**\n * Cached array of text wrapping.\n * @type Array\n */\n __cachedLines: null,\n\n /**\n * Override standard Object class values\n */\n lockScalingFlip: true,\n\n /**\n * Override standard Object class values\n * Textbox needs this on false\n */\n noScaleCache: false,\n\n /**\n * Properties which when set cause object to change dimensions\n * @type Object\n * @private\n */\n _dimensionAffectingProps: fabric.Text.prototype._dimensionAffectingProps.concat('width'),\n\n /**\n * Use this regular expression to split strings in breakable lines\n * @private\n */\n _wordJoiners: /[ \\t\\r]/,\n\n /**\n * Use this boolean property in order to split strings that have no white space concept.\n * this is a cheap way to help with chinese/japanese\n * @type Boolean\n * @since 2.6.0\n */\n splitByGrapheme: false,\n\n /**\n * Unlike superclass's version of this function, Textbox does not update\n * its width.\n * @private\n * @override\n */\n initDimensions: function() {\n if (this.__skipDimension) {\n return;\n }\n this.isEditing && this.initDelayedCursor();\n this.clearContextTop();\n this._clearCache();\n // clear dynamicMinWidth as it will be different after we re-wrap line\n this.dynamicMinWidth = 0;\n // wrap lines\n this._styleMap = this._generateStyleMap(this._splitText());\n // if after wrapping, the width is smaller than dynamicMinWidth, change the width and re-wrap\n if (this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n }\n if (this.textAlign.indexOf('justify') !== -1) {\n // once text is measured we need to make space fatter to make justified text.\n this.enlargeSpaces();\n }\n // clear cache and re-calculate height\n this.height = this.calcTextHeight();\n this.saveState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * Generate an object that translates the style object so that it is\n * broken up by visual lines (new lines and automatic wrapping).\n * The original text styles object is broken up by actual lines (new lines only),\n * which is only sufficient for Text / IText\n * @private\n */\n _generateStyleMap: function(textInfo) {\n var realLineCount = 0,\n realLineCharCount = 0,\n charCount = 0,\n map = {};\n\n for (var i = 0; i < textInfo.graphemeLines.length; i++) {\n if (textInfo.graphemeText[charCount] === '\\n' && i > 0) {\n realLineCharCount = 0;\n charCount++;\n realLineCount++;\n }\n else if (!this.splitByGrapheme && this._reSpaceAndTab.test(textInfo.graphemeText[charCount]) && i > 0) {\n // this case deals with space's that are removed from end of lines when wrapping\n realLineCharCount++;\n charCount++;\n }\n\n map[i] = { line: realLineCount, offset: realLineCharCount };\n\n charCount += textInfo.graphemeLines[i].length;\n realLineCharCount += textInfo.graphemeLines[i].length;\n }\n\n return map;\n },\n\n /**\n * Returns true if object has a style property or has it on a specified line\n * @param {Number} lineIndex\n * @return {Boolean}\n */\n styleHas: function(property, lineIndex) {\n if (this._styleMap && !this.isWrapping) {\n var map = this._styleMap[lineIndex];\n if (map) {\n lineIndex = map.line;\n }\n }\n return fabric.Text.prototype.styleHas.call(this, property, lineIndex);\n },\n\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles: function(lineIndex) {\n if (!this.styles) {\n return true;\n }\n var offset = 0, nextLineIndex = lineIndex + 1, nextOffset, obj, shouldLimit = false,\n map = this._styleMap[lineIndex], mapNextLine = this._styleMap[lineIndex + 1];\n if (map) {\n lineIndex = map.line;\n offset = map.offset;\n }\n if (mapNextLine) {\n nextLineIndex = mapNextLine.line;\n shouldLimit = nextLineIndex === lineIndex;\n nextOffset = mapNextLine.offset;\n }\n obj = typeof lineIndex === 'undefined' ? this.styles : { line: this.styles[lineIndex] };\n for (var p1 in obj) {\n for (var p2 in obj[p1]) {\n if (p2 >= offset && (!shouldLimit || p2 < nextOffset)) {\n // eslint-disable-next-line no-unused-vars\n for (var p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n }\n return true;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _getStyleDeclaration: function(lineIndex, charIndex) {\n if (this._styleMap && !this.isWrapping) {\n var map = this._styleMap[lineIndex];\n if (!map) {\n return null;\n }\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n }\n return this.callSuper('_getStyleDeclaration', lineIndex, charIndex);\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n _setStyleDeclaration: function(lineIndex, charIndex, style) {\n var map = this._styleMap[lineIndex];\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n\n this.styles[lineIndex][charIndex] = style;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _deleteStyleDeclaration: function(lineIndex, charIndex) {\n var map = this._styleMap[lineIndex];\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n delete this.styles[lineIndex][charIndex];\n },\n\n /**\n * probably broken need a fix\n * Returns the real style line that correspond to the wrapped lineIndex line\n * Used just to verify if the line does exist or not.\n * @param {Number} lineIndex\n * @returns {Boolean} if the line exists or not\n * @private\n */\n _getLineStyle: function(lineIndex) {\n var map = this._styleMap[lineIndex];\n return !!this.styles[map.line];\n },\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @param {Object} style\n * @private\n */\n _setLineStyle: function(lineIndex) {\n var map = this._styleMap[lineIndex];\n this.styles[map.line] = {};\n },\n\n /**\n * Wraps text using the 'width' property of Textbox. First this function\n * splits text on newlines, so we preserve newlines entered by the user.\n * Then it wraps each line using the width of the Textbox by calling\n * _wrapLine().\n * @param {Array} lines The string array of text that is split into lines\n * @param {Number} desiredWidth width you want to wrap to\n * @returns {Array} Array of lines\n */\n _wrapText: function(lines, desiredWidth) {\n var wrapped = [], i;\n this.isWrapping = true;\n for (i = 0; i < lines.length; i++) {\n wrapped = wrapped.concat(this._wrapLine(lines[i], i, desiredWidth));\n }\n this.isWrapping = false;\n return wrapped;\n },\n\n /**\n * Helper function to measure a string of text, given its lineIndex and charIndex offset\n * it gets called when charBounds are not available yet.\n * @param {CanvasRenderingContext2D} ctx\n * @param {String} text\n * @param {number} lineIndex\n * @param {number} charOffset\n * @returns {number}\n * @private\n */\n _measureWord: function(word, lineIndex, charOffset) {\n var width = 0, prevGrapheme, skipLeft = true;\n charOffset = charOffset || 0;\n for (var i = 0, len = word.length; i < len; i++) {\n var box = this._getGraphemeBox(word[i], lineIndex, i + charOffset, prevGrapheme, skipLeft);\n width += box.kernedWidth;\n prevGrapheme = word[i];\n }\n return width;\n },\n\n /**\n * Wraps a line of text using the width of the Textbox and a context.\n * @param {Array} line The grapheme array that represent the line\n * @param {Number} lineIndex\n * @param {Number} desiredWidth width you want to wrap the line to\n * @param {Number} reservedSpace space to remove from wrapping for custom functionalities\n * @returns {Array} Array of line(s) into which the given text is wrapped\n * to.\n */\n _wrapLine: function(_line, lineIndex, desiredWidth, reservedSpace) {\n var lineWidth = 0,\n splitByGrapheme = this.splitByGrapheme,\n graphemeLines = [],\n line = [],\n // spaces in different languages?\n words = splitByGrapheme ? fabric.util.string.graphemeSplit(_line) : _line.split(this._wordJoiners),\n word = '',\n offset = 0,\n infix = splitByGrapheme ? '' : ' ',\n wordWidth = 0,\n infixWidth = 0,\n largestWordWidth = 0,\n lineJustStarted = true,\n additionalSpace = this._getWidthOfCharSpacing(),\n reservedSpace = reservedSpace || 0;\n // fix a difference between split and graphemeSplit\n if (words.length === 0) {\n words.push([]);\n }\n desiredWidth -= reservedSpace;\n for (var i = 0; i < words.length; i++) {\n // if using splitByGrapheme words are already in graphemes.\n word = splitByGrapheme ? words[i] : fabric.util.string.graphemeSplit(words[i]);\n wordWidth = this._measureWord(word, lineIndex, offset);\n offset += word.length;\n\n lineWidth += infixWidth + wordWidth - additionalSpace;\n if (lineWidth > desiredWidth && !lineJustStarted) {\n graphemeLines.push(line);\n line = [];\n lineWidth = wordWidth;\n lineJustStarted = true;\n }\n else {\n lineWidth += additionalSpace;\n }\n\n if (!lineJustStarted && !splitByGrapheme) {\n line.push(infix);\n }\n line = line.concat(word);\n\n infixWidth = splitByGrapheme ? 0 : this._measureWord([infix], lineIndex, offset);\n offset++;\n lineJustStarted = false;\n // keep track of largest word\n if (wordWidth > largestWordWidth) {\n largestWordWidth = wordWidth;\n }\n }\n\n i && graphemeLines.push(line);\n\n if (largestWordWidth + reservedSpace > this.dynamicMinWidth) {\n this.dynamicMinWidth = largestWordWidth - additionalSpace + reservedSpace;\n }\n return graphemeLines;\n },\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @param {Number} lineIndex text to split\n * @return {Boolean}\n */\n isEndOfWrapping: function(lineIndex) {\n if (!this._styleMap[lineIndex + 1]) {\n // is last line, return true;\n return true;\n }\n if (this._styleMap[lineIndex + 1].line !== this._styleMap[lineIndex].line) {\n // this is last line before a line break, return true;\n return true;\n }\n return false;\n },\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * @return Number\n */\n missingNewlineOffset: function(lineIndex) {\n if (this.splitByGrapheme) {\n return this.isEndOfWrapping(lineIndex) ? 1 : 0;\n }\n return 1;\n },\n\n /**\n * Gets lines of text to render in the Textbox. This function calculates\n * text wrapping on the fly every time it is called.\n * @param {String} text text to split\n * @returns {Array} Array of lines in the Textbox.\n * @override\n */\n _splitTextIntoLines: function(text) {\n var newText = fabric.Text.prototype._splitTextIntoLines.call(this, text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (var i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n },\n\n getMinWidth: function() {\n return Math.max(this.minWidth, this.dynamicMinWidth);\n },\n\n _removeExtraneousStyles: function() {\n var linesToKeep = {};\n for (var prop in this._styleMap) {\n if (this._textLines[prop]) {\n linesToKeep[this._styleMap[prop].line] = 1;\n }\n }\n for (var prop in this.styles) {\n if (!linesToKeep[prop]) {\n delete this.styles[prop];\n }\n }\n },\n\n /**\n * Returns object representation of an instance\n * @method toObject\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['minWidth', 'splitByGrapheme'].concat(propertiesToInclude));\n }\n });\n\n /**\n * Returns fabric.Textbox instance from an object representation\n * @static\n * @memberOf fabric.Textbox\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Textbox instance is created\n */\n fabric.Textbox.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Textbox', object, callback, 'text');\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n\n var controlsUtils = fabric.controlsUtils,\n scaleSkewStyleHandler = controlsUtils.scaleSkewCursorStyleHandler,\n scaleStyleHandler = controlsUtils.scaleCursorStyleHandler,\n scalingEqually = controlsUtils.scalingEqually,\n scalingYOrSkewingX = controlsUtils.scalingYOrSkewingX,\n scalingXOrSkewingY = controlsUtils.scalingXOrSkewingY,\n scaleOrSkewActionName = controlsUtils.scaleOrSkewActionName,\n objectControls = fabric.Object.prototype.controls;\n\n objectControls.ml = new fabric.Control({\n x: -0.5,\n y: 0,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionHandler: scalingXOrSkewingY,\n getActionName: scaleOrSkewActionName,\n });\n\n objectControls.mr = new fabric.Control({\n x: 0.5,\n y: 0,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionHandler: scalingXOrSkewingY,\n getActionName: scaleOrSkewActionName,\n });\n\n objectControls.mb = new fabric.Control({\n x: 0,\n y: 0.5,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionHandler: scalingYOrSkewingX,\n getActionName: scaleOrSkewActionName,\n });\n\n objectControls.mt = new fabric.Control({\n x: 0,\n y: -0.5,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionHandler: scalingYOrSkewingX,\n getActionName: scaleOrSkewActionName,\n });\n\n objectControls.tl = new fabric.Control({\n x: -0.5,\n y: -0.5,\n cursorStyleHandler: scaleStyleHandler,\n actionHandler: scalingEqually\n });\n\n objectControls.tr = new fabric.Control({\n x: 0.5,\n y: -0.5,\n cursorStyleHandler: scaleStyleHandler,\n actionHandler: scalingEqually\n });\n\n objectControls.bl = new fabric.Control({\n x: -0.5,\n y: 0.5,\n cursorStyleHandler: scaleStyleHandler,\n actionHandler: scalingEqually\n });\n\n objectControls.br = new fabric.Control({\n x: 0.5,\n y: 0.5,\n cursorStyleHandler: scaleStyleHandler,\n actionHandler: scalingEqually\n });\n\n objectControls.mtr = new fabric.Control({\n x: 0,\n y: -0.5,\n actionHandler: controlsUtils.rotationWithSnapping,\n cursorStyleHandler: controlsUtils.rotationStyleHandler,\n offsetY: -40,\n withConnection: true,\n actionName: 'rotate',\n });\n\n if (fabric.Textbox) {\n // this is breaking the prototype inheritance, no time / ideas to fix it.\n // is important to document that if you want to have all objects to have a\n // specific custom control, you have to add it to Object prototype and to Textbox\n // prototype. The controls are shared as references. So changes to control `tr`\n // can still apply to all objects if needed.\n var textBoxControls = fabric.Textbox.prototype.controls = { };\n\n textBoxControls.mtr = objectControls.mtr;\n textBoxControls.tr = objectControls.tr;\n textBoxControls.br = objectControls.br;\n textBoxControls.tl = objectControls.tl;\n textBoxControls.bl = objectControls.bl;\n textBoxControls.mt = objectControls.mt;\n textBoxControls.mb = objectControls.mb;\n\n textBoxControls.mr = new fabric.Control({\n x: 0.5,\n y: 0,\n actionHandler: controlsUtils.changeWidth,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionName: 'resizing',\n });\n\n textBoxControls.ml = new fabric.Control({\n x: -0.5,\n y: 0,\n actionHandler: controlsUtils.changeWidth,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionName: 'resizing',\n });\n }\n})();\n\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","const encodePacket = require(\"./encodePacket\");\nconst decodePacket = require(\"./decodePacket\");\n\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\n\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\n\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\n\nmodule.exports = {\n protocol: 4,\n encodePacket,\n encodePayload,\n decodePacket,\n decodePayload\n};\n","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // Remove event specific arrays for event types that no\r\n // one is subscribed for to avoid memory leak.\r\n if (callbacks.length === 0) {\r\n delete this._callbacks['$' + event];\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n\r\n var args = new Array(arguments.length - 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n args[i - 1] = arguments[i];\r\n }\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\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// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\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","module.exports = {};\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","// 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","\"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 _reduce = _interopRequireDefault(require(\"./reduce\"));\n\nvar _advanceWidth = _interopRequireDefault(require(\"../run/advanceWidth\"));\n\n/**\n * Returns attributed string advancewidth\n *\n * @param {Object} attributed string\n * @return {number} advance width\n */\nvar advanceWidth = (0, _reduce.default)(R.add, _advanceWidth.default);\nvar _default = advanceWidth;\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 _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 _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\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;","export default function _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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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\nimport React from 'react';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true\n};\nvar i18nInstance;\nexport var I18nContext = React.createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","module.exports = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n } else if (typeof window !== \"undefined\") {\n return window;\n } else {\n return Function(\"return this\")();\n }\n})();\n","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findInArray = findInArray;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\nexports.int = int;\nexports.dontSetMe = dontSetMe;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n) {\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\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 eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\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\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\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 isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","\"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\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",";(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}));","\"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\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _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}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\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","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _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}","export default function _nonIterableRest() {\n 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}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","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 arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\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","import { cloneElement, Component, createRef, createElement } from 'react';\nimport { number, element, func, oneOfType, instanceOf, string, bool } from 'prop-types';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _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 Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\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 _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction zeroPad(value) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var strValue = String(value);\n if (length === 0) return strValue;\n var match = strValue.match(/(.*?)([0-9]+)(.*)/);\n var prefix = match ? match[1] : '';\n var suffix = match ? match[3] : '';\n var strNo = match ? match[2] : strValue;\n var paddedNo = strNo.length >= length ? strNo : (_toConsumableArray(Array(length)).map(function () {\n return '0';\n }).join('') + strNo).slice(length * -1);\n return \"\".concat(prefix).concat(paddedNo).concat(suffix);\n}\nvar timeDeltaFormatOptionsDefaults = {\n daysInHours: false,\n zeroPadTime: 2\n};\nfunction calcTimeDelta(date) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$now = options.now,\n now = _options$now === void 0 ? Date.now : _options$now,\n _options$precision = options.precision,\n precision = _options$precision === void 0 ? 0 : _options$precision,\n controlled = options.controlled,\n _options$offsetTime = options.offsetTime,\n offsetTime = _options$offsetTime === void 0 ? 0 : _options$offsetTime,\n overtime = options.overtime;\n var startTimestamp;\n\n if (typeof date === 'string') {\n startTimestamp = new Date(date).getTime();\n } else if (date instanceof Date) {\n startTimestamp = date.getTime();\n } else {\n startTimestamp = date;\n }\n\n if (!controlled) {\n startTimestamp += offsetTime;\n }\n\n var timeLeft = controlled ? startTimestamp : startTimestamp - now();\n var clampedPrecision = Math.min(20, Math.max(0, precision));\n var total = Math.round(parseFloat(((overtime ? timeLeft : Math.max(0, timeLeft)) / 1000).toFixed(clampedPrecision)) * 1000);\n var seconds = Math.abs(total) / 1000;\n return {\n total: total,\n days: Math.floor(seconds / (3600 * 24)),\n hours: Math.floor(seconds / 3600 % 24),\n minutes: Math.floor(seconds / 60 % 60),\n seconds: Math.floor(seconds % 60),\n milliseconds: Number((seconds % 1 * 1000).toFixed()),\n completed: total <= 0\n };\n}\nfunction formatTimeDelta(timeDelta, options) {\n var days = timeDelta.days,\n hours = timeDelta.hours,\n minutes = timeDelta.minutes,\n seconds = timeDelta.seconds;\n\n var _Object$assign = Object.assign(Object.assign({}, timeDeltaFormatOptionsDefaults), options),\n daysInHours = _Object$assign.daysInHours,\n zeroPadTime = _Object$assign.zeroPadTime,\n _Object$assign$zeroPa = _Object$assign.zeroPadDays,\n zeroPadDays = _Object$assign$zeroPa === void 0 ? zeroPadTime : _Object$assign$zeroPa;\n\n var zeroPadTimeLength = Math.min(2, zeroPadTime);\n var formattedHours = daysInHours ? zeroPad(hours + days * 24, zeroPadTime) : zeroPad(hours, zeroPadTimeLength);\n return {\n days: daysInHours ? '' : zeroPad(days, zeroPadDays),\n hours: formattedHours,\n minutes: zeroPad(minutes, zeroPadTimeLength),\n seconds: zeroPad(seconds, zeroPadTimeLength)\n };\n}\n\nvar Countdown = function (_React$Component) {\n _inherits(Countdown, _React$Component);\n\n var _super = _createSuper(Countdown);\n\n function Countdown() {\n var _this;\n\n _classCallCheck(this, Countdown);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n count: _this.props.count || 3\n };\n\n _this.startCountdown = function () {\n _this.interval = window.setInterval(function () {\n var count = _this.state.count - 1;\n\n if (count === 0) {\n _this.stopCountdown();\n\n _this.props.onComplete && _this.props.onComplete();\n } else {\n _this.setState(function (prevState) {\n return {\n count: prevState.count - 1\n };\n });\n }\n }, 1000);\n };\n\n _this.stopCountdown = function () {\n clearInterval(_this.interval);\n };\n\n _this.addTime = function (seconds) {\n _this.stopCountdown();\n\n _this.setState(function (prevState) {\n return {\n count: prevState.count + seconds\n };\n }, _this.startCountdown);\n };\n\n return _this;\n }\n\n _createClass(Countdown, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCountdown();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearInterval(this.interval);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children ? cloneElement(this.props.children, {\n count: this.state.count\n }) : null;\n }\n }]);\n\n return Countdown;\n}(Component);\nCountdown.propTypes = {\n count: number,\n children: element,\n onComplete: func\n};\n\nvar Countdown$1 = function (_React$Component) {\n _inherits(Countdown$1, _React$Component);\n\n var _super = _createSuper(Countdown$1);\n\n function Countdown$1(props) {\n var _this;\n\n _classCallCheck(this, Countdown$1);\n\n _this = _super.call(this, props);\n _this.mounted = false;\n _this.initialTimestamp = _this.calcOffsetStartTimestamp();\n _this.offsetStartTimestamp = _this.props.autoStart ? 0 : _this.initialTimestamp;\n _this.offsetTime = 0;\n _this.legacyMode = false;\n _this.legacyCountdownRef = createRef();\n\n _this.tick = function () {\n var timeDelta = _this.calcTimeDelta();\n\n var callback = timeDelta.completed && !_this.props.overtime ? undefined : _this.props.onTick;\n\n _this.setTimeDeltaState(timeDelta, undefined, callback);\n };\n\n _this.start = function () {\n if (_this.isStarted()) return;\n var prevOffsetStartTimestamp = _this.offsetStartTimestamp;\n _this.offsetStartTimestamp = 0;\n _this.offsetTime += prevOffsetStartTimestamp ? _this.calcOffsetStartTimestamp() - prevOffsetStartTimestamp : 0;\n\n var timeDelta = _this.calcTimeDelta();\n\n _this.setTimeDeltaState(timeDelta, \"STARTED\", _this.props.onStart);\n\n if (!_this.props.controlled && (!timeDelta.completed || _this.props.overtime)) {\n _this.clearTimer();\n\n _this.interval = window.setInterval(_this.tick, _this.props.intervalDelay);\n }\n };\n\n _this.pause = function () {\n if (_this.isPaused()) return;\n\n _this.clearTimer();\n\n _this.offsetStartTimestamp = _this.calcOffsetStartTimestamp();\n\n _this.setTimeDeltaState(_this.state.timeDelta, \"PAUSED\", _this.props.onPause);\n };\n\n _this.stop = function () {\n if (_this.isStopped()) return;\n\n _this.clearTimer();\n\n _this.offsetStartTimestamp = _this.calcOffsetStartTimestamp();\n _this.offsetTime = _this.offsetStartTimestamp - _this.initialTimestamp;\n\n _this.setTimeDeltaState(_this.calcTimeDelta(), \"STOPPED\", _this.props.onStop);\n };\n\n _this.isStarted = function () {\n return _this.isStatus(\"STARTED\");\n };\n\n _this.isPaused = function () {\n return _this.isStatus(\"PAUSED\");\n };\n\n _this.isStopped = function () {\n return _this.isStatus(\"STOPPED\");\n };\n\n _this.isCompleted = function () {\n return _this.isStatus(\"COMPLETED\");\n };\n\n _this.handleOnComplete = function (timeDelta) {\n if (_this.props.onComplete) _this.props.onComplete(timeDelta);\n };\n\n if (props.date) {\n var timeDelta = _this.calcTimeDelta();\n\n _this.state = {\n timeDelta: timeDelta,\n status: timeDelta.completed ? \"COMPLETED\" : \"STOPPED\"\n };\n } else {\n _this.legacyMode = true;\n }\n\n return _this;\n }\n\n _createClass(Countdown$1, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.legacyMode) {\n return;\n }\n\n this.mounted = true;\n if (this.props.onMount) this.props.onMount(this.calcTimeDelta());\n if (this.props.autoStart) this.start();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.legacyMode) {\n return;\n }\n\n if (this.props.date !== prevProps.date) {\n this.initialTimestamp = this.calcOffsetStartTimestamp();\n this.offsetStartTimestamp = this.initialTimestamp;\n this.offsetTime = 0;\n this.setTimeDeltaState(this.calcTimeDelta());\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.legacyMode) {\n return;\n }\n\n this.mounted = false;\n this.clearTimer();\n }\n }, {\n key: \"calcTimeDelta\",\n value: function calcTimeDelta$1() {\n var _this$props = this.props,\n date = _this$props.date,\n now = _this$props.now,\n precision = _this$props.precision,\n controlled = _this$props.controlled,\n overtime = _this$props.overtime;\n return calcTimeDelta(date, {\n now: now,\n precision: precision,\n controlled: controlled,\n offsetTime: this.offsetTime,\n overtime: overtime\n });\n }\n }, {\n key: \"calcOffsetStartTimestamp\",\n value: function calcOffsetStartTimestamp() {\n return Date.now();\n }\n }, {\n key: \"addTime\",\n value: function addTime(seconds) {\n this.legacyCountdownRef.current.addTime(seconds);\n }\n }, {\n key: \"clearTimer\",\n value: function clearTimer() {\n window.clearInterval(this.interval);\n }\n }, {\n key: \"isStatus\",\n value: function isStatus(status) {\n return this.state.status === status;\n }\n }, {\n key: \"setTimeDeltaState\",\n value: function setTimeDeltaState(timeDelta, status, callback) {\n var _this2 = this;\n\n if (!this.mounted) return;\n var completedCallback;\n\n if (!this.state.timeDelta.completed && timeDelta.completed) {\n if (!this.props.overtime) this.clearTimer();\n completedCallback = this.handleOnComplete;\n }\n\n var onDone = function onDone() {\n if (callback) callback(_this2.state.timeDelta);\n if (completedCallback) completedCallback(_this2.state.timeDelta);\n };\n\n return this.setState(function (prevState) {\n var newStatus = status || prevState.status;\n\n if (timeDelta.completed && !_this2.props.overtime) {\n newStatus = \"COMPLETED\";\n } else if (!status && newStatus === \"COMPLETED\") {\n newStatus = \"STOPPED\";\n }\n\n return {\n timeDelta: timeDelta,\n status: newStatus\n };\n }, onDone);\n }\n }, {\n key: \"getApi\",\n value: function getApi() {\n return this.api = this.api || {\n start: this.start,\n pause: this.pause,\n stop: this.stop,\n isStarted: this.isStarted,\n isPaused: this.isPaused,\n isStopped: this.isStopped,\n isCompleted: this.isCompleted\n };\n }\n }, {\n key: \"getRenderProps\",\n value: function getRenderProps() {\n var _this$props2 = this.props,\n daysInHours = _this$props2.daysInHours,\n zeroPadTime = _this$props2.zeroPadTime,\n zeroPadDays = _this$props2.zeroPadDays;\n var timeDelta = this.state.timeDelta;\n return Object.assign(Object.assign({}, timeDelta), {\n api: this.getApi(),\n props: this.props,\n formatted: formatTimeDelta(timeDelta, {\n daysInHours: daysInHours,\n zeroPadTime: zeroPadTime,\n zeroPadDays: zeroPadDays\n })\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.legacyMode) {\n var _this$props3 = this.props,\n count = _this$props3.count,\n _children = _this$props3.children,\n onComplete = _this$props3.onComplete;\n return createElement(Countdown, {\n ref: this.legacyCountdownRef,\n count: count,\n onComplete: onComplete\n }, _children);\n }\n\n var _this$props4 = this.props,\n className = _this$props4.className,\n overtime = _this$props4.overtime,\n children = _this$props4.children,\n renderer = _this$props4.renderer;\n var renderProps = this.getRenderProps();\n\n if (renderer) {\n return renderer(renderProps);\n }\n\n if (children && this.state.timeDelta.completed && !overtime) {\n return cloneElement(children, {\n countdown: renderProps\n });\n }\n\n var _renderProps$formatte = renderProps.formatted,\n days = _renderProps$formatte.days,\n hours = _renderProps$formatte.hours,\n minutes = _renderProps$formatte.minutes,\n seconds = _renderProps$formatte.seconds;\n return createElement(\"span\", {\n className: className\n }, renderProps.total < 0 ? '-' : '', days, days ? ':' : '', hours, \":\", minutes, \":\", seconds);\n }\n }]);\n\n return Countdown$1;\n}(Component);\nCountdown$1.defaultProps = Object.assign(Object.assign({}, timeDeltaFormatOptionsDefaults), {\n controlled: false,\n intervalDelay: 1000,\n precision: 0,\n autoStart: true\n});\nCountdown$1.propTypes = {\n date: oneOfType([instanceOf(Date), string, number]),\n daysInHours: bool,\n zeroPadTime: number,\n zeroPadDays: number,\n controlled: bool,\n intervalDelay: number,\n precision: number,\n autoStart: bool,\n overtime: bool,\n className: string,\n children: element,\n renderer: func,\n now: func,\n onMount: func,\n onStart: func,\n onPause: func,\n onStop: func,\n onTick: func,\n onComplete: func\n};\n\nexport default Countdown$1;\nexport { calcTimeDelta, formatTimeDelta, zeroPad };\n","const parser = require(\"engine.io-parser\");\nconst Emitter = require(\"component-emitter\");\n\nclass Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n\n /**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n onError(msg, desc) {\n const err = new Error(msg);\n err.type = \"TransportError\";\n err.description = desc;\n this.emit(\"error\", err);\n return this;\n }\n\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n\n return this;\n }\n\n /**\n * Closes the transport.\n *\n * @api private\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n\n return this;\n }\n\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n } else {\n throw new Error(\"Transport not open\");\n }\n }\n\n /**\n * Called upon open\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n this.emit(\"open\");\n }\n\n /**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n onData(data) {\n const packet = parser.decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n\n /**\n * Called with a decoded packet.\n */\n onPacket(packet) {\n this.emit(\"packet\", packet);\n }\n\n /**\n * Called upon close.\n *\n * @api private\n */\n onClose() {\n this.readyState = \"closed\";\n this.emit(\"close\");\n }\n}\n\nmodule.exports = Transport;\n","/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\n\nexports.encode = function (obj) {\n var str = '';\n\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length) str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n\n return str;\n};\n\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\n\nexports.decode = function(qs){\n var qry = {};\n var pairs = qs.split('&');\n for (var i = 0, l = pairs.length; i < l; i++) {\n var pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decoder = exports.Encoder = exports.PacketType = exports.protocol = void 0;\nconst Emitter = require(\"component-emitter\");\nconst binary_1 = require(\"./binary\");\nconst is_binary_1 = require(\"./is-binary\");\nconst debug = require(\"debug\")(\"socket.io-parser\");\n/**\n * Protocol version.\n *\n * @public\n */\nexports.protocol = 5;\nvar PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType = exports.PacketType || (exports.PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nclass Encoder {\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n debug(\"encoding packet %j\", obj);\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (is_binary_1.hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data);\n }\n debug(\"encoded %j as %s\", obj, str);\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = binary_1.deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\nexports.Encoder = Encoder;\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nclass Decoder extends Emitter {\n constructor() {\n super();\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emit(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emit(\"decoded\", packet);\n }\n }\n else if (is_binary_1.isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emit(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n debug(\"decoded %s as %j\", str, p);\n return p;\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\nexports.Decoder = Decoder;\nfunction tryParse(str) {\n try {\n return JSON.parse(str);\n }\n catch (e) {\n return false;\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = binary_1.reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","\"use strict\";\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.addEvent = addEvent;\nexports.removeEvent = removeEvent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTranslation = getTranslation;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nexports.addClassName = addClassName;\nexports.removeClassName = removeClassName;\n\nvar _shims = require(\"./shims\");\n\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\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\nvar matchesSelectorFunc = '';\n\nfunction matchesSelector(el\n/*: Node*/\n, selector\n/*: string*/\n)\n/*: boolean*/\n{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n } // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n\n\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable\n\n return el[matchesSelectorFunc](selector);\n} // Works up the tree to the draggable itself attempting to match selector.\n\n\nfunction matchesSelectorAndParentsTo(el\n/*: Node*/\n, selector\n/*: string*/\n, baseNode\n/*: Node*/\n)\n/*: boolean*/\n{\n var node = el;\n\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nfunction addEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions);\n\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions);\n\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n} // Get from offsetParent\n\n\nfunction offsetXYFromParent(evt\n/*: {clientX: number, clientY: number}*/\n, offsetParent\n/*: HTMLElement*/\n, scale\n/*: number*/\n)\n/*: ControlPosition*/\n{\n var isBody = offsetParent === offsetParent.ownerDocument.body;\n var offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x: x,\n y: y\n };\n}\n\nfunction createCSSTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: Object*/\n{\n var translation = getTranslation(controlPos, positionOffset, 'px');\n return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);\n}\n\nfunction createSVGTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: string*/\n{\n var translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\n\nfunction getTranslation(_ref2, positionOffset\n/*: PositionOffsetControlPosition*/\n, unitSuffix\n/*: string*/\n)\n/*: string*/\n{\n var x = _ref2.x,\n y = _ref2.y;\n var translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n\n if (positionOffset) {\n var defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n var defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n\n return translation;\n}\n\nfunction getTouch(e\n/*: MouseTouchEvent*/\n, identifier\n/*: number*/\n)\n/*: ?{clientX: number, clientY: number}*/\n{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {\n return identifier === t.identifier;\n }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {\n return identifier === t.identifier;\n });\n}\n\nfunction getTouchIdentifier(e\n/*: MouseTouchEvent*/\n)\n/*: ?number*/\n{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n} // User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n// Note we're passing `document` b/c we could be iframed\n\n\nfunction addUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n var styleEl = doc.getElementById('react-draggable-style-el');\n\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nfunction removeUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE\n\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n var selection = (doc.defaultView || window).getSelection();\n\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {// probably IE\n }\n}\n\nfunction addClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\n\nfunction removeClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\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');\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\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","// 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// 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\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\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}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // 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 var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // 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 var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // 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 var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // 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 this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // 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 this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // 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 this.sync = true;\n\n // 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 this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\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 (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // 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\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 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\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.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\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\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) 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\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !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 TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\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 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 () {\n return this._writableState.highWaterMark;\n }\n});\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.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\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 if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\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 (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 pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', 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 stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\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\n onwriteStateUpdate(state);\n\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);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\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}\n\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.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\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\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\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\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // 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 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 Error('_write() is not implemented'));\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);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.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 if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\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 while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\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\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}","// 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","\"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","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\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","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","// 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.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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\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","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","\"use strict\";\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 _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\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _reduce = _interopRequireDefault(require(\"./reduce\"));\n\nvar _ascent = _interopRequireDefault(require(\"../run/ascent\"));\n\n/**\n * Returns attributed string ascent\n *\n * @param {Object} attributed string\n * @return {number} ascent\n */\nvar ascent = (0, _reduce.default)(R.max, _ascent.default);\nvar _default = ascent;\nexports.default = _default;",";(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) {\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}));","\"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 import/prefer-default-export */\nvar matchNumber = R.when(R.is(String), R.test(/^-?\\d*\\.?\\d*$/));\n\nvar castFloat = function castFloat(value) {\n if (typeof value !== 'string') return value;\n if (matchNumber(value)) return parseFloat(value, 10);\n return value;\n};\n\nvar _default = castFloat;\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 _empty = _interopRequireDefault(require(\"../run/empty\"));\n\nvar _append = _interopRequireDefault(require(\"../run/append\"));\n\nvar _stringFromCodePoints = _interopRequireDefault(require(\"../utils/stringFromCodePoints\"));\n\n/**\n * Append 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 append = function append(glyph, string) {\n var codePoints = R.propOr([], 'codePoints')(glyph);\n return R.evolve({\n string: R.concat(R.__, (0, _stringFromCodePoints.default)(codePoints)),\n runs: R.converge(R.concat, [R.init, R.compose(R.unapply(R.identity), (0, _append.default)(glyph), R.either(R.last, _empty.default))])\n })(string);\n};\n\nvar _default = R.curryN(2, append);\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\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\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;","\"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 * 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 _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 attributed string\n *\n * @return {Object} empty attributed string\n */\nvar empty = R.always({\n string: '',\n runs: []\n});\nvar _default = empty;\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 _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\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _advanceWidth = _interopRequireDefault(require(\"./advanceWidth\"));\n\nvar _advanceWidthBetween = _interopRequireDefault(require(\"./advanceWidthBetween\"));\n\nvar _append = _interopRequireDefault(require(\"./append\"));\n\nvar _ascent = _interopRequireDefault(require(\"./ascent\"));\n\nvar _copy = _interopRequireDefault(require(\"./copy\"));\n\nvar _descent = _interopRequireDefault(require(\"./descent\"));\n\nvar _dropLast = _interopRequireDefault(require(\"./dropLast\"));\n\nvar _empty = _interopRequireDefault(require(\"./empty\"));\n\nvar _end = _interopRequireDefault(require(\"./end\"));\n\nvar _fromFragments = _interopRequireDefault(require(\"./fromFragments\"));\n\nvar _glyphWidthAt = _interopRequireDefault(require(\"./glyphWidthAt\"));\n\nvar _height = _interopRequireDefault(require(\"./height\"));\n\nvar _indexAtOffset = _interopRequireDefault(require(\"./indexAtOffset\"));\n\nvar _insertGlyph = _interopRequireDefault(require(\"./insertGlyph\"));\n\nvar _leadingOffset = _interopRequireDefault(require(\"./leadingOffset\"));\n\nvar _length = _interopRequireDefault(require(\"./length\"));\n\nvar _prepend = _interopRequireDefault(require(\"./prepend\"));\n\nvar _reduce = _interopRequireDefault(require(\"./reduce\"));\n\nvar _runAt = _interopRequireDefault(require(\"./runAt\"));\n\nvar _runIndexAt = _interopRequireDefault(require(\"./runIndexAt\"));\n\nvar _slice = _interopRequireDefault(require(\"./slice\"));\n\nvar _sliceAtOffset = _interopRequireDefault(require(\"./sliceAtOffset\"));\n\nvar _start = _interopRequireDefault(require(\"./start\"));\n\nvar _trailingOffset = _interopRequireDefault(require(\"./trailingOffset\"));\n\nvar _trim = _interopRequireDefault(require(\"./trim\"));\n\nvar _default = {\n advanceWidth: _advanceWidth.default,\n advanceWidthBetween: _advanceWidthBetween.default,\n append: _append.default,\n ascent: _ascent.default,\n copy: _copy.default,\n descent: _descent.default,\n dropLast: _dropLast.default,\n empty: _empty.default,\n end: _end.default,\n fromFragments: _fromFragments.default,\n glyphWidthAt: _glyphWidthAt.default,\n height: _height.default,\n indexAtOffset: _indexAtOffset.default,\n insertGlyph: _insertGlyph.default,\n leadingOffset: _leadingOffset.default,\n length: _length.default,\n prepend: _prepend.default,\n reduce: _reduce.default,\n runAt: _runAt.default,\n runIndexAt: _runIndexAt.default,\n slice: _slice.default,\n sliceAtOffset: _sliceAtOffset.default,\n start: _start.default,\n trailingOffset: _trailingOffset.default,\n trim: _trim.default\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 * 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;","\"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 _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;","var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n this.table = new Uint16Array(16); /* table of code length counts */\n this.trans = new Uint16Array(288); /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n this.source = source;\n this.sourceIndex = 0;\n this.tag = 0;\n this.bitcount = 0;\n \n this.dest = dest;\n this.destLen = 0;\n \n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n return TINF_DATA_ERROR;\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n throw new Error('Data error');\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n return d.dest.slice(0, d.destLen);\n else\n return d.dest.subarray(0, d.destLen);\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n","import stream from 'stream';\nimport zlib from 'zlib';\nimport fontkit from '@react-pdf/fontkit';\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 DEFAULT_MARGINS = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\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';\n this.margins = DEFAULT_MARGINS; // 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$2 = 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$2)\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\n/* eslint-disable no-lonely-if */\nvar cx, cy, px, py, sx, sy;\ncx = cy = px = py = sx = sy = 0; // parseDataPath copy pasted from svgo\n// https://github.com/svg/svgo/blob/e4918ccdd1a2b5831defe0f00c1286744b479448/lib/path.js\n\nvar argsCountPerCommand = {\n M: 2,\n m: 2,\n Z: 0,\n z: 0,\n L: 2,\n l: 2,\n H: 1,\n h: 1,\n V: 1,\n v: 1,\n C: 6,\n c: 6,\n S: 4,\n s: 4,\n Q: 4,\n q: 4,\n T: 2,\n t: 2,\n A: 7,\n a: 7\n};\n/**\n * @type {(c: string) => c is PathDataCommand}\n */\n\nvar isCommand = function isCommand(c) {\n return c in argsCountPerCommand;\n};\n/**\n * @type {(c: string) => boolean}\n */\n\n\nvar isWsp = function isWsp(c) {\n var codePoint = c.codePointAt(0);\n return codePoint === 0x20 || codePoint === 0x9 || codePoint === 0xd || codePoint === 0xa;\n};\n/**\n * @type {(c: string) => boolean}\n */\n\n\nvar isDigit = function isDigit(c) {\n var codePoint = c.codePointAt(0);\n\n if (codePoint == null) {\n return false;\n }\n\n return 48 <= codePoint && codePoint <= 57;\n};\n/**\n * @typedef {'none' | 'sign' | 'whole' | 'decimal_point' | 'decimal' | 'e' | 'exponent_sign' | 'exponent'} ReadNumberState\n */\n\n/**\n * @type {(string: string, cursor: number) => [number, number | null]}\n */\n\n\nvar readNumber = function readNumber(string, cursor) {\n var i = cursor;\n var value = '';\n var state =\n /** @type {ReadNumberState} */\n 'none';\n\n for (; i < string.length; i += 1) {\n var c = string[i];\n\n if (c === '+' || c === '-') {\n if (state === 'none') {\n state = 'sign';\n value += c;\n continue;\n }\n\n if (state === 'e') {\n state = 'exponent_sign';\n value += c;\n continue;\n }\n }\n\n if (isDigit(c)) {\n if (state === 'none' || state === 'sign' || state === 'whole') {\n state = 'whole';\n value += c;\n continue;\n }\n\n if (state === 'decimal_point' || state === 'decimal') {\n state = 'decimal';\n value += c;\n continue;\n }\n\n if (state === 'e' || state === 'exponent_sign' || state === 'exponent') {\n state = 'exponent';\n value += c;\n continue;\n }\n }\n\n if (c === '.') {\n if (state === 'none' || state === 'sign' || state === 'whole') {\n state = 'decimal_point';\n value += c;\n continue;\n }\n }\n\n if (c === 'E' || c === 'e') {\n if (state === 'whole' || state === 'decimal_point' || state === 'decimal') {\n state = 'e';\n value += c;\n continue;\n }\n }\n\n break;\n }\n\n var number = Number.parseFloat(value);\n\n if (Number.isNaN(number)) {\n return [cursor, null];\n } else {\n // step back to delegate iteration to parent loop\n return [i - 1, number];\n }\n};\n/**\n * @type {(string: string) => Array}\n */\n\n\nvar parsePathData = function parsePathData(string) {\n /**\n * @type {Array}\n */\n var pathData = [];\n /**\n * @type {null | PathDataCommand}\n */\n\n var command = null;\n var args =\n /** @type {number[]} */\n [];\n var argsCount = 0;\n var canHaveComma = false;\n var hadComma = false;\n\n for (var i = 0; i < string.length; i += 1) {\n var c = string.charAt(i);\n\n if (isWsp(c)) {\n continue;\n } // allow comma only between arguments\n\n\n if (canHaveComma && c === ',') {\n if (hadComma) {\n break;\n }\n\n hadComma = true;\n continue;\n }\n\n if (isCommand(c)) {\n if (hadComma) {\n return pathData;\n }\n\n if (command == null) {\n // moveto should be leading command\n if (c !== 'M' && c !== 'm') {\n return pathData;\n }\n } else {\n // stop if previous command arguments are not flushed\n if (args.length !== 0) {\n return pathData;\n }\n }\n\n command = c;\n args = [];\n argsCount = argsCountPerCommand[command];\n canHaveComma = false; // flush command without arguments\n\n if (argsCount === 0) {\n pathData.push({\n command: command,\n args: args\n });\n }\n\n continue;\n } // avoid parsing arguments if no command detected\n\n\n if (command == null) {\n return pathData;\n } // read next argument\n\n\n var newCursor = i;\n var number = null;\n\n if (command === 'A' || command === 'a') {\n var position = args.length;\n\n if (position === 0 || position === 1) {\n // allow only positive number without sign as first two arguments\n if (c !== '+' && c !== '-') {\n var _readNumber = readNumber(string, i);\n\n newCursor = _readNumber[0];\n number = _readNumber[1];\n }\n }\n\n if (position === 2 || position === 5 || position === 6) {\n var _readNumber2 = readNumber(string, i);\n\n newCursor = _readNumber2[0];\n number = _readNumber2[1];\n }\n\n if (position === 3 || position === 4) {\n // read flags\n if (c === '0') {\n number = 0;\n }\n\n if (c === '1') {\n number = 1;\n }\n }\n } else {\n var _readNumber3 = readNumber(string, i);\n\n newCursor = _readNumber3[0];\n number = _readNumber3[1];\n }\n\n if (number == null) {\n return pathData;\n }\n\n args.push(number);\n canHaveComma = true;\n hadComma = false;\n i = newCursor; // flush arguments when necessary count is reached\n\n if (args.length === argsCount) {\n pathData.push({\n command: command,\n args: args\n }); // subsequent moveto coordinates are threated as implicit lineto commands\n\n if (command === 'M') {\n command = 'L';\n }\n\n if (command === 'm') {\n command = 'l';\n }\n\n args = [];\n }\n }\n\n return pathData;\n};\n\nvar _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 _commands$i = commands[i],\n command = _commands$i.command,\n args = _commands$i.args;\n\n if (typeof runners[command] === 'function') {\n runners[command](doc, args);\n }\n }\n};\n\nvar 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, 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\nvar solveArc = function solveArc(doc, x, y, coords) {\n var rx = coords[0],\n ry = coords[1],\n rot = coords[2],\n large = coords[3],\n sweep = coords[4],\n ex = coords[5],\n ey = coords[6];\n var segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y);\n\n for (var _iterator = _createForOfIteratorHelperLoose(segs), _step; !(_step = _iterator()).done;) {\n var seg = _step.value;\n var bez = segmentToBezier.apply(void 0, seg);\n doc.bezierCurveTo.apply(doc, bez);\n }\n}; // from Inkscape svgtopdf, thanks!\n\n\nvar 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; i < segments; 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\nvar 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\nvar SVGPath = /*#__PURE__*/function () {\n function SVGPath() {}\n\n SVGPath.apply = function apply(doc, path) {\n var commands = parsePathData(path);\n\n _apply(commands, doc);\n };\n\n return SVGPath;\n}();\n\nvar number$1 = 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$1(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$1(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$1(x) + \" \" + number$1(y) + \" m\");\n },\n lineTo: function lineTo(x, y) {\n return this.addContent(number$1(x) + \" \" + number$1(y) + \" l\");\n },\n bezierCurveTo: function bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n return this.addContent(number$1(cp1x) + \" \" + number$1(cp1y) + \" \" + number$1(cp2x) + \" \" + number$1(cp2y) + \" \" + number$1(x) + \" \" + number$1(y) + \" c\");\n },\n quadraticCurveTo: function quadraticCurveTo(cpx, cpy, x, y) {\n return this.addContent(number$1(cpx) + \" \" + number$1(cpy) + \" \" + number$1(x) + \" \" + number$1(y) + \" v\");\n },\n rect: function rect(x, y, w, h) {\n return this.addContent(number$1(x) + \" \" + number$1(y) + \" \" + number$1(w) + \" \" + number$1(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.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\nfunction _parse(contents) {\n var obj = {\n attributes: {},\n glyphWidths: {},\n kernPairs: {}\n };\n var section = '';\n\n for (var _iterator = _createForOfIteratorHelperLoose(contents.split('\\n')), _step; !(_step = _iterator()).done;) {\n var line = _step.value;\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 = obj.attributes[key]) {\n if (!Array.isArray(a)) {\n a = obj.attributes[key] = [a];\n }\n\n a.push(value);\n } else {\n obj.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 obj.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 obj.kernPairs[match[1] + '\\0' + match[2]] = parseInt(match[3]);\n }\n\n break;\n }\n }\n\n return obj;\n}\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 AFMFont.fromJson = function fromJson(json) {\n return new AFMFont(json);\n };\n\n function AFMFont(contents) {\n var _this = this;\n\n if (typeof contents === 'string') {\n this.contents = contents;\n this.parse();\n } else {\n this.attributes = contents.attributes;\n this.glyphWidths = contents.glyphWidths;\n this.kernPairs = contents.kernPairs;\n }\n\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 parsed = _parse(this.contents);\n\n this.attributes = parsed.attributes;\n this.glyphWidths = parsed.glyphWidths;\n this.kernPairs = parsed.kernPairs;\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 attributes$8 = {\n\tComment: [\n\t\t\"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Thu May 1 17:27:09 1997\",\n\t\t\"UniqueID 43050\",\n\t\t\"VMusage 39754 50779\"\n\t],\n\tFontName: \"Courier\",\n\tFullName: \"Courier\",\n\tFamilyName: \"Courier\",\n\tWeight: \"Medium\",\n\tItalicAngle: \"0\",\n\tIsFixedPitch: \"true\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-23 -250 715 805 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"003.000\",\n\tNotice: \"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"562\",\n\tXHeight: \"426\",\n\tAscender: \"629\",\n\tDescender: \"-157\",\n\tStdHW: \"51\",\n\tStdVW: \"51\"\n};\nvar glyphWidths$8 = {\n\tspace: 600,\n\texclam: 600,\n\tquotedbl: 600,\n\tnumbersign: 600,\n\tdollar: 600,\n\tpercent: 600,\n\tampersand: 600,\n\tquoteright: 600,\n\tparenleft: 600,\n\tparenright: 600,\n\tasterisk: 600,\n\tplus: 600,\n\tcomma: 600,\n\thyphen: 600,\n\tperiod: 600,\n\tslash: 600,\n\tzero: 600,\n\tone: 600,\n\ttwo: 600,\n\tthree: 600,\n\tfour: 600,\n\tfive: 600,\n\tsix: 600,\n\tseven: 600,\n\teight: 600,\n\tnine: 600,\n\tcolon: 600,\n\tsemicolon: 600,\n\tless: 600,\n\tequal: 600,\n\tgreater: 600,\n\tquestion: 600,\n\tat: 600,\n\tA: 600,\n\tB: 600,\n\tC: 600,\n\tD: 600,\n\tE: 600,\n\tF: 600,\n\tG: 600,\n\tH: 600,\n\tI: 600,\n\tJ: 600,\n\tK: 600,\n\tL: 600,\n\tM: 600,\n\tN: 600,\n\tO: 600,\n\tP: 600,\n\tQ: 600,\n\tR: 600,\n\tS: 600,\n\tT: 600,\n\tU: 600,\n\tV: 600,\n\tW: 600,\n\tX: 600,\n\tY: 600,\n\tZ: 600,\n\tbracketleft: 600,\n\tbackslash: 600,\n\tbracketright: 600,\n\tasciicircum: 600,\n\tunderscore: 600,\n\tquoteleft: 600,\n\ta: 600,\n\tb: 600,\n\tc: 600,\n\td: 600,\n\te: 600,\n\tf: 600,\n\tg: 600,\n\th: 600,\n\ti: 600,\n\tj: 600,\n\tk: 600,\n\tl: 600,\n\tm: 600,\n\tn: 600,\n\to: 600,\n\tp: 600,\n\tq: 600,\n\tr: 600,\n\ts: 600,\n\tt: 600,\n\tu: 600,\n\tv: 600,\n\tw: 600,\n\tx: 600,\n\ty: 600,\n\tz: 600,\n\tbraceleft: 600,\n\tbar: 600,\n\tbraceright: 600,\n\tasciitilde: 600,\n\texclamdown: 600,\n\tcent: 600,\n\tsterling: 600,\n\tfraction: 600,\n\tyen: 600,\n\tflorin: 600,\n\tsection: 600,\n\tcurrency: 600,\n\tquotesingle: 600,\n\tquotedblleft: 600,\n\tguillemotleft: 600,\n\tguilsinglleft: 600,\n\tguilsinglright: 600,\n\tfi: 600,\n\tfl: 600,\n\tendash: 600,\n\tdagger: 600,\n\tdaggerdbl: 600,\n\tperiodcentered: 600,\n\tparagraph: 600,\n\tbullet: 600,\n\tquotesinglbase: 600,\n\tquotedblbase: 600,\n\tquotedblright: 600,\n\tguillemotright: 600,\n\tellipsis: 600,\n\tperthousand: 600,\n\tquestiondown: 600,\n\tgrave: 600,\n\tacute: 600,\n\tcircumflex: 600,\n\ttilde: 600,\n\tmacron: 600,\n\tbreve: 600,\n\tdotaccent: 600,\n\tdieresis: 600,\n\tring: 600,\n\tcedilla: 600,\n\thungarumlaut: 600,\n\togonek: 600,\n\tcaron: 600,\n\temdash: 600,\n\tAE: 600,\n\tordfeminine: 600,\n\tLslash: 600,\n\tOslash: 600,\n\tOE: 600,\n\tordmasculine: 600,\n\tae: 600,\n\tdotlessi: 600,\n\tlslash: 600,\n\toslash: 600,\n\toe: 600,\n\tgermandbls: 600,\n\tIdieresis: 600,\n\teacute: 600,\n\tabreve: 600,\n\tuhungarumlaut: 600,\n\tecaron: 600,\n\tYdieresis: 600,\n\tdivide: 600,\n\tYacute: 600,\n\tAcircumflex: 600,\n\taacute: 600,\n\tUcircumflex: 600,\n\tyacute: 600,\n\tscommaaccent: 600,\n\tecircumflex: 600,\n\tUring: 600,\n\tUdieresis: 600,\n\taogonek: 600,\n\tUacute: 600,\n\tuogonek: 600,\n\tEdieresis: 600,\n\tDcroat: 600,\n\tcommaaccent: 600,\n\tcopyright: 600,\n\tEmacron: 600,\n\tccaron: 600,\n\taring: 600,\n\tNcommaaccent: 600,\n\tlacute: 600,\n\tagrave: 600,\n\tTcommaaccent: 600,\n\tCacute: 600,\n\tatilde: 600,\n\tEdotaccent: 600,\n\tscaron: 600,\n\tscedilla: 600,\n\tiacute: 600,\n\tlozenge: 600,\n\tRcaron: 600,\n\tGcommaaccent: 600,\n\tucircumflex: 600,\n\tacircumflex: 600,\n\tAmacron: 600,\n\trcaron: 600,\n\tccedilla: 600,\n\tZdotaccent: 600,\n\tThorn: 600,\n\tOmacron: 600,\n\tRacute: 600,\n\tSacute: 600,\n\tdcaron: 600,\n\tUmacron: 600,\n\turing: 600,\n\tthreesuperior: 600,\n\tOgrave: 600,\n\tAgrave: 600,\n\tAbreve: 600,\n\tmultiply: 600,\n\tuacute: 600,\n\tTcaron: 600,\n\tpartialdiff: 600,\n\tydieresis: 600,\n\tNacute: 600,\n\ticircumflex: 600,\n\tEcircumflex: 600,\n\tadieresis: 600,\n\tedieresis: 600,\n\tcacute: 600,\n\tnacute: 600,\n\tumacron: 600,\n\tNcaron: 600,\n\tIacute: 600,\n\tplusminus: 600,\n\tbrokenbar: 600,\n\tregistered: 600,\n\tGbreve: 600,\n\tIdotaccent: 600,\n\tsummation: 600,\n\tEgrave: 600,\n\tracute: 600,\n\tomacron: 600,\n\tZacute: 600,\n\tZcaron: 600,\n\tgreaterequal: 600,\n\tEth: 600,\n\tCcedilla: 600,\n\tlcommaaccent: 600,\n\ttcaron: 600,\n\teogonek: 600,\n\tUogonek: 600,\n\tAacute: 600,\n\tAdieresis: 600,\n\tegrave: 600,\n\tzacute: 600,\n\tiogonek: 600,\n\tOacute: 600,\n\toacute: 600,\n\tamacron: 600,\n\tsacute: 600,\n\tidieresis: 600,\n\tOcircumflex: 600,\n\tUgrave: 600,\n\tDelta: 600,\n\tthorn: 600,\n\ttwosuperior: 600,\n\tOdieresis: 600,\n\tmu: 600,\n\tigrave: 600,\n\tohungarumlaut: 600,\n\tEogonek: 600,\n\tdcroat: 600,\n\tthreequarters: 600,\n\tScedilla: 600,\n\tlcaron: 600,\n\tKcommaaccent: 600,\n\tLacute: 600,\n\ttrademark: 600,\n\tedotaccent: 600,\n\tIgrave: 600,\n\tImacron: 600,\n\tLcaron: 600,\n\tonehalf: 600,\n\tlessequal: 600,\n\tocircumflex: 600,\n\tntilde: 600,\n\tUhungarumlaut: 600,\n\tEacute: 600,\n\temacron: 600,\n\tgbreve: 600,\n\tonequarter: 600,\n\tScaron: 600,\n\tScommaaccent: 600,\n\tOhungarumlaut: 600,\n\tdegree: 600,\n\tograve: 600,\n\tCcaron: 600,\n\tugrave: 600,\n\tradical: 600,\n\tDcaron: 600,\n\trcommaaccent: 600,\n\tNtilde: 600,\n\totilde: 600,\n\tRcommaaccent: 600,\n\tLcommaaccent: 600,\n\tAtilde: 600,\n\tAogonek: 600,\n\tAring: 600,\n\tOtilde: 600,\n\tzdotaccent: 600,\n\tEcaron: 600,\n\tIogonek: 600,\n\tkcommaaccent: 600,\n\tminus: 600,\n\tIcircumflex: 600,\n\tncaron: 600,\n\ttcommaaccent: 600,\n\tlogicalnot: 600,\n\todieresis: 600,\n\tudieresis: 600,\n\tnotequal: 600,\n\tgcommaaccent: 600,\n\teth: 600,\n\tzcaron: 600,\n\tncommaaccent: 600,\n\tonesuperior: 600,\n\timacron: 600,\n\tEuro: 600\n};\nvar kernPairs$8 = {\n};\nvar Courier = {\n\tattributes: attributes$8,\n\tglyphWidths: glyphWidths$8,\n\tkernPairs: kernPairs$8\n};\n\nvar attributes$7 = {\n\tComment: [\n\t\t\"Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Mon Jun 23 16:28:00 1997\",\n\t\t\"UniqueID 43048\",\n\t\t\"VMusage 41139 52164\"\n\t],\n\tFontName: \"Courier-Bold\",\n\tFullName: \"Courier Bold\",\n\tFamilyName: \"Courier\",\n\tWeight: \"Bold\",\n\tItalicAngle: \"0\",\n\tIsFixedPitch: \"true\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-113 -250 749 801 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"003.000\",\n\tNotice: \"Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"562\",\n\tXHeight: \"439\",\n\tAscender: \"629\",\n\tDescender: \"-157\",\n\tStdHW: \"84\",\n\tStdVW: \"106\"\n};\nvar glyphWidths$7 = {\n\tspace: 600,\n\texclam: 600,\n\tquotedbl: 600,\n\tnumbersign: 600,\n\tdollar: 600,\n\tpercent: 600,\n\tampersand: 600,\n\tquoteright: 600,\n\tparenleft: 600,\n\tparenright: 600,\n\tasterisk: 600,\n\tplus: 600,\n\tcomma: 600,\n\thyphen: 600,\n\tperiod: 600,\n\tslash: 600,\n\tzero: 600,\n\tone: 600,\n\ttwo: 600,\n\tthree: 600,\n\tfour: 600,\n\tfive: 600,\n\tsix: 600,\n\tseven: 600,\n\teight: 600,\n\tnine: 600,\n\tcolon: 600,\n\tsemicolon: 600,\n\tless: 600,\n\tequal: 600,\n\tgreater: 600,\n\tquestion: 600,\n\tat: 600,\n\tA: 600,\n\tB: 600,\n\tC: 600,\n\tD: 600,\n\tE: 600,\n\tF: 600,\n\tG: 600,\n\tH: 600,\n\tI: 600,\n\tJ: 600,\n\tK: 600,\n\tL: 600,\n\tM: 600,\n\tN: 600,\n\tO: 600,\n\tP: 600,\n\tQ: 600,\n\tR: 600,\n\tS: 600,\n\tT: 600,\n\tU: 600,\n\tV: 600,\n\tW: 600,\n\tX: 600,\n\tY: 600,\n\tZ: 600,\n\tbracketleft: 600,\n\tbackslash: 600,\n\tbracketright: 600,\n\tasciicircum: 600,\n\tunderscore: 600,\n\tquoteleft: 600,\n\ta: 600,\n\tb: 600,\n\tc: 600,\n\td: 600,\n\te: 600,\n\tf: 600,\n\tg: 600,\n\th: 600,\n\ti: 600,\n\tj: 600,\n\tk: 600,\n\tl: 600,\n\tm: 600,\n\tn: 600,\n\to: 600,\n\tp: 600,\n\tq: 600,\n\tr: 600,\n\ts: 600,\n\tt: 600,\n\tu: 600,\n\tv: 600,\n\tw: 600,\n\tx: 600,\n\ty: 600,\n\tz: 600,\n\tbraceleft: 600,\n\tbar: 600,\n\tbraceright: 600,\n\tasciitilde: 600,\n\texclamdown: 600,\n\tcent: 600,\n\tsterling: 600,\n\tfraction: 600,\n\tyen: 600,\n\tflorin: 600,\n\tsection: 600,\n\tcurrency: 600,\n\tquotesingle: 600,\n\tquotedblleft: 600,\n\tguillemotleft: 600,\n\tguilsinglleft: 600,\n\tguilsinglright: 600,\n\tfi: 600,\n\tfl: 600,\n\tendash: 600,\n\tdagger: 600,\n\tdaggerdbl: 600,\n\tperiodcentered: 600,\n\tparagraph: 600,\n\tbullet: 600,\n\tquotesinglbase: 600,\n\tquotedblbase: 600,\n\tquotedblright: 600,\n\tguillemotright: 600,\n\tellipsis: 600,\n\tperthousand: 600,\n\tquestiondown: 600,\n\tgrave: 600,\n\tacute: 600,\n\tcircumflex: 600,\n\ttilde: 600,\n\tmacron: 600,\n\tbreve: 600,\n\tdotaccent: 600,\n\tdieresis: 600,\n\tring: 600,\n\tcedilla: 600,\n\thungarumlaut: 600,\n\togonek: 600,\n\tcaron: 600,\n\temdash: 600,\n\tAE: 600,\n\tordfeminine: 600,\n\tLslash: 600,\n\tOslash: 600,\n\tOE: 600,\n\tordmasculine: 600,\n\tae: 600,\n\tdotlessi: 600,\n\tlslash: 600,\n\toslash: 600,\n\toe: 600,\n\tgermandbls: 600,\n\tIdieresis: 600,\n\teacute: 600,\n\tabreve: 600,\n\tuhungarumlaut: 600,\n\tecaron: 600,\n\tYdieresis: 600,\n\tdivide: 600,\n\tYacute: 600,\n\tAcircumflex: 600,\n\taacute: 600,\n\tUcircumflex: 600,\n\tyacute: 600,\n\tscommaaccent: 600,\n\tecircumflex: 600,\n\tUring: 600,\n\tUdieresis: 600,\n\taogonek: 600,\n\tUacute: 600,\n\tuogonek: 600,\n\tEdieresis: 600,\n\tDcroat: 600,\n\tcommaaccent: 600,\n\tcopyright: 600,\n\tEmacron: 600,\n\tccaron: 600,\n\taring: 600,\n\tNcommaaccent: 600,\n\tlacute: 600,\n\tagrave: 600,\n\tTcommaaccent: 600,\n\tCacute: 600,\n\tatilde: 600,\n\tEdotaccent: 600,\n\tscaron: 600,\n\tscedilla: 600,\n\tiacute: 600,\n\tlozenge: 600,\n\tRcaron: 600,\n\tGcommaaccent: 600,\n\tucircumflex: 600,\n\tacircumflex: 600,\n\tAmacron: 600,\n\trcaron: 600,\n\tccedilla: 600,\n\tZdotaccent: 600,\n\tThorn: 600,\n\tOmacron: 600,\n\tRacute: 600,\n\tSacute: 600,\n\tdcaron: 600,\n\tUmacron: 600,\n\turing: 600,\n\tthreesuperior: 600,\n\tOgrave: 600,\n\tAgrave: 600,\n\tAbreve: 600,\n\tmultiply: 600,\n\tuacute: 600,\n\tTcaron: 600,\n\tpartialdiff: 600,\n\tydieresis: 600,\n\tNacute: 600,\n\ticircumflex: 600,\n\tEcircumflex: 600,\n\tadieresis: 600,\n\tedieresis: 600,\n\tcacute: 600,\n\tnacute: 600,\n\tumacron: 600,\n\tNcaron: 600,\n\tIacute: 600,\n\tplusminus: 600,\n\tbrokenbar: 600,\n\tregistered: 600,\n\tGbreve: 600,\n\tIdotaccent: 600,\n\tsummation: 600,\n\tEgrave: 600,\n\tracute: 600,\n\tomacron: 600,\n\tZacute: 600,\n\tZcaron: 600,\n\tgreaterequal: 600,\n\tEth: 600,\n\tCcedilla: 600,\n\tlcommaaccent: 600,\n\ttcaron: 600,\n\teogonek: 600,\n\tUogonek: 600,\n\tAacute: 600,\n\tAdieresis: 600,\n\tegrave: 600,\n\tzacute: 600,\n\tiogonek: 600,\n\tOacute: 600,\n\toacute: 600,\n\tamacron: 600,\n\tsacute: 600,\n\tidieresis: 600,\n\tOcircumflex: 600,\n\tUgrave: 600,\n\tDelta: 600,\n\tthorn: 600,\n\ttwosuperior: 600,\n\tOdieresis: 600,\n\tmu: 600,\n\tigrave: 600,\n\tohungarumlaut: 600,\n\tEogonek: 600,\n\tdcroat: 600,\n\tthreequarters: 600,\n\tScedilla: 600,\n\tlcaron: 600,\n\tKcommaaccent: 600,\n\tLacute: 600,\n\ttrademark: 600,\n\tedotaccent: 600,\n\tIgrave: 600,\n\tImacron: 600,\n\tLcaron: 600,\n\tonehalf: 600,\n\tlessequal: 600,\n\tocircumflex: 600,\n\tntilde: 600,\n\tUhungarumlaut: 600,\n\tEacute: 600,\n\temacron: 600,\n\tgbreve: 600,\n\tonequarter: 600,\n\tScaron: 600,\n\tScommaaccent: 600,\n\tOhungarumlaut: 600,\n\tdegree: 600,\n\tograve: 600,\n\tCcaron: 600,\n\tugrave: 600,\n\tradical: 600,\n\tDcaron: 600,\n\trcommaaccent: 600,\n\tNtilde: 600,\n\totilde: 600,\n\tRcommaaccent: 600,\n\tLcommaaccent: 600,\n\tAtilde: 600,\n\tAogonek: 600,\n\tAring: 600,\n\tOtilde: 600,\n\tzdotaccent: 600,\n\tEcaron: 600,\n\tIogonek: 600,\n\tkcommaaccent: 600,\n\tminus: 600,\n\tIcircumflex: 600,\n\tncaron: 600,\n\ttcommaaccent: 600,\n\tlogicalnot: 600,\n\todieresis: 600,\n\tudieresis: 600,\n\tnotequal: 600,\n\tgcommaaccent: 600,\n\teth: 600,\n\tzcaron: 600,\n\tncommaaccent: 600,\n\tonesuperior: 600,\n\timacron: 600,\n\tEuro: 600\n};\nvar kernPairs$7 = {\n};\nvar CourierBold = {\n\tattributes: attributes$7,\n\tglyphWidths: glyphWidths$7,\n\tkernPairs: kernPairs$7\n};\n\nvar attributes$6 = {\n\tComment: [\n\t\t\"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Thu May 1 17:37:52 1997\",\n\t\t\"UniqueID 43051\",\n\t\t\"VMusage 16248 75829\"\n\t],\n\tFontName: \"Courier-Oblique\",\n\tFullName: \"Courier Oblique\",\n\tFamilyName: \"Courier\",\n\tWeight: \"Medium\",\n\tItalicAngle: \"-12\",\n\tIsFixedPitch: \"true\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-27 -250 849 805 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"003.000\",\n\tNotice: \"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"562\",\n\tXHeight: \"426\",\n\tAscender: \"629\",\n\tDescender: \"-157\",\n\tStdHW: \"51\",\n\tStdVW: \"51\"\n};\nvar glyphWidths$6 = {\n\tspace: 600,\n\texclam: 600,\n\tquotedbl: 600,\n\tnumbersign: 600,\n\tdollar: 600,\n\tpercent: 600,\n\tampersand: 600,\n\tquoteright: 600,\n\tparenleft: 600,\n\tparenright: 600,\n\tasterisk: 600,\n\tplus: 600,\n\tcomma: 600,\n\thyphen: 600,\n\tperiod: 600,\n\tslash: 600,\n\tzero: 600,\n\tone: 600,\n\ttwo: 600,\n\tthree: 600,\n\tfour: 600,\n\tfive: 600,\n\tsix: 600,\n\tseven: 600,\n\teight: 600,\n\tnine: 600,\n\tcolon: 600,\n\tsemicolon: 600,\n\tless: 600,\n\tequal: 600,\n\tgreater: 600,\n\tquestion: 600,\n\tat: 600,\n\tA: 600,\n\tB: 600,\n\tC: 600,\n\tD: 600,\n\tE: 600,\n\tF: 600,\n\tG: 600,\n\tH: 600,\n\tI: 600,\n\tJ: 600,\n\tK: 600,\n\tL: 600,\n\tM: 600,\n\tN: 600,\n\tO: 600,\n\tP: 600,\n\tQ: 600,\n\tR: 600,\n\tS: 600,\n\tT: 600,\n\tU: 600,\n\tV: 600,\n\tW: 600,\n\tX: 600,\n\tY: 600,\n\tZ: 600,\n\tbracketleft: 600,\n\tbackslash: 600,\n\tbracketright: 600,\n\tasciicircum: 600,\n\tunderscore: 600,\n\tquoteleft: 600,\n\ta: 600,\n\tb: 600,\n\tc: 600,\n\td: 600,\n\te: 600,\n\tf: 600,\n\tg: 600,\n\th: 600,\n\ti: 600,\n\tj: 600,\n\tk: 600,\n\tl: 600,\n\tm: 600,\n\tn: 600,\n\to: 600,\n\tp: 600,\n\tq: 600,\n\tr: 600,\n\ts: 600,\n\tt: 600,\n\tu: 600,\n\tv: 600,\n\tw: 600,\n\tx: 600,\n\ty: 600,\n\tz: 600,\n\tbraceleft: 600,\n\tbar: 600,\n\tbraceright: 600,\n\tasciitilde: 600,\n\texclamdown: 600,\n\tcent: 600,\n\tsterling: 600,\n\tfraction: 600,\n\tyen: 600,\n\tflorin: 600,\n\tsection: 600,\n\tcurrency: 600,\n\tquotesingle: 600,\n\tquotedblleft: 600,\n\tguillemotleft: 600,\n\tguilsinglleft: 600,\n\tguilsinglright: 600,\n\tfi: 600,\n\tfl: 600,\n\tendash: 600,\n\tdagger: 600,\n\tdaggerdbl: 600,\n\tperiodcentered: 600,\n\tparagraph: 600,\n\tbullet: 600,\n\tquotesinglbase: 600,\n\tquotedblbase: 600,\n\tquotedblright: 600,\n\tguillemotright: 600,\n\tellipsis: 600,\n\tperthousand: 600,\n\tquestiondown: 600,\n\tgrave: 600,\n\tacute: 600,\n\tcircumflex: 600,\n\ttilde: 600,\n\tmacron: 600,\n\tbreve: 600,\n\tdotaccent: 600,\n\tdieresis: 600,\n\tring: 600,\n\tcedilla: 600,\n\thungarumlaut: 600,\n\togonek: 600,\n\tcaron: 600,\n\temdash: 600,\n\tAE: 600,\n\tordfeminine: 600,\n\tLslash: 600,\n\tOslash: 600,\n\tOE: 600,\n\tordmasculine: 600,\n\tae: 600,\n\tdotlessi: 600,\n\tlslash: 600,\n\toslash: 600,\n\toe: 600,\n\tgermandbls: 600,\n\tIdieresis: 600,\n\teacute: 600,\n\tabreve: 600,\n\tuhungarumlaut: 600,\n\tecaron: 600,\n\tYdieresis: 600,\n\tdivide: 600,\n\tYacute: 600,\n\tAcircumflex: 600,\n\taacute: 600,\n\tUcircumflex: 600,\n\tyacute: 600,\n\tscommaaccent: 600,\n\tecircumflex: 600,\n\tUring: 600,\n\tUdieresis: 600,\n\taogonek: 600,\n\tUacute: 600,\n\tuogonek: 600,\n\tEdieresis: 600,\n\tDcroat: 600,\n\tcommaaccent: 600,\n\tcopyright: 600,\n\tEmacron: 600,\n\tccaron: 600,\n\taring: 600,\n\tNcommaaccent: 600,\n\tlacute: 600,\n\tagrave: 600,\n\tTcommaaccent: 600,\n\tCacute: 600,\n\tatilde: 600,\n\tEdotaccent: 600,\n\tscaron: 600,\n\tscedilla: 600,\n\tiacute: 600,\n\tlozenge: 600,\n\tRcaron: 600,\n\tGcommaaccent: 600,\n\tucircumflex: 600,\n\tacircumflex: 600,\n\tAmacron: 600,\n\trcaron: 600,\n\tccedilla: 600,\n\tZdotaccent: 600,\n\tThorn: 600,\n\tOmacron: 600,\n\tRacute: 600,\n\tSacute: 600,\n\tdcaron: 600,\n\tUmacron: 600,\n\turing: 600,\n\tthreesuperior: 600,\n\tOgrave: 600,\n\tAgrave: 600,\n\tAbreve: 600,\n\tmultiply: 600,\n\tuacute: 600,\n\tTcaron: 600,\n\tpartialdiff: 600,\n\tydieresis: 600,\n\tNacute: 600,\n\ticircumflex: 600,\n\tEcircumflex: 600,\n\tadieresis: 600,\n\tedieresis: 600,\n\tcacute: 600,\n\tnacute: 600,\n\tumacron: 600,\n\tNcaron: 600,\n\tIacute: 600,\n\tplusminus: 600,\n\tbrokenbar: 600,\n\tregistered: 600,\n\tGbreve: 600,\n\tIdotaccent: 600,\n\tsummation: 600,\n\tEgrave: 600,\n\tracute: 600,\n\tomacron: 600,\n\tZacute: 600,\n\tZcaron: 600,\n\tgreaterequal: 600,\n\tEth: 600,\n\tCcedilla: 600,\n\tlcommaaccent: 600,\n\ttcaron: 600,\n\teogonek: 600,\n\tUogonek: 600,\n\tAacute: 600,\n\tAdieresis: 600,\n\tegrave: 600,\n\tzacute: 600,\n\tiogonek: 600,\n\tOacute: 600,\n\toacute: 600,\n\tamacron: 600,\n\tsacute: 600,\n\tidieresis: 600,\n\tOcircumflex: 600,\n\tUgrave: 600,\n\tDelta: 600,\n\tthorn: 600,\n\ttwosuperior: 600,\n\tOdieresis: 600,\n\tmu: 600,\n\tigrave: 600,\n\tohungarumlaut: 600,\n\tEogonek: 600,\n\tdcroat: 600,\n\tthreequarters: 600,\n\tScedilla: 600,\n\tlcaron: 600,\n\tKcommaaccent: 600,\n\tLacute: 600,\n\ttrademark: 600,\n\tedotaccent: 600,\n\tIgrave: 600,\n\tImacron: 600,\n\tLcaron: 600,\n\tonehalf: 600,\n\tlessequal: 600,\n\tocircumflex: 600,\n\tntilde: 600,\n\tUhungarumlaut: 600,\n\tEacute: 600,\n\temacron: 600,\n\tgbreve: 600,\n\tonequarter: 600,\n\tScaron: 600,\n\tScommaaccent: 600,\n\tOhungarumlaut: 600,\n\tdegree: 600,\n\tograve: 600,\n\tCcaron: 600,\n\tugrave: 600,\n\tradical: 600,\n\tDcaron: 600,\n\trcommaaccent: 600,\n\tNtilde: 600,\n\totilde: 600,\n\tRcommaaccent: 600,\n\tLcommaaccent: 600,\n\tAtilde: 600,\n\tAogonek: 600,\n\tAring: 600,\n\tOtilde: 600,\n\tzdotaccent: 600,\n\tEcaron: 600,\n\tIogonek: 600,\n\tkcommaaccent: 600,\n\tminus: 600,\n\tIcircumflex: 600,\n\tncaron: 600,\n\ttcommaaccent: 600,\n\tlogicalnot: 600,\n\todieresis: 600,\n\tudieresis: 600,\n\tnotequal: 600,\n\tgcommaaccent: 600,\n\teth: 600,\n\tzcaron: 600,\n\tncommaaccent: 600,\n\tonesuperior: 600,\n\timacron: 600,\n\tEuro: 600\n};\nvar kernPairs$6 = {\n};\nvar CourierOblique = {\n\tattributes: attributes$6,\n\tglyphWidths: glyphWidths$6,\n\tkernPairs: kernPairs$6\n};\n\nvar attributes$5 = {\n\tComment: [\n\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Thu May 1 12:38:23 1997\",\n\t\t\"UniqueID 43054\",\n\t\t\"VMusage 37069 48094\"\n\t],\n\tFontName: \"Helvetica\",\n\tFullName: \"Helvetica\",\n\tFamilyName: \"Helvetica\",\n\tWeight: \"Medium\",\n\tItalicAngle: \"0\",\n\tIsFixedPitch: \"false\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-166 -225 1000 931 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"002.000\",\n\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"718\",\n\tXHeight: \"523\",\n\tAscender: \"718\",\n\tDescender: \"-207\",\n\tStdHW: \"76\",\n\tStdVW: \"88\"\n};\nvar glyphWidths$5 = {\n\tspace: 278,\n\texclam: 278,\n\tquotedbl: 355,\n\tnumbersign: 556,\n\tdollar: 556,\n\tpercent: 889,\n\tampersand: 667,\n\tquoteright: 222,\n\tparenleft: 333,\n\tparenright: 333,\n\tasterisk: 389,\n\tplus: 584,\n\tcomma: 278,\n\thyphen: 333,\n\tperiod: 278,\n\tslash: 278,\n\tzero: 556,\n\tone: 556,\n\ttwo: 556,\n\tthree: 556,\n\tfour: 556,\n\tfive: 556,\n\tsix: 556,\n\tseven: 556,\n\teight: 556,\n\tnine: 556,\n\tcolon: 278,\n\tsemicolon: 278,\n\tless: 584,\n\tequal: 584,\n\tgreater: 584,\n\tquestion: 556,\n\tat: 1015,\n\tA: 667,\n\tB: 667,\n\tC: 722,\n\tD: 722,\n\tE: 667,\n\tF: 611,\n\tG: 778,\n\tH: 722,\n\tI: 278,\n\tJ: 500,\n\tK: 667,\n\tL: 556,\n\tM: 833,\n\tN: 722,\n\tO: 778,\n\tP: 667,\n\tQ: 778,\n\tR: 722,\n\tS: 667,\n\tT: 611,\n\tU: 722,\n\tV: 667,\n\tW: 944,\n\tX: 667,\n\tY: 667,\n\tZ: 611,\n\tbracketleft: 278,\n\tbackslash: 278,\n\tbracketright: 278,\n\tasciicircum: 469,\n\tunderscore: 556,\n\tquoteleft: 222,\n\ta: 556,\n\tb: 556,\n\tc: 500,\n\td: 556,\n\te: 556,\n\tf: 278,\n\tg: 556,\n\th: 556,\n\ti: 222,\n\tj: 222,\n\tk: 500,\n\tl: 222,\n\tm: 833,\n\tn: 556,\n\to: 556,\n\tp: 556,\n\tq: 556,\n\tr: 333,\n\ts: 500,\n\tt: 278,\n\tu: 556,\n\tv: 500,\n\tw: 722,\n\tx: 500,\n\ty: 500,\n\tz: 500,\n\tbraceleft: 334,\n\tbar: 260,\n\tbraceright: 334,\n\tasciitilde: 584,\n\texclamdown: 333,\n\tcent: 556,\n\tsterling: 556,\n\tfraction: 167,\n\tyen: 556,\n\tflorin: 556,\n\tsection: 556,\n\tcurrency: 556,\n\tquotesingle: 191,\n\tquotedblleft: 333,\n\tguillemotleft: 556,\n\tguilsinglleft: 333,\n\tguilsinglright: 333,\n\tfi: 500,\n\tfl: 500,\n\tendash: 556,\n\tdagger: 556,\n\tdaggerdbl: 556,\n\tperiodcentered: 278,\n\tparagraph: 537,\n\tbullet: 350,\n\tquotesinglbase: 222,\n\tquotedblbase: 333,\n\tquotedblright: 333,\n\tguillemotright: 556,\n\tellipsis: 1000,\n\tperthousand: 1000,\n\tquestiondown: 611,\n\tgrave: 333,\n\tacute: 333,\n\tcircumflex: 333,\n\ttilde: 333,\n\tmacron: 333,\n\tbreve: 333,\n\tdotaccent: 333,\n\tdieresis: 333,\n\tring: 333,\n\tcedilla: 333,\n\thungarumlaut: 333,\n\togonek: 333,\n\tcaron: 333,\n\temdash: 1000,\n\tAE: 1000,\n\tordfeminine: 370,\n\tLslash: 556,\n\tOslash: 778,\n\tOE: 1000,\n\tordmasculine: 365,\n\tae: 889,\n\tdotlessi: 278,\n\tlslash: 222,\n\toslash: 611,\n\toe: 944,\n\tgermandbls: 611,\n\tIdieresis: 278,\n\teacute: 556,\n\tabreve: 556,\n\tuhungarumlaut: 556,\n\tecaron: 556,\n\tYdieresis: 667,\n\tdivide: 584,\n\tYacute: 667,\n\tAcircumflex: 667,\n\taacute: 556,\n\tUcircumflex: 722,\n\tyacute: 500,\n\tscommaaccent: 500,\n\tecircumflex: 556,\n\tUring: 722,\n\tUdieresis: 722,\n\taogonek: 556,\n\tUacute: 722,\n\tuogonek: 556,\n\tEdieresis: 667,\n\tDcroat: 722,\n\tcommaaccent: 250,\n\tcopyright: 737,\n\tEmacron: 667,\n\tccaron: 500,\n\taring: 556,\n\tNcommaaccent: 722,\n\tlacute: 222,\n\tagrave: 556,\n\tTcommaaccent: 611,\n\tCacute: 722,\n\tatilde: 556,\n\tEdotaccent: 667,\n\tscaron: 500,\n\tscedilla: 500,\n\tiacute: 278,\n\tlozenge: 471,\n\tRcaron: 722,\n\tGcommaaccent: 778,\n\tucircumflex: 556,\n\tacircumflex: 556,\n\tAmacron: 667,\n\trcaron: 333,\n\tccedilla: 500,\n\tZdotaccent: 611,\n\tThorn: 667,\n\tOmacron: 778,\n\tRacute: 722,\n\tSacute: 667,\n\tdcaron: 643,\n\tUmacron: 722,\n\turing: 556,\n\tthreesuperior: 333,\n\tOgrave: 778,\n\tAgrave: 667,\n\tAbreve: 667,\n\tmultiply: 584,\n\tuacute: 556,\n\tTcaron: 611,\n\tpartialdiff: 476,\n\tydieresis: 500,\n\tNacute: 722,\n\ticircumflex: 278,\n\tEcircumflex: 667,\n\tadieresis: 556,\n\tedieresis: 556,\n\tcacute: 500,\n\tnacute: 556,\n\tumacron: 556,\n\tNcaron: 722,\n\tIacute: 278,\n\tplusminus: 584,\n\tbrokenbar: 260,\n\tregistered: 737,\n\tGbreve: 778,\n\tIdotaccent: 278,\n\tsummation: 600,\n\tEgrave: 667,\n\tracute: 333,\n\tomacron: 556,\n\tZacute: 611,\n\tZcaron: 611,\n\tgreaterequal: 549,\n\tEth: 722,\n\tCcedilla: 722,\n\tlcommaaccent: 222,\n\ttcaron: 317,\n\teogonek: 556,\n\tUogonek: 722,\n\tAacute: 667,\n\tAdieresis: 667,\n\tegrave: 556,\n\tzacute: 500,\n\tiogonek: 222,\n\tOacute: 778,\n\toacute: 556,\n\tamacron: 556,\n\tsacute: 500,\n\tidieresis: 278,\n\tOcircumflex: 778,\n\tUgrave: 722,\n\tDelta: 612,\n\tthorn: 556,\n\ttwosuperior: 333,\n\tOdieresis: 778,\n\tmu: 556,\n\tigrave: 278,\n\tohungarumlaut: 556,\n\tEogonek: 667,\n\tdcroat: 556,\n\tthreequarters: 834,\n\tScedilla: 667,\n\tlcaron: 299,\n\tKcommaaccent: 667,\n\tLacute: 556,\n\ttrademark: 1000,\n\tedotaccent: 556,\n\tIgrave: 278,\n\tImacron: 278,\n\tLcaron: 556,\n\tonehalf: 834,\n\tlessequal: 549,\n\tocircumflex: 556,\n\tntilde: 556,\n\tUhungarumlaut: 722,\n\tEacute: 667,\n\temacron: 556,\n\tgbreve: 556,\n\tonequarter: 834,\n\tScaron: 667,\n\tScommaaccent: 667,\n\tOhungarumlaut: 778,\n\tdegree: 400,\n\tograve: 556,\n\tCcaron: 722,\n\tugrave: 556,\n\tradical: 453,\n\tDcaron: 722,\n\trcommaaccent: 333,\n\tNtilde: 722,\n\totilde: 556,\n\tRcommaaccent: 722,\n\tLcommaaccent: 556,\n\tAtilde: 667,\n\tAogonek: 667,\n\tAring: 667,\n\tOtilde: 778,\n\tzdotaccent: 500,\n\tEcaron: 667,\n\tIogonek: 278,\n\tkcommaaccent: 500,\n\tminus: 584,\n\tIcircumflex: 278,\n\tncaron: 556,\n\ttcommaaccent: 278,\n\tlogicalnot: 584,\n\todieresis: 556,\n\tudieresis: 556,\n\tnotequal: 549,\n\tgcommaaccent: 556,\n\teth: 556,\n\tzcaron: 500,\n\tncommaaccent: 556,\n\tonesuperior: 333,\n\timacron: 278,\n\tEuro: 556\n};\nvar kernPairs$5 = {\n\t\"A\\u0000C\": -30,\n\t\"A\\u0000Cacute\": -30,\n\t\"A\\u0000Ccaron\": -30,\n\t\"A\\u0000Ccedilla\": -30,\n\t\"A\\u0000G\": -30,\n\t\"A\\u0000Gbreve\": -30,\n\t\"A\\u0000Gcommaaccent\": -30,\n\t\"A\\u0000O\": -30,\n\t\"A\\u0000Oacute\": -30,\n\t\"A\\u0000Ocircumflex\": -30,\n\t\"A\\u0000Odieresis\": -30,\n\t\"A\\u0000Ograve\": -30,\n\t\"A\\u0000Ohungarumlaut\": -30,\n\t\"A\\u0000Omacron\": -30,\n\t\"A\\u0000Oslash\": -30,\n\t\"A\\u0000Otilde\": -30,\n\t\"A\\u0000Q\": -30,\n\t\"A\\u0000T\": -120,\n\t\"A\\u0000Tcaron\": -120,\n\t\"A\\u0000Tcommaaccent\": -120,\n\t\"A\\u0000U\": -50,\n\t\"A\\u0000Uacute\": -50,\n\t\"A\\u0000Ucircumflex\": -50,\n\t\"A\\u0000Udieresis\": -50,\n\t\"A\\u0000Ugrave\": -50,\n\t\"A\\u0000Uhungarumlaut\": -50,\n\t\"A\\u0000Umacron\": -50,\n\t\"A\\u0000Uogonek\": -50,\n\t\"A\\u0000Uring\": -50,\n\t\"A\\u0000V\": -70,\n\t\"A\\u0000W\": -50,\n\t\"A\\u0000Y\": -100,\n\t\"A\\u0000Yacute\": -100,\n\t\"A\\u0000Ydieresis\": -100,\n\t\"A\\u0000u\": -30,\n\t\"A\\u0000uacute\": -30,\n\t\"A\\u0000ucircumflex\": -30,\n\t\"A\\u0000udieresis\": -30,\n\t\"A\\u0000ugrave\": -30,\n\t\"A\\u0000uhungarumlaut\": -30,\n\t\"A\\u0000umacron\": -30,\n\t\"A\\u0000uogonek\": -30,\n\t\"A\\u0000uring\": -30,\n\t\"A\\u0000v\": -40,\n\t\"A\\u0000w\": -40,\n\t\"A\\u0000y\": -40,\n\t\"A\\u0000yacute\": -40,\n\t\"A\\u0000ydieresis\": -40,\n\t\"Aacute\\u0000C\": -30,\n\t\"Aacute\\u0000Cacute\": -30,\n\t\"Aacute\\u0000Ccaron\": -30,\n\t\"Aacute\\u0000Ccedilla\": -30,\n\t\"Aacute\\u0000G\": -30,\n\t\"Aacute\\u0000Gbreve\": -30,\n\t\"Aacute\\u0000Gcommaaccent\": -30,\n\t\"Aacute\\u0000O\": -30,\n\t\"Aacute\\u0000Oacute\": -30,\n\t\"Aacute\\u0000Ocircumflex\": -30,\n\t\"Aacute\\u0000Odieresis\": -30,\n\t\"Aacute\\u0000Ograve\": -30,\n\t\"Aacute\\u0000Ohungarumlaut\": -30,\n\t\"Aacute\\u0000Omacron\": -30,\n\t\"Aacute\\u0000Oslash\": -30,\n\t\"Aacute\\u0000Otilde\": -30,\n\t\"Aacute\\u0000Q\": -30,\n\t\"Aacute\\u0000T\": -120,\n\t\"Aacute\\u0000Tcaron\": -120,\n\t\"Aacute\\u0000Tcommaaccent\": -120,\n\t\"Aacute\\u0000U\": -50,\n\t\"Aacute\\u0000Uacute\": -50,\n\t\"Aacute\\u0000Ucircumflex\": -50,\n\t\"Aacute\\u0000Udieresis\": -50,\n\t\"Aacute\\u0000Ugrave\": -50,\n\t\"Aacute\\u0000Uhungarumlaut\": -50,\n\t\"Aacute\\u0000Umacron\": -50,\n\t\"Aacute\\u0000Uogonek\": -50,\n\t\"Aacute\\u0000Uring\": -50,\n\t\"Aacute\\u0000V\": -70,\n\t\"Aacute\\u0000W\": -50,\n\t\"Aacute\\u0000Y\": -100,\n\t\"Aacute\\u0000Yacute\": -100,\n\t\"Aacute\\u0000Ydieresis\": -100,\n\t\"Aacute\\u0000u\": -30,\n\t\"Aacute\\u0000uacute\": -30,\n\t\"Aacute\\u0000ucircumflex\": -30,\n\t\"Aacute\\u0000udieresis\": -30,\n\t\"Aacute\\u0000ugrave\": -30,\n\t\"Aacute\\u0000uhungarumlaut\": -30,\n\t\"Aacute\\u0000umacron\": -30,\n\t\"Aacute\\u0000uogonek\": -30,\n\t\"Aacute\\u0000uring\": -30,\n\t\"Aacute\\u0000v\": -40,\n\t\"Aacute\\u0000w\": -40,\n\t\"Aacute\\u0000y\": -40,\n\t\"Aacute\\u0000yacute\": -40,\n\t\"Aacute\\u0000ydieresis\": -40,\n\t\"Abreve\\u0000C\": -30,\n\t\"Abreve\\u0000Cacute\": -30,\n\t\"Abreve\\u0000Ccaron\": -30,\n\t\"Abreve\\u0000Ccedilla\": -30,\n\t\"Abreve\\u0000G\": -30,\n\t\"Abreve\\u0000Gbreve\": -30,\n\t\"Abreve\\u0000Gcommaaccent\": -30,\n\t\"Abreve\\u0000O\": -30,\n\t\"Abreve\\u0000Oacute\": -30,\n\t\"Abreve\\u0000Ocircumflex\": -30,\n\t\"Abreve\\u0000Odieresis\": -30,\n\t\"Abreve\\u0000Ograve\": -30,\n\t\"Abreve\\u0000Ohungarumlaut\": -30,\n\t\"Abreve\\u0000Omacron\": -30,\n\t\"Abreve\\u0000Oslash\": -30,\n\t\"Abreve\\u0000Otilde\": -30,\n\t\"Abreve\\u0000Q\": -30,\n\t\"Abreve\\u0000T\": -120,\n\t\"Abreve\\u0000Tcaron\": -120,\n\t\"Abreve\\u0000Tcommaaccent\": -120,\n\t\"Abreve\\u0000U\": -50,\n\t\"Abreve\\u0000Uacute\": -50,\n\t\"Abreve\\u0000Ucircumflex\": -50,\n\t\"Abreve\\u0000Udieresis\": -50,\n\t\"Abreve\\u0000Ugrave\": -50,\n\t\"Abreve\\u0000Uhungarumlaut\": -50,\n\t\"Abreve\\u0000Umacron\": -50,\n\t\"Abreve\\u0000Uogonek\": -50,\n\t\"Abreve\\u0000Uring\": -50,\n\t\"Abreve\\u0000V\": -70,\n\t\"Abreve\\u0000W\": -50,\n\t\"Abreve\\u0000Y\": -100,\n\t\"Abreve\\u0000Yacute\": -100,\n\t\"Abreve\\u0000Ydieresis\": -100,\n\t\"Abreve\\u0000u\": -30,\n\t\"Abreve\\u0000uacute\": -30,\n\t\"Abreve\\u0000ucircumflex\": -30,\n\t\"Abreve\\u0000udieresis\": -30,\n\t\"Abreve\\u0000ugrave\": -30,\n\t\"Abreve\\u0000uhungarumlaut\": -30,\n\t\"Abreve\\u0000umacron\": -30,\n\t\"Abreve\\u0000uogonek\": -30,\n\t\"Abreve\\u0000uring\": -30,\n\t\"Abreve\\u0000v\": -40,\n\t\"Abreve\\u0000w\": -40,\n\t\"Abreve\\u0000y\": -40,\n\t\"Abreve\\u0000yacute\": -40,\n\t\"Abreve\\u0000ydieresis\": -40,\n\t\"Acircumflex\\u0000C\": -30,\n\t\"Acircumflex\\u0000Cacute\": -30,\n\t\"Acircumflex\\u0000Ccaron\": -30,\n\t\"Acircumflex\\u0000Ccedilla\": -30,\n\t\"Acircumflex\\u0000G\": -30,\n\t\"Acircumflex\\u0000Gbreve\": -30,\n\t\"Acircumflex\\u0000Gcommaaccent\": -30,\n\t\"Acircumflex\\u0000O\": -30,\n\t\"Acircumflex\\u0000Oacute\": -30,\n\t\"Acircumflex\\u0000Ocircumflex\": -30,\n\t\"Acircumflex\\u0000Odieresis\": -30,\n\t\"Acircumflex\\u0000Ograve\": -30,\n\t\"Acircumflex\\u0000Ohungarumlaut\": -30,\n\t\"Acircumflex\\u0000Omacron\": -30,\n\t\"Acircumflex\\u0000Oslash\": -30,\n\t\"Acircumflex\\u0000Otilde\": -30,\n\t\"Acircumflex\\u0000Q\": -30,\n\t\"Acircumflex\\u0000T\": -120,\n\t\"Acircumflex\\u0000Tcaron\": -120,\n\t\"Acircumflex\\u0000Tcommaaccent\": -120,\n\t\"Acircumflex\\u0000U\": -50,\n\t\"Acircumflex\\u0000Uacute\": -50,\n\t\"Acircumflex\\u0000Ucircumflex\": -50,\n\t\"Acircumflex\\u0000Udieresis\": -50,\n\t\"Acircumflex\\u0000Ugrave\": -50,\n\t\"Acircumflex\\u0000Uhungarumlaut\": -50,\n\t\"Acircumflex\\u0000Umacron\": -50,\n\t\"Acircumflex\\u0000Uogonek\": -50,\n\t\"Acircumflex\\u0000Uring\": -50,\n\t\"Acircumflex\\u0000V\": -70,\n\t\"Acircumflex\\u0000W\": -50,\n\t\"Acircumflex\\u0000Y\": -100,\n\t\"Acircumflex\\u0000Yacute\": -100,\n\t\"Acircumflex\\u0000Ydieresis\": -100,\n\t\"Acircumflex\\u0000u\": -30,\n\t\"Acircumflex\\u0000uacute\": -30,\n\t\"Acircumflex\\u0000ucircumflex\": -30,\n\t\"Acircumflex\\u0000udieresis\": -30,\n\t\"Acircumflex\\u0000ugrave\": -30,\n\t\"Acircumflex\\u0000uhungarumlaut\": -30,\n\t\"Acircumflex\\u0000umacron\": -30,\n\t\"Acircumflex\\u0000uogonek\": -30,\n\t\"Acircumflex\\u0000uring\": -30,\n\t\"Acircumflex\\u0000v\": -40,\n\t\"Acircumflex\\u0000w\": -40,\n\t\"Acircumflex\\u0000y\": -40,\n\t\"Acircumflex\\u0000yacute\": -40,\n\t\"Acircumflex\\u0000ydieresis\": -40,\n\t\"Adieresis\\u0000C\": -30,\n\t\"Adieresis\\u0000Cacute\": -30,\n\t\"Adieresis\\u0000Ccaron\": -30,\n\t\"Adieresis\\u0000Ccedilla\": -30,\n\t\"Adieresis\\u0000G\": -30,\n\t\"Adieresis\\u0000Gbreve\": -30,\n\t\"Adieresis\\u0000Gcommaaccent\": -30,\n\t\"Adieresis\\u0000O\": -30,\n\t\"Adieresis\\u0000Oacute\": -30,\n\t\"Adieresis\\u0000Ocircumflex\": -30,\n\t\"Adieresis\\u0000Odieresis\": -30,\n\t\"Adieresis\\u0000Ograve\": -30,\n\t\"Adieresis\\u0000Ohungarumlaut\": -30,\n\t\"Adieresis\\u0000Omacron\": -30,\n\t\"Adieresis\\u0000Oslash\": -30,\n\t\"Adieresis\\u0000Otilde\": -30,\n\t\"Adieresis\\u0000Q\": -30,\n\t\"Adieresis\\u0000T\": -120,\n\t\"Adieresis\\u0000Tcaron\": -120,\n\t\"Adieresis\\u0000Tcommaaccent\": -120,\n\t\"Adieresis\\u0000U\": -50,\n\t\"Adieresis\\u0000Uacute\": -50,\n\t\"Adieresis\\u0000Ucircumflex\": -50,\n\t\"Adieresis\\u0000Udieresis\": -50,\n\t\"Adieresis\\u0000Ugrave\": -50,\n\t\"Adieresis\\u0000Uhungarumlaut\": -50,\n\t\"Adieresis\\u0000Umacron\": -50,\n\t\"Adieresis\\u0000Uogonek\": -50,\n\t\"Adieresis\\u0000Uring\": -50,\n\t\"Adieresis\\u0000V\": -70,\n\t\"Adieresis\\u0000W\": -50,\n\t\"Adieresis\\u0000Y\": -100,\n\t\"Adieresis\\u0000Yacute\": -100,\n\t\"Adieresis\\u0000Ydieresis\": -100,\n\t\"Adieresis\\u0000u\": -30,\n\t\"Adieresis\\u0000uacute\": -30,\n\t\"Adieresis\\u0000ucircumflex\": -30,\n\t\"Adieresis\\u0000udieresis\": -30,\n\t\"Adieresis\\u0000ugrave\": -30,\n\t\"Adieresis\\u0000uhungarumlaut\": -30,\n\t\"Adieresis\\u0000umacron\": -30,\n\t\"Adieresis\\u0000uogonek\": -30,\n\t\"Adieresis\\u0000uring\": -30,\n\t\"Adieresis\\u0000v\": -40,\n\t\"Adieresis\\u0000w\": -40,\n\t\"Adieresis\\u0000y\": -40,\n\t\"Adieresis\\u0000yacute\": -40,\n\t\"Adieresis\\u0000ydieresis\": -40,\n\t\"Agrave\\u0000C\": -30,\n\t\"Agrave\\u0000Cacute\": -30,\n\t\"Agrave\\u0000Ccaron\": -30,\n\t\"Agrave\\u0000Ccedilla\": -30,\n\t\"Agrave\\u0000G\": -30,\n\t\"Agrave\\u0000Gbreve\": -30,\n\t\"Agrave\\u0000Gcommaaccent\": -30,\n\t\"Agrave\\u0000O\": -30,\n\t\"Agrave\\u0000Oacute\": -30,\n\t\"Agrave\\u0000Ocircumflex\": -30,\n\t\"Agrave\\u0000Odieresis\": -30,\n\t\"Agrave\\u0000Ograve\": -30,\n\t\"Agrave\\u0000Ohungarumlaut\": -30,\n\t\"Agrave\\u0000Omacron\": -30,\n\t\"Agrave\\u0000Oslash\": -30,\n\t\"Agrave\\u0000Otilde\": -30,\n\t\"Agrave\\u0000Q\": -30,\n\t\"Agrave\\u0000T\": -120,\n\t\"Agrave\\u0000Tcaron\": -120,\n\t\"Agrave\\u0000Tcommaaccent\": -120,\n\t\"Agrave\\u0000U\": -50,\n\t\"Agrave\\u0000Uacute\": -50,\n\t\"Agrave\\u0000Ucircumflex\": -50,\n\t\"Agrave\\u0000Udieresis\": -50,\n\t\"Agrave\\u0000Ugrave\": -50,\n\t\"Agrave\\u0000Uhungarumlaut\": -50,\n\t\"Agrave\\u0000Umacron\": -50,\n\t\"Agrave\\u0000Uogonek\": -50,\n\t\"Agrave\\u0000Uring\": -50,\n\t\"Agrave\\u0000V\": -70,\n\t\"Agrave\\u0000W\": -50,\n\t\"Agrave\\u0000Y\": -100,\n\t\"Agrave\\u0000Yacute\": -100,\n\t\"Agrave\\u0000Ydieresis\": -100,\n\t\"Agrave\\u0000u\": -30,\n\t\"Agrave\\u0000uacute\": -30,\n\t\"Agrave\\u0000ucircumflex\": -30,\n\t\"Agrave\\u0000udieresis\": -30,\n\t\"Agrave\\u0000ugrave\": -30,\n\t\"Agrave\\u0000uhungarumlaut\": -30,\n\t\"Agrave\\u0000umacron\": -30,\n\t\"Agrave\\u0000uogonek\": -30,\n\t\"Agrave\\u0000uring\": -30,\n\t\"Agrave\\u0000v\": -40,\n\t\"Agrave\\u0000w\": -40,\n\t\"Agrave\\u0000y\": -40,\n\t\"Agrave\\u0000yacute\": -40,\n\t\"Agrave\\u0000ydieresis\": -40,\n\t\"Amacron\\u0000C\": -30,\n\t\"Amacron\\u0000Cacute\": -30,\n\t\"Amacron\\u0000Ccaron\": -30,\n\t\"Amacron\\u0000Ccedilla\": -30,\n\t\"Amacron\\u0000G\": -30,\n\t\"Amacron\\u0000Gbreve\": -30,\n\t\"Amacron\\u0000Gcommaaccent\": -30,\n\t\"Amacron\\u0000O\": -30,\n\t\"Amacron\\u0000Oacute\": -30,\n\t\"Amacron\\u0000Ocircumflex\": -30,\n\t\"Amacron\\u0000Odieresis\": -30,\n\t\"Amacron\\u0000Ograve\": -30,\n\t\"Amacron\\u0000Ohungarumlaut\": -30,\n\t\"Amacron\\u0000Omacron\": -30,\n\t\"Amacron\\u0000Oslash\": -30,\n\t\"Amacron\\u0000Otilde\": -30,\n\t\"Amacron\\u0000Q\": -30,\n\t\"Amacron\\u0000T\": -120,\n\t\"Amacron\\u0000Tcaron\": -120,\n\t\"Amacron\\u0000Tcommaaccent\": -120,\n\t\"Amacron\\u0000U\": -50,\n\t\"Amacron\\u0000Uacute\": -50,\n\t\"Amacron\\u0000Ucircumflex\": -50,\n\t\"Amacron\\u0000Udieresis\": -50,\n\t\"Amacron\\u0000Ugrave\": -50,\n\t\"Amacron\\u0000Uhungarumlaut\": -50,\n\t\"Amacron\\u0000Umacron\": -50,\n\t\"Amacron\\u0000Uogonek\": -50,\n\t\"Amacron\\u0000Uring\": -50,\n\t\"Amacron\\u0000V\": -70,\n\t\"Amacron\\u0000W\": -50,\n\t\"Amacron\\u0000Y\": -100,\n\t\"Amacron\\u0000Yacute\": -100,\n\t\"Amacron\\u0000Ydieresis\": -100,\n\t\"Amacron\\u0000u\": -30,\n\t\"Amacron\\u0000uacute\": -30,\n\t\"Amacron\\u0000ucircumflex\": -30,\n\t\"Amacron\\u0000udieresis\": -30,\n\t\"Amacron\\u0000ugrave\": -30,\n\t\"Amacron\\u0000uhungarumlaut\": -30,\n\t\"Amacron\\u0000umacron\": -30,\n\t\"Amacron\\u0000uogonek\": -30,\n\t\"Amacron\\u0000uring\": -30,\n\t\"Amacron\\u0000v\": -40,\n\t\"Amacron\\u0000w\": -40,\n\t\"Amacron\\u0000y\": -40,\n\t\"Amacron\\u0000yacute\": -40,\n\t\"Amacron\\u0000ydieresis\": -40,\n\t\"Aogonek\\u0000C\": -30,\n\t\"Aogonek\\u0000Cacute\": -30,\n\t\"Aogonek\\u0000Ccaron\": -30,\n\t\"Aogonek\\u0000Ccedilla\": -30,\n\t\"Aogonek\\u0000G\": -30,\n\t\"Aogonek\\u0000Gbreve\": -30,\n\t\"Aogonek\\u0000Gcommaaccent\": -30,\n\t\"Aogonek\\u0000O\": -30,\n\t\"Aogonek\\u0000Oacute\": -30,\n\t\"Aogonek\\u0000Ocircumflex\": -30,\n\t\"Aogonek\\u0000Odieresis\": -30,\n\t\"Aogonek\\u0000Ograve\": -30,\n\t\"Aogonek\\u0000Ohungarumlaut\": -30,\n\t\"Aogonek\\u0000Omacron\": -30,\n\t\"Aogonek\\u0000Oslash\": -30,\n\t\"Aogonek\\u0000Otilde\": -30,\n\t\"Aogonek\\u0000Q\": -30,\n\t\"Aogonek\\u0000T\": -120,\n\t\"Aogonek\\u0000Tcaron\": -120,\n\t\"Aogonek\\u0000Tcommaaccent\": -120,\n\t\"Aogonek\\u0000U\": -50,\n\t\"Aogonek\\u0000Uacute\": -50,\n\t\"Aogonek\\u0000Ucircumflex\": -50,\n\t\"Aogonek\\u0000Udieresis\": -50,\n\t\"Aogonek\\u0000Ugrave\": -50,\n\t\"Aogonek\\u0000Uhungarumlaut\": -50,\n\t\"Aogonek\\u0000Umacron\": -50,\n\t\"Aogonek\\u0000Uogonek\": -50,\n\t\"Aogonek\\u0000Uring\": -50,\n\t\"Aogonek\\u0000V\": -70,\n\t\"Aogonek\\u0000W\": -50,\n\t\"Aogonek\\u0000Y\": -100,\n\t\"Aogonek\\u0000Yacute\": -100,\n\t\"Aogonek\\u0000Ydieresis\": -100,\n\t\"Aogonek\\u0000u\": -30,\n\t\"Aogonek\\u0000uacute\": -30,\n\t\"Aogonek\\u0000ucircumflex\": -30,\n\t\"Aogonek\\u0000udieresis\": -30,\n\t\"Aogonek\\u0000ugrave\": -30,\n\t\"Aogonek\\u0000uhungarumlaut\": -30,\n\t\"Aogonek\\u0000umacron\": -30,\n\t\"Aogonek\\u0000uogonek\": -30,\n\t\"Aogonek\\u0000uring\": -30,\n\t\"Aogonek\\u0000v\": -40,\n\t\"Aogonek\\u0000w\": -40,\n\t\"Aogonek\\u0000y\": -40,\n\t\"Aogonek\\u0000yacute\": -40,\n\t\"Aogonek\\u0000ydieresis\": -40,\n\t\"Aring\\u0000C\": -30,\n\t\"Aring\\u0000Cacute\": -30,\n\t\"Aring\\u0000Ccaron\": -30,\n\t\"Aring\\u0000Ccedilla\": -30,\n\t\"Aring\\u0000G\": -30,\n\t\"Aring\\u0000Gbreve\": -30,\n\t\"Aring\\u0000Gcommaaccent\": -30,\n\t\"Aring\\u0000O\": -30,\n\t\"Aring\\u0000Oacute\": -30,\n\t\"Aring\\u0000Ocircumflex\": -30,\n\t\"Aring\\u0000Odieresis\": -30,\n\t\"Aring\\u0000Ograve\": -30,\n\t\"Aring\\u0000Ohungarumlaut\": -30,\n\t\"Aring\\u0000Omacron\": -30,\n\t\"Aring\\u0000Oslash\": -30,\n\t\"Aring\\u0000Otilde\": -30,\n\t\"Aring\\u0000Q\": -30,\n\t\"Aring\\u0000T\": -120,\n\t\"Aring\\u0000Tcaron\": -120,\n\t\"Aring\\u0000Tcommaaccent\": -120,\n\t\"Aring\\u0000U\": -50,\n\t\"Aring\\u0000Uacute\": -50,\n\t\"Aring\\u0000Ucircumflex\": -50,\n\t\"Aring\\u0000Udieresis\": -50,\n\t\"Aring\\u0000Ugrave\": -50,\n\t\"Aring\\u0000Uhungarumlaut\": -50,\n\t\"Aring\\u0000Umacron\": -50,\n\t\"Aring\\u0000Uogonek\": -50,\n\t\"Aring\\u0000Uring\": -50,\n\t\"Aring\\u0000V\": -70,\n\t\"Aring\\u0000W\": -50,\n\t\"Aring\\u0000Y\": -100,\n\t\"Aring\\u0000Yacute\": -100,\n\t\"Aring\\u0000Ydieresis\": -100,\n\t\"Aring\\u0000u\": -30,\n\t\"Aring\\u0000uacute\": -30,\n\t\"Aring\\u0000ucircumflex\": -30,\n\t\"Aring\\u0000udieresis\": -30,\n\t\"Aring\\u0000ugrave\": -30,\n\t\"Aring\\u0000uhungarumlaut\": -30,\n\t\"Aring\\u0000umacron\": -30,\n\t\"Aring\\u0000uogonek\": -30,\n\t\"Aring\\u0000uring\": -30,\n\t\"Aring\\u0000v\": -40,\n\t\"Aring\\u0000w\": -40,\n\t\"Aring\\u0000y\": -40,\n\t\"Aring\\u0000yacute\": -40,\n\t\"Aring\\u0000ydieresis\": -40,\n\t\"Atilde\\u0000C\": -30,\n\t\"Atilde\\u0000Cacute\": -30,\n\t\"Atilde\\u0000Ccaron\": -30,\n\t\"Atilde\\u0000Ccedilla\": -30,\n\t\"Atilde\\u0000G\": -30,\n\t\"Atilde\\u0000Gbreve\": -30,\n\t\"Atilde\\u0000Gcommaaccent\": -30,\n\t\"Atilde\\u0000O\": -30,\n\t\"Atilde\\u0000Oacute\": -30,\n\t\"Atilde\\u0000Ocircumflex\": -30,\n\t\"Atilde\\u0000Odieresis\": -30,\n\t\"Atilde\\u0000Ograve\": -30,\n\t\"Atilde\\u0000Ohungarumlaut\": -30,\n\t\"Atilde\\u0000Omacron\": -30,\n\t\"Atilde\\u0000Oslash\": -30,\n\t\"Atilde\\u0000Otilde\": -30,\n\t\"Atilde\\u0000Q\": -30,\n\t\"Atilde\\u0000T\": -120,\n\t\"Atilde\\u0000Tcaron\": -120,\n\t\"Atilde\\u0000Tcommaaccent\": -120,\n\t\"Atilde\\u0000U\": -50,\n\t\"Atilde\\u0000Uacute\": -50,\n\t\"Atilde\\u0000Ucircumflex\": -50,\n\t\"Atilde\\u0000Udieresis\": -50,\n\t\"Atilde\\u0000Ugrave\": -50,\n\t\"Atilde\\u0000Uhungarumlaut\": -50,\n\t\"Atilde\\u0000Umacron\": -50,\n\t\"Atilde\\u0000Uogonek\": -50,\n\t\"Atilde\\u0000Uring\": -50,\n\t\"Atilde\\u0000V\": -70,\n\t\"Atilde\\u0000W\": -50,\n\t\"Atilde\\u0000Y\": -100,\n\t\"Atilde\\u0000Yacute\": -100,\n\t\"Atilde\\u0000Ydieresis\": -100,\n\t\"Atilde\\u0000u\": -30,\n\t\"Atilde\\u0000uacute\": -30,\n\t\"Atilde\\u0000ucircumflex\": -30,\n\t\"Atilde\\u0000udieresis\": -30,\n\t\"Atilde\\u0000ugrave\": -30,\n\t\"Atilde\\u0000uhungarumlaut\": -30,\n\t\"Atilde\\u0000umacron\": -30,\n\t\"Atilde\\u0000uogonek\": -30,\n\t\"Atilde\\u0000uring\": -30,\n\t\"Atilde\\u0000v\": -40,\n\t\"Atilde\\u0000w\": -40,\n\t\"Atilde\\u0000y\": -40,\n\t\"Atilde\\u0000yacute\": -40,\n\t\"Atilde\\u0000ydieresis\": -40,\n\t\"B\\u0000U\": -10,\n\t\"B\\u0000Uacute\": -10,\n\t\"B\\u0000Ucircumflex\": -10,\n\t\"B\\u0000Udieresis\": -10,\n\t\"B\\u0000Ugrave\": -10,\n\t\"B\\u0000Uhungarumlaut\": -10,\n\t\"B\\u0000Umacron\": -10,\n\t\"B\\u0000Uogonek\": -10,\n\t\"B\\u0000Uring\": -10,\n\t\"B\\u0000comma\": -20,\n\t\"B\\u0000period\": -20,\n\t\"C\\u0000comma\": -30,\n\t\"C\\u0000period\": -30,\n\t\"Cacute\\u0000comma\": -30,\n\t\"Cacute\\u0000period\": -30,\n\t\"Ccaron\\u0000comma\": -30,\n\t\"Ccaron\\u0000period\": -30,\n\t\"Ccedilla\\u0000comma\": -30,\n\t\"Ccedilla\\u0000period\": -30,\n\t\"D\\u0000A\": -40,\n\t\"D\\u0000Aacute\": -40,\n\t\"D\\u0000Abreve\": -40,\n\t\"D\\u0000Acircumflex\": -40,\n\t\"D\\u0000Adieresis\": -40,\n\t\"D\\u0000Agrave\": -40,\n\t\"D\\u0000Amacron\": -40,\n\t\"D\\u0000Aogonek\": -40,\n\t\"D\\u0000Aring\": -40,\n\t\"D\\u0000Atilde\": -40,\n\t\"D\\u0000V\": -70,\n\t\"D\\u0000W\": -40,\n\t\"D\\u0000Y\": -90,\n\t\"D\\u0000Yacute\": -90,\n\t\"D\\u0000Ydieresis\": -90,\n\t\"D\\u0000comma\": -70,\n\t\"D\\u0000period\": -70,\n\t\"Dcaron\\u0000A\": -40,\n\t\"Dcaron\\u0000Aacute\": -40,\n\t\"Dcaron\\u0000Abreve\": -40,\n\t\"Dcaron\\u0000Acircumflex\": -40,\n\t\"Dcaron\\u0000Adieresis\": -40,\n\t\"Dcaron\\u0000Agrave\": -40,\n\t\"Dcaron\\u0000Amacron\": -40,\n\t\"Dcaron\\u0000Aogonek\": -40,\n\t\"Dcaron\\u0000Aring\": -40,\n\t\"Dcaron\\u0000Atilde\": -40,\n\t\"Dcaron\\u0000V\": -70,\n\t\"Dcaron\\u0000W\": -40,\n\t\"Dcaron\\u0000Y\": -90,\n\t\"Dcaron\\u0000Yacute\": -90,\n\t\"Dcaron\\u0000Ydieresis\": -90,\n\t\"Dcaron\\u0000comma\": -70,\n\t\"Dcaron\\u0000period\": -70,\n\t\"Dcroat\\u0000A\": -40,\n\t\"Dcroat\\u0000Aacute\": -40,\n\t\"Dcroat\\u0000Abreve\": -40,\n\t\"Dcroat\\u0000Acircumflex\": -40,\n\t\"Dcroat\\u0000Adieresis\": -40,\n\t\"Dcroat\\u0000Agrave\": -40,\n\t\"Dcroat\\u0000Amacron\": -40,\n\t\"Dcroat\\u0000Aogonek\": -40,\n\t\"Dcroat\\u0000Aring\": -40,\n\t\"Dcroat\\u0000Atilde\": -40,\n\t\"Dcroat\\u0000V\": -70,\n\t\"Dcroat\\u0000W\": -40,\n\t\"Dcroat\\u0000Y\": -90,\n\t\"Dcroat\\u0000Yacute\": -90,\n\t\"Dcroat\\u0000Ydieresis\": -90,\n\t\"Dcroat\\u0000comma\": -70,\n\t\"Dcroat\\u0000period\": -70,\n\t\"F\\u0000A\": -80,\n\t\"F\\u0000Aacute\": -80,\n\t\"F\\u0000Abreve\": -80,\n\t\"F\\u0000Acircumflex\": -80,\n\t\"F\\u0000Adieresis\": -80,\n\t\"F\\u0000Agrave\": -80,\n\t\"F\\u0000Amacron\": -80,\n\t\"F\\u0000Aogonek\": -80,\n\t\"F\\u0000Aring\": -80,\n\t\"F\\u0000Atilde\": -80,\n\t\"F\\u0000a\": -50,\n\t\"F\\u0000aacute\": -50,\n\t\"F\\u0000abreve\": -50,\n\t\"F\\u0000acircumflex\": -50,\n\t\"F\\u0000adieresis\": -50,\n\t\"F\\u0000agrave\": -50,\n\t\"F\\u0000amacron\": -50,\n\t\"F\\u0000aogonek\": -50,\n\t\"F\\u0000aring\": -50,\n\t\"F\\u0000atilde\": -50,\n\t\"F\\u0000comma\": -150,\n\t\"F\\u0000e\": -30,\n\t\"F\\u0000eacute\": -30,\n\t\"F\\u0000ecaron\": -30,\n\t\"F\\u0000ecircumflex\": -30,\n\t\"F\\u0000edieresis\": -30,\n\t\"F\\u0000edotaccent\": -30,\n\t\"F\\u0000egrave\": -30,\n\t\"F\\u0000emacron\": -30,\n\t\"F\\u0000eogonek\": -30,\n\t\"F\\u0000o\": -30,\n\t\"F\\u0000oacute\": -30,\n\t\"F\\u0000ocircumflex\": -30,\n\t\"F\\u0000odieresis\": -30,\n\t\"F\\u0000ograve\": -30,\n\t\"F\\u0000ohungarumlaut\": -30,\n\t\"F\\u0000omacron\": -30,\n\t\"F\\u0000oslash\": -30,\n\t\"F\\u0000otilde\": -30,\n\t\"F\\u0000period\": -150,\n\t\"F\\u0000r\": -45,\n\t\"F\\u0000racute\": -45,\n\t\"F\\u0000rcaron\": -45,\n\t\"F\\u0000rcommaaccent\": -45,\n\t\"J\\u0000A\": -20,\n\t\"J\\u0000Aacute\": -20,\n\t\"J\\u0000Abreve\": -20,\n\t\"J\\u0000Acircumflex\": -20,\n\t\"J\\u0000Adieresis\": -20,\n\t\"J\\u0000Agrave\": -20,\n\t\"J\\u0000Amacron\": -20,\n\t\"J\\u0000Aogonek\": -20,\n\t\"J\\u0000Aring\": -20,\n\t\"J\\u0000Atilde\": -20,\n\t\"J\\u0000a\": -20,\n\t\"J\\u0000aacute\": -20,\n\t\"J\\u0000abreve\": -20,\n\t\"J\\u0000acircumflex\": -20,\n\t\"J\\u0000adieresis\": -20,\n\t\"J\\u0000agrave\": -20,\n\t\"J\\u0000amacron\": -20,\n\t\"J\\u0000aogonek\": -20,\n\t\"J\\u0000aring\": -20,\n\t\"J\\u0000atilde\": -20,\n\t\"J\\u0000comma\": -30,\n\t\"J\\u0000period\": -30,\n\t\"J\\u0000u\": -20,\n\t\"J\\u0000uacute\": -20,\n\t\"J\\u0000ucircumflex\": -20,\n\t\"J\\u0000udieresis\": -20,\n\t\"J\\u0000ugrave\": -20,\n\t\"J\\u0000uhungarumlaut\": -20,\n\t\"J\\u0000umacron\": -20,\n\t\"J\\u0000uogonek\": -20,\n\t\"J\\u0000uring\": -20,\n\t\"K\\u0000O\": -50,\n\t\"K\\u0000Oacute\": -50,\n\t\"K\\u0000Ocircumflex\": -50,\n\t\"K\\u0000Odieresis\": -50,\n\t\"K\\u0000Ograve\": -50,\n\t\"K\\u0000Ohungarumlaut\": -50,\n\t\"K\\u0000Omacron\": -50,\n\t\"K\\u0000Oslash\": -50,\n\t\"K\\u0000Otilde\": -50,\n\t\"K\\u0000e\": -40,\n\t\"K\\u0000eacute\": -40,\n\t\"K\\u0000ecaron\": -40,\n\t\"K\\u0000ecircumflex\": -40,\n\t\"K\\u0000edieresis\": -40,\n\t\"K\\u0000edotaccent\": -40,\n\t\"K\\u0000egrave\": -40,\n\t\"K\\u0000emacron\": -40,\n\t\"K\\u0000eogonek\": -40,\n\t\"K\\u0000o\": -40,\n\t\"K\\u0000oacute\": -40,\n\t\"K\\u0000ocircumflex\": -40,\n\t\"K\\u0000odieresis\": -40,\n\t\"K\\u0000ograve\": -40,\n\t\"K\\u0000ohungarumlaut\": -40,\n\t\"K\\u0000omacron\": -40,\n\t\"K\\u0000oslash\": -40,\n\t\"K\\u0000otilde\": -40,\n\t\"K\\u0000u\": -30,\n\t\"K\\u0000uacute\": -30,\n\t\"K\\u0000ucircumflex\": -30,\n\t\"K\\u0000udieresis\": -30,\n\t\"K\\u0000ugrave\": -30,\n\t\"K\\u0000uhungarumlaut\": -30,\n\t\"K\\u0000umacron\": -30,\n\t\"K\\u0000uogonek\": -30,\n\t\"K\\u0000uring\": -30,\n\t\"K\\u0000y\": -50,\n\t\"K\\u0000yacute\": -50,\n\t\"K\\u0000ydieresis\": -50,\n\t\"Kcommaaccent\\u0000O\": -50,\n\t\"Kcommaaccent\\u0000Oacute\": -50,\n\t\"Kcommaaccent\\u0000Ocircumflex\": -50,\n\t\"Kcommaaccent\\u0000Odieresis\": -50,\n\t\"Kcommaaccent\\u0000Ograve\": -50,\n\t\"Kcommaaccent\\u0000Ohungarumlaut\": -50,\n\t\"Kcommaaccent\\u0000Omacron\": -50,\n\t\"Kcommaaccent\\u0000Oslash\": -50,\n\t\"Kcommaaccent\\u0000Otilde\": -50,\n\t\"Kcommaaccent\\u0000e\": -40,\n\t\"Kcommaaccent\\u0000eacute\": -40,\n\t\"Kcommaaccent\\u0000ecaron\": -40,\n\t\"Kcommaaccent\\u0000ecircumflex\": -40,\n\t\"Kcommaaccent\\u0000edieresis\": -40,\n\t\"Kcommaaccent\\u0000edotaccent\": -40,\n\t\"Kcommaaccent\\u0000egrave\": -40,\n\t\"Kcommaaccent\\u0000emacron\": -40,\n\t\"Kcommaaccent\\u0000eogonek\": -40,\n\t\"Kcommaaccent\\u0000o\": -40,\n\t\"Kcommaaccent\\u0000oacute\": -40,\n\t\"Kcommaaccent\\u0000ocircumflex\": -40,\n\t\"Kcommaaccent\\u0000odieresis\": -40,\n\t\"Kcommaaccent\\u0000ograve\": -40,\n\t\"Kcommaaccent\\u0000ohungarumlaut\": -40,\n\t\"Kcommaaccent\\u0000omacron\": -40,\n\t\"Kcommaaccent\\u0000oslash\": -40,\n\t\"Kcommaaccent\\u0000otilde\": -40,\n\t\"Kcommaaccent\\u0000u\": -30,\n\t\"Kcommaaccent\\u0000uacute\": -30,\n\t\"Kcommaaccent\\u0000ucircumflex\": -30,\n\t\"Kcommaaccent\\u0000udieresis\": -30,\n\t\"Kcommaaccent\\u0000ugrave\": -30,\n\t\"Kcommaaccent\\u0000uhungarumlaut\": -30,\n\t\"Kcommaaccent\\u0000umacron\": -30,\n\t\"Kcommaaccent\\u0000uogonek\": -30,\n\t\"Kcommaaccent\\u0000uring\": -30,\n\t\"Kcommaaccent\\u0000y\": -50,\n\t\"Kcommaaccent\\u0000yacute\": -50,\n\t\"Kcommaaccent\\u0000ydieresis\": -50,\n\t\"L\\u0000T\": -110,\n\t\"L\\u0000Tcaron\": -110,\n\t\"L\\u0000Tcommaaccent\": -110,\n\t\"L\\u0000V\": -110,\n\t\"L\\u0000W\": -70,\n\t\"L\\u0000Y\": -140,\n\t\"L\\u0000Yacute\": -140,\n\t\"L\\u0000Ydieresis\": -140,\n\t\"L\\u0000quotedblright\": -140,\n\t\"L\\u0000quoteright\": -160,\n\t\"L\\u0000y\": -30,\n\t\"L\\u0000yacute\": -30,\n\t\"L\\u0000ydieresis\": -30,\n\t\"Lacute\\u0000T\": -110,\n\t\"Lacute\\u0000Tcaron\": -110,\n\t\"Lacute\\u0000Tcommaaccent\": -110,\n\t\"Lacute\\u0000V\": -110,\n\t\"Lacute\\u0000W\": -70,\n\t\"Lacute\\u0000Y\": -140,\n\t\"Lacute\\u0000Yacute\": -140,\n\t\"Lacute\\u0000Ydieresis\": -140,\n\t\"Lacute\\u0000quotedblright\": -140,\n\t\"Lacute\\u0000quoteright\": -160,\n\t\"Lacute\\u0000y\": -30,\n\t\"Lacute\\u0000yacute\": -30,\n\t\"Lacute\\u0000ydieresis\": -30,\n\t\"Lcaron\\u0000T\": -110,\n\t\"Lcaron\\u0000Tcaron\": -110,\n\t\"Lcaron\\u0000Tcommaaccent\": -110,\n\t\"Lcaron\\u0000V\": -110,\n\t\"Lcaron\\u0000W\": -70,\n\t\"Lcaron\\u0000Y\": -140,\n\t\"Lcaron\\u0000Yacute\": -140,\n\t\"Lcaron\\u0000Ydieresis\": -140,\n\t\"Lcaron\\u0000quotedblright\": -140,\n\t\"Lcaron\\u0000quoteright\": -160,\n\t\"Lcaron\\u0000y\": -30,\n\t\"Lcaron\\u0000yacute\": -30,\n\t\"Lcaron\\u0000ydieresis\": -30,\n\t\"Lcommaaccent\\u0000T\": -110,\n\t\"Lcommaaccent\\u0000Tcaron\": -110,\n\t\"Lcommaaccent\\u0000Tcommaaccent\": -110,\n\t\"Lcommaaccent\\u0000V\": -110,\n\t\"Lcommaaccent\\u0000W\": -70,\n\t\"Lcommaaccent\\u0000Y\": -140,\n\t\"Lcommaaccent\\u0000Yacute\": -140,\n\t\"Lcommaaccent\\u0000Ydieresis\": -140,\n\t\"Lcommaaccent\\u0000quotedblright\": -140,\n\t\"Lcommaaccent\\u0000quoteright\": -160,\n\t\"Lcommaaccent\\u0000y\": -30,\n\t\"Lcommaaccent\\u0000yacute\": -30,\n\t\"Lcommaaccent\\u0000ydieresis\": -30,\n\t\"Lslash\\u0000T\": -110,\n\t\"Lslash\\u0000Tcaron\": -110,\n\t\"Lslash\\u0000Tcommaaccent\": -110,\n\t\"Lslash\\u0000V\": -110,\n\t\"Lslash\\u0000W\": -70,\n\t\"Lslash\\u0000Y\": -140,\n\t\"Lslash\\u0000Yacute\": -140,\n\t\"Lslash\\u0000Ydieresis\": -140,\n\t\"Lslash\\u0000quotedblright\": -140,\n\t\"Lslash\\u0000quoteright\": -160,\n\t\"Lslash\\u0000y\": -30,\n\t\"Lslash\\u0000yacute\": -30,\n\t\"Lslash\\u0000ydieresis\": -30,\n\t\"O\\u0000A\": -20,\n\t\"O\\u0000Aacute\": -20,\n\t\"O\\u0000Abreve\": -20,\n\t\"O\\u0000Acircumflex\": -20,\n\t\"O\\u0000Adieresis\": -20,\n\t\"O\\u0000Agrave\": -20,\n\t\"O\\u0000Amacron\": -20,\n\t\"O\\u0000Aogonek\": -20,\n\t\"O\\u0000Aring\": -20,\n\t\"O\\u0000Atilde\": -20,\n\t\"O\\u0000T\": -40,\n\t\"O\\u0000Tcaron\": -40,\n\t\"O\\u0000Tcommaaccent\": -40,\n\t\"O\\u0000V\": -50,\n\t\"O\\u0000W\": -30,\n\t\"O\\u0000X\": -60,\n\t\"O\\u0000Y\": -70,\n\t\"O\\u0000Yacute\": -70,\n\t\"O\\u0000Ydieresis\": -70,\n\t\"O\\u0000comma\": -40,\n\t\"O\\u0000period\": -40,\n\t\"Oacute\\u0000A\": -20,\n\t\"Oacute\\u0000Aacute\": -20,\n\t\"Oacute\\u0000Abreve\": -20,\n\t\"Oacute\\u0000Acircumflex\": -20,\n\t\"Oacute\\u0000Adieresis\": -20,\n\t\"Oacute\\u0000Agrave\": -20,\n\t\"Oacute\\u0000Amacron\": -20,\n\t\"Oacute\\u0000Aogonek\": -20,\n\t\"Oacute\\u0000Aring\": -20,\n\t\"Oacute\\u0000Atilde\": -20,\n\t\"Oacute\\u0000T\": -40,\n\t\"Oacute\\u0000Tcaron\": -40,\n\t\"Oacute\\u0000Tcommaaccent\": -40,\n\t\"Oacute\\u0000V\": -50,\n\t\"Oacute\\u0000W\": -30,\n\t\"Oacute\\u0000X\": -60,\n\t\"Oacute\\u0000Y\": -70,\n\t\"Oacute\\u0000Yacute\": -70,\n\t\"Oacute\\u0000Ydieresis\": -70,\n\t\"Oacute\\u0000comma\": -40,\n\t\"Oacute\\u0000period\": -40,\n\t\"Ocircumflex\\u0000A\": -20,\n\t\"Ocircumflex\\u0000Aacute\": -20,\n\t\"Ocircumflex\\u0000Abreve\": -20,\n\t\"Ocircumflex\\u0000Acircumflex\": -20,\n\t\"Ocircumflex\\u0000Adieresis\": -20,\n\t\"Ocircumflex\\u0000Agrave\": -20,\n\t\"Ocircumflex\\u0000Amacron\": -20,\n\t\"Ocircumflex\\u0000Aogonek\": -20,\n\t\"Ocircumflex\\u0000Aring\": -20,\n\t\"Ocircumflex\\u0000Atilde\": -20,\n\t\"Ocircumflex\\u0000T\": -40,\n\t\"Ocircumflex\\u0000Tcaron\": -40,\n\t\"Ocircumflex\\u0000Tcommaaccent\": -40,\n\t\"Ocircumflex\\u0000V\": -50,\n\t\"Ocircumflex\\u0000W\": -30,\n\t\"Ocircumflex\\u0000X\": -60,\n\t\"Ocircumflex\\u0000Y\": -70,\n\t\"Ocircumflex\\u0000Yacute\": -70,\n\t\"Ocircumflex\\u0000Ydieresis\": -70,\n\t\"Ocircumflex\\u0000comma\": -40,\n\t\"Ocircumflex\\u0000period\": -40,\n\t\"Odieresis\\u0000A\": -20,\n\t\"Odieresis\\u0000Aacute\": -20,\n\t\"Odieresis\\u0000Abreve\": -20,\n\t\"Odieresis\\u0000Acircumflex\": -20,\n\t\"Odieresis\\u0000Adieresis\": -20,\n\t\"Odieresis\\u0000Agrave\": -20,\n\t\"Odieresis\\u0000Amacron\": -20,\n\t\"Odieresis\\u0000Aogonek\": -20,\n\t\"Odieresis\\u0000Aring\": -20,\n\t\"Odieresis\\u0000Atilde\": -20,\n\t\"Odieresis\\u0000T\": -40,\n\t\"Odieresis\\u0000Tcaron\": -40,\n\t\"Odieresis\\u0000Tcommaaccent\": -40,\n\t\"Odieresis\\u0000V\": -50,\n\t\"Odieresis\\u0000W\": -30,\n\t\"Odieresis\\u0000X\": -60,\n\t\"Odieresis\\u0000Y\": -70,\n\t\"Odieresis\\u0000Yacute\": -70,\n\t\"Odieresis\\u0000Ydieresis\": -70,\n\t\"Odieresis\\u0000comma\": -40,\n\t\"Odieresis\\u0000period\": -40,\n\t\"Ograve\\u0000A\": -20,\n\t\"Ograve\\u0000Aacute\": -20,\n\t\"Ograve\\u0000Abreve\": -20,\n\t\"Ograve\\u0000Acircumflex\": -20,\n\t\"Ograve\\u0000Adieresis\": -20,\n\t\"Ograve\\u0000Agrave\": -20,\n\t\"Ograve\\u0000Amacron\": -20,\n\t\"Ograve\\u0000Aogonek\": -20,\n\t\"Ograve\\u0000Aring\": -20,\n\t\"Ograve\\u0000Atilde\": -20,\n\t\"Ograve\\u0000T\": -40,\n\t\"Ograve\\u0000Tcaron\": -40,\n\t\"Ograve\\u0000Tcommaaccent\": -40,\n\t\"Ograve\\u0000V\": -50,\n\t\"Ograve\\u0000W\": -30,\n\t\"Ograve\\u0000X\": -60,\n\t\"Ograve\\u0000Y\": -70,\n\t\"Ograve\\u0000Yacute\": -70,\n\t\"Ograve\\u0000Ydieresis\": -70,\n\t\"Ograve\\u0000comma\": -40,\n\t\"Ograve\\u0000period\": -40,\n\t\"Ohungarumlaut\\u0000A\": -20,\n\t\"Ohungarumlaut\\u0000Aacute\": -20,\n\t\"Ohungarumlaut\\u0000Abreve\": -20,\n\t\"Ohungarumlaut\\u0000Acircumflex\": -20,\n\t\"Ohungarumlaut\\u0000Adieresis\": -20,\n\t\"Ohungarumlaut\\u0000Agrave\": -20,\n\t\"Ohungarumlaut\\u0000Amacron\": -20,\n\t\"Ohungarumlaut\\u0000Aogonek\": -20,\n\t\"Ohungarumlaut\\u0000Aring\": -20,\n\t\"Ohungarumlaut\\u0000Atilde\": -20,\n\t\"Ohungarumlaut\\u0000T\": -40,\n\t\"Ohungarumlaut\\u0000Tcaron\": -40,\n\t\"Ohungarumlaut\\u0000Tcommaaccent\": -40,\n\t\"Ohungarumlaut\\u0000V\": -50,\n\t\"Ohungarumlaut\\u0000W\": -30,\n\t\"Ohungarumlaut\\u0000X\": -60,\n\t\"Ohungarumlaut\\u0000Y\": -70,\n\t\"Ohungarumlaut\\u0000Yacute\": -70,\n\t\"Ohungarumlaut\\u0000Ydieresis\": -70,\n\t\"Ohungarumlaut\\u0000comma\": -40,\n\t\"Ohungarumlaut\\u0000period\": -40,\n\t\"Omacron\\u0000A\": -20,\n\t\"Omacron\\u0000Aacute\": -20,\n\t\"Omacron\\u0000Abreve\": -20,\n\t\"Omacron\\u0000Acircumflex\": -20,\n\t\"Omacron\\u0000Adieresis\": -20,\n\t\"Omacron\\u0000Agrave\": -20,\n\t\"Omacron\\u0000Amacron\": -20,\n\t\"Omacron\\u0000Aogonek\": -20,\n\t\"Omacron\\u0000Aring\": -20,\n\t\"Omacron\\u0000Atilde\": -20,\n\t\"Omacron\\u0000T\": -40,\n\t\"Omacron\\u0000Tcaron\": -40,\n\t\"Omacron\\u0000Tcommaaccent\": -40,\n\t\"Omacron\\u0000V\": -50,\n\t\"Omacron\\u0000W\": -30,\n\t\"Omacron\\u0000X\": -60,\n\t\"Omacron\\u0000Y\": -70,\n\t\"Omacron\\u0000Yacute\": -70,\n\t\"Omacron\\u0000Ydieresis\": -70,\n\t\"Omacron\\u0000comma\": -40,\n\t\"Omacron\\u0000period\": -40,\n\t\"Oslash\\u0000A\": -20,\n\t\"Oslash\\u0000Aacute\": -20,\n\t\"Oslash\\u0000Abreve\": -20,\n\t\"Oslash\\u0000Acircumflex\": -20,\n\t\"Oslash\\u0000Adieresis\": -20,\n\t\"Oslash\\u0000Agrave\": -20,\n\t\"Oslash\\u0000Amacron\": -20,\n\t\"Oslash\\u0000Aogonek\": -20,\n\t\"Oslash\\u0000Aring\": -20,\n\t\"Oslash\\u0000Atilde\": -20,\n\t\"Oslash\\u0000T\": -40,\n\t\"Oslash\\u0000Tcaron\": -40,\n\t\"Oslash\\u0000Tcommaaccent\": -40,\n\t\"Oslash\\u0000V\": -50,\n\t\"Oslash\\u0000W\": -30,\n\t\"Oslash\\u0000X\": -60,\n\t\"Oslash\\u0000Y\": -70,\n\t\"Oslash\\u0000Yacute\": -70,\n\t\"Oslash\\u0000Ydieresis\": -70,\n\t\"Oslash\\u0000comma\": -40,\n\t\"Oslash\\u0000period\": -40,\n\t\"Otilde\\u0000A\": -20,\n\t\"Otilde\\u0000Aacute\": -20,\n\t\"Otilde\\u0000Abreve\": -20,\n\t\"Otilde\\u0000Acircumflex\": -20,\n\t\"Otilde\\u0000Adieresis\": -20,\n\t\"Otilde\\u0000Agrave\": -20,\n\t\"Otilde\\u0000Amacron\": -20,\n\t\"Otilde\\u0000Aogonek\": -20,\n\t\"Otilde\\u0000Aring\": -20,\n\t\"Otilde\\u0000Atilde\": -20,\n\t\"Otilde\\u0000T\": -40,\n\t\"Otilde\\u0000Tcaron\": -40,\n\t\"Otilde\\u0000Tcommaaccent\": -40,\n\t\"Otilde\\u0000V\": -50,\n\t\"Otilde\\u0000W\": -30,\n\t\"Otilde\\u0000X\": -60,\n\t\"Otilde\\u0000Y\": -70,\n\t\"Otilde\\u0000Yacute\": -70,\n\t\"Otilde\\u0000Ydieresis\": -70,\n\t\"Otilde\\u0000comma\": -40,\n\t\"Otilde\\u0000period\": -40,\n\t\"P\\u0000A\": -120,\n\t\"P\\u0000Aacute\": -120,\n\t\"P\\u0000Abreve\": -120,\n\t\"P\\u0000Acircumflex\": -120,\n\t\"P\\u0000Adieresis\": -120,\n\t\"P\\u0000Agrave\": -120,\n\t\"P\\u0000Amacron\": -120,\n\t\"P\\u0000Aogonek\": -120,\n\t\"P\\u0000Aring\": -120,\n\t\"P\\u0000Atilde\": -120,\n\t\"P\\u0000a\": -40,\n\t\"P\\u0000aacute\": -40,\n\t\"P\\u0000abreve\": -40,\n\t\"P\\u0000acircumflex\": -40,\n\t\"P\\u0000adieresis\": -40,\n\t\"P\\u0000agrave\": -40,\n\t\"P\\u0000amacron\": -40,\n\t\"P\\u0000aogonek\": -40,\n\t\"P\\u0000aring\": -40,\n\t\"P\\u0000atilde\": -40,\n\t\"P\\u0000comma\": -180,\n\t\"P\\u0000e\": -50,\n\t\"P\\u0000eacute\": -50,\n\t\"P\\u0000ecaron\": -50,\n\t\"P\\u0000ecircumflex\": -50,\n\t\"P\\u0000edieresis\": -50,\n\t\"P\\u0000edotaccent\": -50,\n\t\"P\\u0000egrave\": -50,\n\t\"P\\u0000emacron\": -50,\n\t\"P\\u0000eogonek\": -50,\n\t\"P\\u0000o\": -50,\n\t\"P\\u0000oacute\": -50,\n\t\"P\\u0000ocircumflex\": -50,\n\t\"P\\u0000odieresis\": -50,\n\t\"P\\u0000ograve\": -50,\n\t\"P\\u0000ohungarumlaut\": -50,\n\t\"P\\u0000omacron\": -50,\n\t\"P\\u0000oslash\": -50,\n\t\"P\\u0000otilde\": -50,\n\t\"P\\u0000period\": -180,\n\t\"Q\\u0000U\": -10,\n\t\"Q\\u0000Uacute\": -10,\n\t\"Q\\u0000Ucircumflex\": -10,\n\t\"Q\\u0000Udieresis\": -10,\n\t\"Q\\u0000Ugrave\": -10,\n\t\"Q\\u0000Uhungarumlaut\": -10,\n\t\"Q\\u0000Umacron\": -10,\n\t\"Q\\u0000Uogonek\": -10,\n\t\"Q\\u0000Uring\": -10,\n\t\"R\\u0000O\": -20,\n\t\"R\\u0000Oacute\": -20,\n\t\"R\\u0000Ocircumflex\": -20,\n\t\"R\\u0000Odieresis\": -20,\n\t\"R\\u0000Ograve\": -20,\n\t\"R\\u0000Ohungarumlaut\": -20,\n\t\"R\\u0000Omacron\": -20,\n\t\"R\\u0000Oslash\": -20,\n\t\"R\\u0000Otilde\": -20,\n\t\"R\\u0000T\": -30,\n\t\"R\\u0000Tcaron\": -30,\n\t\"R\\u0000Tcommaaccent\": -30,\n\t\"R\\u0000U\": -40,\n\t\"R\\u0000Uacute\": -40,\n\t\"R\\u0000Ucircumflex\": -40,\n\t\"R\\u0000Udieresis\": -40,\n\t\"R\\u0000Ugrave\": -40,\n\t\"R\\u0000Uhungarumlaut\": -40,\n\t\"R\\u0000Umacron\": -40,\n\t\"R\\u0000Uogonek\": -40,\n\t\"R\\u0000Uring\": -40,\n\t\"R\\u0000V\": -50,\n\t\"R\\u0000W\": -30,\n\t\"R\\u0000Y\": -50,\n\t\"R\\u0000Yacute\": -50,\n\t\"R\\u0000Ydieresis\": -50,\n\t\"Racute\\u0000O\": -20,\n\t\"Racute\\u0000Oacute\": -20,\n\t\"Racute\\u0000Ocircumflex\": -20,\n\t\"Racute\\u0000Odieresis\": -20,\n\t\"Racute\\u0000Ograve\": -20,\n\t\"Racute\\u0000Ohungarumlaut\": -20,\n\t\"Racute\\u0000Omacron\": -20,\n\t\"Racute\\u0000Oslash\": -20,\n\t\"Racute\\u0000Otilde\": -20,\n\t\"Racute\\u0000T\": -30,\n\t\"Racute\\u0000Tcaron\": -30,\n\t\"Racute\\u0000Tcommaaccent\": -30,\n\t\"Racute\\u0000U\": -40,\n\t\"Racute\\u0000Uacute\": -40,\n\t\"Racute\\u0000Ucircumflex\": -40,\n\t\"Racute\\u0000Udieresis\": -40,\n\t\"Racute\\u0000Ugrave\": -40,\n\t\"Racute\\u0000Uhungarumlaut\": -40,\n\t\"Racute\\u0000Umacron\": -40,\n\t\"Racute\\u0000Uogonek\": -40,\n\t\"Racute\\u0000Uring\": -40,\n\t\"Racute\\u0000V\": -50,\n\t\"Racute\\u0000W\": -30,\n\t\"Racute\\u0000Y\": -50,\n\t\"Racute\\u0000Yacute\": -50,\n\t\"Racute\\u0000Ydieresis\": -50,\n\t\"Rcaron\\u0000O\": -20,\n\t\"Rcaron\\u0000Oacute\": -20,\n\t\"Rcaron\\u0000Ocircumflex\": -20,\n\t\"Rcaron\\u0000Odieresis\": -20,\n\t\"Rcaron\\u0000Ograve\": -20,\n\t\"Rcaron\\u0000Ohungarumlaut\": -20,\n\t\"Rcaron\\u0000Omacron\": -20,\n\t\"Rcaron\\u0000Oslash\": -20,\n\t\"Rcaron\\u0000Otilde\": -20,\n\t\"Rcaron\\u0000T\": -30,\n\t\"Rcaron\\u0000Tcaron\": -30,\n\t\"Rcaron\\u0000Tcommaaccent\": -30,\n\t\"Rcaron\\u0000U\": -40,\n\t\"Rcaron\\u0000Uacute\": -40,\n\t\"Rcaron\\u0000Ucircumflex\": -40,\n\t\"Rcaron\\u0000Udieresis\": -40,\n\t\"Rcaron\\u0000Ugrave\": -40,\n\t\"Rcaron\\u0000Uhungarumlaut\": -40,\n\t\"Rcaron\\u0000Umacron\": -40,\n\t\"Rcaron\\u0000Uogonek\": -40,\n\t\"Rcaron\\u0000Uring\": -40,\n\t\"Rcaron\\u0000V\": -50,\n\t\"Rcaron\\u0000W\": -30,\n\t\"Rcaron\\u0000Y\": -50,\n\t\"Rcaron\\u0000Yacute\": -50,\n\t\"Rcaron\\u0000Ydieresis\": -50,\n\t\"Rcommaaccent\\u0000O\": -20,\n\t\"Rcommaaccent\\u0000Oacute\": -20,\n\t\"Rcommaaccent\\u0000Ocircumflex\": -20,\n\t\"Rcommaaccent\\u0000Odieresis\": -20,\n\t\"Rcommaaccent\\u0000Ograve\": -20,\n\t\"Rcommaaccent\\u0000Ohungarumlaut\": -20,\n\t\"Rcommaaccent\\u0000Omacron\": -20,\n\t\"Rcommaaccent\\u0000Oslash\": -20,\n\t\"Rcommaaccent\\u0000Otilde\": -20,\n\t\"Rcommaaccent\\u0000T\": -30,\n\t\"Rcommaaccent\\u0000Tcaron\": -30,\n\t\"Rcommaaccent\\u0000Tcommaaccent\": -30,\n\t\"Rcommaaccent\\u0000U\": -40,\n\t\"Rcommaaccent\\u0000Uacute\": -40,\n\t\"Rcommaaccent\\u0000Ucircumflex\": -40,\n\t\"Rcommaaccent\\u0000Udieresis\": -40,\n\t\"Rcommaaccent\\u0000Ugrave\": -40,\n\t\"Rcommaaccent\\u0000Uhungarumlaut\": -40,\n\t\"Rcommaaccent\\u0000Umacron\": -40,\n\t\"Rcommaaccent\\u0000Uogonek\": -40,\n\t\"Rcommaaccent\\u0000Uring\": -40,\n\t\"Rcommaaccent\\u0000V\": -50,\n\t\"Rcommaaccent\\u0000W\": -30,\n\t\"Rcommaaccent\\u0000Y\": -50,\n\t\"Rcommaaccent\\u0000Yacute\": -50,\n\t\"Rcommaaccent\\u0000Ydieresis\": -50,\n\t\"S\\u0000comma\": -20,\n\t\"S\\u0000period\": -20,\n\t\"Sacute\\u0000comma\": -20,\n\t\"Sacute\\u0000period\": -20,\n\t\"Scaron\\u0000comma\": -20,\n\t\"Scaron\\u0000period\": -20,\n\t\"Scedilla\\u0000comma\": -20,\n\t\"Scedilla\\u0000period\": -20,\n\t\"Scommaaccent\\u0000comma\": -20,\n\t\"Scommaaccent\\u0000period\": -20,\n\t\"T\\u0000A\": -120,\n\t\"T\\u0000Aacute\": -120,\n\t\"T\\u0000Abreve\": -120,\n\t\"T\\u0000Acircumflex\": -120,\n\t\"T\\u0000Adieresis\": -120,\n\t\"T\\u0000Agrave\": -120,\n\t\"T\\u0000Amacron\": -120,\n\t\"T\\u0000Aogonek\": -120,\n\t\"T\\u0000Aring\": -120,\n\t\"T\\u0000Atilde\": -120,\n\t\"T\\u0000O\": -40,\n\t\"T\\u0000Oacute\": -40,\n\t\"T\\u0000Ocircumflex\": -40,\n\t\"T\\u0000Odieresis\": -40,\n\t\"T\\u0000Ograve\": -40,\n\t\"T\\u0000Ohungarumlaut\": -40,\n\t\"T\\u0000Omacron\": -40,\n\t\"T\\u0000Oslash\": -40,\n\t\"T\\u0000Otilde\": -40,\n\t\"T\\u0000a\": -120,\n\t\"T\\u0000aacute\": -120,\n\t\"T\\u0000abreve\": -60,\n\t\"T\\u0000acircumflex\": -120,\n\t\"T\\u0000adieresis\": -120,\n\t\"T\\u0000agrave\": -120,\n\t\"T\\u0000amacron\": -60,\n\t\"T\\u0000aogonek\": -120,\n\t\"T\\u0000aring\": -120,\n\t\"T\\u0000atilde\": -60,\n\t\"T\\u0000colon\": -20,\n\t\"T\\u0000comma\": -120,\n\t\"T\\u0000e\": -120,\n\t\"T\\u0000eacute\": -120,\n\t\"T\\u0000ecaron\": -120,\n\t\"T\\u0000ecircumflex\": -120,\n\t\"T\\u0000edieresis\": -120,\n\t\"T\\u0000edotaccent\": -120,\n\t\"T\\u0000egrave\": -60,\n\t\"T\\u0000emacron\": -60,\n\t\"T\\u0000eogonek\": -120,\n\t\"T\\u0000hyphen\": -140,\n\t\"T\\u0000o\": -120,\n\t\"T\\u0000oacute\": -120,\n\t\"T\\u0000ocircumflex\": -120,\n\t\"T\\u0000odieresis\": -120,\n\t\"T\\u0000ograve\": -120,\n\t\"T\\u0000ohungarumlaut\": -120,\n\t\"T\\u0000omacron\": -60,\n\t\"T\\u0000oslash\": -120,\n\t\"T\\u0000otilde\": -60,\n\t\"T\\u0000period\": -120,\n\t\"T\\u0000r\": -120,\n\t\"T\\u0000racute\": -120,\n\t\"T\\u0000rcaron\": -120,\n\t\"T\\u0000rcommaaccent\": -120,\n\t\"T\\u0000semicolon\": -20,\n\t\"T\\u0000u\": -120,\n\t\"T\\u0000uacute\": -120,\n\t\"T\\u0000ucircumflex\": -120,\n\t\"T\\u0000udieresis\": -120,\n\t\"T\\u0000ugrave\": -120,\n\t\"T\\u0000uhungarumlaut\": -120,\n\t\"T\\u0000umacron\": -60,\n\t\"T\\u0000uogonek\": -120,\n\t\"T\\u0000uring\": -120,\n\t\"T\\u0000w\": -120,\n\t\"T\\u0000y\": -120,\n\t\"T\\u0000yacute\": -120,\n\t\"T\\u0000ydieresis\": -60,\n\t\"Tcaron\\u0000A\": -120,\n\t\"Tcaron\\u0000Aacute\": -120,\n\t\"Tcaron\\u0000Abreve\": -120,\n\t\"Tcaron\\u0000Acircumflex\": -120,\n\t\"Tcaron\\u0000Adieresis\": -120,\n\t\"Tcaron\\u0000Agrave\": -120,\n\t\"Tcaron\\u0000Amacron\": -120,\n\t\"Tcaron\\u0000Aogonek\": -120,\n\t\"Tcaron\\u0000Aring\": -120,\n\t\"Tcaron\\u0000Atilde\": -120,\n\t\"Tcaron\\u0000O\": -40,\n\t\"Tcaron\\u0000Oacute\": -40,\n\t\"Tcaron\\u0000Ocircumflex\": -40,\n\t\"Tcaron\\u0000Odieresis\": -40,\n\t\"Tcaron\\u0000Ograve\": -40,\n\t\"Tcaron\\u0000Ohungarumlaut\": -40,\n\t\"Tcaron\\u0000Omacron\": -40,\n\t\"Tcaron\\u0000Oslash\": -40,\n\t\"Tcaron\\u0000Otilde\": -40,\n\t\"Tcaron\\u0000a\": -120,\n\t\"Tcaron\\u0000aacute\": -120,\n\t\"Tcaron\\u0000abreve\": -60,\n\t\"Tcaron\\u0000acircumflex\": -120,\n\t\"Tcaron\\u0000adieresis\": -120,\n\t\"Tcaron\\u0000agrave\": -120,\n\t\"Tcaron\\u0000amacron\": -60,\n\t\"Tcaron\\u0000aogonek\": -120,\n\t\"Tcaron\\u0000aring\": -120,\n\t\"Tcaron\\u0000atilde\": -60,\n\t\"Tcaron\\u0000colon\": -20,\n\t\"Tcaron\\u0000comma\": -120,\n\t\"Tcaron\\u0000e\": -120,\n\t\"Tcaron\\u0000eacute\": -120,\n\t\"Tcaron\\u0000ecaron\": -120,\n\t\"Tcaron\\u0000ecircumflex\": -120,\n\t\"Tcaron\\u0000edieresis\": -120,\n\t\"Tcaron\\u0000edotaccent\": -120,\n\t\"Tcaron\\u0000egrave\": -60,\n\t\"Tcaron\\u0000emacron\": -60,\n\t\"Tcaron\\u0000eogonek\": -120,\n\t\"Tcaron\\u0000hyphen\": -140,\n\t\"Tcaron\\u0000o\": -120,\n\t\"Tcaron\\u0000oacute\": -120,\n\t\"Tcaron\\u0000ocircumflex\": -120,\n\t\"Tcaron\\u0000odieresis\": -120,\n\t\"Tcaron\\u0000ograve\": -120,\n\t\"Tcaron\\u0000ohungarumlaut\": -120,\n\t\"Tcaron\\u0000omacron\": -60,\n\t\"Tcaron\\u0000oslash\": -120,\n\t\"Tcaron\\u0000otilde\": -60,\n\t\"Tcaron\\u0000period\": -120,\n\t\"Tcaron\\u0000r\": -120,\n\t\"Tcaron\\u0000racute\": -120,\n\t\"Tcaron\\u0000rcaron\": -120,\n\t\"Tcaron\\u0000rcommaaccent\": -120,\n\t\"Tcaron\\u0000semicolon\": -20,\n\t\"Tcaron\\u0000u\": -120,\n\t\"Tcaron\\u0000uacute\": -120,\n\t\"Tcaron\\u0000ucircumflex\": -120,\n\t\"Tcaron\\u0000udieresis\": -120,\n\t\"Tcaron\\u0000ugrave\": -120,\n\t\"Tcaron\\u0000uhungarumlaut\": -120,\n\t\"Tcaron\\u0000umacron\": -60,\n\t\"Tcaron\\u0000uogonek\": -120,\n\t\"Tcaron\\u0000uring\": -120,\n\t\"Tcaron\\u0000w\": -120,\n\t\"Tcaron\\u0000y\": -120,\n\t\"Tcaron\\u0000yacute\": -120,\n\t\"Tcaron\\u0000ydieresis\": -60,\n\t\"Tcommaaccent\\u0000A\": -120,\n\t\"Tcommaaccent\\u0000Aacute\": -120,\n\t\"Tcommaaccent\\u0000Abreve\": -120,\n\t\"Tcommaaccent\\u0000Acircumflex\": -120,\n\t\"Tcommaaccent\\u0000Adieresis\": -120,\n\t\"Tcommaaccent\\u0000Agrave\": -120,\n\t\"Tcommaaccent\\u0000Amacron\": -120,\n\t\"Tcommaaccent\\u0000Aogonek\": -120,\n\t\"Tcommaaccent\\u0000Aring\": -120,\n\t\"Tcommaaccent\\u0000Atilde\": -120,\n\t\"Tcommaaccent\\u0000O\": -40,\n\t\"Tcommaaccent\\u0000Oacute\": -40,\n\t\"Tcommaaccent\\u0000Ocircumflex\": -40,\n\t\"Tcommaaccent\\u0000Odieresis\": -40,\n\t\"Tcommaaccent\\u0000Ograve\": -40,\n\t\"Tcommaaccent\\u0000Ohungarumlaut\": -40,\n\t\"Tcommaaccent\\u0000Omacron\": -40,\n\t\"Tcommaaccent\\u0000Oslash\": -40,\n\t\"Tcommaaccent\\u0000Otilde\": -40,\n\t\"Tcommaaccent\\u0000a\": -120,\n\t\"Tcommaaccent\\u0000aacute\": -120,\n\t\"Tcommaaccent\\u0000abreve\": -60,\n\t\"Tcommaaccent\\u0000acircumflex\": -120,\n\t\"Tcommaaccent\\u0000adieresis\": -120,\n\t\"Tcommaaccent\\u0000agrave\": -120,\n\t\"Tcommaaccent\\u0000amacron\": -60,\n\t\"Tcommaaccent\\u0000aogonek\": -120,\n\t\"Tcommaaccent\\u0000aring\": -120,\n\t\"Tcommaaccent\\u0000atilde\": -60,\n\t\"Tcommaaccent\\u0000colon\": -20,\n\t\"Tcommaaccent\\u0000comma\": -120,\n\t\"Tcommaaccent\\u0000e\": -120,\n\t\"Tcommaaccent\\u0000eacute\": -120,\n\t\"Tcommaaccent\\u0000ecaron\": -120,\n\t\"Tcommaaccent\\u0000ecircumflex\": -120,\n\t\"Tcommaaccent\\u0000edieresis\": -120,\n\t\"Tcommaaccent\\u0000edotaccent\": -120,\n\t\"Tcommaaccent\\u0000egrave\": -60,\n\t\"Tcommaaccent\\u0000emacron\": -60,\n\t\"Tcommaaccent\\u0000eogonek\": -120,\n\t\"Tcommaaccent\\u0000hyphen\": -140,\n\t\"Tcommaaccent\\u0000o\": -120,\n\t\"Tcommaaccent\\u0000oacute\": -120,\n\t\"Tcommaaccent\\u0000ocircumflex\": -120,\n\t\"Tcommaaccent\\u0000odieresis\": -120,\n\t\"Tcommaaccent\\u0000ograve\": -120,\n\t\"Tcommaaccent\\u0000ohungarumlaut\": -120,\n\t\"Tcommaaccent\\u0000omacron\": -60,\n\t\"Tcommaaccent\\u0000oslash\": -120,\n\t\"Tcommaaccent\\u0000otilde\": -60,\n\t\"Tcommaaccent\\u0000period\": -120,\n\t\"Tcommaaccent\\u0000r\": -120,\n\t\"Tcommaaccent\\u0000racute\": -120,\n\t\"Tcommaaccent\\u0000rcaron\": -120,\n\t\"Tcommaaccent\\u0000rcommaaccent\": -120,\n\t\"Tcommaaccent\\u0000semicolon\": -20,\n\t\"Tcommaaccent\\u0000u\": -120,\n\t\"Tcommaaccent\\u0000uacute\": -120,\n\t\"Tcommaaccent\\u0000ucircumflex\": -120,\n\t\"Tcommaaccent\\u0000udieresis\": -120,\n\t\"Tcommaaccent\\u0000ugrave\": -120,\n\t\"Tcommaaccent\\u0000uhungarumlaut\": -120,\n\t\"Tcommaaccent\\u0000umacron\": -60,\n\t\"Tcommaaccent\\u0000uogonek\": -120,\n\t\"Tcommaaccent\\u0000uring\": -120,\n\t\"Tcommaaccent\\u0000w\": -120,\n\t\"Tcommaaccent\\u0000y\": -120,\n\t\"Tcommaaccent\\u0000yacute\": -120,\n\t\"Tcommaaccent\\u0000ydieresis\": -60,\n\t\"U\\u0000A\": -40,\n\t\"U\\u0000Aacute\": -40,\n\t\"U\\u0000Abreve\": -40,\n\t\"U\\u0000Acircumflex\": -40,\n\t\"U\\u0000Adieresis\": -40,\n\t\"U\\u0000Agrave\": -40,\n\t\"U\\u0000Amacron\": -40,\n\t\"U\\u0000Aogonek\": -40,\n\t\"U\\u0000Aring\": -40,\n\t\"U\\u0000Atilde\": -40,\n\t\"U\\u0000comma\": -40,\n\t\"U\\u0000period\": -40,\n\t\"Uacute\\u0000A\": -40,\n\t\"Uacute\\u0000Aacute\": -40,\n\t\"Uacute\\u0000Abreve\": -40,\n\t\"Uacute\\u0000Acircumflex\": -40,\n\t\"Uacute\\u0000Adieresis\": -40,\n\t\"Uacute\\u0000Agrave\": -40,\n\t\"Uacute\\u0000Amacron\": -40,\n\t\"Uacute\\u0000Aogonek\": -40,\n\t\"Uacute\\u0000Aring\": -40,\n\t\"Uacute\\u0000Atilde\": -40,\n\t\"Uacute\\u0000comma\": -40,\n\t\"Uacute\\u0000period\": -40,\n\t\"Ucircumflex\\u0000A\": -40,\n\t\"Ucircumflex\\u0000Aacute\": -40,\n\t\"Ucircumflex\\u0000Abreve\": -40,\n\t\"Ucircumflex\\u0000Acircumflex\": -40,\n\t\"Ucircumflex\\u0000Adieresis\": -40,\n\t\"Ucircumflex\\u0000Agrave\": -40,\n\t\"Ucircumflex\\u0000Amacron\": -40,\n\t\"Ucircumflex\\u0000Aogonek\": -40,\n\t\"Ucircumflex\\u0000Aring\": -40,\n\t\"Ucircumflex\\u0000Atilde\": -40,\n\t\"Ucircumflex\\u0000comma\": -40,\n\t\"Ucircumflex\\u0000period\": -40,\n\t\"Udieresis\\u0000A\": -40,\n\t\"Udieresis\\u0000Aacute\": -40,\n\t\"Udieresis\\u0000Abreve\": -40,\n\t\"Udieresis\\u0000Acircumflex\": -40,\n\t\"Udieresis\\u0000Adieresis\": -40,\n\t\"Udieresis\\u0000Agrave\": -40,\n\t\"Udieresis\\u0000Amacron\": -40,\n\t\"Udieresis\\u0000Aogonek\": -40,\n\t\"Udieresis\\u0000Aring\": -40,\n\t\"Udieresis\\u0000Atilde\": -40,\n\t\"Udieresis\\u0000comma\": -40,\n\t\"Udieresis\\u0000period\": -40,\n\t\"Ugrave\\u0000A\": -40,\n\t\"Ugrave\\u0000Aacute\": -40,\n\t\"Ugrave\\u0000Abreve\": -40,\n\t\"Ugrave\\u0000Acircumflex\": -40,\n\t\"Ugrave\\u0000Adieresis\": -40,\n\t\"Ugrave\\u0000Agrave\": -40,\n\t\"Ugrave\\u0000Amacron\": -40,\n\t\"Ugrave\\u0000Aogonek\": -40,\n\t\"Ugrave\\u0000Aring\": -40,\n\t\"Ugrave\\u0000Atilde\": -40,\n\t\"Ugrave\\u0000comma\": -40,\n\t\"Ugrave\\u0000period\": -40,\n\t\"Uhungarumlaut\\u0000A\": -40,\n\t\"Uhungarumlaut\\u0000Aacute\": -40,\n\t\"Uhungarumlaut\\u0000Abreve\": -40,\n\t\"Uhungarumlaut\\u0000Acircumflex\": -40,\n\t\"Uhungarumlaut\\u0000Adieresis\": -40,\n\t\"Uhungarumlaut\\u0000Agrave\": -40,\n\t\"Uhungarumlaut\\u0000Amacron\": -40,\n\t\"Uhungarumlaut\\u0000Aogonek\": -40,\n\t\"Uhungarumlaut\\u0000Aring\": -40,\n\t\"Uhungarumlaut\\u0000Atilde\": -40,\n\t\"Uhungarumlaut\\u0000comma\": -40,\n\t\"Uhungarumlaut\\u0000period\": -40,\n\t\"Umacron\\u0000A\": -40,\n\t\"Umacron\\u0000Aacute\": -40,\n\t\"Umacron\\u0000Abreve\": -40,\n\t\"Umacron\\u0000Acircumflex\": -40,\n\t\"Umacron\\u0000Adieresis\": -40,\n\t\"Umacron\\u0000Agrave\": -40,\n\t\"Umacron\\u0000Amacron\": -40,\n\t\"Umacron\\u0000Aogonek\": -40,\n\t\"Umacron\\u0000Aring\": -40,\n\t\"Umacron\\u0000Atilde\": -40,\n\t\"Umacron\\u0000comma\": -40,\n\t\"Umacron\\u0000period\": -40,\n\t\"Uogonek\\u0000A\": -40,\n\t\"Uogonek\\u0000Aacute\": -40,\n\t\"Uogonek\\u0000Abreve\": -40,\n\t\"Uogonek\\u0000Acircumflex\": -40,\n\t\"Uogonek\\u0000Adieresis\": -40,\n\t\"Uogonek\\u0000Agrave\": -40,\n\t\"Uogonek\\u0000Amacron\": -40,\n\t\"Uogonek\\u0000Aogonek\": -40,\n\t\"Uogonek\\u0000Aring\": -40,\n\t\"Uogonek\\u0000Atilde\": -40,\n\t\"Uogonek\\u0000comma\": -40,\n\t\"Uogonek\\u0000period\": -40,\n\t\"Uring\\u0000A\": -40,\n\t\"Uring\\u0000Aacute\": -40,\n\t\"Uring\\u0000Abreve\": -40,\n\t\"Uring\\u0000Acircumflex\": -40,\n\t\"Uring\\u0000Adieresis\": -40,\n\t\"Uring\\u0000Agrave\": -40,\n\t\"Uring\\u0000Amacron\": -40,\n\t\"Uring\\u0000Aogonek\": -40,\n\t\"Uring\\u0000Aring\": -40,\n\t\"Uring\\u0000Atilde\": -40,\n\t\"Uring\\u0000comma\": -40,\n\t\"Uring\\u0000period\": -40,\n\t\"V\\u0000A\": -80,\n\t\"V\\u0000Aacute\": -80,\n\t\"V\\u0000Abreve\": -80,\n\t\"V\\u0000Acircumflex\": -80,\n\t\"V\\u0000Adieresis\": -80,\n\t\"V\\u0000Agrave\": -80,\n\t\"V\\u0000Amacron\": -80,\n\t\"V\\u0000Aogonek\": -80,\n\t\"V\\u0000Aring\": -80,\n\t\"V\\u0000Atilde\": -80,\n\t\"V\\u0000G\": -40,\n\t\"V\\u0000Gbreve\": -40,\n\t\"V\\u0000Gcommaaccent\": -40,\n\t\"V\\u0000O\": -40,\n\t\"V\\u0000Oacute\": -40,\n\t\"V\\u0000Ocircumflex\": -40,\n\t\"V\\u0000Odieresis\": -40,\n\t\"V\\u0000Ograve\": -40,\n\t\"V\\u0000Ohungarumlaut\": -40,\n\t\"V\\u0000Omacron\": -40,\n\t\"V\\u0000Oslash\": -40,\n\t\"V\\u0000Otilde\": -40,\n\t\"V\\u0000a\": -70,\n\t\"V\\u0000aacute\": -70,\n\t\"V\\u0000abreve\": -70,\n\t\"V\\u0000acircumflex\": -70,\n\t\"V\\u0000adieresis\": -70,\n\t\"V\\u0000agrave\": -70,\n\t\"V\\u0000amacron\": -70,\n\t\"V\\u0000aogonek\": -70,\n\t\"V\\u0000aring\": -70,\n\t\"V\\u0000atilde\": -70,\n\t\"V\\u0000colon\": -40,\n\t\"V\\u0000comma\": -125,\n\t\"V\\u0000e\": -80,\n\t\"V\\u0000eacute\": -80,\n\t\"V\\u0000ecaron\": -80,\n\t\"V\\u0000ecircumflex\": -80,\n\t\"V\\u0000edieresis\": -80,\n\t\"V\\u0000edotaccent\": -80,\n\t\"V\\u0000egrave\": -80,\n\t\"V\\u0000emacron\": -80,\n\t\"V\\u0000eogonek\": -80,\n\t\"V\\u0000hyphen\": -80,\n\t\"V\\u0000o\": -80,\n\t\"V\\u0000oacute\": -80,\n\t\"V\\u0000ocircumflex\": -80,\n\t\"V\\u0000odieresis\": -80,\n\t\"V\\u0000ograve\": -80,\n\t\"V\\u0000ohungarumlaut\": -80,\n\t\"V\\u0000omacron\": -80,\n\t\"V\\u0000oslash\": -80,\n\t\"V\\u0000otilde\": -80,\n\t\"V\\u0000period\": -125,\n\t\"V\\u0000semicolon\": -40,\n\t\"V\\u0000u\": -70,\n\t\"V\\u0000uacute\": -70,\n\t\"V\\u0000ucircumflex\": -70,\n\t\"V\\u0000udieresis\": -70,\n\t\"V\\u0000ugrave\": -70,\n\t\"V\\u0000uhungarumlaut\": -70,\n\t\"V\\u0000umacron\": -70,\n\t\"V\\u0000uogonek\": -70,\n\t\"V\\u0000uring\": -70,\n\t\"W\\u0000A\": -50,\n\t\"W\\u0000Aacute\": -50,\n\t\"W\\u0000Abreve\": -50,\n\t\"W\\u0000Acircumflex\": -50,\n\t\"W\\u0000Adieresis\": -50,\n\t\"W\\u0000Agrave\": -50,\n\t\"W\\u0000Amacron\": -50,\n\t\"W\\u0000Aogonek\": -50,\n\t\"W\\u0000Aring\": -50,\n\t\"W\\u0000Atilde\": -50,\n\t\"W\\u0000O\": -20,\n\t\"W\\u0000Oacute\": -20,\n\t\"W\\u0000Ocircumflex\": -20,\n\t\"W\\u0000Odieresis\": -20,\n\t\"W\\u0000Ograve\": -20,\n\t\"W\\u0000Ohungarumlaut\": -20,\n\t\"W\\u0000Omacron\": -20,\n\t\"W\\u0000Oslash\": -20,\n\t\"W\\u0000Otilde\": -20,\n\t\"W\\u0000a\": -40,\n\t\"W\\u0000aacute\": -40,\n\t\"W\\u0000abreve\": -40,\n\t\"W\\u0000acircumflex\": -40,\n\t\"W\\u0000adieresis\": -40,\n\t\"W\\u0000agrave\": -40,\n\t\"W\\u0000amacron\": -40,\n\t\"W\\u0000aogonek\": -40,\n\t\"W\\u0000aring\": -40,\n\t\"W\\u0000atilde\": -40,\n\t\"W\\u0000comma\": -80,\n\t\"W\\u0000e\": -30,\n\t\"W\\u0000eacute\": -30,\n\t\"W\\u0000ecaron\": -30,\n\t\"W\\u0000ecircumflex\": -30,\n\t\"W\\u0000edieresis\": -30,\n\t\"W\\u0000edotaccent\": -30,\n\t\"W\\u0000egrave\": -30,\n\t\"W\\u0000emacron\": -30,\n\t\"W\\u0000eogonek\": -30,\n\t\"W\\u0000hyphen\": -40,\n\t\"W\\u0000o\": -30,\n\t\"W\\u0000oacute\": -30,\n\t\"W\\u0000ocircumflex\": -30,\n\t\"W\\u0000odieresis\": -30,\n\t\"W\\u0000ograve\": -30,\n\t\"W\\u0000ohungarumlaut\": -30,\n\t\"W\\u0000omacron\": -30,\n\t\"W\\u0000oslash\": -30,\n\t\"W\\u0000otilde\": -30,\n\t\"W\\u0000period\": -80,\n\t\"W\\u0000u\": -30,\n\t\"W\\u0000uacute\": -30,\n\t\"W\\u0000ucircumflex\": -30,\n\t\"W\\u0000udieresis\": -30,\n\t\"W\\u0000ugrave\": -30,\n\t\"W\\u0000uhungarumlaut\": -30,\n\t\"W\\u0000umacron\": -30,\n\t\"W\\u0000uogonek\": -30,\n\t\"W\\u0000uring\": -30,\n\t\"W\\u0000y\": -20,\n\t\"W\\u0000yacute\": -20,\n\t\"W\\u0000ydieresis\": -20,\n\t\"Y\\u0000A\": -110,\n\t\"Y\\u0000Aacute\": -110,\n\t\"Y\\u0000Abreve\": -110,\n\t\"Y\\u0000Acircumflex\": -110,\n\t\"Y\\u0000Adieresis\": -110,\n\t\"Y\\u0000Agrave\": -110,\n\t\"Y\\u0000Amacron\": -110,\n\t\"Y\\u0000Aogonek\": -110,\n\t\"Y\\u0000Aring\": -110,\n\t\"Y\\u0000Atilde\": -110,\n\t\"Y\\u0000O\": -85,\n\t\"Y\\u0000Oacute\": -85,\n\t\"Y\\u0000Ocircumflex\": -85,\n\t\"Y\\u0000Odieresis\": -85,\n\t\"Y\\u0000Ograve\": -85,\n\t\"Y\\u0000Ohungarumlaut\": -85,\n\t\"Y\\u0000Omacron\": -85,\n\t\"Y\\u0000Oslash\": -85,\n\t\"Y\\u0000Otilde\": -85,\n\t\"Y\\u0000a\": -140,\n\t\"Y\\u0000aacute\": -140,\n\t\"Y\\u0000abreve\": -70,\n\t\"Y\\u0000acircumflex\": -140,\n\t\"Y\\u0000adieresis\": -140,\n\t\"Y\\u0000agrave\": -140,\n\t\"Y\\u0000amacron\": -70,\n\t\"Y\\u0000aogonek\": -140,\n\t\"Y\\u0000aring\": -140,\n\t\"Y\\u0000atilde\": -140,\n\t\"Y\\u0000colon\": -60,\n\t\"Y\\u0000comma\": -140,\n\t\"Y\\u0000e\": -140,\n\t\"Y\\u0000eacute\": -140,\n\t\"Y\\u0000ecaron\": -140,\n\t\"Y\\u0000ecircumflex\": -140,\n\t\"Y\\u0000edieresis\": -140,\n\t\"Y\\u0000edotaccent\": -140,\n\t\"Y\\u0000egrave\": -140,\n\t\"Y\\u0000emacron\": -70,\n\t\"Y\\u0000eogonek\": -140,\n\t\"Y\\u0000hyphen\": -140,\n\t\"Y\\u0000i\": -20,\n\t\"Y\\u0000iacute\": -20,\n\t\"Y\\u0000iogonek\": -20,\n\t\"Y\\u0000o\": -140,\n\t\"Y\\u0000oacute\": -140,\n\t\"Y\\u0000ocircumflex\": -140,\n\t\"Y\\u0000odieresis\": -140,\n\t\"Y\\u0000ograve\": -140,\n\t\"Y\\u0000ohungarumlaut\": -140,\n\t\"Y\\u0000omacron\": -140,\n\t\"Y\\u0000oslash\": -140,\n\t\"Y\\u0000otilde\": -140,\n\t\"Y\\u0000period\": -140,\n\t\"Y\\u0000semicolon\": -60,\n\t\"Y\\u0000u\": -110,\n\t\"Y\\u0000uacute\": -110,\n\t\"Y\\u0000ucircumflex\": -110,\n\t\"Y\\u0000udieresis\": -110,\n\t\"Y\\u0000ugrave\": -110,\n\t\"Y\\u0000uhungarumlaut\": -110,\n\t\"Y\\u0000umacron\": -110,\n\t\"Y\\u0000uogonek\": -110,\n\t\"Y\\u0000uring\": -110,\n\t\"Yacute\\u0000A\": -110,\n\t\"Yacute\\u0000Aacute\": -110,\n\t\"Yacute\\u0000Abreve\": -110,\n\t\"Yacute\\u0000Acircumflex\": -110,\n\t\"Yacute\\u0000Adieresis\": -110,\n\t\"Yacute\\u0000Agrave\": -110,\n\t\"Yacute\\u0000Amacron\": -110,\n\t\"Yacute\\u0000Aogonek\": -110,\n\t\"Yacute\\u0000Aring\": -110,\n\t\"Yacute\\u0000Atilde\": -110,\n\t\"Yacute\\u0000O\": -85,\n\t\"Yacute\\u0000Oacute\": -85,\n\t\"Yacute\\u0000Ocircumflex\": -85,\n\t\"Yacute\\u0000Odieresis\": -85,\n\t\"Yacute\\u0000Ograve\": -85,\n\t\"Yacute\\u0000Ohungarumlaut\": -85,\n\t\"Yacute\\u0000Omacron\": -85,\n\t\"Yacute\\u0000Oslash\": -85,\n\t\"Yacute\\u0000Otilde\": -85,\n\t\"Yacute\\u0000a\": -140,\n\t\"Yacute\\u0000aacute\": -140,\n\t\"Yacute\\u0000abreve\": -70,\n\t\"Yacute\\u0000acircumflex\": -140,\n\t\"Yacute\\u0000adieresis\": -140,\n\t\"Yacute\\u0000agrave\": -140,\n\t\"Yacute\\u0000amacron\": -70,\n\t\"Yacute\\u0000aogonek\": -140,\n\t\"Yacute\\u0000aring\": -140,\n\t\"Yacute\\u0000atilde\": -70,\n\t\"Yacute\\u0000colon\": -60,\n\t\"Yacute\\u0000comma\": -140,\n\t\"Yacute\\u0000e\": -140,\n\t\"Yacute\\u0000eacute\": -140,\n\t\"Yacute\\u0000ecaron\": -140,\n\t\"Yacute\\u0000ecircumflex\": -140,\n\t\"Yacute\\u0000edieresis\": -140,\n\t\"Yacute\\u0000edotaccent\": -140,\n\t\"Yacute\\u0000egrave\": -140,\n\t\"Yacute\\u0000emacron\": -70,\n\t\"Yacute\\u0000eogonek\": -140,\n\t\"Yacute\\u0000hyphen\": -140,\n\t\"Yacute\\u0000i\": -20,\n\t\"Yacute\\u0000iacute\": -20,\n\t\"Yacute\\u0000iogonek\": -20,\n\t\"Yacute\\u0000o\": -140,\n\t\"Yacute\\u0000oacute\": -140,\n\t\"Yacute\\u0000ocircumflex\": -140,\n\t\"Yacute\\u0000odieresis\": -140,\n\t\"Yacute\\u0000ograve\": -140,\n\t\"Yacute\\u0000ohungarumlaut\": -140,\n\t\"Yacute\\u0000omacron\": -70,\n\t\"Yacute\\u0000oslash\": -140,\n\t\"Yacute\\u0000otilde\": -140,\n\t\"Yacute\\u0000period\": -140,\n\t\"Yacute\\u0000semicolon\": -60,\n\t\"Yacute\\u0000u\": -110,\n\t\"Yacute\\u0000uacute\": -110,\n\t\"Yacute\\u0000ucircumflex\": -110,\n\t\"Yacute\\u0000udieresis\": -110,\n\t\"Yacute\\u0000ugrave\": -110,\n\t\"Yacute\\u0000uhungarumlaut\": -110,\n\t\"Yacute\\u0000umacron\": -110,\n\t\"Yacute\\u0000uogonek\": -110,\n\t\"Yacute\\u0000uring\": -110,\n\t\"Ydieresis\\u0000A\": -110,\n\t\"Ydieresis\\u0000Aacute\": -110,\n\t\"Ydieresis\\u0000Abreve\": -110,\n\t\"Ydieresis\\u0000Acircumflex\": -110,\n\t\"Ydieresis\\u0000Adieresis\": -110,\n\t\"Ydieresis\\u0000Agrave\": -110,\n\t\"Ydieresis\\u0000Amacron\": -110,\n\t\"Ydieresis\\u0000Aogonek\": -110,\n\t\"Ydieresis\\u0000Aring\": -110,\n\t\"Ydieresis\\u0000Atilde\": -110,\n\t\"Ydieresis\\u0000O\": -85,\n\t\"Ydieresis\\u0000Oacute\": -85,\n\t\"Ydieresis\\u0000Ocircumflex\": -85,\n\t\"Ydieresis\\u0000Odieresis\": -85,\n\t\"Ydieresis\\u0000Ograve\": -85,\n\t\"Ydieresis\\u0000Ohungarumlaut\": -85,\n\t\"Ydieresis\\u0000Omacron\": -85,\n\t\"Ydieresis\\u0000Oslash\": -85,\n\t\"Ydieresis\\u0000Otilde\": -85,\n\t\"Ydieresis\\u0000a\": -140,\n\t\"Ydieresis\\u0000aacute\": -140,\n\t\"Ydieresis\\u0000abreve\": -70,\n\t\"Ydieresis\\u0000acircumflex\": -140,\n\t\"Ydieresis\\u0000adieresis\": -140,\n\t\"Ydieresis\\u0000agrave\": -140,\n\t\"Ydieresis\\u0000amacron\": -70,\n\t\"Ydieresis\\u0000aogonek\": -140,\n\t\"Ydieresis\\u0000aring\": -140,\n\t\"Ydieresis\\u0000atilde\": -70,\n\t\"Ydieresis\\u0000colon\": -60,\n\t\"Ydieresis\\u0000comma\": -140,\n\t\"Ydieresis\\u0000e\": -140,\n\t\"Ydieresis\\u0000eacute\": -140,\n\t\"Ydieresis\\u0000ecaron\": -140,\n\t\"Ydieresis\\u0000ecircumflex\": -140,\n\t\"Ydieresis\\u0000edieresis\": -140,\n\t\"Ydieresis\\u0000edotaccent\": -140,\n\t\"Ydieresis\\u0000egrave\": -140,\n\t\"Ydieresis\\u0000emacron\": -70,\n\t\"Ydieresis\\u0000eogonek\": -140,\n\t\"Ydieresis\\u0000hyphen\": -140,\n\t\"Ydieresis\\u0000i\": -20,\n\t\"Ydieresis\\u0000iacute\": -20,\n\t\"Ydieresis\\u0000iogonek\": -20,\n\t\"Ydieresis\\u0000o\": -140,\n\t\"Ydieresis\\u0000oacute\": -140,\n\t\"Ydieresis\\u0000ocircumflex\": -140,\n\t\"Ydieresis\\u0000odieresis\": -140,\n\t\"Ydieresis\\u0000ograve\": -140,\n\t\"Ydieresis\\u0000ohungarumlaut\": -140,\n\t\"Ydieresis\\u0000omacron\": -140,\n\t\"Ydieresis\\u0000oslash\": -140,\n\t\"Ydieresis\\u0000otilde\": -140,\n\t\"Ydieresis\\u0000period\": -140,\n\t\"Ydieresis\\u0000semicolon\": -60,\n\t\"Ydieresis\\u0000u\": -110,\n\t\"Ydieresis\\u0000uacute\": -110,\n\t\"Ydieresis\\u0000ucircumflex\": -110,\n\t\"Ydieresis\\u0000udieresis\": -110,\n\t\"Ydieresis\\u0000ugrave\": -110,\n\t\"Ydieresis\\u0000uhungarumlaut\": -110,\n\t\"Ydieresis\\u0000umacron\": -110,\n\t\"Ydieresis\\u0000uogonek\": -110,\n\t\"Ydieresis\\u0000uring\": -110,\n\t\"a\\u0000v\": -20,\n\t\"a\\u0000w\": -20,\n\t\"a\\u0000y\": -30,\n\t\"a\\u0000yacute\": -30,\n\t\"a\\u0000ydieresis\": -30,\n\t\"aacute\\u0000v\": -20,\n\t\"aacute\\u0000w\": -20,\n\t\"aacute\\u0000y\": -30,\n\t\"aacute\\u0000yacute\": -30,\n\t\"aacute\\u0000ydieresis\": -30,\n\t\"abreve\\u0000v\": -20,\n\t\"abreve\\u0000w\": -20,\n\t\"abreve\\u0000y\": -30,\n\t\"abreve\\u0000yacute\": -30,\n\t\"abreve\\u0000ydieresis\": -30,\n\t\"acircumflex\\u0000v\": -20,\n\t\"acircumflex\\u0000w\": -20,\n\t\"acircumflex\\u0000y\": -30,\n\t\"acircumflex\\u0000yacute\": -30,\n\t\"acircumflex\\u0000ydieresis\": -30,\n\t\"adieresis\\u0000v\": -20,\n\t\"adieresis\\u0000w\": -20,\n\t\"adieresis\\u0000y\": -30,\n\t\"adieresis\\u0000yacute\": -30,\n\t\"adieresis\\u0000ydieresis\": -30,\n\t\"agrave\\u0000v\": -20,\n\t\"agrave\\u0000w\": -20,\n\t\"agrave\\u0000y\": -30,\n\t\"agrave\\u0000yacute\": -30,\n\t\"agrave\\u0000ydieresis\": -30,\n\t\"amacron\\u0000v\": -20,\n\t\"amacron\\u0000w\": -20,\n\t\"amacron\\u0000y\": -30,\n\t\"amacron\\u0000yacute\": -30,\n\t\"amacron\\u0000ydieresis\": -30,\n\t\"aogonek\\u0000v\": -20,\n\t\"aogonek\\u0000w\": -20,\n\t\"aogonek\\u0000y\": -30,\n\t\"aogonek\\u0000yacute\": -30,\n\t\"aogonek\\u0000ydieresis\": -30,\n\t\"aring\\u0000v\": -20,\n\t\"aring\\u0000w\": -20,\n\t\"aring\\u0000y\": -30,\n\t\"aring\\u0000yacute\": -30,\n\t\"aring\\u0000ydieresis\": -30,\n\t\"atilde\\u0000v\": -20,\n\t\"atilde\\u0000w\": -20,\n\t\"atilde\\u0000y\": -30,\n\t\"atilde\\u0000yacute\": -30,\n\t\"atilde\\u0000ydieresis\": -30,\n\t\"b\\u0000b\": -10,\n\t\"b\\u0000comma\": -40,\n\t\"b\\u0000l\": -20,\n\t\"b\\u0000lacute\": -20,\n\t\"b\\u0000lcommaaccent\": -20,\n\t\"b\\u0000lslash\": -20,\n\t\"b\\u0000period\": -40,\n\t\"b\\u0000u\": -20,\n\t\"b\\u0000uacute\": -20,\n\t\"b\\u0000ucircumflex\": -20,\n\t\"b\\u0000udieresis\": -20,\n\t\"b\\u0000ugrave\": -20,\n\t\"b\\u0000uhungarumlaut\": -20,\n\t\"b\\u0000umacron\": -20,\n\t\"b\\u0000uogonek\": -20,\n\t\"b\\u0000uring\": -20,\n\t\"b\\u0000v\": -20,\n\t\"b\\u0000y\": -20,\n\t\"b\\u0000yacute\": -20,\n\t\"b\\u0000ydieresis\": -20,\n\t\"c\\u0000comma\": -15,\n\t\"c\\u0000k\": -20,\n\t\"c\\u0000kcommaaccent\": -20,\n\t\"cacute\\u0000comma\": -15,\n\t\"cacute\\u0000k\": -20,\n\t\"cacute\\u0000kcommaaccent\": -20,\n\t\"ccaron\\u0000comma\": -15,\n\t\"ccaron\\u0000k\": -20,\n\t\"ccaron\\u0000kcommaaccent\": -20,\n\t\"ccedilla\\u0000comma\": -15,\n\t\"ccedilla\\u0000k\": -20,\n\t\"ccedilla\\u0000kcommaaccent\": -20,\n\t\"colon\\u0000space\": -50,\n\t\"comma\\u0000quotedblright\": -100,\n\t\"comma\\u0000quoteright\": -100,\n\t\"e\\u0000comma\": -15,\n\t\"e\\u0000period\": -15,\n\t\"e\\u0000v\": -30,\n\t\"e\\u0000w\": -20,\n\t\"e\\u0000x\": -30,\n\t\"e\\u0000y\": -20,\n\t\"e\\u0000yacute\": -20,\n\t\"e\\u0000ydieresis\": -20,\n\t\"eacute\\u0000comma\": -15,\n\t\"eacute\\u0000period\": -15,\n\t\"eacute\\u0000v\": -30,\n\t\"eacute\\u0000w\": -20,\n\t\"eacute\\u0000x\": -30,\n\t\"eacute\\u0000y\": -20,\n\t\"eacute\\u0000yacute\": -20,\n\t\"eacute\\u0000ydieresis\": -20,\n\t\"ecaron\\u0000comma\": -15,\n\t\"ecaron\\u0000period\": -15,\n\t\"ecaron\\u0000v\": -30,\n\t\"ecaron\\u0000w\": -20,\n\t\"ecaron\\u0000x\": -30,\n\t\"ecaron\\u0000y\": -20,\n\t\"ecaron\\u0000yacute\": -20,\n\t\"ecaron\\u0000ydieresis\": -20,\n\t\"ecircumflex\\u0000comma\": -15,\n\t\"ecircumflex\\u0000period\": -15,\n\t\"ecircumflex\\u0000v\": -30,\n\t\"ecircumflex\\u0000w\": -20,\n\t\"ecircumflex\\u0000x\": -30,\n\t\"ecircumflex\\u0000y\": -20,\n\t\"ecircumflex\\u0000yacute\": -20,\n\t\"ecircumflex\\u0000ydieresis\": -20,\n\t\"edieresis\\u0000comma\": -15,\n\t\"edieresis\\u0000period\": -15,\n\t\"edieresis\\u0000v\": -30,\n\t\"edieresis\\u0000w\": -20,\n\t\"edieresis\\u0000x\": -30,\n\t\"edieresis\\u0000y\": -20,\n\t\"edieresis\\u0000yacute\": -20,\n\t\"edieresis\\u0000ydieresis\": -20,\n\t\"edotaccent\\u0000comma\": -15,\n\t\"edotaccent\\u0000period\": -15,\n\t\"edotaccent\\u0000v\": -30,\n\t\"edotaccent\\u0000w\": -20,\n\t\"edotaccent\\u0000x\": -30,\n\t\"edotaccent\\u0000y\": -20,\n\t\"edotaccent\\u0000yacute\": -20,\n\t\"edotaccent\\u0000ydieresis\": -20,\n\t\"egrave\\u0000comma\": -15,\n\t\"egrave\\u0000period\": -15,\n\t\"egrave\\u0000v\": -30,\n\t\"egrave\\u0000w\": -20,\n\t\"egrave\\u0000x\": -30,\n\t\"egrave\\u0000y\": -20,\n\t\"egrave\\u0000yacute\": -20,\n\t\"egrave\\u0000ydieresis\": -20,\n\t\"emacron\\u0000comma\": -15,\n\t\"emacron\\u0000period\": -15,\n\t\"emacron\\u0000v\": -30,\n\t\"emacron\\u0000w\": -20,\n\t\"emacron\\u0000x\": -30,\n\t\"emacron\\u0000y\": -20,\n\t\"emacron\\u0000yacute\": -20,\n\t\"emacron\\u0000ydieresis\": -20,\n\t\"eogonek\\u0000comma\": -15,\n\t\"eogonek\\u0000period\": -15,\n\t\"eogonek\\u0000v\": -30,\n\t\"eogonek\\u0000w\": -20,\n\t\"eogonek\\u0000x\": -30,\n\t\"eogonek\\u0000y\": -20,\n\t\"eogonek\\u0000yacute\": -20,\n\t\"eogonek\\u0000ydieresis\": -20,\n\t\"f\\u0000a\": -30,\n\t\"f\\u0000aacute\": -30,\n\t\"f\\u0000abreve\": -30,\n\t\"f\\u0000acircumflex\": -30,\n\t\"f\\u0000adieresis\": -30,\n\t\"f\\u0000agrave\": -30,\n\t\"f\\u0000amacron\": -30,\n\t\"f\\u0000aogonek\": -30,\n\t\"f\\u0000aring\": -30,\n\t\"f\\u0000atilde\": -30,\n\t\"f\\u0000comma\": -30,\n\t\"f\\u0000dotlessi\": -28,\n\t\"f\\u0000e\": -30,\n\t\"f\\u0000eacute\": -30,\n\t\"f\\u0000ecaron\": -30,\n\t\"f\\u0000ecircumflex\": -30,\n\t\"f\\u0000edieresis\": -30,\n\t\"f\\u0000edotaccent\": -30,\n\t\"f\\u0000egrave\": -30,\n\t\"f\\u0000emacron\": -30,\n\t\"f\\u0000eogonek\": -30,\n\t\"f\\u0000o\": -30,\n\t\"f\\u0000oacute\": -30,\n\t\"f\\u0000ocircumflex\": -30,\n\t\"f\\u0000odieresis\": -30,\n\t\"f\\u0000ograve\": -30,\n\t\"f\\u0000ohungarumlaut\": -30,\n\t\"f\\u0000omacron\": -30,\n\t\"f\\u0000oslash\": -30,\n\t\"f\\u0000otilde\": -30,\n\t\"f\\u0000period\": -30,\n\t\"f\\u0000quotedblright\": 60,\n\t\"f\\u0000quoteright\": 50,\n\t\"g\\u0000r\": -10,\n\t\"g\\u0000racute\": -10,\n\t\"g\\u0000rcaron\": -10,\n\t\"g\\u0000rcommaaccent\": -10,\n\t\"gbreve\\u0000r\": -10,\n\t\"gbreve\\u0000racute\": -10,\n\t\"gbreve\\u0000rcaron\": -10,\n\t\"gbreve\\u0000rcommaaccent\": -10,\n\t\"gcommaaccent\\u0000r\": -10,\n\t\"gcommaaccent\\u0000racute\": -10,\n\t\"gcommaaccent\\u0000rcaron\": -10,\n\t\"gcommaaccent\\u0000rcommaaccent\": -10,\n\t\"h\\u0000y\": -30,\n\t\"h\\u0000yacute\": -30,\n\t\"h\\u0000ydieresis\": -30,\n\t\"k\\u0000e\": -20,\n\t\"k\\u0000eacute\": -20,\n\t\"k\\u0000ecaron\": -20,\n\t\"k\\u0000ecircumflex\": -20,\n\t\"k\\u0000edieresis\": -20,\n\t\"k\\u0000edotaccent\": -20,\n\t\"k\\u0000egrave\": -20,\n\t\"k\\u0000emacron\": -20,\n\t\"k\\u0000eogonek\": -20,\n\t\"k\\u0000o\": -20,\n\t\"k\\u0000oacute\": -20,\n\t\"k\\u0000ocircumflex\": -20,\n\t\"k\\u0000odieresis\": -20,\n\t\"k\\u0000ograve\": -20,\n\t\"k\\u0000ohungarumlaut\": -20,\n\t\"k\\u0000omacron\": -20,\n\t\"k\\u0000oslash\": -20,\n\t\"k\\u0000otilde\": -20,\n\t\"kcommaaccent\\u0000e\": -20,\n\t\"kcommaaccent\\u0000eacute\": -20,\n\t\"kcommaaccent\\u0000ecaron\": -20,\n\t\"kcommaaccent\\u0000ecircumflex\": -20,\n\t\"kcommaaccent\\u0000edieresis\": -20,\n\t\"kcommaaccent\\u0000edotaccent\": -20,\n\t\"kcommaaccent\\u0000egrave\": -20,\n\t\"kcommaaccent\\u0000emacron\": -20,\n\t\"kcommaaccent\\u0000eogonek\": -20,\n\t\"kcommaaccent\\u0000o\": -20,\n\t\"kcommaaccent\\u0000oacute\": -20,\n\t\"kcommaaccent\\u0000ocircumflex\": -20,\n\t\"kcommaaccent\\u0000odieresis\": -20,\n\t\"kcommaaccent\\u0000ograve\": -20,\n\t\"kcommaaccent\\u0000ohungarumlaut\": -20,\n\t\"kcommaaccent\\u0000omacron\": -20,\n\t\"kcommaaccent\\u0000oslash\": -20,\n\t\"kcommaaccent\\u0000otilde\": -20,\n\t\"m\\u0000u\": -10,\n\t\"m\\u0000uacute\": -10,\n\t\"m\\u0000ucircumflex\": -10,\n\t\"m\\u0000udieresis\": -10,\n\t\"m\\u0000ugrave\": -10,\n\t\"m\\u0000uhungarumlaut\": -10,\n\t\"m\\u0000umacron\": -10,\n\t\"m\\u0000uogonek\": -10,\n\t\"m\\u0000uring\": -10,\n\t\"m\\u0000y\": -15,\n\t\"m\\u0000yacute\": -15,\n\t\"m\\u0000ydieresis\": -15,\n\t\"n\\u0000u\": -10,\n\t\"n\\u0000uacute\": -10,\n\t\"n\\u0000ucircumflex\": -10,\n\t\"n\\u0000udieresis\": -10,\n\t\"n\\u0000ugrave\": -10,\n\t\"n\\u0000uhungarumlaut\": -10,\n\t\"n\\u0000umacron\": -10,\n\t\"n\\u0000uogonek\": -10,\n\t\"n\\u0000uring\": -10,\n\t\"n\\u0000v\": -20,\n\t\"n\\u0000y\": -15,\n\t\"n\\u0000yacute\": -15,\n\t\"n\\u0000ydieresis\": -15,\n\t\"nacute\\u0000u\": -10,\n\t\"nacute\\u0000uacute\": -10,\n\t\"nacute\\u0000ucircumflex\": -10,\n\t\"nacute\\u0000udieresis\": -10,\n\t\"nacute\\u0000ugrave\": -10,\n\t\"nacute\\u0000uhungarumlaut\": -10,\n\t\"nacute\\u0000umacron\": -10,\n\t\"nacute\\u0000uogonek\": -10,\n\t\"nacute\\u0000uring\": -10,\n\t\"nacute\\u0000v\": -20,\n\t\"nacute\\u0000y\": -15,\n\t\"nacute\\u0000yacute\": -15,\n\t\"nacute\\u0000ydieresis\": -15,\n\t\"ncaron\\u0000u\": -10,\n\t\"ncaron\\u0000uacute\": -10,\n\t\"ncaron\\u0000ucircumflex\": -10,\n\t\"ncaron\\u0000udieresis\": -10,\n\t\"ncaron\\u0000ugrave\": -10,\n\t\"ncaron\\u0000uhungarumlaut\": -10,\n\t\"ncaron\\u0000umacron\": -10,\n\t\"ncaron\\u0000uogonek\": -10,\n\t\"ncaron\\u0000uring\": -10,\n\t\"ncaron\\u0000v\": -20,\n\t\"ncaron\\u0000y\": -15,\n\t\"ncaron\\u0000yacute\": -15,\n\t\"ncaron\\u0000ydieresis\": -15,\n\t\"ncommaaccent\\u0000u\": -10,\n\t\"ncommaaccent\\u0000uacute\": -10,\n\t\"ncommaaccent\\u0000ucircumflex\": -10,\n\t\"ncommaaccent\\u0000udieresis\": -10,\n\t\"ncommaaccent\\u0000ugrave\": -10,\n\t\"ncommaaccent\\u0000uhungarumlaut\": -10,\n\t\"ncommaaccent\\u0000umacron\": -10,\n\t\"ncommaaccent\\u0000uogonek\": -10,\n\t\"ncommaaccent\\u0000uring\": -10,\n\t\"ncommaaccent\\u0000v\": -20,\n\t\"ncommaaccent\\u0000y\": -15,\n\t\"ncommaaccent\\u0000yacute\": -15,\n\t\"ncommaaccent\\u0000ydieresis\": -15,\n\t\"ntilde\\u0000u\": -10,\n\t\"ntilde\\u0000uacute\": -10,\n\t\"ntilde\\u0000ucircumflex\": -10,\n\t\"ntilde\\u0000udieresis\": -10,\n\t\"ntilde\\u0000ugrave\": -10,\n\t\"ntilde\\u0000uhungarumlaut\": -10,\n\t\"ntilde\\u0000umacron\": -10,\n\t\"ntilde\\u0000uogonek\": -10,\n\t\"ntilde\\u0000uring\": -10,\n\t\"ntilde\\u0000v\": -20,\n\t\"ntilde\\u0000y\": -15,\n\t\"ntilde\\u0000yacute\": -15,\n\t\"ntilde\\u0000ydieresis\": -15,\n\t\"o\\u0000comma\": -40,\n\t\"o\\u0000period\": -40,\n\t\"o\\u0000v\": -15,\n\t\"o\\u0000w\": -15,\n\t\"o\\u0000x\": -30,\n\t\"o\\u0000y\": -30,\n\t\"o\\u0000yacute\": -30,\n\t\"o\\u0000ydieresis\": -30,\n\t\"oacute\\u0000comma\": -40,\n\t\"oacute\\u0000period\": -40,\n\t\"oacute\\u0000v\": -15,\n\t\"oacute\\u0000w\": -15,\n\t\"oacute\\u0000x\": -30,\n\t\"oacute\\u0000y\": -30,\n\t\"oacute\\u0000yacute\": -30,\n\t\"oacute\\u0000ydieresis\": -30,\n\t\"ocircumflex\\u0000comma\": -40,\n\t\"ocircumflex\\u0000period\": -40,\n\t\"ocircumflex\\u0000v\": -15,\n\t\"ocircumflex\\u0000w\": -15,\n\t\"ocircumflex\\u0000x\": -30,\n\t\"ocircumflex\\u0000y\": -30,\n\t\"ocircumflex\\u0000yacute\": -30,\n\t\"ocircumflex\\u0000ydieresis\": -30,\n\t\"odieresis\\u0000comma\": -40,\n\t\"odieresis\\u0000period\": -40,\n\t\"odieresis\\u0000v\": -15,\n\t\"odieresis\\u0000w\": -15,\n\t\"odieresis\\u0000x\": -30,\n\t\"odieresis\\u0000y\": -30,\n\t\"odieresis\\u0000yacute\": -30,\n\t\"odieresis\\u0000ydieresis\": -30,\n\t\"ograve\\u0000comma\": -40,\n\t\"ograve\\u0000period\": -40,\n\t\"ograve\\u0000v\": -15,\n\t\"ograve\\u0000w\": -15,\n\t\"ograve\\u0000x\": -30,\n\t\"ograve\\u0000y\": -30,\n\t\"ograve\\u0000yacute\": -30,\n\t\"ograve\\u0000ydieresis\": -30,\n\t\"ohungarumlaut\\u0000comma\": -40,\n\t\"ohungarumlaut\\u0000period\": -40,\n\t\"ohungarumlaut\\u0000v\": -15,\n\t\"ohungarumlaut\\u0000w\": -15,\n\t\"ohungarumlaut\\u0000x\": -30,\n\t\"ohungarumlaut\\u0000y\": -30,\n\t\"ohungarumlaut\\u0000yacute\": -30,\n\t\"ohungarumlaut\\u0000ydieresis\": -30,\n\t\"omacron\\u0000comma\": -40,\n\t\"omacron\\u0000period\": -40,\n\t\"omacron\\u0000v\": -15,\n\t\"omacron\\u0000w\": -15,\n\t\"omacron\\u0000x\": -30,\n\t\"omacron\\u0000y\": -30,\n\t\"omacron\\u0000yacute\": -30,\n\t\"omacron\\u0000ydieresis\": -30,\n\t\"oslash\\u0000a\": -55,\n\t\"oslash\\u0000aacute\": -55,\n\t\"oslash\\u0000abreve\": -55,\n\t\"oslash\\u0000acircumflex\": -55,\n\t\"oslash\\u0000adieresis\": -55,\n\t\"oslash\\u0000agrave\": -55,\n\t\"oslash\\u0000amacron\": -55,\n\t\"oslash\\u0000aogonek\": -55,\n\t\"oslash\\u0000aring\": -55,\n\t\"oslash\\u0000atilde\": -55,\n\t\"oslash\\u0000b\": -55,\n\t\"oslash\\u0000c\": -55,\n\t\"oslash\\u0000cacute\": -55,\n\t\"oslash\\u0000ccaron\": -55,\n\t\"oslash\\u0000ccedilla\": -55,\n\t\"oslash\\u0000comma\": -95,\n\t\"oslash\\u0000d\": -55,\n\t\"oslash\\u0000dcroat\": -55,\n\t\"oslash\\u0000e\": -55,\n\t\"oslash\\u0000eacute\": -55,\n\t\"oslash\\u0000ecaron\": -55,\n\t\"oslash\\u0000ecircumflex\": -55,\n\t\"oslash\\u0000edieresis\": -55,\n\t\"oslash\\u0000edotaccent\": -55,\n\t\"oslash\\u0000egrave\": -55,\n\t\"oslash\\u0000emacron\": -55,\n\t\"oslash\\u0000eogonek\": -55,\n\t\"oslash\\u0000f\": -55,\n\t\"oslash\\u0000g\": -55,\n\t\"oslash\\u0000gbreve\": -55,\n\t\"oslash\\u0000gcommaaccent\": -55,\n\t\"oslash\\u0000h\": -55,\n\t\"oslash\\u0000i\": -55,\n\t\"oslash\\u0000iacute\": -55,\n\t\"oslash\\u0000icircumflex\": -55,\n\t\"oslash\\u0000idieresis\": -55,\n\t\"oslash\\u0000igrave\": -55,\n\t\"oslash\\u0000imacron\": -55,\n\t\"oslash\\u0000iogonek\": -55,\n\t\"oslash\\u0000j\": -55,\n\t\"oslash\\u0000k\": -55,\n\t\"oslash\\u0000kcommaaccent\": -55,\n\t\"oslash\\u0000l\": -55,\n\t\"oslash\\u0000lacute\": -55,\n\t\"oslash\\u0000lcommaaccent\": -55,\n\t\"oslash\\u0000lslash\": -55,\n\t\"oslash\\u0000m\": -55,\n\t\"oslash\\u0000n\": -55,\n\t\"oslash\\u0000nacute\": -55,\n\t\"oslash\\u0000ncaron\": -55,\n\t\"oslash\\u0000ncommaaccent\": -55,\n\t\"oslash\\u0000ntilde\": -55,\n\t\"oslash\\u0000o\": -55,\n\t\"oslash\\u0000oacute\": -55,\n\t\"oslash\\u0000ocircumflex\": -55,\n\t\"oslash\\u0000odieresis\": -55,\n\t\"oslash\\u0000ograve\": -55,\n\t\"oslash\\u0000ohungarumlaut\": -55,\n\t\"oslash\\u0000omacron\": -55,\n\t\"oslash\\u0000oslash\": -55,\n\t\"oslash\\u0000otilde\": -55,\n\t\"oslash\\u0000p\": -55,\n\t\"oslash\\u0000period\": -95,\n\t\"oslash\\u0000q\": -55,\n\t\"oslash\\u0000r\": -55,\n\t\"oslash\\u0000racute\": -55,\n\t\"oslash\\u0000rcaron\": -55,\n\t\"oslash\\u0000rcommaaccent\": -55,\n\t\"oslash\\u0000s\": -55,\n\t\"oslash\\u0000sacute\": -55,\n\t\"oslash\\u0000scaron\": -55,\n\t\"oslash\\u0000scedilla\": -55,\n\t\"oslash\\u0000scommaaccent\": -55,\n\t\"oslash\\u0000t\": -55,\n\t\"oslash\\u0000tcommaaccent\": -55,\n\t\"oslash\\u0000u\": -55,\n\t\"oslash\\u0000uacute\": -55,\n\t\"oslash\\u0000ucircumflex\": -55,\n\t\"oslash\\u0000udieresis\": -55,\n\t\"oslash\\u0000ugrave\": -55,\n\t\"oslash\\u0000uhungarumlaut\": -55,\n\t\"oslash\\u0000umacron\": -55,\n\t\"oslash\\u0000uogonek\": -55,\n\t\"oslash\\u0000uring\": -55,\n\t\"oslash\\u0000v\": -70,\n\t\"oslash\\u0000w\": -70,\n\t\"oslash\\u0000x\": -85,\n\t\"oslash\\u0000y\": -70,\n\t\"oslash\\u0000yacute\": -70,\n\t\"oslash\\u0000ydieresis\": -70,\n\t\"oslash\\u0000z\": -55,\n\t\"oslash\\u0000zacute\": -55,\n\t\"oslash\\u0000zcaron\": -55,\n\t\"oslash\\u0000zdotaccent\": -55,\n\t\"otilde\\u0000comma\": -40,\n\t\"otilde\\u0000period\": -40,\n\t\"otilde\\u0000v\": -15,\n\t\"otilde\\u0000w\": -15,\n\t\"otilde\\u0000x\": -30,\n\t\"otilde\\u0000y\": -30,\n\t\"otilde\\u0000yacute\": -30,\n\t\"otilde\\u0000ydieresis\": -30,\n\t\"p\\u0000comma\": -35,\n\t\"p\\u0000period\": -35,\n\t\"p\\u0000y\": -30,\n\t\"p\\u0000yacute\": -30,\n\t\"p\\u0000ydieresis\": -30,\n\t\"period\\u0000quotedblright\": -100,\n\t\"period\\u0000quoteright\": -100,\n\t\"period\\u0000space\": -60,\n\t\"quotedblright\\u0000space\": -40,\n\t\"quoteleft\\u0000quoteleft\": -57,\n\t\"quoteright\\u0000d\": -50,\n\t\"quoteright\\u0000dcroat\": -50,\n\t\"quoteright\\u0000quoteright\": -57,\n\t\"quoteright\\u0000r\": -50,\n\t\"quoteright\\u0000racute\": -50,\n\t\"quoteright\\u0000rcaron\": -50,\n\t\"quoteright\\u0000rcommaaccent\": -50,\n\t\"quoteright\\u0000s\": -50,\n\t\"quoteright\\u0000sacute\": -50,\n\t\"quoteright\\u0000scaron\": -50,\n\t\"quoteright\\u0000scedilla\": -50,\n\t\"quoteright\\u0000scommaaccent\": -50,\n\t\"quoteright\\u0000space\": -70,\n\t\"r\\u0000a\": -10,\n\t\"r\\u0000aacute\": -10,\n\t\"r\\u0000abreve\": -10,\n\t\"r\\u0000acircumflex\": -10,\n\t\"r\\u0000adieresis\": -10,\n\t\"r\\u0000agrave\": -10,\n\t\"r\\u0000amacron\": -10,\n\t\"r\\u0000aogonek\": -10,\n\t\"r\\u0000aring\": -10,\n\t\"r\\u0000atilde\": -10,\n\t\"r\\u0000colon\": 30,\n\t\"r\\u0000comma\": -50,\n\t\"r\\u0000i\": 15,\n\t\"r\\u0000iacute\": 15,\n\t\"r\\u0000icircumflex\": 15,\n\t\"r\\u0000idieresis\": 15,\n\t\"r\\u0000igrave\": 15,\n\t\"r\\u0000imacron\": 15,\n\t\"r\\u0000iogonek\": 15,\n\t\"r\\u0000k\": 15,\n\t\"r\\u0000kcommaaccent\": 15,\n\t\"r\\u0000l\": 15,\n\t\"r\\u0000lacute\": 15,\n\t\"r\\u0000lcommaaccent\": 15,\n\t\"r\\u0000lslash\": 15,\n\t\"r\\u0000m\": 25,\n\t\"r\\u0000n\": 25,\n\t\"r\\u0000nacute\": 25,\n\t\"r\\u0000ncaron\": 25,\n\t\"r\\u0000ncommaaccent\": 25,\n\t\"r\\u0000ntilde\": 25,\n\t\"r\\u0000p\": 30,\n\t\"r\\u0000period\": -50,\n\t\"r\\u0000semicolon\": 30,\n\t\"r\\u0000t\": 40,\n\t\"r\\u0000tcommaaccent\": 40,\n\t\"r\\u0000u\": 15,\n\t\"r\\u0000uacute\": 15,\n\t\"r\\u0000ucircumflex\": 15,\n\t\"r\\u0000udieresis\": 15,\n\t\"r\\u0000ugrave\": 15,\n\t\"r\\u0000uhungarumlaut\": 15,\n\t\"r\\u0000umacron\": 15,\n\t\"r\\u0000uogonek\": 15,\n\t\"r\\u0000uring\": 15,\n\t\"r\\u0000v\": 30,\n\t\"r\\u0000y\": 30,\n\t\"r\\u0000yacute\": 30,\n\t\"r\\u0000ydieresis\": 30,\n\t\"racute\\u0000a\": -10,\n\t\"racute\\u0000aacute\": -10,\n\t\"racute\\u0000abreve\": -10,\n\t\"racute\\u0000acircumflex\": -10,\n\t\"racute\\u0000adieresis\": -10,\n\t\"racute\\u0000agrave\": -10,\n\t\"racute\\u0000amacron\": -10,\n\t\"racute\\u0000aogonek\": -10,\n\t\"racute\\u0000aring\": -10,\n\t\"racute\\u0000atilde\": -10,\n\t\"racute\\u0000colon\": 30,\n\t\"racute\\u0000comma\": -50,\n\t\"racute\\u0000i\": 15,\n\t\"racute\\u0000iacute\": 15,\n\t\"racute\\u0000icircumflex\": 15,\n\t\"racute\\u0000idieresis\": 15,\n\t\"racute\\u0000igrave\": 15,\n\t\"racute\\u0000imacron\": 15,\n\t\"racute\\u0000iogonek\": 15,\n\t\"racute\\u0000k\": 15,\n\t\"racute\\u0000kcommaaccent\": 15,\n\t\"racute\\u0000l\": 15,\n\t\"racute\\u0000lacute\": 15,\n\t\"racute\\u0000lcommaaccent\": 15,\n\t\"racute\\u0000lslash\": 15,\n\t\"racute\\u0000m\": 25,\n\t\"racute\\u0000n\": 25,\n\t\"racute\\u0000nacute\": 25,\n\t\"racute\\u0000ncaron\": 25,\n\t\"racute\\u0000ncommaaccent\": 25,\n\t\"racute\\u0000ntilde\": 25,\n\t\"racute\\u0000p\": 30,\n\t\"racute\\u0000period\": -50,\n\t\"racute\\u0000semicolon\": 30,\n\t\"racute\\u0000t\": 40,\n\t\"racute\\u0000tcommaaccent\": 40,\n\t\"racute\\u0000u\": 15,\n\t\"racute\\u0000uacute\": 15,\n\t\"racute\\u0000ucircumflex\": 15,\n\t\"racute\\u0000udieresis\": 15,\n\t\"racute\\u0000ugrave\": 15,\n\t\"racute\\u0000uhungarumlaut\": 15,\n\t\"racute\\u0000umacron\": 15,\n\t\"racute\\u0000uogonek\": 15,\n\t\"racute\\u0000uring\": 15,\n\t\"racute\\u0000v\": 30,\n\t\"racute\\u0000y\": 30,\n\t\"racute\\u0000yacute\": 30,\n\t\"racute\\u0000ydieresis\": 30,\n\t\"rcaron\\u0000a\": -10,\n\t\"rcaron\\u0000aacute\": -10,\n\t\"rcaron\\u0000abreve\": -10,\n\t\"rcaron\\u0000acircumflex\": -10,\n\t\"rcaron\\u0000adieresis\": -10,\n\t\"rcaron\\u0000agrave\": -10,\n\t\"rcaron\\u0000amacron\": -10,\n\t\"rcaron\\u0000aogonek\": -10,\n\t\"rcaron\\u0000aring\": -10,\n\t\"rcaron\\u0000atilde\": -10,\n\t\"rcaron\\u0000colon\": 30,\n\t\"rcaron\\u0000comma\": -50,\n\t\"rcaron\\u0000i\": 15,\n\t\"rcaron\\u0000iacute\": 15,\n\t\"rcaron\\u0000icircumflex\": 15,\n\t\"rcaron\\u0000idieresis\": 15,\n\t\"rcaron\\u0000igrave\": 15,\n\t\"rcaron\\u0000imacron\": 15,\n\t\"rcaron\\u0000iogonek\": 15,\n\t\"rcaron\\u0000k\": 15,\n\t\"rcaron\\u0000kcommaaccent\": 15,\n\t\"rcaron\\u0000l\": 15,\n\t\"rcaron\\u0000lacute\": 15,\n\t\"rcaron\\u0000lcommaaccent\": 15,\n\t\"rcaron\\u0000lslash\": 15,\n\t\"rcaron\\u0000m\": 25,\n\t\"rcaron\\u0000n\": 25,\n\t\"rcaron\\u0000nacute\": 25,\n\t\"rcaron\\u0000ncaron\": 25,\n\t\"rcaron\\u0000ncommaaccent\": 25,\n\t\"rcaron\\u0000ntilde\": 25,\n\t\"rcaron\\u0000p\": 30,\n\t\"rcaron\\u0000period\": -50,\n\t\"rcaron\\u0000semicolon\": 30,\n\t\"rcaron\\u0000t\": 40,\n\t\"rcaron\\u0000tcommaaccent\": 40,\n\t\"rcaron\\u0000u\": 15,\n\t\"rcaron\\u0000uacute\": 15,\n\t\"rcaron\\u0000ucircumflex\": 15,\n\t\"rcaron\\u0000udieresis\": 15,\n\t\"rcaron\\u0000ugrave\": 15,\n\t\"rcaron\\u0000uhungarumlaut\": 15,\n\t\"rcaron\\u0000umacron\": 15,\n\t\"rcaron\\u0000uogonek\": 15,\n\t\"rcaron\\u0000uring\": 15,\n\t\"rcaron\\u0000v\": 30,\n\t\"rcaron\\u0000y\": 30,\n\t\"rcaron\\u0000yacute\": 30,\n\t\"rcaron\\u0000ydieresis\": 30,\n\t\"rcommaaccent\\u0000a\": -10,\n\t\"rcommaaccent\\u0000aacute\": -10,\n\t\"rcommaaccent\\u0000abreve\": -10,\n\t\"rcommaaccent\\u0000acircumflex\": -10,\n\t\"rcommaaccent\\u0000adieresis\": -10,\n\t\"rcommaaccent\\u0000agrave\": -10,\n\t\"rcommaaccent\\u0000amacron\": -10,\n\t\"rcommaaccent\\u0000aogonek\": -10,\n\t\"rcommaaccent\\u0000aring\": -10,\n\t\"rcommaaccent\\u0000atilde\": -10,\n\t\"rcommaaccent\\u0000colon\": 30,\n\t\"rcommaaccent\\u0000comma\": -50,\n\t\"rcommaaccent\\u0000i\": 15,\n\t\"rcommaaccent\\u0000iacute\": 15,\n\t\"rcommaaccent\\u0000icircumflex\": 15,\n\t\"rcommaaccent\\u0000idieresis\": 15,\n\t\"rcommaaccent\\u0000igrave\": 15,\n\t\"rcommaaccent\\u0000imacron\": 15,\n\t\"rcommaaccent\\u0000iogonek\": 15,\n\t\"rcommaaccent\\u0000k\": 15,\n\t\"rcommaaccent\\u0000kcommaaccent\": 15,\n\t\"rcommaaccent\\u0000l\": 15,\n\t\"rcommaaccent\\u0000lacute\": 15,\n\t\"rcommaaccent\\u0000lcommaaccent\": 15,\n\t\"rcommaaccent\\u0000lslash\": 15,\n\t\"rcommaaccent\\u0000m\": 25,\n\t\"rcommaaccent\\u0000n\": 25,\n\t\"rcommaaccent\\u0000nacute\": 25,\n\t\"rcommaaccent\\u0000ncaron\": 25,\n\t\"rcommaaccent\\u0000ncommaaccent\": 25,\n\t\"rcommaaccent\\u0000ntilde\": 25,\n\t\"rcommaaccent\\u0000p\": 30,\n\t\"rcommaaccent\\u0000period\": -50,\n\t\"rcommaaccent\\u0000semicolon\": 30,\n\t\"rcommaaccent\\u0000t\": 40,\n\t\"rcommaaccent\\u0000tcommaaccent\": 40,\n\t\"rcommaaccent\\u0000u\": 15,\n\t\"rcommaaccent\\u0000uacute\": 15,\n\t\"rcommaaccent\\u0000ucircumflex\": 15,\n\t\"rcommaaccent\\u0000udieresis\": 15,\n\t\"rcommaaccent\\u0000ugrave\": 15,\n\t\"rcommaaccent\\u0000uhungarumlaut\": 15,\n\t\"rcommaaccent\\u0000umacron\": 15,\n\t\"rcommaaccent\\u0000uogonek\": 15,\n\t\"rcommaaccent\\u0000uring\": 15,\n\t\"rcommaaccent\\u0000v\": 30,\n\t\"rcommaaccent\\u0000y\": 30,\n\t\"rcommaaccent\\u0000yacute\": 30,\n\t\"rcommaaccent\\u0000ydieresis\": 30,\n\t\"s\\u0000comma\": -15,\n\t\"s\\u0000period\": -15,\n\t\"s\\u0000w\": -30,\n\t\"sacute\\u0000comma\": -15,\n\t\"sacute\\u0000period\": -15,\n\t\"sacute\\u0000w\": -30,\n\t\"scaron\\u0000comma\": -15,\n\t\"scaron\\u0000period\": -15,\n\t\"scaron\\u0000w\": -30,\n\t\"scedilla\\u0000comma\": -15,\n\t\"scedilla\\u0000period\": -15,\n\t\"scedilla\\u0000w\": -30,\n\t\"scommaaccent\\u0000comma\": -15,\n\t\"scommaaccent\\u0000period\": -15,\n\t\"scommaaccent\\u0000w\": -30,\n\t\"semicolon\\u0000space\": -50,\n\t\"space\\u0000T\": -50,\n\t\"space\\u0000Tcaron\": -50,\n\t\"space\\u0000Tcommaaccent\": -50,\n\t\"space\\u0000V\": -50,\n\t\"space\\u0000W\": -40,\n\t\"space\\u0000Y\": -90,\n\t\"space\\u0000Yacute\": -90,\n\t\"space\\u0000Ydieresis\": -90,\n\t\"space\\u0000quotedblleft\": -30,\n\t\"space\\u0000quoteleft\": -60,\n\t\"v\\u0000a\": -25,\n\t\"v\\u0000aacute\": -25,\n\t\"v\\u0000abreve\": -25,\n\t\"v\\u0000acircumflex\": -25,\n\t\"v\\u0000adieresis\": -25,\n\t\"v\\u0000agrave\": -25,\n\t\"v\\u0000amacron\": -25,\n\t\"v\\u0000aogonek\": -25,\n\t\"v\\u0000aring\": -25,\n\t\"v\\u0000atilde\": -25,\n\t\"v\\u0000comma\": -80,\n\t\"v\\u0000e\": -25,\n\t\"v\\u0000eacute\": -25,\n\t\"v\\u0000ecaron\": -25,\n\t\"v\\u0000ecircumflex\": -25,\n\t\"v\\u0000edieresis\": -25,\n\t\"v\\u0000edotaccent\": -25,\n\t\"v\\u0000egrave\": -25,\n\t\"v\\u0000emacron\": -25,\n\t\"v\\u0000eogonek\": -25,\n\t\"v\\u0000o\": -25,\n\t\"v\\u0000oacute\": -25,\n\t\"v\\u0000ocircumflex\": -25,\n\t\"v\\u0000odieresis\": -25,\n\t\"v\\u0000ograve\": -25,\n\t\"v\\u0000ohungarumlaut\": -25,\n\t\"v\\u0000omacron\": -25,\n\t\"v\\u0000oslash\": -25,\n\t\"v\\u0000otilde\": -25,\n\t\"v\\u0000period\": -80,\n\t\"w\\u0000a\": -15,\n\t\"w\\u0000aacute\": -15,\n\t\"w\\u0000abreve\": -15,\n\t\"w\\u0000acircumflex\": -15,\n\t\"w\\u0000adieresis\": -15,\n\t\"w\\u0000agrave\": -15,\n\t\"w\\u0000amacron\": -15,\n\t\"w\\u0000aogonek\": -15,\n\t\"w\\u0000aring\": -15,\n\t\"w\\u0000atilde\": -15,\n\t\"w\\u0000comma\": -60,\n\t\"w\\u0000e\": -10,\n\t\"w\\u0000eacute\": -10,\n\t\"w\\u0000ecaron\": -10,\n\t\"w\\u0000ecircumflex\": -10,\n\t\"w\\u0000edieresis\": -10,\n\t\"w\\u0000edotaccent\": -10,\n\t\"w\\u0000egrave\": -10,\n\t\"w\\u0000emacron\": -10,\n\t\"w\\u0000eogonek\": -10,\n\t\"w\\u0000o\": -10,\n\t\"w\\u0000oacute\": -10,\n\t\"w\\u0000ocircumflex\": -10,\n\t\"w\\u0000odieresis\": -10,\n\t\"w\\u0000ograve\": -10,\n\t\"w\\u0000ohungarumlaut\": -10,\n\t\"w\\u0000omacron\": -10,\n\t\"w\\u0000oslash\": -10,\n\t\"w\\u0000otilde\": -10,\n\t\"w\\u0000period\": -60,\n\t\"x\\u0000e\": -30,\n\t\"x\\u0000eacute\": -30,\n\t\"x\\u0000ecaron\": -30,\n\t\"x\\u0000ecircumflex\": -30,\n\t\"x\\u0000edieresis\": -30,\n\t\"x\\u0000edotaccent\": -30,\n\t\"x\\u0000egrave\": -30,\n\t\"x\\u0000emacron\": -30,\n\t\"x\\u0000eogonek\": -30,\n\t\"y\\u0000a\": -20,\n\t\"y\\u0000aacute\": -20,\n\t\"y\\u0000abreve\": -20,\n\t\"y\\u0000acircumflex\": -20,\n\t\"y\\u0000adieresis\": -20,\n\t\"y\\u0000agrave\": -20,\n\t\"y\\u0000amacron\": -20,\n\t\"y\\u0000aogonek\": -20,\n\t\"y\\u0000aring\": -20,\n\t\"y\\u0000atilde\": -20,\n\t\"y\\u0000comma\": -100,\n\t\"y\\u0000e\": -20,\n\t\"y\\u0000eacute\": -20,\n\t\"y\\u0000ecaron\": -20,\n\t\"y\\u0000ecircumflex\": -20,\n\t\"y\\u0000edieresis\": -20,\n\t\"y\\u0000edotaccent\": -20,\n\t\"y\\u0000egrave\": -20,\n\t\"y\\u0000emacron\": -20,\n\t\"y\\u0000eogonek\": -20,\n\t\"y\\u0000o\": -20,\n\t\"y\\u0000oacute\": -20,\n\t\"y\\u0000ocircumflex\": -20,\n\t\"y\\u0000odieresis\": -20,\n\t\"y\\u0000ograve\": -20,\n\t\"y\\u0000ohungarumlaut\": -20,\n\t\"y\\u0000omacron\": -20,\n\t\"y\\u0000oslash\": -20,\n\t\"y\\u0000otilde\": -20,\n\t\"y\\u0000period\": -100,\n\t\"yacute\\u0000a\": -20,\n\t\"yacute\\u0000aacute\": -20,\n\t\"yacute\\u0000abreve\": -20,\n\t\"yacute\\u0000acircumflex\": -20,\n\t\"yacute\\u0000adieresis\": -20,\n\t\"yacute\\u0000agrave\": -20,\n\t\"yacute\\u0000amacron\": -20,\n\t\"yacute\\u0000aogonek\": -20,\n\t\"yacute\\u0000aring\": -20,\n\t\"yacute\\u0000atilde\": -20,\n\t\"yacute\\u0000comma\": -100,\n\t\"yacute\\u0000e\": -20,\n\t\"yacute\\u0000eacute\": -20,\n\t\"yacute\\u0000ecaron\": -20,\n\t\"yacute\\u0000ecircumflex\": -20,\n\t\"yacute\\u0000edieresis\": -20,\n\t\"yacute\\u0000edotaccent\": -20,\n\t\"yacute\\u0000egrave\": -20,\n\t\"yacute\\u0000emacron\": -20,\n\t\"yacute\\u0000eogonek\": -20,\n\t\"yacute\\u0000o\": -20,\n\t\"yacute\\u0000oacute\": -20,\n\t\"yacute\\u0000ocircumflex\": -20,\n\t\"yacute\\u0000odieresis\": -20,\n\t\"yacute\\u0000ograve\": -20,\n\t\"yacute\\u0000ohungarumlaut\": -20,\n\t\"yacute\\u0000omacron\": -20,\n\t\"yacute\\u0000oslash\": -20,\n\t\"yacute\\u0000otilde\": -20,\n\t\"yacute\\u0000period\": -100,\n\t\"ydieresis\\u0000a\": -20,\n\t\"ydieresis\\u0000aacute\": -20,\n\t\"ydieresis\\u0000abreve\": -20,\n\t\"ydieresis\\u0000acircumflex\": -20,\n\t\"ydieresis\\u0000adieresis\": -20,\n\t\"ydieresis\\u0000agrave\": -20,\n\t\"ydieresis\\u0000amacron\": -20,\n\t\"ydieresis\\u0000aogonek\": -20,\n\t\"ydieresis\\u0000aring\": -20,\n\t\"ydieresis\\u0000atilde\": -20,\n\t\"ydieresis\\u0000comma\": -100,\n\t\"ydieresis\\u0000e\": -20,\n\t\"ydieresis\\u0000eacute\": -20,\n\t\"ydieresis\\u0000ecaron\": -20,\n\t\"ydieresis\\u0000ecircumflex\": -20,\n\t\"ydieresis\\u0000edieresis\": -20,\n\t\"ydieresis\\u0000edotaccent\": -20,\n\t\"ydieresis\\u0000egrave\": -20,\n\t\"ydieresis\\u0000emacron\": -20,\n\t\"ydieresis\\u0000eogonek\": -20,\n\t\"ydieresis\\u0000o\": -20,\n\t\"ydieresis\\u0000oacute\": -20,\n\t\"ydieresis\\u0000ocircumflex\": -20,\n\t\"ydieresis\\u0000odieresis\": -20,\n\t\"ydieresis\\u0000ograve\": -20,\n\t\"ydieresis\\u0000ohungarumlaut\": -20,\n\t\"ydieresis\\u0000omacron\": -20,\n\t\"ydieresis\\u0000oslash\": -20,\n\t\"ydieresis\\u0000otilde\": -20,\n\t\"ydieresis\\u0000period\": -100,\n\t\"z\\u0000e\": -15,\n\t\"z\\u0000eacute\": -15,\n\t\"z\\u0000ecaron\": -15,\n\t\"z\\u0000ecircumflex\": -15,\n\t\"z\\u0000edieresis\": -15,\n\t\"z\\u0000edotaccent\": -15,\n\t\"z\\u0000egrave\": -15,\n\t\"z\\u0000emacron\": -15,\n\t\"z\\u0000eogonek\": -15,\n\t\"z\\u0000o\": -15,\n\t\"z\\u0000oacute\": -15,\n\t\"z\\u0000ocircumflex\": -15,\n\t\"z\\u0000odieresis\": -15,\n\t\"z\\u0000ograve\": -15,\n\t\"z\\u0000ohungarumlaut\": -15,\n\t\"z\\u0000omacron\": -15,\n\t\"z\\u0000oslash\": -15,\n\t\"z\\u0000otilde\": -15,\n\t\"zacute\\u0000e\": -15,\n\t\"zacute\\u0000eacute\": -15,\n\t\"zacute\\u0000ecaron\": -15,\n\t\"zacute\\u0000ecircumflex\": -15,\n\t\"zacute\\u0000edieresis\": -15,\n\t\"zacute\\u0000edotaccent\": -15,\n\t\"zacute\\u0000egrave\": -15,\n\t\"zacute\\u0000emacron\": -15,\n\t\"zacute\\u0000eogonek\": -15,\n\t\"zacute\\u0000o\": -15,\n\t\"zacute\\u0000oacute\": -15,\n\t\"zacute\\u0000ocircumflex\": -15,\n\t\"zacute\\u0000odieresis\": -15,\n\t\"zacute\\u0000ograve\": -15,\n\t\"zacute\\u0000ohungarumlaut\": -15,\n\t\"zacute\\u0000omacron\": -15,\n\t\"zacute\\u0000oslash\": -15,\n\t\"zacute\\u0000otilde\": -15,\n\t\"zcaron\\u0000e\": -15,\n\t\"zcaron\\u0000eacute\": -15,\n\t\"zcaron\\u0000ecaron\": -15,\n\t\"zcaron\\u0000ecircumflex\": -15,\n\t\"zcaron\\u0000edieresis\": -15,\n\t\"zcaron\\u0000edotaccent\": -15,\n\t\"zcaron\\u0000egrave\": -15,\n\t\"zcaron\\u0000emacron\": -15,\n\t\"zcaron\\u0000eogonek\": -15,\n\t\"zcaron\\u0000o\": -15,\n\t\"zcaron\\u0000oacute\": -15,\n\t\"zcaron\\u0000ocircumflex\": -15,\n\t\"zcaron\\u0000odieresis\": -15,\n\t\"zcaron\\u0000ograve\": -15,\n\t\"zcaron\\u0000ohungarumlaut\": -15,\n\t\"zcaron\\u0000omacron\": -15,\n\t\"zcaron\\u0000oslash\": -15,\n\t\"zcaron\\u0000otilde\": -15,\n\t\"zdotaccent\\u0000e\": -15,\n\t\"zdotaccent\\u0000eacute\": -15,\n\t\"zdotaccent\\u0000ecaron\": -15,\n\t\"zdotaccent\\u0000ecircumflex\": -15,\n\t\"zdotaccent\\u0000edieresis\": -15,\n\t\"zdotaccent\\u0000edotaccent\": -15,\n\t\"zdotaccent\\u0000egrave\": -15,\n\t\"zdotaccent\\u0000emacron\": -15,\n\t\"zdotaccent\\u0000eogonek\": -15,\n\t\"zdotaccent\\u0000o\": -15,\n\t\"zdotaccent\\u0000oacute\": -15,\n\t\"zdotaccent\\u0000ocircumflex\": -15,\n\t\"zdotaccent\\u0000odieresis\": -15,\n\t\"zdotaccent\\u0000ograve\": -15,\n\t\"zdotaccent\\u0000ohungarumlaut\": -15,\n\t\"zdotaccent\\u0000omacron\": -15,\n\t\"zdotaccent\\u0000oslash\": -15,\n\t\"zdotaccent\\u0000otilde\": -15\n};\nvar Helvetica = {\n\tattributes: attributes$5,\n\tglyphWidths: glyphWidths$5,\n\tkernPairs: kernPairs$5\n};\n\nvar attributes$4 = {\n\tComment: [\n\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Thu May 1 12:43:52 1997\",\n\t\t\"UniqueID 43052\",\n\t\t\"VMusage 37169 48194\"\n\t],\n\tFontName: \"Helvetica-Bold\",\n\tFullName: \"Helvetica Bold\",\n\tFamilyName: \"Helvetica\",\n\tWeight: \"Bold\",\n\tItalicAngle: \"0\",\n\tIsFixedPitch: \"false\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-170 -228 1003 962 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"002.000\",\n\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"718\",\n\tXHeight: \"532\",\n\tAscender: \"718\",\n\tDescender: \"-207\",\n\tStdHW: \"118\",\n\tStdVW: \"140\"\n};\nvar glyphWidths$4 = {\n\tspace: 278,\n\texclam: 333,\n\tquotedbl: 474,\n\tnumbersign: 556,\n\tdollar: 556,\n\tpercent: 889,\n\tampersand: 722,\n\tquoteright: 278,\n\tparenleft: 333,\n\tparenright: 333,\n\tasterisk: 389,\n\tplus: 584,\n\tcomma: 278,\n\thyphen: 333,\n\tperiod: 278,\n\tslash: 278,\n\tzero: 556,\n\tone: 556,\n\ttwo: 556,\n\tthree: 556,\n\tfour: 556,\n\tfive: 556,\n\tsix: 556,\n\tseven: 556,\n\teight: 556,\n\tnine: 556,\n\tcolon: 333,\n\tsemicolon: 333,\n\tless: 584,\n\tequal: 584,\n\tgreater: 584,\n\tquestion: 611,\n\tat: 975,\n\tA: 722,\n\tB: 722,\n\tC: 722,\n\tD: 722,\n\tE: 667,\n\tF: 611,\n\tG: 778,\n\tH: 722,\n\tI: 278,\n\tJ: 556,\n\tK: 722,\n\tL: 611,\n\tM: 833,\n\tN: 722,\n\tO: 778,\n\tP: 667,\n\tQ: 778,\n\tR: 722,\n\tS: 667,\n\tT: 611,\n\tU: 722,\n\tV: 667,\n\tW: 944,\n\tX: 667,\n\tY: 667,\n\tZ: 611,\n\tbracketleft: 333,\n\tbackslash: 278,\n\tbracketright: 333,\n\tasciicircum: 584,\n\tunderscore: 556,\n\tquoteleft: 278,\n\ta: 556,\n\tb: 611,\n\tc: 556,\n\td: 611,\n\te: 556,\n\tf: 333,\n\tg: 611,\n\th: 611,\n\ti: 278,\n\tj: 278,\n\tk: 556,\n\tl: 278,\n\tm: 889,\n\tn: 611,\n\to: 611,\n\tp: 611,\n\tq: 611,\n\tr: 389,\n\ts: 556,\n\tt: 333,\n\tu: 611,\n\tv: 556,\n\tw: 778,\n\tx: 556,\n\ty: 556,\n\tz: 500,\n\tbraceleft: 389,\n\tbar: 280,\n\tbraceright: 389,\n\tasciitilde: 584,\n\texclamdown: 333,\n\tcent: 556,\n\tsterling: 556,\n\tfraction: 167,\n\tyen: 556,\n\tflorin: 556,\n\tsection: 556,\n\tcurrency: 556,\n\tquotesingle: 238,\n\tquotedblleft: 500,\n\tguillemotleft: 556,\n\tguilsinglleft: 333,\n\tguilsinglright: 333,\n\tfi: 611,\n\tfl: 611,\n\tendash: 556,\n\tdagger: 556,\n\tdaggerdbl: 556,\n\tperiodcentered: 278,\n\tparagraph: 556,\n\tbullet: 350,\n\tquotesinglbase: 278,\n\tquotedblbase: 500,\n\tquotedblright: 500,\n\tguillemotright: 556,\n\tellipsis: 1000,\n\tperthousand: 1000,\n\tquestiondown: 611,\n\tgrave: 333,\n\tacute: 333,\n\tcircumflex: 333,\n\ttilde: 333,\n\tmacron: 333,\n\tbreve: 333,\n\tdotaccent: 333,\n\tdieresis: 333,\n\tring: 333,\n\tcedilla: 333,\n\thungarumlaut: 333,\n\togonek: 333,\n\tcaron: 333,\n\temdash: 1000,\n\tAE: 1000,\n\tordfeminine: 370,\n\tLslash: 611,\n\tOslash: 778,\n\tOE: 1000,\n\tordmasculine: 365,\n\tae: 889,\n\tdotlessi: 278,\n\tlslash: 278,\n\toslash: 611,\n\toe: 944,\n\tgermandbls: 611,\n\tIdieresis: 278,\n\teacute: 556,\n\tabreve: 556,\n\tuhungarumlaut: 611,\n\tecaron: 556,\n\tYdieresis: 667,\n\tdivide: 584,\n\tYacute: 667,\n\tAcircumflex: 722,\n\taacute: 556,\n\tUcircumflex: 722,\n\tyacute: 556,\n\tscommaaccent: 556,\n\tecircumflex: 556,\n\tUring: 722,\n\tUdieresis: 722,\n\taogonek: 556,\n\tUacute: 722,\n\tuogonek: 611,\n\tEdieresis: 667,\n\tDcroat: 722,\n\tcommaaccent: 250,\n\tcopyright: 737,\n\tEmacron: 667,\n\tccaron: 556,\n\taring: 556,\n\tNcommaaccent: 722,\n\tlacute: 278,\n\tagrave: 556,\n\tTcommaaccent: 611,\n\tCacute: 722,\n\tatilde: 556,\n\tEdotaccent: 667,\n\tscaron: 556,\n\tscedilla: 556,\n\tiacute: 278,\n\tlozenge: 494,\n\tRcaron: 722,\n\tGcommaaccent: 778,\n\tucircumflex: 611,\n\tacircumflex: 556,\n\tAmacron: 722,\n\trcaron: 389,\n\tccedilla: 556,\n\tZdotaccent: 611,\n\tThorn: 667,\n\tOmacron: 778,\n\tRacute: 722,\n\tSacute: 667,\n\tdcaron: 743,\n\tUmacron: 722,\n\turing: 611,\n\tthreesuperior: 333,\n\tOgrave: 778,\n\tAgrave: 722,\n\tAbreve: 722,\n\tmultiply: 584,\n\tuacute: 611,\n\tTcaron: 611,\n\tpartialdiff: 494,\n\tydieresis: 556,\n\tNacute: 722,\n\ticircumflex: 278,\n\tEcircumflex: 667,\n\tadieresis: 556,\n\tedieresis: 556,\n\tcacute: 556,\n\tnacute: 611,\n\tumacron: 611,\n\tNcaron: 722,\n\tIacute: 278,\n\tplusminus: 584,\n\tbrokenbar: 280,\n\tregistered: 737,\n\tGbreve: 778,\n\tIdotaccent: 278,\n\tsummation: 600,\n\tEgrave: 667,\n\tracute: 389,\n\tomacron: 611,\n\tZacute: 611,\n\tZcaron: 611,\n\tgreaterequal: 549,\n\tEth: 722,\n\tCcedilla: 722,\n\tlcommaaccent: 278,\n\ttcaron: 389,\n\teogonek: 556,\n\tUogonek: 722,\n\tAacute: 722,\n\tAdieresis: 722,\n\tegrave: 556,\n\tzacute: 500,\n\tiogonek: 278,\n\tOacute: 778,\n\toacute: 611,\n\tamacron: 556,\n\tsacute: 556,\n\tidieresis: 278,\n\tOcircumflex: 778,\n\tUgrave: 722,\n\tDelta: 612,\n\tthorn: 611,\n\ttwosuperior: 333,\n\tOdieresis: 778,\n\tmu: 611,\n\tigrave: 278,\n\tohungarumlaut: 611,\n\tEogonek: 667,\n\tdcroat: 611,\n\tthreequarters: 834,\n\tScedilla: 667,\n\tlcaron: 400,\n\tKcommaaccent: 722,\n\tLacute: 611,\n\ttrademark: 1000,\n\tedotaccent: 556,\n\tIgrave: 278,\n\tImacron: 278,\n\tLcaron: 611,\n\tonehalf: 834,\n\tlessequal: 549,\n\tocircumflex: 611,\n\tntilde: 611,\n\tUhungarumlaut: 722,\n\tEacute: 667,\n\temacron: 556,\n\tgbreve: 611,\n\tonequarter: 834,\n\tScaron: 667,\n\tScommaaccent: 667,\n\tOhungarumlaut: 778,\n\tdegree: 400,\n\tograve: 611,\n\tCcaron: 722,\n\tugrave: 611,\n\tradical: 549,\n\tDcaron: 722,\n\trcommaaccent: 389,\n\tNtilde: 722,\n\totilde: 611,\n\tRcommaaccent: 722,\n\tLcommaaccent: 611,\n\tAtilde: 722,\n\tAogonek: 722,\n\tAring: 722,\n\tOtilde: 778,\n\tzdotaccent: 500,\n\tEcaron: 667,\n\tIogonek: 278,\n\tkcommaaccent: 556,\n\tminus: 584,\n\tIcircumflex: 278,\n\tncaron: 611,\n\ttcommaaccent: 333,\n\tlogicalnot: 584,\n\todieresis: 611,\n\tudieresis: 611,\n\tnotequal: 549,\n\tgcommaaccent: 611,\n\teth: 611,\n\tzcaron: 500,\n\tncommaaccent: 611,\n\tonesuperior: 333,\n\timacron: 278,\n\tEuro: 556\n};\nvar kernPairs$4 = {\n\t\"A\\u0000C\": -40,\n\t\"A\\u0000Cacute\": -40,\n\t\"A\\u0000Ccaron\": -40,\n\t\"A\\u0000Ccedilla\": -40,\n\t\"A\\u0000G\": -50,\n\t\"A\\u0000Gbreve\": -50,\n\t\"A\\u0000Gcommaaccent\": -50,\n\t\"A\\u0000O\": -40,\n\t\"A\\u0000Oacute\": -40,\n\t\"A\\u0000Ocircumflex\": -40,\n\t\"A\\u0000Odieresis\": -40,\n\t\"A\\u0000Ograve\": -40,\n\t\"A\\u0000Ohungarumlaut\": -40,\n\t\"A\\u0000Omacron\": -40,\n\t\"A\\u0000Oslash\": -40,\n\t\"A\\u0000Otilde\": -40,\n\t\"A\\u0000Q\": -40,\n\t\"A\\u0000T\": -90,\n\t\"A\\u0000Tcaron\": -90,\n\t\"A\\u0000Tcommaaccent\": -90,\n\t\"A\\u0000U\": -50,\n\t\"A\\u0000Uacute\": -50,\n\t\"A\\u0000Ucircumflex\": -50,\n\t\"A\\u0000Udieresis\": -50,\n\t\"A\\u0000Ugrave\": -50,\n\t\"A\\u0000Uhungarumlaut\": -50,\n\t\"A\\u0000Umacron\": -50,\n\t\"A\\u0000Uogonek\": -50,\n\t\"A\\u0000Uring\": -50,\n\t\"A\\u0000V\": -80,\n\t\"A\\u0000W\": -60,\n\t\"A\\u0000Y\": -110,\n\t\"A\\u0000Yacute\": -110,\n\t\"A\\u0000Ydieresis\": -110,\n\t\"A\\u0000u\": -30,\n\t\"A\\u0000uacute\": -30,\n\t\"A\\u0000ucircumflex\": -30,\n\t\"A\\u0000udieresis\": -30,\n\t\"A\\u0000ugrave\": -30,\n\t\"A\\u0000uhungarumlaut\": -30,\n\t\"A\\u0000umacron\": -30,\n\t\"A\\u0000uogonek\": -30,\n\t\"A\\u0000uring\": -30,\n\t\"A\\u0000v\": -40,\n\t\"A\\u0000w\": -30,\n\t\"A\\u0000y\": -30,\n\t\"A\\u0000yacute\": -30,\n\t\"A\\u0000ydieresis\": -30,\n\t\"Aacute\\u0000C\": -40,\n\t\"Aacute\\u0000Cacute\": -40,\n\t\"Aacute\\u0000Ccaron\": -40,\n\t\"Aacute\\u0000Ccedilla\": -40,\n\t\"Aacute\\u0000G\": -50,\n\t\"Aacute\\u0000Gbreve\": -50,\n\t\"Aacute\\u0000Gcommaaccent\": -50,\n\t\"Aacute\\u0000O\": -40,\n\t\"Aacute\\u0000Oacute\": -40,\n\t\"Aacute\\u0000Ocircumflex\": -40,\n\t\"Aacute\\u0000Odieresis\": -40,\n\t\"Aacute\\u0000Ograve\": -40,\n\t\"Aacute\\u0000Ohungarumlaut\": -40,\n\t\"Aacute\\u0000Omacron\": -40,\n\t\"Aacute\\u0000Oslash\": -40,\n\t\"Aacute\\u0000Otilde\": -40,\n\t\"Aacute\\u0000Q\": -40,\n\t\"Aacute\\u0000T\": -90,\n\t\"Aacute\\u0000Tcaron\": -90,\n\t\"Aacute\\u0000Tcommaaccent\": -90,\n\t\"Aacute\\u0000U\": -50,\n\t\"Aacute\\u0000Uacute\": -50,\n\t\"Aacute\\u0000Ucircumflex\": -50,\n\t\"Aacute\\u0000Udieresis\": -50,\n\t\"Aacute\\u0000Ugrave\": -50,\n\t\"Aacute\\u0000Uhungarumlaut\": -50,\n\t\"Aacute\\u0000Umacron\": -50,\n\t\"Aacute\\u0000Uogonek\": -50,\n\t\"Aacute\\u0000Uring\": -50,\n\t\"Aacute\\u0000V\": -80,\n\t\"Aacute\\u0000W\": -60,\n\t\"Aacute\\u0000Y\": -110,\n\t\"Aacute\\u0000Yacute\": -110,\n\t\"Aacute\\u0000Ydieresis\": -110,\n\t\"Aacute\\u0000u\": -30,\n\t\"Aacute\\u0000uacute\": -30,\n\t\"Aacute\\u0000ucircumflex\": -30,\n\t\"Aacute\\u0000udieresis\": -30,\n\t\"Aacute\\u0000ugrave\": -30,\n\t\"Aacute\\u0000uhungarumlaut\": -30,\n\t\"Aacute\\u0000umacron\": -30,\n\t\"Aacute\\u0000uogonek\": -30,\n\t\"Aacute\\u0000uring\": -30,\n\t\"Aacute\\u0000v\": -40,\n\t\"Aacute\\u0000w\": -30,\n\t\"Aacute\\u0000y\": -30,\n\t\"Aacute\\u0000yacute\": -30,\n\t\"Aacute\\u0000ydieresis\": -30,\n\t\"Abreve\\u0000C\": -40,\n\t\"Abreve\\u0000Cacute\": -40,\n\t\"Abreve\\u0000Ccaron\": -40,\n\t\"Abreve\\u0000Ccedilla\": -40,\n\t\"Abreve\\u0000G\": -50,\n\t\"Abreve\\u0000Gbreve\": -50,\n\t\"Abreve\\u0000Gcommaaccent\": -50,\n\t\"Abreve\\u0000O\": -40,\n\t\"Abreve\\u0000Oacute\": -40,\n\t\"Abreve\\u0000Ocircumflex\": -40,\n\t\"Abreve\\u0000Odieresis\": -40,\n\t\"Abreve\\u0000Ograve\": -40,\n\t\"Abreve\\u0000Ohungarumlaut\": -40,\n\t\"Abreve\\u0000Omacron\": -40,\n\t\"Abreve\\u0000Oslash\": -40,\n\t\"Abreve\\u0000Otilde\": -40,\n\t\"Abreve\\u0000Q\": -40,\n\t\"Abreve\\u0000T\": -90,\n\t\"Abreve\\u0000Tcaron\": -90,\n\t\"Abreve\\u0000Tcommaaccent\": -90,\n\t\"Abreve\\u0000U\": -50,\n\t\"Abreve\\u0000Uacute\": -50,\n\t\"Abreve\\u0000Ucircumflex\": -50,\n\t\"Abreve\\u0000Udieresis\": -50,\n\t\"Abreve\\u0000Ugrave\": -50,\n\t\"Abreve\\u0000Uhungarumlaut\": -50,\n\t\"Abreve\\u0000Umacron\": -50,\n\t\"Abreve\\u0000Uogonek\": -50,\n\t\"Abreve\\u0000Uring\": -50,\n\t\"Abreve\\u0000V\": -80,\n\t\"Abreve\\u0000W\": -60,\n\t\"Abreve\\u0000Y\": -110,\n\t\"Abreve\\u0000Yacute\": -110,\n\t\"Abreve\\u0000Ydieresis\": -110,\n\t\"Abreve\\u0000u\": -30,\n\t\"Abreve\\u0000uacute\": -30,\n\t\"Abreve\\u0000ucircumflex\": -30,\n\t\"Abreve\\u0000udieresis\": -30,\n\t\"Abreve\\u0000ugrave\": -30,\n\t\"Abreve\\u0000uhungarumlaut\": -30,\n\t\"Abreve\\u0000umacron\": -30,\n\t\"Abreve\\u0000uogonek\": -30,\n\t\"Abreve\\u0000uring\": -30,\n\t\"Abreve\\u0000v\": -40,\n\t\"Abreve\\u0000w\": -30,\n\t\"Abreve\\u0000y\": -30,\n\t\"Abreve\\u0000yacute\": -30,\n\t\"Abreve\\u0000ydieresis\": -30,\n\t\"Acircumflex\\u0000C\": -40,\n\t\"Acircumflex\\u0000Cacute\": -40,\n\t\"Acircumflex\\u0000Ccaron\": -40,\n\t\"Acircumflex\\u0000Ccedilla\": -40,\n\t\"Acircumflex\\u0000G\": -50,\n\t\"Acircumflex\\u0000Gbreve\": -50,\n\t\"Acircumflex\\u0000Gcommaaccent\": -50,\n\t\"Acircumflex\\u0000O\": -40,\n\t\"Acircumflex\\u0000Oacute\": -40,\n\t\"Acircumflex\\u0000Ocircumflex\": -40,\n\t\"Acircumflex\\u0000Odieresis\": -40,\n\t\"Acircumflex\\u0000Ograve\": -40,\n\t\"Acircumflex\\u0000Ohungarumlaut\": -40,\n\t\"Acircumflex\\u0000Omacron\": -40,\n\t\"Acircumflex\\u0000Oslash\": -40,\n\t\"Acircumflex\\u0000Otilde\": -40,\n\t\"Acircumflex\\u0000Q\": -40,\n\t\"Acircumflex\\u0000T\": -90,\n\t\"Acircumflex\\u0000Tcaron\": -90,\n\t\"Acircumflex\\u0000Tcommaaccent\": -90,\n\t\"Acircumflex\\u0000U\": -50,\n\t\"Acircumflex\\u0000Uacute\": -50,\n\t\"Acircumflex\\u0000Ucircumflex\": -50,\n\t\"Acircumflex\\u0000Udieresis\": -50,\n\t\"Acircumflex\\u0000Ugrave\": -50,\n\t\"Acircumflex\\u0000Uhungarumlaut\": -50,\n\t\"Acircumflex\\u0000Umacron\": -50,\n\t\"Acircumflex\\u0000Uogonek\": -50,\n\t\"Acircumflex\\u0000Uring\": -50,\n\t\"Acircumflex\\u0000V\": -80,\n\t\"Acircumflex\\u0000W\": -60,\n\t\"Acircumflex\\u0000Y\": -110,\n\t\"Acircumflex\\u0000Yacute\": -110,\n\t\"Acircumflex\\u0000Ydieresis\": -110,\n\t\"Acircumflex\\u0000u\": -30,\n\t\"Acircumflex\\u0000uacute\": -30,\n\t\"Acircumflex\\u0000ucircumflex\": -30,\n\t\"Acircumflex\\u0000udieresis\": -30,\n\t\"Acircumflex\\u0000ugrave\": -30,\n\t\"Acircumflex\\u0000uhungarumlaut\": -30,\n\t\"Acircumflex\\u0000umacron\": -30,\n\t\"Acircumflex\\u0000uogonek\": -30,\n\t\"Acircumflex\\u0000uring\": -30,\n\t\"Acircumflex\\u0000v\": -40,\n\t\"Acircumflex\\u0000w\": -30,\n\t\"Acircumflex\\u0000y\": -30,\n\t\"Acircumflex\\u0000yacute\": -30,\n\t\"Acircumflex\\u0000ydieresis\": -30,\n\t\"Adieresis\\u0000C\": -40,\n\t\"Adieresis\\u0000Cacute\": -40,\n\t\"Adieresis\\u0000Ccaron\": -40,\n\t\"Adieresis\\u0000Ccedilla\": -40,\n\t\"Adieresis\\u0000G\": -50,\n\t\"Adieresis\\u0000Gbreve\": -50,\n\t\"Adieresis\\u0000Gcommaaccent\": -50,\n\t\"Adieresis\\u0000O\": -40,\n\t\"Adieresis\\u0000Oacute\": -40,\n\t\"Adieresis\\u0000Ocircumflex\": -40,\n\t\"Adieresis\\u0000Odieresis\": -40,\n\t\"Adieresis\\u0000Ograve\": -40,\n\t\"Adieresis\\u0000Ohungarumlaut\": -40,\n\t\"Adieresis\\u0000Omacron\": -40,\n\t\"Adieresis\\u0000Oslash\": -40,\n\t\"Adieresis\\u0000Otilde\": -40,\n\t\"Adieresis\\u0000Q\": -40,\n\t\"Adieresis\\u0000T\": -90,\n\t\"Adieresis\\u0000Tcaron\": -90,\n\t\"Adieresis\\u0000Tcommaaccent\": -90,\n\t\"Adieresis\\u0000U\": -50,\n\t\"Adieresis\\u0000Uacute\": -50,\n\t\"Adieresis\\u0000Ucircumflex\": -50,\n\t\"Adieresis\\u0000Udieresis\": -50,\n\t\"Adieresis\\u0000Ugrave\": -50,\n\t\"Adieresis\\u0000Uhungarumlaut\": -50,\n\t\"Adieresis\\u0000Umacron\": -50,\n\t\"Adieresis\\u0000Uogonek\": -50,\n\t\"Adieresis\\u0000Uring\": -50,\n\t\"Adieresis\\u0000V\": -80,\n\t\"Adieresis\\u0000W\": -60,\n\t\"Adieresis\\u0000Y\": -110,\n\t\"Adieresis\\u0000Yacute\": -110,\n\t\"Adieresis\\u0000Ydieresis\": -110,\n\t\"Adieresis\\u0000u\": -30,\n\t\"Adieresis\\u0000uacute\": -30,\n\t\"Adieresis\\u0000ucircumflex\": -30,\n\t\"Adieresis\\u0000udieresis\": -30,\n\t\"Adieresis\\u0000ugrave\": -30,\n\t\"Adieresis\\u0000uhungarumlaut\": -30,\n\t\"Adieresis\\u0000umacron\": -30,\n\t\"Adieresis\\u0000uogonek\": -30,\n\t\"Adieresis\\u0000uring\": -30,\n\t\"Adieresis\\u0000v\": -40,\n\t\"Adieresis\\u0000w\": -30,\n\t\"Adieresis\\u0000y\": -30,\n\t\"Adieresis\\u0000yacute\": -30,\n\t\"Adieresis\\u0000ydieresis\": -30,\n\t\"Agrave\\u0000C\": -40,\n\t\"Agrave\\u0000Cacute\": -40,\n\t\"Agrave\\u0000Ccaron\": -40,\n\t\"Agrave\\u0000Ccedilla\": -40,\n\t\"Agrave\\u0000G\": -50,\n\t\"Agrave\\u0000Gbreve\": -50,\n\t\"Agrave\\u0000Gcommaaccent\": -50,\n\t\"Agrave\\u0000O\": -40,\n\t\"Agrave\\u0000Oacute\": -40,\n\t\"Agrave\\u0000Ocircumflex\": -40,\n\t\"Agrave\\u0000Odieresis\": -40,\n\t\"Agrave\\u0000Ograve\": -40,\n\t\"Agrave\\u0000Ohungarumlaut\": -40,\n\t\"Agrave\\u0000Omacron\": -40,\n\t\"Agrave\\u0000Oslash\": -40,\n\t\"Agrave\\u0000Otilde\": -40,\n\t\"Agrave\\u0000Q\": -40,\n\t\"Agrave\\u0000T\": -90,\n\t\"Agrave\\u0000Tcaron\": -90,\n\t\"Agrave\\u0000Tcommaaccent\": -90,\n\t\"Agrave\\u0000U\": -50,\n\t\"Agrave\\u0000Uacute\": -50,\n\t\"Agrave\\u0000Ucircumflex\": -50,\n\t\"Agrave\\u0000Udieresis\": -50,\n\t\"Agrave\\u0000Ugrave\": -50,\n\t\"Agrave\\u0000Uhungarumlaut\": -50,\n\t\"Agrave\\u0000Umacron\": -50,\n\t\"Agrave\\u0000Uogonek\": -50,\n\t\"Agrave\\u0000Uring\": -50,\n\t\"Agrave\\u0000V\": -80,\n\t\"Agrave\\u0000W\": -60,\n\t\"Agrave\\u0000Y\": -110,\n\t\"Agrave\\u0000Yacute\": -110,\n\t\"Agrave\\u0000Ydieresis\": -110,\n\t\"Agrave\\u0000u\": -30,\n\t\"Agrave\\u0000uacute\": -30,\n\t\"Agrave\\u0000ucircumflex\": -30,\n\t\"Agrave\\u0000udieresis\": -30,\n\t\"Agrave\\u0000ugrave\": -30,\n\t\"Agrave\\u0000uhungarumlaut\": -30,\n\t\"Agrave\\u0000umacron\": -30,\n\t\"Agrave\\u0000uogonek\": -30,\n\t\"Agrave\\u0000uring\": -30,\n\t\"Agrave\\u0000v\": -40,\n\t\"Agrave\\u0000w\": -30,\n\t\"Agrave\\u0000y\": -30,\n\t\"Agrave\\u0000yacute\": -30,\n\t\"Agrave\\u0000ydieresis\": -30,\n\t\"Amacron\\u0000C\": -40,\n\t\"Amacron\\u0000Cacute\": -40,\n\t\"Amacron\\u0000Ccaron\": -40,\n\t\"Amacron\\u0000Ccedilla\": -40,\n\t\"Amacron\\u0000G\": -50,\n\t\"Amacron\\u0000Gbreve\": -50,\n\t\"Amacron\\u0000Gcommaaccent\": -50,\n\t\"Amacron\\u0000O\": -40,\n\t\"Amacron\\u0000Oacute\": -40,\n\t\"Amacron\\u0000Ocircumflex\": -40,\n\t\"Amacron\\u0000Odieresis\": -40,\n\t\"Amacron\\u0000Ograve\": -40,\n\t\"Amacron\\u0000Ohungarumlaut\": -40,\n\t\"Amacron\\u0000Omacron\": -40,\n\t\"Amacron\\u0000Oslash\": -40,\n\t\"Amacron\\u0000Otilde\": -40,\n\t\"Amacron\\u0000Q\": -40,\n\t\"Amacron\\u0000T\": -90,\n\t\"Amacron\\u0000Tcaron\": -90,\n\t\"Amacron\\u0000Tcommaaccent\": -90,\n\t\"Amacron\\u0000U\": -50,\n\t\"Amacron\\u0000Uacute\": -50,\n\t\"Amacron\\u0000Ucircumflex\": -50,\n\t\"Amacron\\u0000Udieresis\": -50,\n\t\"Amacron\\u0000Ugrave\": -50,\n\t\"Amacron\\u0000Uhungarumlaut\": -50,\n\t\"Amacron\\u0000Umacron\": -50,\n\t\"Amacron\\u0000Uogonek\": -50,\n\t\"Amacron\\u0000Uring\": -50,\n\t\"Amacron\\u0000V\": -80,\n\t\"Amacron\\u0000W\": -60,\n\t\"Amacron\\u0000Y\": -110,\n\t\"Amacron\\u0000Yacute\": -110,\n\t\"Amacron\\u0000Ydieresis\": -110,\n\t\"Amacron\\u0000u\": -30,\n\t\"Amacron\\u0000uacute\": -30,\n\t\"Amacron\\u0000ucircumflex\": -30,\n\t\"Amacron\\u0000udieresis\": -30,\n\t\"Amacron\\u0000ugrave\": -30,\n\t\"Amacron\\u0000uhungarumlaut\": -30,\n\t\"Amacron\\u0000umacron\": -30,\n\t\"Amacron\\u0000uogonek\": -30,\n\t\"Amacron\\u0000uring\": -30,\n\t\"Amacron\\u0000v\": -40,\n\t\"Amacron\\u0000w\": -30,\n\t\"Amacron\\u0000y\": -30,\n\t\"Amacron\\u0000yacute\": -30,\n\t\"Amacron\\u0000ydieresis\": -30,\n\t\"Aogonek\\u0000C\": -40,\n\t\"Aogonek\\u0000Cacute\": -40,\n\t\"Aogonek\\u0000Ccaron\": -40,\n\t\"Aogonek\\u0000Ccedilla\": -40,\n\t\"Aogonek\\u0000G\": -50,\n\t\"Aogonek\\u0000Gbreve\": -50,\n\t\"Aogonek\\u0000Gcommaaccent\": -50,\n\t\"Aogonek\\u0000O\": -40,\n\t\"Aogonek\\u0000Oacute\": -40,\n\t\"Aogonek\\u0000Ocircumflex\": -40,\n\t\"Aogonek\\u0000Odieresis\": -40,\n\t\"Aogonek\\u0000Ograve\": -40,\n\t\"Aogonek\\u0000Ohungarumlaut\": -40,\n\t\"Aogonek\\u0000Omacron\": -40,\n\t\"Aogonek\\u0000Oslash\": -40,\n\t\"Aogonek\\u0000Otilde\": -40,\n\t\"Aogonek\\u0000Q\": -40,\n\t\"Aogonek\\u0000T\": -90,\n\t\"Aogonek\\u0000Tcaron\": -90,\n\t\"Aogonek\\u0000Tcommaaccent\": -90,\n\t\"Aogonek\\u0000U\": -50,\n\t\"Aogonek\\u0000Uacute\": -50,\n\t\"Aogonek\\u0000Ucircumflex\": -50,\n\t\"Aogonek\\u0000Udieresis\": -50,\n\t\"Aogonek\\u0000Ugrave\": -50,\n\t\"Aogonek\\u0000Uhungarumlaut\": -50,\n\t\"Aogonek\\u0000Umacron\": -50,\n\t\"Aogonek\\u0000Uogonek\": -50,\n\t\"Aogonek\\u0000Uring\": -50,\n\t\"Aogonek\\u0000V\": -80,\n\t\"Aogonek\\u0000W\": -60,\n\t\"Aogonek\\u0000Y\": -110,\n\t\"Aogonek\\u0000Yacute\": -110,\n\t\"Aogonek\\u0000Ydieresis\": -110,\n\t\"Aogonek\\u0000u\": -30,\n\t\"Aogonek\\u0000uacute\": -30,\n\t\"Aogonek\\u0000ucircumflex\": -30,\n\t\"Aogonek\\u0000udieresis\": -30,\n\t\"Aogonek\\u0000ugrave\": -30,\n\t\"Aogonek\\u0000uhungarumlaut\": -30,\n\t\"Aogonek\\u0000umacron\": -30,\n\t\"Aogonek\\u0000uogonek\": -30,\n\t\"Aogonek\\u0000uring\": -30,\n\t\"Aogonek\\u0000v\": -40,\n\t\"Aogonek\\u0000w\": -30,\n\t\"Aogonek\\u0000y\": -30,\n\t\"Aogonek\\u0000yacute\": -30,\n\t\"Aogonek\\u0000ydieresis\": -30,\n\t\"Aring\\u0000C\": -40,\n\t\"Aring\\u0000Cacute\": -40,\n\t\"Aring\\u0000Ccaron\": -40,\n\t\"Aring\\u0000Ccedilla\": -40,\n\t\"Aring\\u0000G\": -50,\n\t\"Aring\\u0000Gbreve\": -50,\n\t\"Aring\\u0000Gcommaaccent\": -50,\n\t\"Aring\\u0000O\": -40,\n\t\"Aring\\u0000Oacute\": -40,\n\t\"Aring\\u0000Ocircumflex\": -40,\n\t\"Aring\\u0000Odieresis\": -40,\n\t\"Aring\\u0000Ograve\": -40,\n\t\"Aring\\u0000Ohungarumlaut\": -40,\n\t\"Aring\\u0000Omacron\": -40,\n\t\"Aring\\u0000Oslash\": -40,\n\t\"Aring\\u0000Otilde\": -40,\n\t\"Aring\\u0000Q\": -40,\n\t\"Aring\\u0000T\": -90,\n\t\"Aring\\u0000Tcaron\": -90,\n\t\"Aring\\u0000Tcommaaccent\": -90,\n\t\"Aring\\u0000U\": -50,\n\t\"Aring\\u0000Uacute\": -50,\n\t\"Aring\\u0000Ucircumflex\": -50,\n\t\"Aring\\u0000Udieresis\": -50,\n\t\"Aring\\u0000Ugrave\": -50,\n\t\"Aring\\u0000Uhungarumlaut\": -50,\n\t\"Aring\\u0000Umacron\": -50,\n\t\"Aring\\u0000Uogonek\": -50,\n\t\"Aring\\u0000Uring\": -50,\n\t\"Aring\\u0000V\": -80,\n\t\"Aring\\u0000W\": -60,\n\t\"Aring\\u0000Y\": -110,\n\t\"Aring\\u0000Yacute\": -110,\n\t\"Aring\\u0000Ydieresis\": -110,\n\t\"Aring\\u0000u\": -30,\n\t\"Aring\\u0000uacute\": -30,\n\t\"Aring\\u0000ucircumflex\": -30,\n\t\"Aring\\u0000udieresis\": -30,\n\t\"Aring\\u0000ugrave\": -30,\n\t\"Aring\\u0000uhungarumlaut\": -30,\n\t\"Aring\\u0000umacron\": -30,\n\t\"Aring\\u0000uogonek\": -30,\n\t\"Aring\\u0000uring\": -30,\n\t\"Aring\\u0000v\": -40,\n\t\"Aring\\u0000w\": -30,\n\t\"Aring\\u0000y\": -30,\n\t\"Aring\\u0000yacute\": -30,\n\t\"Aring\\u0000ydieresis\": -30,\n\t\"Atilde\\u0000C\": -40,\n\t\"Atilde\\u0000Cacute\": -40,\n\t\"Atilde\\u0000Ccaron\": -40,\n\t\"Atilde\\u0000Ccedilla\": -40,\n\t\"Atilde\\u0000G\": -50,\n\t\"Atilde\\u0000Gbreve\": -50,\n\t\"Atilde\\u0000Gcommaaccent\": -50,\n\t\"Atilde\\u0000O\": -40,\n\t\"Atilde\\u0000Oacute\": -40,\n\t\"Atilde\\u0000Ocircumflex\": -40,\n\t\"Atilde\\u0000Odieresis\": -40,\n\t\"Atilde\\u0000Ograve\": -40,\n\t\"Atilde\\u0000Ohungarumlaut\": -40,\n\t\"Atilde\\u0000Omacron\": -40,\n\t\"Atilde\\u0000Oslash\": -40,\n\t\"Atilde\\u0000Otilde\": -40,\n\t\"Atilde\\u0000Q\": -40,\n\t\"Atilde\\u0000T\": -90,\n\t\"Atilde\\u0000Tcaron\": -90,\n\t\"Atilde\\u0000Tcommaaccent\": -90,\n\t\"Atilde\\u0000U\": -50,\n\t\"Atilde\\u0000Uacute\": -50,\n\t\"Atilde\\u0000Ucircumflex\": -50,\n\t\"Atilde\\u0000Udieresis\": -50,\n\t\"Atilde\\u0000Ugrave\": -50,\n\t\"Atilde\\u0000Uhungarumlaut\": -50,\n\t\"Atilde\\u0000Umacron\": -50,\n\t\"Atilde\\u0000Uogonek\": -50,\n\t\"Atilde\\u0000Uring\": -50,\n\t\"Atilde\\u0000V\": -80,\n\t\"Atilde\\u0000W\": -60,\n\t\"Atilde\\u0000Y\": -110,\n\t\"Atilde\\u0000Yacute\": -110,\n\t\"Atilde\\u0000Ydieresis\": -110,\n\t\"Atilde\\u0000u\": -30,\n\t\"Atilde\\u0000uacute\": -30,\n\t\"Atilde\\u0000ucircumflex\": -30,\n\t\"Atilde\\u0000udieresis\": -30,\n\t\"Atilde\\u0000ugrave\": -30,\n\t\"Atilde\\u0000uhungarumlaut\": -30,\n\t\"Atilde\\u0000umacron\": -30,\n\t\"Atilde\\u0000uogonek\": -30,\n\t\"Atilde\\u0000uring\": -30,\n\t\"Atilde\\u0000v\": -40,\n\t\"Atilde\\u0000w\": -30,\n\t\"Atilde\\u0000y\": -30,\n\t\"Atilde\\u0000yacute\": -30,\n\t\"Atilde\\u0000ydieresis\": -30,\n\t\"B\\u0000A\": -30,\n\t\"B\\u0000Aacute\": -30,\n\t\"B\\u0000Abreve\": -30,\n\t\"B\\u0000Acircumflex\": -30,\n\t\"B\\u0000Adieresis\": -30,\n\t\"B\\u0000Agrave\": -30,\n\t\"B\\u0000Amacron\": -30,\n\t\"B\\u0000Aogonek\": -30,\n\t\"B\\u0000Aring\": -30,\n\t\"B\\u0000Atilde\": -30,\n\t\"B\\u0000U\": -10,\n\t\"B\\u0000Uacute\": -10,\n\t\"B\\u0000Ucircumflex\": -10,\n\t\"B\\u0000Udieresis\": -10,\n\t\"B\\u0000Ugrave\": -10,\n\t\"B\\u0000Uhungarumlaut\": -10,\n\t\"B\\u0000Umacron\": -10,\n\t\"B\\u0000Uogonek\": -10,\n\t\"B\\u0000Uring\": -10,\n\t\"D\\u0000A\": -40,\n\t\"D\\u0000Aacute\": -40,\n\t\"D\\u0000Abreve\": -40,\n\t\"D\\u0000Acircumflex\": -40,\n\t\"D\\u0000Adieresis\": -40,\n\t\"D\\u0000Agrave\": -40,\n\t\"D\\u0000Amacron\": -40,\n\t\"D\\u0000Aogonek\": -40,\n\t\"D\\u0000Aring\": -40,\n\t\"D\\u0000Atilde\": -40,\n\t\"D\\u0000V\": -40,\n\t\"D\\u0000W\": -40,\n\t\"D\\u0000Y\": -70,\n\t\"D\\u0000Yacute\": -70,\n\t\"D\\u0000Ydieresis\": -70,\n\t\"D\\u0000comma\": -30,\n\t\"D\\u0000period\": -30,\n\t\"Dcaron\\u0000A\": -40,\n\t\"Dcaron\\u0000Aacute\": -40,\n\t\"Dcaron\\u0000Abreve\": -40,\n\t\"Dcaron\\u0000Acircumflex\": -40,\n\t\"Dcaron\\u0000Adieresis\": -40,\n\t\"Dcaron\\u0000Agrave\": -40,\n\t\"Dcaron\\u0000Amacron\": -40,\n\t\"Dcaron\\u0000Aogonek\": -40,\n\t\"Dcaron\\u0000Aring\": -40,\n\t\"Dcaron\\u0000Atilde\": -40,\n\t\"Dcaron\\u0000V\": -40,\n\t\"Dcaron\\u0000W\": -40,\n\t\"Dcaron\\u0000Y\": -70,\n\t\"Dcaron\\u0000Yacute\": -70,\n\t\"Dcaron\\u0000Ydieresis\": -70,\n\t\"Dcaron\\u0000comma\": -30,\n\t\"Dcaron\\u0000period\": -30,\n\t\"Dcroat\\u0000A\": -40,\n\t\"Dcroat\\u0000Aacute\": -40,\n\t\"Dcroat\\u0000Abreve\": -40,\n\t\"Dcroat\\u0000Acircumflex\": -40,\n\t\"Dcroat\\u0000Adieresis\": -40,\n\t\"Dcroat\\u0000Agrave\": -40,\n\t\"Dcroat\\u0000Amacron\": -40,\n\t\"Dcroat\\u0000Aogonek\": -40,\n\t\"Dcroat\\u0000Aring\": -40,\n\t\"Dcroat\\u0000Atilde\": -40,\n\t\"Dcroat\\u0000V\": -40,\n\t\"Dcroat\\u0000W\": -40,\n\t\"Dcroat\\u0000Y\": -70,\n\t\"Dcroat\\u0000Yacute\": -70,\n\t\"Dcroat\\u0000Ydieresis\": -70,\n\t\"Dcroat\\u0000comma\": -30,\n\t\"Dcroat\\u0000period\": -30,\n\t\"F\\u0000A\": -80,\n\t\"F\\u0000Aacute\": -80,\n\t\"F\\u0000Abreve\": -80,\n\t\"F\\u0000Acircumflex\": -80,\n\t\"F\\u0000Adieresis\": -80,\n\t\"F\\u0000Agrave\": -80,\n\t\"F\\u0000Amacron\": -80,\n\t\"F\\u0000Aogonek\": -80,\n\t\"F\\u0000Aring\": -80,\n\t\"F\\u0000Atilde\": -80,\n\t\"F\\u0000a\": -20,\n\t\"F\\u0000aacute\": -20,\n\t\"F\\u0000abreve\": -20,\n\t\"F\\u0000acircumflex\": -20,\n\t\"F\\u0000adieresis\": -20,\n\t\"F\\u0000agrave\": -20,\n\t\"F\\u0000amacron\": -20,\n\t\"F\\u0000aogonek\": -20,\n\t\"F\\u0000aring\": -20,\n\t\"F\\u0000atilde\": -20,\n\t\"F\\u0000comma\": -100,\n\t\"F\\u0000period\": -100,\n\t\"J\\u0000A\": -20,\n\t\"J\\u0000Aacute\": -20,\n\t\"J\\u0000Abreve\": -20,\n\t\"J\\u0000Acircumflex\": -20,\n\t\"J\\u0000Adieresis\": -20,\n\t\"J\\u0000Agrave\": -20,\n\t\"J\\u0000Amacron\": -20,\n\t\"J\\u0000Aogonek\": -20,\n\t\"J\\u0000Aring\": -20,\n\t\"J\\u0000Atilde\": -20,\n\t\"J\\u0000comma\": -20,\n\t\"J\\u0000period\": -20,\n\t\"J\\u0000u\": -20,\n\t\"J\\u0000uacute\": -20,\n\t\"J\\u0000ucircumflex\": -20,\n\t\"J\\u0000udieresis\": -20,\n\t\"J\\u0000ugrave\": -20,\n\t\"J\\u0000uhungarumlaut\": -20,\n\t\"J\\u0000umacron\": -20,\n\t\"J\\u0000uogonek\": -20,\n\t\"J\\u0000uring\": -20,\n\t\"K\\u0000O\": -30,\n\t\"K\\u0000Oacute\": -30,\n\t\"K\\u0000Ocircumflex\": -30,\n\t\"K\\u0000Odieresis\": -30,\n\t\"K\\u0000Ograve\": -30,\n\t\"K\\u0000Ohungarumlaut\": -30,\n\t\"K\\u0000Omacron\": -30,\n\t\"K\\u0000Oslash\": -30,\n\t\"K\\u0000Otilde\": -30,\n\t\"K\\u0000e\": -15,\n\t\"K\\u0000eacute\": -15,\n\t\"K\\u0000ecaron\": -15,\n\t\"K\\u0000ecircumflex\": -15,\n\t\"K\\u0000edieresis\": -15,\n\t\"K\\u0000edotaccent\": -15,\n\t\"K\\u0000egrave\": -15,\n\t\"K\\u0000emacron\": -15,\n\t\"K\\u0000eogonek\": -15,\n\t\"K\\u0000o\": -35,\n\t\"K\\u0000oacute\": -35,\n\t\"K\\u0000ocircumflex\": -35,\n\t\"K\\u0000odieresis\": -35,\n\t\"K\\u0000ograve\": -35,\n\t\"K\\u0000ohungarumlaut\": -35,\n\t\"K\\u0000omacron\": -35,\n\t\"K\\u0000oslash\": -35,\n\t\"K\\u0000otilde\": -35,\n\t\"K\\u0000u\": -30,\n\t\"K\\u0000uacute\": -30,\n\t\"K\\u0000ucircumflex\": -30,\n\t\"K\\u0000udieresis\": -30,\n\t\"K\\u0000ugrave\": -30,\n\t\"K\\u0000uhungarumlaut\": -30,\n\t\"K\\u0000umacron\": -30,\n\t\"K\\u0000uogonek\": -30,\n\t\"K\\u0000uring\": -30,\n\t\"K\\u0000y\": -40,\n\t\"K\\u0000yacute\": -40,\n\t\"K\\u0000ydieresis\": -40,\n\t\"Kcommaaccent\\u0000O\": -30,\n\t\"Kcommaaccent\\u0000Oacute\": -30,\n\t\"Kcommaaccent\\u0000Ocircumflex\": -30,\n\t\"Kcommaaccent\\u0000Odieresis\": -30,\n\t\"Kcommaaccent\\u0000Ograve\": -30,\n\t\"Kcommaaccent\\u0000Ohungarumlaut\": -30,\n\t\"Kcommaaccent\\u0000Omacron\": -30,\n\t\"Kcommaaccent\\u0000Oslash\": -30,\n\t\"Kcommaaccent\\u0000Otilde\": -30,\n\t\"Kcommaaccent\\u0000e\": -15,\n\t\"Kcommaaccent\\u0000eacute\": -15,\n\t\"Kcommaaccent\\u0000ecaron\": -15,\n\t\"Kcommaaccent\\u0000ecircumflex\": -15,\n\t\"Kcommaaccent\\u0000edieresis\": -15,\n\t\"Kcommaaccent\\u0000edotaccent\": -15,\n\t\"Kcommaaccent\\u0000egrave\": -15,\n\t\"Kcommaaccent\\u0000emacron\": -15,\n\t\"Kcommaaccent\\u0000eogonek\": -15,\n\t\"Kcommaaccent\\u0000o\": -35,\n\t\"Kcommaaccent\\u0000oacute\": -35,\n\t\"Kcommaaccent\\u0000ocircumflex\": -35,\n\t\"Kcommaaccent\\u0000odieresis\": -35,\n\t\"Kcommaaccent\\u0000ograve\": -35,\n\t\"Kcommaaccent\\u0000ohungarumlaut\": -35,\n\t\"Kcommaaccent\\u0000omacron\": -35,\n\t\"Kcommaaccent\\u0000oslash\": -35,\n\t\"Kcommaaccent\\u0000otilde\": -35,\n\t\"Kcommaaccent\\u0000u\": -30,\n\t\"Kcommaaccent\\u0000uacute\": -30,\n\t\"Kcommaaccent\\u0000ucircumflex\": -30,\n\t\"Kcommaaccent\\u0000udieresis\": -30,\n\t\"Kcommaaccent\\u0000ugrave\": -30,\n\t\"Kcommaaccent\\u0000uhungarumlaut\": -30,\n\t\"Kcommaaccent\\u0000umacron\": -30,\n\t\"Kcommaaccent\\u0000uogonek\": -30,\n\t\"Kcommaaccent\\u0000uring\": -30,\n\t\"Kcommaaccent\\u0000y\": -40,\n\t\"Kcommaaccent\\u0000yacute\": -40,\n\t\"Kcommaaccent\\u0000ydieresis\": -40,\n\t\"L\\u0000T\": -90,\n\t\"L\\u0000Tcaron\": -90,\n\t\"L\\u0000Tcommaaccent\": -90,\n\t\"L\\u0000V\": -110,\n\t\"L\\u0000W\": -80,\n\t\"L\\u0000Y\": -120,\n\t\"L\\u0000Yacute\": -120,\n\t\"L\\u0000Ydieresis\": -120,\n\t\"L\\u0000quotedblright\": -140,\n\t\"L\\u0000quoteright\": -140,\n\t\"L\\u0000y\": -30,\n\t\"L\\u0000yacute\": -30,\n\t\"L\\u0000ydieresis\": -30,\n\t\"Lacute\\u0000T\": -90,\n\t\"Lacute\\u0000Tcaron\": -90,\n\t\"Lacute\\u0000Tcommaaccent\": -90,\n\t\"Lacute\\u0000V\": -110,\n\t\"Lacute\\u0000W\": -80,\n\t\"Lacute\\u0000Y\": -120,\n\t\"Lacute\\u0000Yacute\": -120,\n\t\"Lacute\\u0000Ydieresis\": -120,\n\t\"Lacute\\u0000quotedblright\": -140,\n\t\"Lacute\\u0000quoteright\": -140,\n\t\"Lacute\\u0000y\": -30,\n\t\"Lacute\\u0000yacute\": -30,\n\t\"Lacute\\u0000ydieresis\": -30,\n\t\"Lcommaaccent\\u0000T\": -90,\n\t\"Lcommaaccent\\u0000Tcaron\": -90,\n\t\"Lcommaaccent\\u0000Tcommaaccent\": -90,\n\t\"Lcommaaccent\\u0000V\": -110,\n\t\"Lcommaaccent\\u0000W\": -80,\n\t\"Lcommaaccent\\u0000Y\": -120,\n\t\"Lcommaaccent\\u0000Yacute\": -120,\n\t\"Lcommaaccent\\u0000Ydieresis\": -120,\n\t\"Lcommaaccent\\u0000quotedblright\": -140,\n\t\"Lcommaaccent\\u0000quoteright\": -140,\n\t\"Lcommaaccent\\u0000y\": -30,\n\t\"Lcommaaccent\\u0000yacute\": -30,\n\t\"Lcommaaccent\\u0000ydieresis\": -30,\n\t\"Lslash\\u0000T\": -90,\n\t\"Lslash\\u0000Tcaron\": -90,\n\t\"Lslash\\u0000Tcommaaccent\": -90,\n\t\"Lslash\\u0000V\": -110,\n\t\"Lslash\\u0000W\": -80,\n\t\"Lslash\\u0000Y\": -120,\n\t\"Lslash\\u0000Yacute\": -120,\n\t\"Lslash\\u0000Ydieresis\": -120,\n\t\"Lslash\\u0000quotedblright\": -140,\n\t\"Lslash\\u0000quoteright\": -140,\n\t\"Lslash\\u0000y\": -30,\n\t\"Lslash\\u0000yacute\": -30,\n\t\"Lslash\\u0000ydieresis\": -30,\n\t\"O\\u0000A\": -50,\n\t\"O\\u0000Aacute\": -50,\n\t\"O\\u0000Abreve\": -50,\n\t\"O\\u0000Acircumflex\": -50,\n\t\"O\\u0000Adieresis\": -50,\n\t\"O\\u0000Agrave\": -50,\n\t\"O\\u0000Amacron\": -50,\n\t\"O\\u0000Aogonek\": -50,\n\t\"O\\u0000Aring\": -50,\n\t\"O\\u0000Atilde\": -50,\n\t\"O\\u0000T\": -40,\n\t\"O\\u0000Tcaron\": -40,\n\t\"O\\u0000Tcommaaccent\": -40,\n\t\"O\\u0000V\": -50,\n\t\"O\\u0000W\": -50,\n\t\"O\\u0000X\": -50,\n\t\"O\\u0000Y\": -70,\n\t\"O\\u0000Yacute\": -70,\n\t\"O\\u0000Ydieresis\": -70,\n\t\"O\\u0000comma\": -40,\n\t\"O\\u0000period\": -40,\n\t\"Oacute\\u0000A\": -50,\n\t\"Oacute\\u0000Aacute\": -50,\n\t\"Oacute\\u0000Abreve\": -50,\n\t\"Oacute\\u0000Acircumflex\": -50,\n\t\"Oacute\\u0000Adieresis\": -50,\n\t\"Oacute\\u0000Agrave\": -50,\n\t\"Oacute\\u0000Amacron\": -50,\n\t\"Oacute\\u0000Aogonek\": -50,\n\t\"Oacute\\u0000Aring\": -50,\n\t\"Oacute\\u0000Atilde\": -50,\n\t\"Oacute\\u0000T\": -40,\n\t\"Oacute\\u0000Tcaron\": -40,\n\t\"Oacute\\u0000Tcommaaccent\": -40,\n\t\"Oacute\\u0000V\": -50,\n\t\"Oacute\\u0000W\": -50,\n\t\"Oacute\\u0000X\": -50,\n\t\"Oacute\\u0000Y\": -70,\n\t\"Oacute\\u0000Yacute\": -70,\n\t\"Oacute\\u0000Ydieresis\": -70,\n\t\"Oacute\\u0000comma\": -40,\n\t\"Oacute\\u0000period\": -40,\n\t\"Ocircumflex\\u0000A\": -50,\n\t\"Ocircumflex\\u0000Aacute\": -50,\n\t\"Ocircumflex\\u0000Abreve\": -50,\n\t\"Ocircumflex\\u0000Acircumflex\": -50,\n\t\"Ocircumflex\\u0000Adieresis\": -50,\n\t\"Ocircumflex\\u0000Agrave\": -50,\n\t\"Ocircumflex\\u0000Amacron\": -50,\n\t\"Ocircumflex\\u0000Aogonek\": -50,\n\t\"Ocircumflex\\u0000Aring\": -50,\n\t\"Ocircumflex\\u0000Atilde\": -50,\n\t\"Ocircumflex\\u0000T\": -40,\n\t\"Ocircumflex\\u0000Tcaron\": -40,\n\t\"Ocircumflex\\u0000Tcommaaccent\": -40,\n\t\"Ocircumflex\\u0000V\": -50,\n\t\"Ocircumflex\\u0000W\": -50,\n\t\"Ocircumflex\\u0000X\": -50,\n\t\"Ocircumflex\\u0000Y\": -70,\n\t\"Ocircumflex\\u0000Yacute\": -70,\n\t\"Ocircumflex\\u0000Ydieresis\": -70,\n\t\"Ocircumflex\\u0000comma\": -40,\n\t\"Ocircumflex\\u0000period\": -40,\n\t\"Odieresis\\u0000A\": -50,\n\t\"Odieresis\\u0000Aacute\": -50,\n\t\"Odieresis\\u0000Abreve\": -50,\n\t\"Odieresis\\u0000Acircumflex\": -50,\n\t\"Odieresis\\u0000Adieresis\": -50,\n\t\"Odieresis\\u0000Agrave\": -50,\n\t\"Odieresis\\u0000Amacron\": -50,\n\t\"Odieresis\\u0000Aogonek\": -50,\n\t\"Odieresis\\u0000Aring\": -50,\n\t\"Odieresis\\u0000Atilde\": -50,\n\t\"Odieresis\\u0000T\": -40,\n\t\"Odieresis\\u0000Tcaron\": -40,\n\t\"Odieresis\\u0000Tcommaaccent\": -40,\n\t\"Odieresis\\u0000V\": -50,\n\t\"Odieresis\\u0000W\": -50,\n\t\"Odieresis\\u0000X\": -50,\n\t\"Odieresis\\u0000Y\": -70,\n\t\"Odieresis\\u0000Yacute\": -70,\n\t\"Odieresis\\u0000Ydieresis\": -70,\n\t\"Odieresis\\u0000comma\": -40,\n\t\"Odieresis\\u0000period\": -40,\n\t\"Ograve\\u0000A\": -50,\n\t\"Ograve\\u0000Aacute\": -50,\n\t\"Ograve\\u0000Abreve\": -50,\n\t\"Ograve\\u0000Acircumflex\": -50,\n\t\"Ograve\\u0000Adieresis\": -50,\n\t\"Ograve\\u0000Agrave\": -50,\n\t\"Ograve\\u0000Amacron\": -50,\n\t\"Ograve\\u0000Aogonek\": -50,\n\t\"Ograve\\u0000Aring\": -50,\n\t\"Ograve\\u0000Atilde\": -50,\n\t\"Ograve\\u0000T\": -40,\n\t\"Ograve\\u0000Tcaron\": -40,\n\t\"Ograve\\u0000Tcommaaccent\": -40,\n\t\"Ograve\\u0000V\": -50,\n\t\"Ograve\\u0000W\": -50,\n\t\"Ograve\\u0000X\": -50,\n\t\"Ograve\\u0000Y\": -70,\n\t\"Ograve\\u0000Yacute\": -70,\n\t\"Ograve\\u0000Ydieresis\": -70,\n\t\"Ograve\\u0000comma\": -40,\n\t\"Ograve\\u0000period\": -40,\n\t\"Ohungarumlaut\\u0000A\": -50,\n\t\"Ohungarumlaut\\u0000Aacute\": -50,\n\t\"Ohungarumlaut\\u0000Abreve\": -50,\n\t\"Ohungarumlaut\\u0000Acircumflex\": -50,\n\t\"Ohungarumlaut\\u0000Adieresis\": -50,\n\t\"Ohungarumlaut\\u0000Agrave\": -50,\n\t\"Ohungarumlaut\\u0000Amacron\": -50,\n\t\"Ohungarumlaut\\u0000Aogonek\": -50,\n\t\"Ohungarumlaut\\u0000Aring\": -50,\n\t\"Ohungarumlaut\\u0000Atilde\": -50,\n\t\"Ohungarumlaut\\u0000T\": -40,\n\t\"Ohungarumlaut\\u0000Tcaron\": -40,\n\t\"Ohungarumlaut\\u0000Tcommaaccent\": -40,\n\t\"Ohungarumlaut\\u0000V\": -50,\n\t\"Ohungarumlaut\\u0000W\": -50,\n\t\"Ohungarumlaut\\u0000X\": -50,\n\t\"Ohungarumlaut\\u0000Y\": -70,\n\t\"Ohungarumlaut\\u0000Yacute\": -70,\n\t\"Ohungarumlaut\\u0000Ydieresis\": -70,\n\t\"Ohungarumlaut\\u0000comma\": -40,\n\t\"Ohungarumlaut\\u0000period\": -40,\n\t\"Omacron\\u0000A\": -50,\n\t\"Omacron\\u0000Aacute\": -50,\n\t\"Omacron\\u0000Abreve\": -50,\n\t\"Omacron\\u0000Acircumflex\": -50,\n\t\"Omacron\\u0000Adieresis\": -50,\n\t\"Omacron\\u0000Agrave\": -50,\n\t\"Omacron\\u0000Amacron\": -50,\n\t\"Omacron\\u0000Aogonek\": -50,\n\t\"Omacron\\u0000Aring\": -50,\n\t\"Omacron\\u0000Atilde\": -50,\n\t\"Omacron\\u0000T\": -40,\n\t\"Omacron\\u0000Tcaron\": -40,\n\t\"Omacron\\u0000Tcommaaccent\": -40,\n\t\"Omacron\\u0000V\": -50,\n\t\"Omacron\\u0000W\": -50,\n\t\"Omacron\\u0000X\": -50,\n\t\"Omacron\\u0000Y\": -70,\n\t\"Omacron\\u0000Yacute\": -70,\n\t\"Omacron\\u0000Ydieresis\": -70,\n\t\"Omacron\\u0000comma\": -40,\n\t\"Omacron\\u0000period\": -40,\n\t\"Oslash\\u0000A\": -50,\n\t\"Oslash\\u0000Aacute\": -50,\n\t\"Oslash\\u0000Abreve\": -50,\n\t\"Oslash\\u0000Acircumflex\": -50,\n\t\"Oslash\\u0000Adieresis\": -50,\n\t\"Oslash\\u0000Agrave\": -50,\n\t\"Oslash\\u0000Amacron\": -50,\n\t\"Oslash\\u0000Aogonek\": -50,\n\t\"Oslash\\u0000Aring\": -50,\n\t\"Oslash\\u0000Atilde\": -50,\n\t\"Oslash\\u0000T\": -40,\n\t\"Oslash\\u0000Tcaron\": -40,\n\t\"Oslash\\u0000Tcommaaccent\": -40,\n\t\"Oslash\\u0000V\": -50,\n\t\"Oslash\\u0000W\": -50,\n\t\"Oslash\\u0000X\": -50,\n\t\"Oslash\\u0000Y\": -70,\n\t\"Oslash\\u0000Yacute\": -70,\n\t\"Oslash\\u0000Ydieresis\": -70,\n\t\"Oslash\\u0000comma\": -40,\n\t\"Oslash\\u0000period\": -40,\n\t\"Otilde\\u0000A\": -50,\n\t\"Otilde\\u0000Aacute\": -50,\n\t\"Otilde\\u0000Abreve\": -50,\n\t\"Otilde\\u0000Acircumflex\": -50,\n\t\"Otilde\\u0000Adieresis\": -50,\n\t\"Otilde\\u0000Agrave\": -50,\n\t\"Otilde\\u0000Amacron\": -50,\n\t\"Otilde\\u0000Aogonek\": -50,\n\t\"Otilde\\u0000Aring\": -50,\n\t\"Otilde\\u0000Atilde\": -50,\n\t\"Otilde\\u0000T\": -40,\n\t\"Otilde\\u0000Tcaron\": -40,\n\t\"Otilde\\u0000Tcommaaccent\": -40,\n\t\"Otilde\\u0000V\": -50,\n\t\"Otilde\\u0000W\": -50,\n\t\"Otilde\\u0000X\": -50,\n\t\"Otilde\\u0000Y\": -70,\n\t\"Otilde\\u0000Yacute\": -70,\n\t\"Otilde\\u0000Ydieresis\": -70,\n\t\"Otilde\\u0000comma\": -40,\n\t\"Otilde\\u0000period\": -40,\n\t\"P\\u0000A\": -100,\n\t\"P\\u0000Aacute\": -100,\n\t\"P\\u0000Abreve\": -100,\n\t\"P\\u0000Acircumflex\": -100,\n\t\"P\\u0000Adieresis\": -100,\n\t\"P\\u0000Agrave\": -100,\n\t\"P\\u0000Amacron\": -100,\n\t\"P\\u0000Aogonek\": -100,\n\t\"P\\u0000Aring\": -100,\n\t\"P\\u0000Atilde\": -100,\n\t\"P\\u0000a\": -30,\n\t\"P\\u0000aacute\": -30,\n\t\"P\\u0000abreve\": -30,\n\t\"P\\u0000acircumflex\": -30,\n\t\"P\\u0000adieresis\": -30,\n\t\"P\\u0000agrave\": -30,\n\t\"P\\u0000amacron\": -30,\n\t\"P\\u0000aogonek\": -30,\n\t\"P\\u0000aring\": -30,\n\t\"P\\u0000atilde\": -30,\n\t\"P\\u0000comma\": -120,\n\t\"P\\u0000e\": -30,\n\t\"P\\u0000eacute\": -30,\n\t\"P\\u0000ecaron\": -30,\n\t\"P\\u0000ecircumflex\": -30,\n\t\"P\\u0000edieresis\": -30,\n\t\"P\\u0000edotaccent\": -30,\n\t\"P\\u0000egrave\": -30,\n\t\"P\\u0000emacron\": -30,\n\t\"P\\u0000eogonek\": -30,\n\t\"P\\u0000o\": -40,\n\t\"P\\u0000oacute\": -40,\n\t\"P\\u0000ocircumflex\": -40,\n\t\"P\\u0000odieresis\": -40,\n\t\"P\\u0000ograve\": -40,\n\t\"P\\u0000ohungarumlaut\": -40,\n\t\"P\\u0000omacron\": -40,\n\t\"P\\u0000oslash\": -40,\n\t\"P\\u0000otilde\": -40,\n\t\"P\\u0000period\": -120,\n\t\"Q\\u0000U\": -10,\n\t\"Q\\u0000Uacute\": -10,\n\t\"Q\\u0000Ucircumflex\": -10,\n\t\"Q\\u0000Udieresis\": -10,\n\t\"Q\\u0000Ugrave\": -10,\n\t\"Q\\u0000Uhungarumlaut\": -10,\n\t\"Q\\u0000Umacron\": -10,\n\t\"Q\\u0000Uogonek\": -10,\n\t\"Q\\u0000Uring\": -10,\n\t\"Q\\u0000comma\": 20,\n\t\"Q\\u0000period\": 20,\n\t\"R\\u0000O\": -20,\n\t\"R\\u0000Oacute\": -20,\n\t\"R\\u0000Ocircumflex\": -20,\n\t\"R\\u0000Odieresis\": -20,\n\t\"R\\u0000Ograve\": -20,\n\t\"R\\u0000Ohungarumlaut\": -20,\n\t\"R\\u0000Omacron\": -20,\n\t\"R\\u0000Oslash\": -20,\n\t\"R\\u0000Otilde\": -20,\n\t\"R\\u0000T\": -20,\n\t\"R\\u0000Tcaron\": -20,\n\t\"R\\u0000Tcommaaccent\": -20,\n\t\"R\\u0000U\": -20,\n\t\"R\\u0000Uacute\": -20,\n\t\"R\\u0000Ucircumflex\": -20,\n\t\"R\\u0000Udieresis\": -20,\n\t\"R\\u0000Ugrave\": -20,\n\t\"R\\u0000Uhungarumlaut\": -20,\n\t\"R\\u0000Umacron\": -20,\n\t\"R\\u0000Uogonek\": -20,\n\t\"R\\u0000Uring\": -20,\n\t\"R\\u0000V\": -50,\n\t\"R\\u0000W\": -40,\n\t\"R\\u0000Y\": -50,\n\t\"R\\u0000Yacute\": -50,\n\t\"R\\u0000Ydieresis\": -50,\n\t\"Racute\\u0000O\": -20,\n\t\"Racute\\u0000Oacute\": -20,\n\t\"Racute\\u0000Ocircumflex\": -20,\n\t\"Racute\\u0000Odieresis\": -20,\n\t\"Racute\\u0000Ograve\": -20,\n\t\"Racute\\u0000Ohungarumlaut\": -20,\n\t\"Racute\\u0000Omacron\": -20,\n\t\"Racute\\u0000Oslash\": -20,\n\t\"Racute\\u0000Otilde\": -20,\n\t\"Racute\\u0000T\": -20,\n\t\"Racute\\u0000Tcaron\": -20,\n\t\"Racute\\u0000Tcommaaccent\": -20,\n\t\"Racute\\u0000U\": -20,\n\t\"Racute\\u0000Uacute\": -20,\n\t\"Racute\\u0000Ucircumflex\": -20,\n\t\"Racute\\u0000Udieresis\": -20,\n\t\"Racute\\u0000Ugrave\": -20,\n\t\"Racute\\u0000Uhungarumlaut\": -20,\n\t\"Racute\\u0000Umacron\": -20,\n\t\"Racute\\u0000Uogonek\": -20,\n\t\"Racute\\u0000Uring\": -20,\n\t\"Racute\\u0000V\": -50,\n\t\"Racute\\u0000W\": -40,\n\t\"Racute\\u0000Y\": -50,\n\t\"Racute\\u0000Yacute\": -50,\n\t\"Racute\\u0000Ydieresis\": -50,\n\t\"Rcaron\\u0000O\": -20,\n\t\"Rcaron\\u0000Oacute\": -20,\n\t\"Rcaron\\u0000Ocircumflex\": -20,\n\t\"Rcaron\\u0000Odieresis\": -20,\n\t\"Rcaron\\u0000Ograve\": -20,\n\t\"Rcaron\\u0000Ohungarumlaut\": -20,\n\t\"Rcaron\\u0000Omacron\": -20,\n\t\"Rcaron\\u0000Oslash\": -20,\n\t\"Rcaron\\u0000Otilde\": -20,\n\t\"Rcaron\\u0000T\": -20,\n\t\"Rcaron\\u0000Tcaron\": -20,\n\t\"Rcaron\\u0000Tcommaaccent\": -20,\n\t\"Rcaron\\u0000U\": -20,\n\t\"Rcaron\\u0000Uacute\": -20,\n\t\"Rcaron\\u0000Ucircumflex\": -20,\n\t\"Rcaron\\u0000Udieresis\": -20,\n\t\"Rcaron\\u0000Ugrave\": -20,\n\t\"Rcaron\\u0000Uhungarumlaut\": -20,\n\t\"Rcaron\\u0000Umacron\": -20,\n\t\"Rcaron\\u0000Uogonek\": -20,\n\t\"Rcaron\\u0000Uring\": -20,\n\t\"Rcaron\\u0000V\": -50,\n\t\"Rcaron\\u0000W\": -40,\n\t\"Rcaron\\u0000Y\": -50,\n\t\"Rcaron\\u0000Yacute\": -50,\n\t\"Rcaron\\u0000Ydieresis\": -50,\n\t\"Rcommaaccent\\u0000O\": -20,\n\t\"Rcommaaccent\\u0000Oacute\": -20,\n\t\"Rcommaaccent\\u0000Ocircumflex\": -20,\n\t\"Rcommaaccent\\u0000Odieresis\": -20,\n\t\"Rcommaaccent\\u0000Ograve\": -20,\n\t\"Rcommaaccent\\u0000Ohungarumlaut\": -20,\n\t\"Rcommaaccent\\u0000Omacron\": -20,\n\t\"Rcommaaccent\\u0000Oslash\": -20,\n\t\"Rcommaaccent\\u0000Otilde\": -20,\n\t\"Rcommaaccent\\u0000T\": -20,\n\t\"Rcommaaccent\\u0000Tcaron\": -20,\n\t\"Rcommaaccent\\u0000Tcommaaccent\": -20,\n\t\"Rcommaaccent\\u0000U\": -20,\n\t\"Rcommaaccent\\u0000Uacute\": -20,\n\t\"Rcommaaccent\\u0000Ucircumflex\": -20,\n\t\"Rcommaaccent\\u0000Udieresis\": -20,\n\t\"Rcommaaccent\\u0000Ugrave\": -20,\n\t\"Rcommaaccent\\u0000Uhungarumlaut\": -20,\n\t\"Rcommaaccent\\u0000Umacron\": -20,\n\t\"Rcommaaccent\\u0000Uogonek\": -20,\n\t\"Rcommaaccent\\u0000Uring\": -20,\n\t\"Rcommaaccent\\u0000V\": -50,\n\t\"Rcommaaccent\\u0000W\": -40,\n\t\"Rcommaaccent\\u0000Y\": -50,\n\t\"Rcommaaccent\\u0000Yacute\": -50,\n\t\"Rcommaaccent\\u0000Ydieresis\": -50,\n\t\"T\\u0000A\": -90,\n\t\"T\\u0000Aacute\": -90,\n\t\"T\\u0000Abreve\": -90,\n\t\"T\\u0000Acircumflex\": -90,\n\t\"T\\u0000Adieresis\": -90,\n\t\"T\\u0000Agrave\": -90,\n\t\"T\\u0000Amacron\": -90,\n\t\"T\\u0000Aogonek\": -90,\n\t\"T\\u0000Aring\": -90,\n\t\"T\\u0000Atilde\": -90,\n\t\"T\\u0000O\": -40,\n\t\"T\\u0000Oacute\": -40,\n\t\"T\\u0000Ocircumflex\": -40,\n\t\"T\\u0000Odieresis\": -40,\n\t\"T\\u0000Ograve\": -40,\n\t\"T\\u0000Ohungarumlaut\": -40,\n\t\"T\\u0000Omacron\": -40,\n\t\"T\\u0000Oslash\": -40,\n\t\"T\\u0000Otilde\": -40,\n\t\"T\\u0000a\": -80,\n\t\"T\\u0000aacute\": -80,\n\t\"T\\u0000abreve\": -80,\n\t\"T\\u0000acircumflex\": -80,\n\t\"T\\u0000adieresis\": -80,\n\t\"T\\u0000agrave\": -80,\n\t\"T\\u0000amacron\": -80,\n\t\"T\\u0000aogonek\": -80,\n\t\"T\\u0000aring\": -80,\n\t\"T\\u0000atilde\": -80,\n\t\"T\\u0000colon\": -40,\n\t\"T\\u0000comma\": -80,\n\t\"T\\u0000e\": -60,\n\t\"T\\u0000eacute\": -60,\n\t\"T\\u0000ecaron\": -60,\n\t\"T\\u0000ecircumflex\": -60,\n\t\"T\\u0000edieresis\": -60,\n\t\"T\\u0000edotaccent\": -60,\n\t\"T\\u0000egrave\": -60,\n\t\"T\\u0000emacron\": -60,\n\t\"T\\u0000eogonek\": -60,\n\t\"T\\u0000hyphen\": -120,\n\t\"T\\u0000o\": -80,\n\t\"T\\u0000oacute\": -80,\n\t\"T\\u0000ocircumflex\": -80,\n\t\"T\\u0000odieresis\": -80,\n\t\"T\\u0000ograve\": -80,\n\t\"T\\u0000ohungarumlaut\": -80,\n\t\"T\\u0000omacron\": -80,\n\t\"T\\u0000oslash\": -80,\n\t\"T\\u0000otilde\": -80,\n\t\"T\\u0000period\": -80,\n\t\"T\\u0000r\": -80,\n\t\"T\\u0000racute\": -80,\n\t\"T\\u0000rcommaaccent\": -80,\n\t\"T\\u0000semicolon\": -40,\n\t\"T\\u0000u\": -90,\n\t\"T\\u0000uacute\": -90,\n\t\"T\\u0000ucircumflex\": -90,\n\t\"T\\u0000udieresis\": -90,\n\t\"T\\u0000ugrave\": -90,\n\t\"T\\u0000uhungarumlaut\": -90,\n\t\"T\\u0000umacron\": -90,\n\t\"T\\u0000uogonek\": -90,\n\t\"T\\u0000uring\": -90,\n\t\"T\\u0000w\": -60,\n\t\"T\\u0000y\": -60,\n\t\"T\\u0000yacute\": -60,\n\t\"T\\u0000ydieresis\": -60,\n\t\"Tcaron\\u0000A\": -90,\n\t\"Tcaron\\u0000Aacute\": -90,\n\t\"Tcaron\\u0000Abreve\": -90,\n\t\"Tcaron\\u0000Acircumflex\": -90,\n\t\"Tcaron\\u0000Adieresis\": -90,\n\t\"Tcaron\\u0000Agrave\": -90,\n\t\"Tcaron\\u0000Amacron\": -90,\n\t\"Tcaron\\u0000Aogonek\": -90,\n\t\"Tcaron\\u0000Aring\": -90,\n\t\"Tcaron\\u0000Atilde\": -90,\n\t\"Tcaron\\u0000O\": -40,\n\t\"Tcaron\\u0000Oacute\": -40,\n\t\"Tcaron\\u0000Ocircumflex\": -40,\n\t\"Tcaron\\u0000Odieresis\": -40,\n\t\"Tcaron\\u0000Ograve\": -40,\n\t\"Tcaron\\u0000Ohungarumlaut\": -40,\n\t\"Tcaron\\u0000Omacron\": -40,\n\t\"Tcaron\\u0000Oslash\": -40,\n\t\"Tcaron\\u0000Otilde\": -40,\n\t\"Tcaron\\u0000a\": -80,\n\t\"Tcaron\\u0000aacute\": -80,\n\t\"Tcaron\\u0000abreve\": -80,\n\t\"Tcaron\\u0000acircumflex\": -80,\n\t\"Tcaron\\u0000adieresis\": -80,\n\t\"Tcaron\\u0000agrave\": -80,\n\t\"Tcaron\\u0000amacron\": -80,\n\t\"Tcaron\\u0000aogonek\": -80,\n\t\"Tcaron\\u0000aring\": -80,\n\t\"Tcaron\\u0000atilde\": -80,\n\t\"Tcaron\\u0000colon\": -40,\n\t\"Tcaron\\u0000comma\": -80,\n\t\"Tcaron\\u0000e\": -60,\n\t\"Tcaron\\u0000eacute\": -60,\n\t\"Tcaron\\u0000ecaron\": -60,\n\t\"Tcaron\\u0000ecircumflex\": -60,\n\t\"Tcaron\\u0000edieresis\": -60,\n\t\"Tcaron\\u0000edotaccent\": -60,\n\t\"Tcaron\\u0000egrave\": -60,\n\t\"Tcaron\\u0000emacron\": -60,\n\t\"Tcaron\\u0000eogonek\": -60,\n\t\"Tcaron\\u0000hyphen\": -120,\n\t\"Tcaron\\u0000o\": -80,\n\t\"Tcaron\\u0000oacute\": -80,\n\t\"Tcaron\\u0000ocircumflex\": -80,\n\t\"Tcaron\\u0000odieresis\": -80,\n\t\"Tcaron\\u0000ograve\": -80,\n\t\"Tcaron\\u0000ohungarumlaut\": -80,\n\t\"Tcaron\\u0000omacron\": -80,\n\t\"Tcaron\\u0000oslash\": -80,\n\t\"Tcaron\\u0000otilde\": -80,\n\t\"Tcaron\\u0000period\": -80,\n\t\"Tcaron\\u0000r\": -80,\n\t\"Tcaron\\u0000racute\": -80,\n\t\"Tcaron\\u0000rcommaaccent\": -80,\n\t\"Tcaron\\u0000semicolon\": -40,\n\t\"Tcaron\\u0000u\": -90,\n\t\"Tcaron\\u0000uacute\": -90,\n\t\"Tcaron\\u0000ucircumflex\": -90,\n\t\"Tcaron\\u0000udieresis\": -90,\n\t\"Tcaron\\u0000ugrave\": -90,\n\t\"Tcaron\\u0000uhungarumlaut\": -90,\n\t\"Tcaron\\u0000umacron\": -90,\n\t\"Tcaron\\u0000uogonek\": -90,\n\t\"Tcaron\\u0000uring\": -90,\n\t\"Tcaron\\u0000w\": -60,\n\t\"Tcaron\\u0000y\": -60,\n\t\"Tcaron\\u0000yacute\": -60,\n\t\"Tcaron\\u0000ydieresis\": -60,\n\t\"Tcommaaccent\\u0000A\": -90,\n\t\"Tcommaaccent\\u0000Aacute\": -90,\n\t\"Tcommaaccent\\u0000Abreve\": -90,\n\t\"Tcommaaccent\\u0000Acircumflex\": -90,\n\t\"Tcommaaccent\\u0000Adieresis\": -90,\n\t\"Tcommaaccent\\u0000Agrave\": -90,\n\t\"Tcommaaccent\\u0000Amacron\": -90,\n\t\"Tcommaaccent\\u0000Aogonek\": -90,\n\t\"Tcommaaccent\\u0000Aring\": -90,\n\t\"Tcommaaccent\\u0000Atilde\": -90,\n\t\"Tcommaaccent\\u0000O\": -40,\n\t\"Tcommaaccent\\u0000Oacute\": -40,\n\t\"Tcommaaccent\\u0000Ocircumflex\": -40,\n\t\"Tcommaaccent\\u0000Odieresis\": -40,\n\t\"Tcommaaccent\\u0000Ograve\": -40,\n\t\"Tcommaaccent\\u0000Ohungarumlaut\": -40,\n\t\"Tcommaaccent\\u0000Omacron\": -40,\n\t\"Tcommaaccent\\u0000Oslash\": -40,\n\t\"Tcommaaccent\\u0000Otilde\": -40,\n\t\"Tcommaaccent\\u0000a\": -80,\n\t\"Tcommaaccent\\u0000aacute\": -80,\n\t\"Tcommaaccent\\u0000abreve\": -80,\n\t\"Tcommaaccent\\u0000acircumflex\": -80,\n\t\"Tcommaaccent\\u0000adieresis\": -80,\n\t\"Tcommaaccent\\u0000agrave\": -80,\n\t\"Tcommaaccent\\u0000amacron\": -80,\n\t\"Tcommaaccent\\u0000aogonek\": -80,\n\t\"Tcommaaccent\\u0000aring\": -80,\n\t\"Tcommaaccent\\u0000atilde\": -80,\n\t\"Tcommaaccent\\u0000colon\": -40,\n\t\"Tcommaaccent\\u0000comma\": -80,\n\t\"Tcommaaccent\\u0000e\": -60,\n\t\"Tcommaaccent\\u0000eacute\": -60,\n\t\"Tcommaaccent\\u0000ecaron\": -60,\n\t\"Tcommaaccent\\u0000ecircumflex\": -60,\n\t\"Tcommaaccent\\u0000edieresis\": -60,\n\t\"Tcommaaccent\\u0000edotaccent\": -60,\n\t\"Tcommaaccent\\u0000egrave\": -60,\n\t\"Tcommaaccent\\u0000emacron\": -60,\n\t\"Tcommaaccent\\u0000eogonek\": -60,\n\t\"Tcommaaccent\\u0000hyphen\": -120,\n\t\"Tcommaaccent\\u0000o\": -80,\n\t\"Tcommaaccent\\u0000oacute\": -80,\n\t\"Tcommaaccent\\u0000ocircumflex\": -80,\n\t\"Tcommaaccent\\u0000odieresis\": -80,\n\t\"Tcommaaccent\\u0000ograve\": -80,\n\t\"Tcommaaccent\\u0000ohungarumlaut\": -80,\n\t\"Tcommaaccent\\u0000omacron\": -80,\n\t\"Tcommaaccent\\u0000oslash\": -80,\n\t\"Tcommaaccent\\u0000otilde\": -80,\n\t\"Tcommaaccent\\u0000period\": -80,\n\t\"Tcommaaccent\\u0000r\": -80,\n\t\"Tcommaaccent\\u0000racute\": -80,\n\t\"Tcommaaccent\\u0000rcommaaccent\": -80,\n\t\"Tcommaaccent\\u0000semicolon\": -40,\n\t\"Tcommaaccent\\u0000u\": -90,\n\t\"Tcommaaccent\\u0000uacute\": -90,\n\t\"Tcommaaccent\\u0000ucircumflex\": -90,\n\t\"Tcommaaccent\\u0000udieresis\": -90,\n\t\"Tcommaaccent\\u0000ugrave\": -90,\n\t\"Tcommaaccent\\u0000uhungarumlaut\": -90,\n\t\"Tcommaaccent\\u0000umacron\": -90,\n\t\"Tcommaaccent\\u0000uogonek\": -90,\n\t\"Tcommaaccent\\u0000uring\": -90,\n\t\"Tcommaaccent\\u0000w\": -60,\n\t\"Tcommaaccent\\u0000y\": -60,\n\t\"Tcommaaccent\\u0000yacute\": -60,\n\t\"Tcommaaccent\\u0000ydieresis\": -60,\n\t\"U\\u0000A\": -50,\n\t\"U\\u0000Aacute\": -50,\n\t\"U\\u0000Abreve\": -50,\n\t\"U\\u0000Acircumflex\": -50,\n\t\"U\\u0000Adieresis\": -50,\n\t\"U\\u0000Agrave\": -50,\n\t\"U\\u0000Amacron\": -50,\n\t\"U\\u0000Aogonek\": -50,\n\t\"U\\u0000Aring\": -50,\n\t\"U\\u0000Atilde\": -50,\n\t\"U\\u0000comma\": -30,\n\t\"U\\u0000period\": -30,\n\t\"Uacute\\u0000A\": -50,\n\t\"Uacute\\u0000Aacute\": -50,\n\t\"Uacute\\u0000Abreve\": -50,\n\t\"Uacute\\u0000Acircumflex\": -50,\n\t\"Uacute\\u0000Adieresis\": -50,\n\t\"Uacute\\u0000Agrave\": -50,\n\t\"Uacute\\u0000Amacron\": -50,\n\t\"Uacute\\u0000Aogonek\": -50,\n\t\"Uacute\\u0000Aring\": -50,\n\t\"Uacute\\u0000Atilde\": -50,\n\t\"Uacute\\u0000comma\": -30,\n\t\"Uacute\\u0000period\": -30,\n\t\"Ucircumflex\\u0000A\": -50,\n\t\"Ucircumflex\\u0000Aacute\": -50,\n\t\"Ucircumflex\\u0000Abreve\": -50,\n\t\"Ucircumflex\\u0000Acircumflex\": -50,\n\t\"Ucircumflex\\u0000Adieresis\": -50,\n\t\"Ucircumflex\\u0000Agrave\": -50,\n\t\"Ucircumflex\\u0000Amacron\": -50,\n\t\"Ucircumflex\\u0000Aogonek\": -50,\n\t\"Ucircumflex\\u0000Aring\": -50,\n\t\"Ucircumflex\\u0000Atilde\": -50,\n\t\"Ucircumflex\\u0000comma\": -30,\n\t\"Ucircumflex\\u0000period\": -30,\n\t\"Udieresis\\u0000A\": -50,\n\t\"Udieresis\\u0000Aacute\": -50,\n\t\"Udieresis\\u0000Abreve\": -50,\n\t\"Udieresis\\u0000Acircumflex\": -50,\n\t\"Udieresis\\u0000Adieresis\": -50,\n\t\"Udieresis\\u0000Agrave\": -50,\n\t\"Udieresis\\u0000Amacron\": -50,\n\t\"Udieresis\\u0000Aogonek\": -50,\n\t\"Udieresis\\u0000Aring\": -50,\n\t\"Udieresis\\u0000Atilde\": -50,\n\t\"Udieresis\\u0000comma\": -30,\n\t\"Udieresis\\u0000period\": -30,\n\t\"Ugrave\\u0000A\": -50,\n\t\"Ugrave\\u0000Aacute\": -50,\n\t\"Ugrave\\u0000Abreve\": -50,\n\t\"Ugrave\\u0000Acircumflex\": -50,\n\t\"Ugrave\\u0000Adieresis\": -50,\n\t\"Ugrave\\u0000Agrave\": -50,\n\t\"Ugrave\\u0000Amacron\": -50,\n\t\"Ugrave\\u0000Aogonek\": -50,\n\t\"Ugrave\\u0000Aring\": -50,\n\t\"Ugrave\\u0000Atilde\": -50,\n\t\"Ugrave\\u0000comma\": -30,\n\t\"Ugrave\\u0000period\": -30,\n\t\"Uhungarumlaut\\u0000A\": -50,\n\t\"Uhungarumlaut\\u0000Aacute\": -50,\n\t\"Uhungarumlaut\\u0000Abreve\": -50,\n\t\"Uhungarumlaut\\u0000Acircumflex\": -50,\n\t\"Uhungarumlaut\\u0000Adieresis\": -50,\n\t\"Uhungarumlaut\\u0000Agrave\": -50,\n\t\"Uhungarumlaut\\u0000Amacron\": -50,\n\t\"Uhungarumlaut\\u0000Aogonek\": -50,\n\t\"Uhungarumlaut\\u0000Aring\": -50,\n\t\"Uhungarumlaut\\u0000Atilde\": -50,\n\t\"Uhungarumlaut\\u0000comma\": -30,\n\t\"Uhungarumlaut\\u0000period\": -30,\n\t\"Umacron\\u0000A\": -50,\n\t\"Umacron\\u0000Aacute\": -50,\n\t\"Umacron\\u0000Abreve\": -50,\n\t\"Umacron\\u0000Acircumflex\": -50,\n\t\"Umacron\\u0000Adieresis\": -50,\n\t\"Umacron\\u0000Agrave\": -50,\n\t\"Umacron\\u0000Amacron\": -50,\n\t\"Umacron\\u0000Aogonek\": -50,\n\t\"Umacron\\u0000Aring\": -50,\n\t\"Umacron\\u0000Atilde\": -50,\n\t\"Umacron\\u0000comma\": -30,\n\t\"Umacron\\u0000period\": -30,\n\t\"Uogonek\\u0000A\": -50,\n\t\"Uogonek\\u0000Aacute\": -50,\n\t\"Uogonek\\u0000Abreve\": -50,\n\t\"Uogonek\\u0000Acircumflex\": -50,\n\t\"Uogonek\\u0000Adieresis\": -50,\n\t\"Uogonek\\u0000Agrave\": -50,\n\t\"Uogonek\\u0000Amacron\": -50,\n\t\"Uogonek\\u0000Aogonek\": -50,\n\t\"Uogonek\\u0000Aring\": -50,\n\t\"Uogonek\\u0000Atilde\": -50,\n\t\"Uogonek\\u0000comma\": -30,\n\t\"Uogonek\\u0000period\": -30,\n\t\"Uring\\u0000A\": -50,\n\t\"Uring\\u0000Aacute\": -50,\n\t\"Uring\\u0000Abreve\": -50,\n\t\"Uring\\u0000Acircumflex\": -50,\n\t\"Uring\\u0000Adieresis\": -50,\n\t\"Uring\\u0000Agrave\": -50,\n\t\"Uring\\u0000Amacron\": -50,\n\t\"Uring\\u0000Aogonek\": -50,\n\t\"Uring\\u0000Aring\": -50,\n\t\"Uring\\u0000Atilde\": -50,\n\t\"Uring\\u0000comma\": -30,\n\t\"Uring\\u0000period\": -30,\n\t\"V\\u0000A\": -80,\n\t\"V\\u0000Aacute\": -80,\n\t\"V\\u0000Abreve\": -80,\n\t\"V\\u0000Acircumflex\": -80,\n\t\"V\\u0000Adieresis\": -80,\n\t\"V\\u0000Agrave\": -80,\n\t\"V\\u0000Amacron\": -80,\n\t\"V\\u0000Aogonek\": -80,\n\t\"V\\u0000Aring\": -80,\n\t\"V\\u0000Atilde\": -80,\n\t\"V\\u0000G\": -50,\n\t\"V\\u0000Gbreve\": -50,\n\t\"V\\u0000Gcommaaccent\": -50,\n\t\"V\\u0000O\": -50,\n\t\"V\\u0000Oacute\": -50,\n\t\"V\\u0000Ocircumflex\": -50,\n\t\"V\\u0000Odieresis\": -50,\n\t\"V\\u0000Ograve\": -50,\n\t\"V\\u0000Ohungarumlaut\": -50,\n\t\"V\\u0000Omacron\": -50,\n\t\"V\\u0000Oslash\": -50,\n\t\"V\\u0000Otilde\": -50,\n\t\"V\\u0000a\": -60,\n\t\"V\\u0000aacute\": -60,\n\t\"V\\u0000abreve\": -60,\n\t\"V\\u0000acircumflex\": -60,\n\t\"V\\u0000adieresis\": -60,\n\t\"V\\u0000agrave\": -60,\n\t\"V\\u0000amacron\": -60,\n\t\"V\\u0000aogonek\": -60,\n\t\"V\\u0000aring\": -60,\n\t\"V\\u0000atilde\": -60,\n\t\"V\\u0000colon\": -40,\n\t\"V\\u0000comma\": -120,\n\t\"V\\u0000e\": -50,\n\t\"V\\u0000eacute\": -50,\n\t\"V\\u0000ecaron\": -50,\n\t\"V\\u0000ecircumflex\": -50,\n\t\"V\\u0000edieresis\": -50,\n\t\"V\\u0000edotaccent\": -50,\n\t\"V\\u0000egrave\": -50,\n\t\"V\\u0000emacron\": -50,\n\t\"V\\u0000eogonek\": -50,\n\t\"V\\u0000hyphen\": -80,\n\t\"V\\u0000o\": -90,\n\t\"V\\u0000oacute\": -90,\n\t\"V\\u0000ocircumflex\": -90,\n\t\"V\\u0000odieresis\": -90,\n\t\"V\\u0000ograve\": -90,\n\t\"V\\u0000ohungarumlaut\": -90,\n\t\"V\\u0000omacron\": -90,\n\t\"V\\u0000oslash\": -90,\n\t\"V\\u0000otilde\": -90,\n\t\"V\\u0000period\": -120,\n\t\"V\\u0000semicolon\": -40,\n\t\"V\\u0000u\": -60,\n\t\"V\\u0000uacute\": -60,\n\t\"V\\u0000ucircumflex\": -60,\n\t\"V\\u0000udieresis\": -60,\n\t\"V\\u0000ugrave\": -60,\n\t\"V\\u0000uhungarumlaut\": -60,\n\t\"V\\u0000umacron\": -60,\n\t\"V\\u0000uogonek\": -60,\n\t\"V\\u0000uring\": -60,\n\t\"W\\u0000A\": -60,\n\t\"W\\u0000Aacute\": -60,\n\t\"W\\u0000Abreve\": -60,\n\t\"W\\u0000Acircumflex\": -60,\n\t\"W\\u0000Adieresis\": -60,\n\t\"W\\u0000Agrave\": -60,\n\t\"W\\u0000Amacron\": -60,\n\t\"W\\u0000Aogonek\": -60,\n\t\"W\\u0000Aring\": -60,\n\t\"W\\u0000Atilde\": -60,\n\t\"W\\u0000O\": -20,\n\t\"W\\u0000Oacute\": -20,\n\t\"W\\u0000Ocircumflex\": -20,\n\t\"W\\u0000Odieresis\": -20,\n\t\"W\\u0000Ograve\": -20,\n\t\"W\\u0000Ohungarumlaut\": -20,\n\t\"W\\u0000Omacron\": -20,\n\t\"W\\u0000Oslash\": -20,\n\t\"W\\u0000Otilde\": -20,\n\t\"W\\u0000a\": -40,\n\t\"W\\u0000aacute\": -40,\n\t\"W\\u0000abreve\": -40,\n\t\"W\\u0000acircumflex\": -40,\n\t\"W\\u0000adieresis\": -40,\n\t\"W\\u0000agrave\": -40,\n\t\"W\\u0000amacron\": -40,\n\t\"W\\u0000aogonek\": -40,\n\t\"W\\u0000aring\": -40,\n\t\"W\\u0000atilde\": -40,\n\t\"W\\u0000colon\": -10,\n\t\"W\\u0000comma\": -80,\n\t\"W\\u0000e\": -35,\n\t\"W\\u0000eacute\": -35,\n\t\"W\\u0000ecaron\": -35,\n\t\"W\\u0000ecircumflex\": -35,\n\t\"W\\u0000edieresis\": -35,\n\t\"W\\u0000edotaccent\": -35,\n\t\"W\\u0000egrave\": -35,\n\t\"W\\u0000emacron\": -35,\n\t\"W\\u0000eogonek\": -35,\n\t\"W\\u0000hyphen\": -40,\n\t\"W\\u0000o\": -60,\n\t\"W\\u0000oacute\": -60,\n\t\"W\\u0000ocircumflex\": -60,\n\t\"W\\u0000odieresis\": -60,\n\t\"W\\u0000ograve\": -60,\n\t\"W\\u0000ohungarumlaut\": -60,\n\t\"W\\u0000omacron\": -60,\n\t\"W\\u0000oslash\": -60,\n\t\"W\\u0000otilde\": -60,\n\t\"W\\u0000period\": -80,\n\t\"W\\u0000semicolon\": -10,\n\t\"W\\u0000u\": -45,\n\t\"W\\u0000uacute\": -45,\n\t\"W\\u0000ucircumflex\": -45,\n\t\"W\\u0000udieresis\": -45,\n\t\"W\\u0000ugrave\": -45,\n\t\"W\\u0000uhungarumlaut\": -45,\n\t\"W\\u0000umacron\": -45,\n\t\"W\\u0000uogonek\": -45,\n\t\"W\\u0000uring\": -45,\n\t\"W\\u0000y\": -20,\n\t\"W\\u0000yacute\": -20,\n\t\"W\\u0000ydieresis\": -20,\n\t\"Y\\u0000A\": -110,\n\t\"Y\\u0000Aacute\": -110,\n\t\"Y\\u0000Abreve\": -110,\n\t\"Y\\u0000Acircumflex\": -110,\n\t\"Y\\u0000Adieresis\": -110,\n\t\"Y\\u0000Agrave\": -110,\n\t\"Y\\u0000Amacron\": -110,\n\t\"Y\\u0000Aogonek\": -110,\n\t\"Y\\u0000Aring\": -110,\n\t\"Y\\u0000Atilde\": -110,\n\t\"Y\\u0000O\": -70,\n\t\"Y\\u0000Oacute\": -70,\n\t\"Y\\u0000Ocircumflex\": -70,\n\t\"Y\\u0000Odieresis\": -70,\n\t\"Y\\u0000Ograve\": -70,\n\t\"Y\\u0000Ohungarumlaut\": -70,\n\t\"Y\\u0000Omacron\": -70,\n\t\"Y\\u0000Oslash\": -70,\n\t\"Y\\u0000Otilde\": -70,\n\t\"Y\\u0000a\": -90,\n\t\"Y\\u0000aacute\": -90,\n\t\"Y\\u0000abreve\": -90,\n\t\"Y\\u0000acircumflex\": -90,\n\t\"Y\\u0000adieresis\": -90,\n\t\"Y\\u0000agrave\": -90,\n\t\"Y\\u0000amacron\": -90,\n\t\"Y\\u0000aogonek\": -90,\n\t\"Y\\u0000aring\": -90,\n\t\"Y\\u0000atilde\": -90,\n\t\"Y\\u0000colon\": -50,\n\t\"Y\\u0000comma\": -100,\n\t\"Y\\u0000e\": -80,\n\t\"Y\\u0000eacute\": -80,\n\t\"Y\\u0000ecaron\": -80,\n\t\"Y\\u0000ecircumflex\": -80,\n\t\"Y\\u0000edieresis\": -80,\n\t\"Y\\u0000edotaccent\": -80,\n\t\"Y\\u0000egrave\": -80,\n\t\"Y\\u0000emacron\": -80,\n\t\"Y\\u0000eogonek\": -80,\n\t\"Y\\u0000o\": -100,\n\t\"Y\\u0000oacute\": -100,\n\t\"Y\\u0000ocircumflex\": -100,\n\t\"Y\\u0000odieresis\": -100,\n\t\"Y\\u0000ograve\": -100,\n\t\"Y\\u0000ohungarumlaut\": -100,\n\t\"Y\\u0000omacron\": -100,\n\t\"Y\\u0000oslash\": -100,\n\t\"Y\\u0000otilde\": -100,\n\t\"Y\\u0000period\": -100,\n\t\"Y\\u0000semicolon\": -50,\n\t\"Y\\u0000u\": -100,\n\t\"Y\\u0000uacute\": -100,\n\t\"Y\\u0000ucircumflex\": -100,\n\t\"Y\\u0000udieresis\": -100,\n\t\"Y\\u0000ugrave\": -100,\n\t\"Y\\u0000uhungarumlaut\": -100,\n\t\"Y\\u0000umacron\": -100,\n\t\"Y\\u0000uogonek\": -100,\n\t\"Y\\u0000uring\": -100,\n\t\"Yacute\\u0000A\": -110,\n\t\"Yacute\\u0000Aacute\": -110,\n\t\"Yacute\\u0000Abreve\": -110,\n\t\"Yacute\\u0000Acircumflex\": -110,\n\t\"Yacute\\u0000Adieresis\": -110,\n\t\"Yacute\\u0000Agrave\": -110,\n\t\"Yacute\\u0000Amacron\": -110,\n\t\"Yacute\\u0000Aogonek\": -110,\n\t\"Yacute\\u0000Aring\": -110,\n\t\"Yacute\\u0000Atilde\": -110,\n\t\"Yacute\\u0000O\": -70,\n\t\"Yacute\\u0000Oacute\": -70,\n\t\"Yacute\\u0000Ocircumflex\": -70,\n\t\"Yacute\\u0000Odieresis\": -70,\n\t\"Yacute\\u0000Ograve\": -70,\n\t\"Yacute\\u0000Ohungarumlaut\": -70,\n\t\"Yacute\\u0000Omacron\": -70,\n\t\"Yacute\\u0000Oslash\": -70,\n\t\"Yacute\\u0000Otilde\": -70,\n\t\"Yacute\\u0000a\": -90,\n\t\"Yacute\\u0000aacute\": -90,\n\t\"Yacute\\u0000abreve\": -90,\n\t\"Yacute\\u0000acircumflex\": -90,\n\t\"Yacute\\u0000adieresis\": -90,\n\t\"Yacute\\u0000agrave\": -90,\n\t\"Yacute\\u0000amacron\": -90,\n\t\"Yacute\\u0000aogonek\": -90,\n\t\"Yacute\\u0000aring\": -90,\n\t\"Yacute\\u0000atilde\": -90,\n\t\"Yacute\\u0000colon\": -50,\n\t\"Yacute\\u0000comma\": -100,\n\t\"Yacute\\u0000e\": -80,\n\t\"Yacute\\u0000eacute\": -80,\n\t\"Yacute\\u0000ecaron\": -80,\n\t\"Yacute\\u0000ecircumflex\": -80,\n\t\"Yacute\\u0000edieresis\": -80,\n\t\"Yacute\\u0000edotaccent\": -80,\n\t\"Yacute\\u0000egrave\": -80,\n\t\"Yacute\\u0000emacron\": -80,\n\t\"Yacute\\u0000eogonek\": -80,\n\t\"Yacute\\u0000o\": -100,\n\t\"Yacute\\u0000oacute\": -100,\n\t\"Yacute\\u0000ocircumflex\": -100,\n\t\"Yacute\\u0000odieresis\": -100,\n\t\"Yacute\\u0000ograve\": -100,\n\t\"Yacute\\u0000ohungarumlaut\": -100,\n\t\"Yacute\\u0000omacron\": -100,\n\t\"Yacute\\u0000oslash\": -100,\n\t\"Yacute\\u0000otilde\": -100,\n\t\"Yacute\\u0000period\": -100,\n\t\"Yacute\\u0000semicolon\": -50,\n\t\"Yacute\\u0000u\": -100,\n\t\"Yacute\\u0000uacute\": -100,\n\t\"Yacute\\u0000ucircumflex\": -100,\n\t\"Yacute\\u0000udieresis\": -100,\n\t\"Yacute\\u0000ugrave\": -100,\n\t\"Yacute\\u0000uhungarumlaut\": -100,\n\t\"Yacute\\u0000umacron\": -100,\n\t\"Yacute\\u0000uogonek\": -100,\n\t\"Yacute\\u0000uring\": -100,\n\t\"Ydieresis\\u0000A\": -110,\n\t\"Ydieresis\\u0000Aacute\": -110,\n\t\"Ydieresis\\u0000Abreve\": -110,\n\t\"Ydieresis\\u0000Acircumflex\": -110,\n\t\"Ydieresis\\u0000Adieresis\": -110,\n\t\"Ydieresis\\u0000Agrave\": -110,\n\t\"Ydieresis\\u0000Amacron\": -110,\n\t\"Ydieresis\\u0000Aogonek\": -110,\n\t\"Ydieresis\\u0000Aring\": -110,\n\t\"Ydieresis\\u0000Atilde\": -110,\n\t\"Ydieresis\\u0000O\": -70,\n\t\"Ydieresis\\u0000Oacute\": -70,\n\t\"Ydieresis\\u0000Ocircumflex\": -70,\n\t\"Ydieresis\\u0000Odieresis\": -70,\n\t\"Ydieresis\\u0000Ograve\": -70,\n\t\"Ydieresis\\u0000Ohungarumlaut\": -70,\n\t\"Ydieresis\\u0000Omacron\": -70,\n\t\"Ydieresis\\u0000Oslash\": -70,\n\t\"Ydieresis\\u0000Otilde\": -70,\n\t\"Ydieresis\\u0000a\": -90,\n\t\"Ydieresis\\u0000aacute\": -90,\n\t\"Ydieresis\\u0000abreve\": -90,\n\t\"Ydieresis\\u0000acircumflex\": -90,\n\t\"Ydieresis\\u0000adieresis\": -90,\n\t\"Ydieresis\\u0000agrave\": -90,\n\t\"Ydieresis\\u0000amacron\": -90,\n\t\"Ydieresis\\u0000aogonek\": -90,\n\t\"Ydieresis\\u0000aring\": -90,\n\t\"Ydieresis\\u0000atilde\": -90,\n\t\"Ydieresis\\u0000colon\": -50,\n\t\"Ydieresis\\u0000comma\": -100,\n\t\"Ydieresis\\u0000e\": -80,\n\t\"Ydieresis\\u0000eacute\": -80,\n\t\"Ydieresis\\u0000ecaron\": -80,\n\t\"Ydieresis\\u0000ecircumflex\": -80,\n\t\"Ydieresis\\u0000edieresis\": -80,\n\t\"Ydieresis\\u0000edotaccent\": -80,\n\t\"Ydieresis\\u0000egrave\": -80,\n\t\"Ydieresis\\u0000emacron\": -80,\n\t\"Ydieresis\\u0000eogonek\": -80,\n\t\"Ydieresis\\u0000o\": -100,\n\t\"Ydieresis\\u0000oacute\": -100,\n\t\"Ydieresis\\u0000ocircumflex\": -100,\n\t\"Ydieresis\\u0000odieresis\": -100,\n\t\"Ydieresis\\u0000ograve\": -100,\n\t\"Ydieresis\\u0000ohungarumlaut\": -100,\n\t\"Ydieresis\\u0000omacron\": -100,\n\t\"Ydieresis\\u0000oslash\": -100,\n\t\"Ydieresis\\u0000otilde\": -100,\n\t\"Ydieresis\\u0000period\": -100,\n\t\"Ydieresis\\u0000semicolon\": -50,\n\t\"Ydieresis\\u0000u\": -100,\n\t\"Ydieresis\\u0000uacute\": -100,\n\t\"Ydieresis\\u0000ucircumflex\": -100,\n\t\"Ydieresis\\u0000udieresis\": -100,\n\t\"Ydieresis\\u0000ugrave\": -100,\n\t\"Ydieresis\\u0000uhungarumlaut\": -100,\n\t\"Ydieresis\\u0000umacron\": -100,\n\t\"Ydieresis\\u0000uogonek\": -100,\n\t\"Ydieresis\\u0000uring\": -100,\n\t\"a\\u0000g\": -10,\n\t\"a\\u0000gbreve\": -10,\n\t\"a\\u0000gcommaaccent\": -10,\n\t\"a\\u0000v\": -15,\n\t\"a\\u0000w\": -15,\n\t\"a\\u0000y\": -20,\n\t\"a\\u0000yacute\": -20,\n\t\"a\\u0000ydieresis\": -20,\n\t\"aacute\\u0000g\": -10,\n\t\"aacute\\u0000gbreve\": -10,\n\t\"aacute\\u0000gcommaaccent\": -10,\n\t\"aacute\\u0000v\": -15,\n\t\"aacute\\u0000w\": -15,\n\t\"aacute\\u0000y\": -20,\n\t\"aacute\\u0000yacute\": -20,\n\t\"aacute\\u0000ydieresis\": -20,\n\t\"abreve\\u0000g\": -10,\n\t\"abreve\\u0000gbreve\": -10,\n\t\"abreve\\u0000gcommaaccent\": -10,\n\t\"abreve\\u0000v\": -15,\n\t\"abreve\\u0000w\": -15,\n\t\"abreve\\u0000y\": -20,\n\t\"abreve\\u0000yacute\": -20,\n\t\"abreve\\u0000ydieresis\": -20,\n\t\"acircumflex\\u0000g\": -10,\n\t\"acircumflex\\u0000gbreve\": -10,\n\t\"acircumflex\\u0000gcommaaccent\": -10,\n\t\"acircumflex\\u0000v\": -15,\n\t\"acircumflex\\u0000w\": -15,\n\t\"acircumflex\\u0000y\": -20,\n\t\"acircumflex\\u0000yacute\": -20,\n\t\"acircumflex\\u0000ydieresis\": -20,\n\t\"adieresis\\u0000g\": -10,\n\t\"adieresis\\u0000gbreve\": -10,\n\t\"adieresis\\u0000gcommaaccent\": -10,\n\t\"adieresis\\u0000v\": -15,\n\t\"adieresis\\u0000w\": -15,\n\t\"adieresis\\u0000y\": -20,\n\t\"adieresis\\u0000yacute\": -20,\n\t\"adieresis\\u0000ydieresis\": -20,\n\t\"agrave\\u0000g\": -10,\n\t\"agrave\\u0000gbreve\": -10,\n\t\"agrave\\u0000gcommaaccent\": -10,\n\t\"agrave\\u0000v\": -15,\n\t\"agrave\\u0000w\": -15,\n\t\"agrave\\u0000y\": -20,\n\t\"agrave\\u0000yacute\": -20,\n\t\"agrave\\u0000ydieresis\": -20,\n\t\"amacron\\u0000g\": -10,\n\t\"amacron\\u0000gbreve\": -10,\n\t\"amacron\\u0000gcommaaccent\": -10,\n\t\"amacron\\u0000v\": -15,\n\t\"amacron\\u0000w\": -15,\n\t\"amacron\\u0000y\": -20,\n\t\"amacron\\u0000yacute\": -20,\n\t\"amacron\\u0000ydieresis\": -20,\n\t\"aogonek\\u0000g\": -10,\n\t\"aogonek\\u0000gbreve\": -10,\n\t\"aogonek\\u0000gcommaaccent\": -10,\n\t\"aogonek\\u0000v\": -15,\n\t\"aogonek\\u0000w\": -15,\n\t\"aogonek\\u0000y\": -20,\n\t\"aogonek\\u0000yacute\": -20,\n\t\"aogonek\\u0000ydieresis\": -20,\n\t\"aring\\u0000g\": -10,\n\t\"aring\\u0000gbreve\": -10,\n\t\"aring\\u0000gcommaaccent\": -10,\n\t\"aring\\u0000v\": -15,\n\t\"aring\\u0000w\": -15,\n\t\"aring\\u0000y\": -20,\n\t\"aring\\u0000yacute\": -20,\n\t\"aring\\u0000ydieresis\": -20,\n\t\"atilde\\u0000g\": -10,\n\t\"atilde\\u0000gbreve\": -10,\n\t\"atilde\\u0000gcommaaccent\": -10,\n\t\"atilde\\u0000v\": -15,\n\t\"atilde\\u0000w\": -15,\n\t\"atilde\\u0000y\": -20,\n\t\"atilde\\u0000yacute\": -20,\n\t\"atilde\\u0000ydieresis\": -20,\n\t\"b\\u0000l\": -10,\n\t\"b\\u0000lacute\": -10,\n\t\"b\\u0000lcommaaccent\": -10,\n\t\"b\\u0000lslash\": -10,\n\t\"b\\u0000u\": -20,\n\t\"b\\u0000uacute\": -20,\n\t\"b\\u0000ucircumflex\": -20,\n\t\"b\\u0000udieresis\": -20,\n\t\"b\\u0000ugrave\": -20,\n\t\"b\\u0000uhungarumlaut\": -20,\n\t\"b\\u0000umacron\": -20,\n\t\"b\\u0000uogonek\": -20,\n\t\"b\\u0000uring\": -20,\n\t\"b\\u0000v\": -20,\n\t\"b\\u0000y\": -20,\n\t\"b\\u0000yacute\": -20,\n\t\"b\\u0000ydieresis\": -20,\n\t\"c\\u0000h\": -10,\n\t\"c\\u0000k\": -20,\n\t\"c\\u0000kcommaaccent\": -20,\n\t\"c\\u0000l\": -20,\n\t\"c\\u0000lacute\": -20,\n\t\"c\\u0000lcommaaccent\": -20,\n\t\"c\\u0000lslash\": -20,\n\t\"c\\u0000y\": -10,\n\t\"c\\u0000yacute\": -10,\n\t\"c\\u0000ydieresis\": -10,\n\t\"cacute\\u0000h\": -10,\n\t\"cacute\\u0000k\": -20,\n\t\"cacute\\u0000kcommaaccent\": -20,\n\t\"cacute\\u0000l\": -20,\n\t\"cacute\\u0000lacute\": -20,\n\t\"cacute\\u0000lcommaaccent\": -20,\n\t\"cacute\\u0000lslash\": -20,\n\t\"cacute\\u0000y\": -10,\n\t\"cacute\\u0000yacute\": -10,\n\t\"cacute\\u0000ydieresis\": -10,\n\t\"ccaron\\u0000h\": -10,\n\t\"ccaron\\u0000k\": -20,\n\t\"ccaron\\u0000kcommaaccent\": -20,\n\t\"ccaron\\u0000l\": -20,\n\t\"ccaron\\u0000lacute\": -20,\n\t\"ccaron\\u0000lcommaaccent\": -20,\n\t\"ccaron\\u0000lslash\": -20,\n\t\"ccaron\\u0000y\": -10,\n\t\"ccaron\\u0000yacute\": -10,\n\t\"ccaron\\u0000ydieresis\": -10,\n\t\"ccedilla\\u0000h\": -10,\n\t\"ccedilla\\u0000k\": -20,\n\t\"ccedilla\\u0000kcommaaccent\": -20,\n\t\"ccedilla\\u0000l\": -20,\n\t\"ccedilla\\u0000lacute\": -20,\n\t\"ccedilla\\u0000lcommaaccent\": -20,\n\t\"ccedilla\\u0000lslash\": -20,\n\t\"ccedilla\\u0000y\": -10,\n\t\"ccedilla\\u0000yacute\": -10,\n\t\"ccedilla\\u0000ydieresis\": -10,\n\t\"colon\\u0000space\": -40,\n\t\"comma\\u0000quotedblright\": -120,\n\t\"comma\\u0000quoteright\": -120,\n\t\"comma\\u0000space\": -40,\n\t\"d\\u0000d\": -10,\n\t\"d\\u0000dcroat\": -10,\n\t\"d\\u0000v\": -15,\n\t\"d\\u0000w\": -15,\n\t\"d\\u0000y\": -15,\n\t\"d\\u0000yacute\": -15,\n\t\"d\\u0000ydieresis\": -15,\n\t\"dcroat\\u0000d\": -10,\n\t\"dcroat\\u0000dcroat\": -10,\n\t\"dcroat\\u0000v\": -15,\n\t\"dcroat\\u0000w\": -15,\n\t\"dcroat\\u0000y\": -15,\n\t\"dcroat\\u0000yacute\": -15,\n\t\"dcroat\\u0000ydieresis\": -15,\n\t\"e\\u0000comma\": 10,\n\t\"e\\u0000period\": 20,\n\t\"e\\u0000v\": -15,\n\t\"e\\u0000w\": -15,\n\t\"e\\u0000x\": -15,\n\t\"e\\u0000y\": -15,\n\t\"e\\u0000yacute\": -15,\n\t\"e\\u0000ydieresis\": -15,\n\t\"eacute\\u0000comma\": 10,\n\t\"eacute\\u0000period\": 20,\n\t\"eacute\\u0000v\": -15,\n\t\"eacute\\u0000w\": -15,\n\t\"eacute\\u0000x\": -15,\n\t\"eacute\\u0000y\": -15,\n\t\"eacute\\u0000yacute\": -15,\n\t\"eacute\\u0000ydieresis\": -15,\n\t\"ecaron\\u0000comma\": 10,\n\t\"ecaron\\u0000period\": 20,\n\t\"ecaron\\u0000v\": -15,\n\t\"ecaron\\u0000w\": -15,\n\t\"ecaron\\u0000x\": -15,\n\t\"ecaron\\u0000y\": -15,\n\t\"ecaron\\u0000yacute\": -15,\n\t\"ecaron\\u0000ydieresis\": -15,\n\t\"ecircumflex\\u0000comma\": 10,\n\t\"ecircumflex\\u0000period\": 20,\n\t\"ecircumflex\\u0000v\": -15,\n\t\"ecircumflex\\u0000w\": -15,\n\t\"ecircumflex\\u0000x\": -15,\n\t\"ecircumflex\\u0000y\": -15,\n\t\"ecircumflex\\u0000yacute\": -15,\n\t\"ecircumflex\\u0000ydieresis\": -15,\n\t\"edieresis\\u0000comma\": 10,\n\t\"edieresis\\u0000period\": 20,\n\t\"edieresis\\u0000v\": -15,\n\t\"edieresis\\u0000w\": -15,\n\t\"edieresis\\u0000x\": -15,\n\t\"edieresis\\u0000y\": -15,\n\t\"edieresis\\u0000yacute\": -15,\n\t\"edieresis\\u0000ydieresis\": -15,\n\t\"edotaccent\\u0000comma\": 10,\n\t\"edotaccent\\u0000period\": 20,\n\t\"edotaccent\\u0000v\": -15,\n\t\"edotaccent\\u0000w\": -15,\n\t\"edotaccent\\u0000x\": -15,\n\t\"edotaccent\\u0000y\": -15,\n\t\"edotaccent\\u0000yacute\": -15,\n\t\"edotaccent\\u0000ydieresis\": -15,\n\t\"egrave\\u0000comma\": 10,\n\t\"egrave\\u0000period\": 20,\n\t\"egrave\\u0000v\": -15,\n\t\"egrave\\u0000w\": -15,\n\t\"egrave\\u0000x\": -15,\n\t\"egrave\\u0000y\": -15,\n\t\"egrave\\u0000yacute\": -15,\n\t\"egrave\\u0000ydieresis\": -15,\n\t\"emacron\\u0000comma\": 10,\n\t\"emacron\\u0000period\": 20,\n\t\"emacron\\u0000v\": -15,\n\t\"emacron\\u0000w\": -15,\n\t\"emacron\\u0000x\": -15,\n\t\"emacron\\u0000y\": -15,\n\t\"emacron\\u0000yacute\": -15,\n\t\"emacron\\u0000ydieresis\": -15,\n\t\"eogonek\\u0000comma\": 10,\n\t\"eogonek\\u0000period\": 20,\n\t\"eogonek\\u0000v\": -15,\n\t\"eogonek\\u0000w\": -15,\n\t\"eogonek\\u0000x\": -15,\n\t\"eogonek\\u0000y\": -15,\n\t\"eogonek\\u0000yacute\": -15,\n\t\"eogonek\\u0000ydieresis\": -15,\n\t\"f\\u0000comma\": -10,\n\t\"f\\u0000e\": -10,\n\t\"f\\u0000eacute\": -10,\n\t\"f\\u0000ecaron\": -10,\n\t\"f\\u0000ecircumflex\": -10,\n\t\"f\\u0000edieresis\": -10,\n\t\"f\\u0000edotaccent\": -10,\n\t\"f\\u0000egrave\": -10,\n\t\"f\\u0000emacron\": -10,\n\t\"f\\u0000eogonek\": -10,\n\t\"f\\u0000o\": -20,\n\t\"f\\u0000oacute\": -20,\n\t\"f\\u0000ocircumflex\": -20,\n\t\"f\\u0000odieresis\": -20,\n\t\"f\\u0000ograve\": -20,\n\t\"f\\u0000ohungarumlaut\": -20,\n\t\"f\\u0000omacron\": -20,\n\t\"f\\u0000oslash\": -20,\n\t\"f\\u0000otilde\": -20,\n\t\"f\\u0000period\": -10,\n\t\"f\\u0000quotedblright\": 30,\n\t\"f\\u0000quoteright\": 30,\n\t\"g\\u0000e\": 10,\n\t\"g\\u0000eacute\": 10,\n\t\"g\\u0000ecaron\": 10,\n\t\"g\\u0000ecircumflex\": 10,\n\t\"g\\u0000edieresis\": 10,\n\t\"g\\u0000edotaccent\": 10,\n\t\"g\\u0000egrave\": 10,\n\t\"g\\u0000emacron\": 10,\n\t\"g\\u0000eogonek\": 10,\n\t\"g\\u0000g\": -10,\n\t\"g\\u0000gbreve\": -10,\n\t\"g\\u0000gcommaaccent\": -10,\n\t\"gbreve\\u0000e\": 10,\n\t\"gbreve\\u0000eacute\": 10,\n\t\"gbreve\\u0000ecaron\": 10,\n\t\"gbreve\\u0000ecircumflex\": 10,\n\t\"gbreve\\u0000edieresis\": 10,\n\t\"gbreve\\u0000edotaccent\": 10,\n\t\"gbreve\\u0000egrave\": 10,\n\t\"gbreve\\u0000emacron\": 10,\n\t\"gbreve\\u0000eogonek\": 10,\n\t\"gbreve\\u0000g\": -10,\n\t\"gbreve\\u0000gbreve\": -10,\n\t\"gbreve\\u0000gcommaaccent\": -10,\n\t\"gcommaaccent\\u0000e\": 10,\n\t\"gcommaaccent\\u0000eacute\": 10,\n\t\"gcommaaccent\\u0000ecaron\": 10,\n\t\"gcommaaccent\\u0000ecircumflex\": 10,\n\t\"gcommaaccent\\u0000edieresis\": 10,\n\t\"gcommaaccent\\u0000edotaccent\": 10,\n\t\"gcommaaccent\\u0000egrave\": 10,\n\t\"gcommaaccent\\u0000emacron\": 10,\n\t\"gcommaaccent\\u0000eogonek\": 10,\n\t\"gcommaaccent\\u0000g\": -10,\n\t\"gcommaaccent\\u0000gbreve\": -10,\n\t\"gcommaaccent\\u0000gcommaaccent\": -10,\n\t\"h\\u0000y\": -20,\n\t\"h\\u0000yacute\": -20,\n\t\"h\\u0000ydieresis\": -20,\n\t\"k\\u0000o\": -15,\n\t\"k\\u0000oacute\": -15,\n\t\"k\\u0000ocircumflex\": -15,\n\t\"k\\u0000odieresis\": -15,\n\t\"k\\u0000ograve\": -15,\n\t\"k\\u0000ohungarumlaut\": -15,\n\t\"k\\u0000omacron\": -15,\n\t\"k\\u0000oslash\": -15,\n\t\"k\\u0000otilde\": -15,\n\t\"kcommaaccent\\u0000o\": -15,\n\t\"kcommaaccent\\u0000oacute\": -15,\n\t\"kcommaaccent\\u0000ocircumflex\": -15,\n\t\"kcommaaccent\\u0000odieresis\": -15,\n\t\"kcommaaccent\\u0000ograve\": -15,\n\t\"kcommaaccent\\u0000ohungarumlaut\": -15,\n\t\"kcommaaccent\\u0000omacron\": -15,\n\t\"kcommaaccent\\u0000oslash\": -15,\n\t\"kcommaaccent\\u0000otilde\": -15,\n\t\"l\\u0000w\": -15,\n\t\"l\\u0000y\": -15,\n\t\"l\\u0000yacute\": -15,\n\t\"l\\u0000ydieresis\": -15,\n\t\"lacute\\u0000w\": -15,\n\t\"lacute\\u0000y\": -15,\n\t\"lacute\\u0000yacute\": -15,\n\t\"lacute\\u0000ydieresis\": -15,\n\t\"lcommaaccent\\u0000w\": -15,\n\t\"lcommaaccent\\u0000y\": -15,\n\t\"lcommaaccent\\u0000yacute\": -15,\n\t\"lcommaaccent\\u0000ydieresis\": -15,\n\t\"lslash\\u0000w\": -15,\n\t\"lslash\\u0000y\": -15,\n\t\"lslash\\u0000yacute\": -15,\n\t\"lslash\\u0000ydieresis\": -15,\n\t\"m\\u0000u\": -20,\n\t\"m\\u0000uacute\": -20,\n\t\"m\\u0000ucircumflex\": -20,\n\t\"m\\u0000udieresis\": -20,\n\t\"m\\u0000ugrave\": -20,\n\t\"m\\u0000uhungarumlaut\": -20,\n\t\"m\\u0000umacron\": -20,\n\t\"m\\u0000uogonek\": -20,\n\t\"m\\u0000uring\": -20,\n\t\"m\\u0000y\": -30,\n\t\"m\\u0000yacute\": -30,\n\t\"m\\u0000ydieresis\": -30,\n\t\"n\\u0000u\": -10,\n\t\"n\\u0000uacute\": -10,\n\t\"n\\u0000ucircumflex\": -10,\n\t\"n\\u0000udieresis\": -10,\n\t\"n\\u0000ugrave\": -10,\n\t\"n\\u0000uhungarumlaut\": -10,\n\t\"n\\u0000umacron\": -10,\n\t\"n\\u0000uogonek\": -10,\n\t\"n\\u0000uring\": -10,\n\t\"n\\u0000v\": -40,\n\t\"n\\u0000y\": -20,\n\t\"n\\u0000yacute\": -20,\n\t\"n\\u0000ydieresis\": -20,\n\t\"nacute\\u0000u\": -10,\n\t\"nacute\\u0000uacute\": -10,\n\t\"nacute\\u0000ucircumflex\": -10,\n\t\"nacute\\u0000udieresis\": -10,\n\t\"nacute\\u0000ugrave\": -10,\n\t\"nacute\\u0000uhungarumlaut\": -10,\n\t\"nacute\\u0000umacron\": -10,\n\t\"nacute\\u0000uogonek\": -10,\n\t\"nacute\\u0000uring\": -10,\n\t\"nacute\\u0000v\": -40,\n\t\"nacute\\u0000y\": -20,\n\t\"nacute\\u0000yacute\": -20,\n\t\"nacute\\u0000ydieresis\": -20,\n\t\"ncaron\\u0000u\": -10,\n\t\"ncaron\\u0000uacute\": -10,\n\t\"ncaron\\u0000ucircumflex\": -10,\n\t\"ncaron\\u0000udieresis\": -10,\n\t\"ncaron\\u0000ugrave\": -10,\n\t\"ncaron\\u0000uhungarumlaut\": -10,\n\t\"ncaron\\u0000umacron\": -10,\n\t\"ncaron\\u0000uogonek\": -10,\n\t\"ncaron\\u0000uring\": -10,\n\t\"ncaron\\u0000v\": -40,\n\t\"ncaron\\u0000y\": -20,\n\t\"ncaron\\u0000yacute\": -20,\n\t\"ncaron\\u0000ydieresis\": -20,\n\t\"ncommaaccent\\u0000u\": -10,\n\t\"ncommaaccent\\u0000uacute\": -10,\n\t\"ncommaaccent\\u0000ucircumflex\": -10,\n\t\"ncommaaccent\\u0000udieresis\": -10,\n\t\"ncommaaccent\\u0000ugrave\": -10,\n\t\"ncommaaccent\\u0000uhungarumlaut\": -10,\n\t\"ncommaaccent\\u0000umacron\": -10,\n\t\"ncommaaccent\\u0000uogonek\": -10,\n\t\"ncommaaccent\\u0000uring\": -10,\n\t\"ncommaaccent\\u0000v\": -40,\n\t\"ncommaaccent\\u0000y\": -20,\n\t\"ncommaaccent\\u0000yacute\": -20,\n\t\"ncommaaccent\\u0000ydieresis\": -20,\n\t\"ntilde\\u0000u\": -10,\n\t\"ntilde\\u0000uacute\": -10,\n\t\"ntilde\\u0000ucircumflex\": -10,\n\t\"ntilde\\u0000udieresis\": -10,\n\t\"ntilde\\u0000ugrave\": -10,\n\t\"ntilde\\u0000uhungarumlaut\": -10,\n\t\"ntilde\\u0000umacron\": -10,\n\t\"ntilde\\u0000uogonek\": -10,\n\t\"ntilde\\u0000uring\": -10,\n\t\"ntilde\\u0000v\": -40,\n\t\"ntilde\\u0000y\": -20,\n\t\"ntilde\\u0000yacute\": -20,\n\t\"ntilde\\u0000ydieresis\": -20,\n\t\"o\\u0000v\": -20,\n\t\"o\\u0000w\": -15,\n\t\"o\\u0000x\": -30,\n\t\"o\\u0000y\": -20,\n\t\"o\\u0000yacute\": -20,\n\t\"o\\u0000ydieresis\": -20,\n\t\"oacute\\u0000v\": -20,\n\t\"oacute\\u0000w\": -15,\n\t\"oacute\\u0000x\": -30,\n\t\"oacute\\u0000y\": -20,\n\t\"oacute\\u0000yacute\": -20,\n\t\"oacute\\u0000ydieresis\": -20,\n\t\"ocircumflex\\u0000v\": -20,\n\t\"ocircumflex\\u0000w\": -15,\n\t\"ocircumflex\\u0000x\": -30,\n\t\"ocircumflex\\u0000y\": -20,\n\t\"ocircumflex\\u0000yacute\": -20,\n\t\"ocircumflex\\u0000ydieresis\": -20,\n\t\"odieresis\\u0000v\": -20,\n\t\"odieresis\\u0000w\": -15,\n\t\"odieresis\\u0000x\": -30,\n\t\"odieresis\\u0000y\": -20,\n\t\"odieresis\\u0000yacute\": -20,\n\t\"odieresis\\u0000ydieresis\": -20,\n\t\"ograve\\u0000v\": -20,\n\t\"ograve\\u0000w\": -15,\n\t\"ograve\\u0000x\": -30,\n\t\"ograve\\u0000y\": -20,\n\t\"ograve\\u0000yacute\": -20,\n\t\"ograve\\u0000ydieresis\": -20,\n\t\"ohungarumlaut\\u0000v\": -20,\n\t\"ohungarumlaut\\u0000w\": -15,\n\t\"ohungarumlaut\\u0000x\": -30,\n\t\"ohungarumlaut\\u0000y\": -20,\n\t\"ohungarumlaut\\u0000yacute\": -20,\n\t\"ohungarumlaut\\u0000ydieresis\": -20,\n\t\"omacron\\u0000v\": -20,\n\t\"omacron\\u0000w\": -15,\n\t\"omacron\\u0000x\": -30,\n\t\"omacron\\u0000y\": -20,\n\t\"omacron\\u0000yacute\": -20,\n\t\"omacron\\u0000ydieresis\": -20,\n\t\"oslash\\u0000v\": -20,\n\t\"oslash\\u0000w\": -15,\n\t\"oslash\\u0000x\": -30,\n\t\"oslash\\u0000y\": -20,\n\t\"oslash\\u0000yacute\": -20,\n\t\"oslash\\u0000ydieresis\": -20,\n\t\"otilde\\u0000v\": -20,\n\t\"otilde\\u0000w\": -15,\n\t\"otilde\\u0000x\": -30,\n\t\"otilde\\u0000y\": -20,\n\t\"otilde\\u0000yacute\": -20,\n\t\"otilde\\u0000ydieresis\": -20,\n\t\"p\\u0000y\": -15,\n\t\"p\\u0000yacute\": -15,\n\t\"p\\u0000ydieresis\": -15,\n\t\"period\\u0000quotedblright\": -120,\n\t\"period\\u0000quoteright\": -120,\n\t\"period\\u0000space\": -40,\n\t\"quotedblright\\u0000space\": -80,\n\t\"quoteleft\\u0000quoteleft\": -46,\n\t\"quoteright\\u0000d\": -80,\n\t\"quoteright\\u0000dcroat\": -80,\n\t\"quoteright\\u0000l\": -20,\n\t\"quoteright\\u0000lacute\": -20,\n\t\"quoteright\\u0000lcommaaccent\": -20,\n\t\"quoteright\\u0000lslash\": -20,\n\t\"quoteright\\u0000quoteright\": -46,\n\t\"quoteright\\u0000r\": -40,\n\t\"quoteright\\u0000racute\": -40,\n\t\"quoteright\\u0000rcaron\": -40,\n\t\"quoteright\\u0000rcommaaccent\": -40,\n\t\"quoteright\\u0000s\": -60,\n\t\"quoteright\\u0000sacute\": -60,\n\t\"quoteright\\u0000scaron\": -60,\n\t\"quoteright\\u0000scedilla\": -60,\n\t\"quoteright\\u0000scommaaccent\": -60,\n\t\"quoteright\\u0000space\": -80,\n\t\"quoteright\\u0000v\": -20,\n\t\"r\\u0000c\": -20,\n\t\"r\\u0000cacute\": -20,\n\t\"r\\u0000ccaron\": -20,\n\t\"r\\u0000ccedilla\": -20,\n\t\"r\\u0000comma\": -60,\n\t\"r\\u0000d\": -20,\n\t\"r\\u0000dcroat\": -20,\n\t\"r\\u0000g\": -15,\n\t\"r\\u0000gbreve\": -15,\n\t\"r\\u0000gcommaaccent\": -15,\n\t\"r\\u0000hyphen\": -20,\n\t\"r\\u0000o\": -20,\n\t\"r\\u0000oacute\": -20,\n\t\"r\\u0000ocircumflex\": -20,\n\t\"r\\u0000odieresis\": -20,\n\t\"r\\u0000ograve\": -20,\n\t\"r\\u0000ohungarumlaut\": -20,\n\t\"r\\u0000omacron\": -20,\n\t\"r\\u0000oslash\": -20,\n\t\"r\\u0000otilde\": -20,\n\t\"r\\u0000period\": -60,\n\t\"r\\u0000q\": -20,\n\t\"r\\u0000s\": -15,\n\t\"r\\u0000sacute\": -15,\n\t\"r\\u0000scaron\": -15,\n\t\"r\\u0000scedilla\": -15,\n\t\"r\\u0000scommaaccent\": -15,\n\t\"r\\u0000t\": 20,\n\t\"r\\u0000tcommaaccent\": 20,\n\t\"r\\u0000v\": 10,\n\t\"r\\u0000y\": 10,\n\t\"r\\u0000yacute\": 10,\n\t\"r\\u0000ydieresis\": 10,\n\t\"racute\\u0000c\": -20,\n\t\"racute\\u0000cacute\": -20,\n\t\"racute\\u0000ccaron\": -20,\n\t\"racute\\u0000ccedilla\": -20,\n\t\"racute\\u0000comma\": -60,\n\t\"racute\\u0000d\": -20,\n\t\"racute\\u0000dcroat\": -20,\n\t\"racute\\u0000g\": -15,\n\t\"racute\\u0000gbreve\": -15,\n\t\"racute\\u0000gcommaaccent\": -15,\n\t\"racute\\u0000hyphen\": -20,\n\t\"racute\\u0000o\": -20,\n\t\"racute\\u0000oacute\": -20,\n\t\"racute\\u0000ocircumflex\": -20,\n\t\"racute\\u0000odieresis\": -20,\n\t\"racute\\u0000ograve\": -20,\n\t\"racute\\u0000ohungarumlaut\": -20,\n\t\"racute\\u0000omacron\": -20,\n\t\"racute\\u0000oslash\": -20,\n\t\"racute\\u0000otilde\": -20,\n\t\"racute\\u0000period\": -60,\n\t\"racute\\u0000q\": -20,\n\t\"racute\\u0000s\": -15,\n\t\"racute\\u0000sacute\": -15,\n\t\"racute\\u0000scaron\": -15,\n\t\"racute\\u0000scedilla\": -15,\n\t\"racute\\u0000scommaaccent\": -15,\n\t\"racute\\u0000t\": 20,\n\t\"racute\\u0000tcommaaccent\": 20,\n\t\"racute\\u0000v\": 10,\n\t\"racute\\u0000y\": 10,\n\t\"racute\\u0000yacute\": 10,\n\t\"racute\\u0000ydieresis\": 10,\n\t\"rcaron\\u0000c\": -20,\n\t\"rcaron\\u0000cacute\": -20,\n\t\"rcaron\\u0000ccaron\": -20,\n\t\"rcaron\\u0000ccedilla\": -20,\n\t\"rcaron\\u0000comma\": -60,\n\t\"rcaron\\u0000d\": -20,\n\t\"rcaron\\u0000dcroat\": -20,\n\t\"rcaron\\u0000g\": -15,\n\t\"rcaron\\u0000gbreve\": -15,\n\t\"rcaron\\u0000gcommaaccent\": -15,\n\t\"rcaron\\u0000hyphen\": -20,\n\t\"rcaron\\u0000o\": -20,\n\t\"rcaron\\u0000oacute\": -20,\n\t\"rcaron\\u0000ocircumflex\": -20,\n\t\"rcaron\\u0000odieresis\": -20,\n\t\"rcaron\\u0000ograve\": -20,\n\t\"rcaron\\u0000ohungarumlaut\": -20,\n\t\"rcaron\\u0000omacron\": -20,\n\t\"rcaron\\u0000oslash\": -20,\n\t\"rcaron\\u0000otilde\": -20,\n\t\"rcaron\\u0000period\": -60,\n\t\"rcaron\\u0000q\": -20,\n\t\"rcaron\\u0000s\": -15,\n\t\"rcaron\\u0000sacute\": -15,\n\t\"rcaron\\u0000scaron\": -15,\n\t\"rcaron\\u0000scedilla\": -15,\n\t\"rcaron\\u0000scommaaccent\": -15,\n\t\"rcaron\\u0000t\": 20,\n\t\"rcaron\\u0000tcommaaccent\": 20,\n\t\"rcaron\\u0000v\": 10,\n\t\"rcaron\\u0000y\": 10,\n\t\"rcaron\\u0000yacute\": 10,\n\t\"rcaron\\u0000ydieresis\": 10,\n\t\"rcommaaccent\\u0000c\": -20,\n\t\"rcommaaccent\\u0000cacute\": -20,\n\t\"rcommaaccent\\u0000ccaron\": -20,\n\t\"rcommaaccent\\u0000ccedilla\": -20,\n\t\"rcommaaccent\\u0000comma\": -60,\n\t\"rcommaaccent\\u0000d\": -20,\n\t\"rcommaaccent\\u0000dcroat\": -20,\n\t\"rcommaaccent\\u0000g\": -15,\n\t\"rcommaaccent\\u0000gbreve\": -15,\n\t\"rcommaaccent\\u0000gcommaaccent\": -15,\n\t\"rcommaaccent\\u0000hyphen\": -20,\n\t\"rcommaaccent\\u0000o\": -20,\n\t\"rcommaaccent\\u0000oacute\": -20,\n\t\"rcommaaccent\\u0000ocircumflex\": -20,\n\t\"rcommaaccent\\u0000odieresis\": -20,\n\t\"rcommaaccent\\u0000ograve\": -20,\n\t\"rcommaaccent\\u0000ohungarumlaut\": -20,\n\t\"rcommaaccent\\u0000omacron\": -20,\n\t\"rcommaaccent\\u0000oslash\": -20,\n\t\"rcommaaccent\\u0000otilde\": -20,\n\t\"rcommaaccent\\u0000period\": -60,\n\t\"rcommaaccent\\u0000q\": -20,\n\t\"rcommaaccent\\u0000s\": -15,\n\t\"rcommaaccent\\u0000sacute\": -15,\n\t\"rcommaaccent\\u0000scaron\": -15,\n\t\"rcommaaccent\\u0000scedilla\": -15,\n\t\"rcommaaccent\\u0000scommaaccent\": -15,\n\t\"rcommaaccent\\u0000t\": 20,\n\t\"rcommaaccent\\u0000tcommaaccent\": 20,\n\t\"rcommaaccent\\u0000v\": 10,\n\t\"rcommaaccent\\u0000y\": 10,\n\t\"rcommaaccent\\u0000yacute\": 10,\n\t\"rcommaaccent\\u0000ydieresis\": 10,\n\t\"s\\u0000w\": -15,\n\t\"sacute\\u0000w\": -15,\n\t\"scaron\\u0000w\": -15,\n\t\"scedilla\\u0000w\": -15,\n\t\"scommaaccent\\u0000w\": -15,\n\t\"semicolon\\u0000space\": -40,\n\t\"space\\u0000T\": -100,\n\t\"space\\u0000Tcaron\": -100,\n\t\"space\\u0000Tcommaaccent\": -100,\n\t\"space\\u0000V\": -80,\n\t\"space\\u0000W\": -80,\n\t\"space\\u0000Y\": -120,\n\t\"space\\u0000Yacute\": -120,\n\t\"space\\u0000Ydieresis\": -120,\n\t\"space\\u0000quotedblleft\": -80,\n\t\"space\\u0000quoteleft\": -60,\n\t\"v\\u0000a\": -20,\n\t\"v\\u0000aacute\": -20,\n\t\"v\\u0000abreve\": -20,\n\t\"v\\u0000acircumflex\": -20,\n\t\"v\\u0000adieresis\": -20,\n\t\"v\\u0000agrave\": -20,\n\t\"v\\u0000amacron\": -20,\n\t\"v\\u0000aogonek\": -20,\n\t\"v\\u0000aring\": -20,\n\t\"v\\u0000atilde\": -20,\n\t\"v\\u0000comma\": -80,\n\t\"v\\u0000o\": -30,\n\t\"v\\u0000oacute\": -30,\n\t\"v\\u0000ocircumflex\": -30,\n\t\"v\\u0000odieresis\": -30,\n\t\"v\\u0000ograve\": -30,\n\t\"v\\u0000ohungarumlaut\": -30,\n\t\"v\\u0000omacron\": -30,\n\t\"v\\u0000oslash\": -30,\n\t\"v\\u0000otilde\": -30,\n\t\"v\\u0000period\": -80,\n\t\"w\\u0000comma\": -40,\n\t\"w\\u0000o\": -20,\n\t\"w\\u0000oacute\": -20,\n\t\"w\\u0000ocircumflex\": -20,\n\t\"w\\u0000odieresis\": -20,\n\t\"w\\u0000ograve\": -20,\n\t\"w\\u0000ohungarumlaut\": -20,\n\t\"w\\u0000omacron\": -20,\n\t\"w\\u0000oslash\": -20,\n\t\"w\\u0000otilde\": -20,\n\t\"w\\u0000period\": -40,\n\t\"x\\u0000e\": -10,\n\t\"x\\u0000eacute\": -10,\n\t\"x\\u0000ecaron\": -10,\n\t\"x\\u0000ecircumflex\": -10,\n\t\"x\\u0000edieresis\": -10,\n\t\"x\\u0000edotaccent\": -10,\n\t\"x\\u0000egrave\": -10,\n\t\"x\\u0000emacron\": -10,\n\t\"x\\u0000eogonek\": -10,\n\t\"y\\u0000a\": -30,\n\t\"y\\u0000aacute\": -30,\n\t\"y\\u0000abreve\": -30,\n\t\"y\\u0000acircumflex\": -30,\n\t\"y\\u0000adieresis\": -30,\n\t\"y\\u0000agrave\": -30,\n\t\"y\\u0000amacron\": -30,\n\t\"y\\u0000aogonek\": -30,\n\t\"y\\u0000aring\": -30,\n\t\"y\\u0000atilde\": -30,\n\t\"y\\u0000comma\": -80,\n\t\"y\\u0000e\": -10,\n\t\"y\\u0000eacute\": -10,\n\t\"y\\u0000ecaron\": -10,\n\t\"y\\u0000ecircumflex\": -10,\n\t\"y\\u0000edieresis\": -10,\n\t\"y\\u0000edotaccent\": -10,\n\t\"y\\u0000egrave\": -10,\n\t\"y\\u0000emacron\": -10,\n\t\"y\\u0000eogonek\": -10,\n\t\"y\\u0000o\": -25,\n\t\"y\\u0000oacute\": -25,\n\t\"y\\u0000ocircumflex\": -25,\n\t\"y\\u0000odieresis\": -25,\n\t\"y\\u0000ograve\": -25,\n\t\"y\\u0000ohungarumlaut\": -25,\n\t\"y\\u0000omacron\": -25,\n\t\"y\\u0000oslash\": -25,\n\t\"y\\u0000otilde\": -25,\n\t\"y\\u0000period\": -80,\n\t\"yacute\\u0000a\": -30,\n\t\"yacute\\u0000aacute\": -30,\n\t\"yacute\\u0000abreve\": -30,\n\t\"yacute\\u0000acircumflex\": -30,\n\t\"yacute\\u0000adieresis\": -30,\n\t\"yacute\\u0000agrave\": -30,\n\t\"yacute\\u0000amacron\": -30,\n\t\"yacute\\u0000aogonek\": -30,\n\t\"yacute\\u0000aring\": -30,\n\t\"yacute\\u0000atilde\": -30,\n\t\"yacute\\u0000comma\": -80,\n\t\"yacute\\u0000e\": -10,\n\t\"yacute\\u0000eacute\": -10,\n\t\"yacute\\u0000ecaron\": -10,\n\t\"yacute\\u0000ecircumflex\": -10,\n\t\"yacute\\u0000edieresis\": -10,\n\t\"yacute\\u0000edotaccent\": -10,\n\t\"yacute\\u0000egrave\": -10,\n\t\"yacute\\u0000emacron\": -10,\n\t\"yacute\\u0000eogonek\": -10,\n\t\"yacute\\u0000o\": -25,\n\t\"yacute\\u0000oacute\": -25,\n\t\"yacute\\u0000ocircumflex\": -25,\n\t\"yacute\\u0000odieresis\": -25,\n\t\"yacute\\u0000ograve\": -25,\n\t\"yacute\\u0000ohungarumlaut\": -25,\n\t\"yacute\\u0000omacron\": -25,\n\t\"yacute\\u0000oslash\": -25,\n\t\"yacute\\u0000otilde\": -25,\n\t\"yacute\\u0000period\": -80,\n\t\"ydieresis\\u0000a\": -30,\n\t\"ydieresis\\u0000aacute\": -30,\n\t\"ydieresis\\u0000abreve\": -30,\n\t\"ydieresis\\u0000acircumflex\": -30,\n\t\"ydieresis\\u0000adieresis\": -30,\n\t\"ydieresis\\u0000agrave\": -30,\n\t\"ydieresis\\u0000amacron\": -30,\n\t\"ydieresis\\u0000aogonek\": -30,\n\t\"ydieresis\\u0000aring\": -30,\n\t\"ydieresis\\u0000atilde\": -30,\n\t\"ydieresis\\u0000comma\": -80,\n\t\"ydieresis\\u0000e\": -10,\n\t\"ydieresis\\u0000eacute\": -10,\n\t\"ydieresis\\u0000ecaron\": -10,\n\t\"ydieresis\\u0000ecircumflex\": -10,\n\t\"ydieresis\\u0000edieresis\": -10,\n\t\"ydieresis\\u0000edotaccent\": -10,\n\t\"ydieresis\\u0000egrave\": -10,\n\t\"ydieresis\\u0000emacron\": -10,\n\t\"ydieresis\\u0000eogonek\": -10,\n\t\"ydieresis\\u0000o\": -25,\n\t\"ydieresis\\u0000oacute\": -25,\n\t\"ydieresis\\u0000ocircumflex\": -25,\n\t\"ydieresis\\u0000odieresis\": -25,\n\t\"ydieresis\\u0000ograve\": -25,\n\t\"ydieresis\\u0000ohungarumlaut\": -25,\n\t\"ydieresis\\u0000omacron\": -25,\n\t\"ydieresis\\u0000oslash\": -25,\n\t\"ydieresis\\u0000otilde\": -25,\n\t\"ydieresis\\u0000period\": -80,\n\t\"z\\u0000e\": 10,\n\t\"z\\u0000eacute\": 10,\n\t\"z\\u0000ecaron\": 10,\n\t\"z\\u0000ecircumflex\": 10,\n\t\"z\\u0000edieresis\": 10,\n\t\"z\\u0000edotaccent\": 10,\n\t\"z\\u0000egrave\": 10,\n\t\"z\\u0000emacron\": 10,\n\t\"z\\u0000eogonek\": 10,\n\t\"zacute\\u0000e\": 10,\n\t\"zacute\\u0000eacute\": 10,\n\t\"zacute\\u0000ecaron\": 10,\n\t\"zacute\\u0000ecircumflex\": 10,\n\t\"zacute\\u0000edieresis\": 10,\n\t\"zacute\\u0000edotaccent\": 10,\n\t\"zacute\\u0000egrave\": 10,\n\t\"zacute\\u0000emacron\": 10,\n\t\"zacute\\u0000eogonek\": 10,\n\t\"zcaron\\u0000e\": 10,\n\t\"zcaron\\u0000eacute\": 10,\n\t\"zcaron\\u0000ecaron\": 10,\n\t\"zcaron\\u0000ecircumflex\": 10,\n\t\"zcaron\\u0000edieresis\": 10,\n\t\"zcaron\\u0000edotaccent\": 10,\n\t\"zcaron\\u0000egrave\": 10,\n\t\"zcaron\\u0000emacron\": 10,\n\t\"zcaron\\u0000eogonek\": 10,\n\t\"zdotaccent\\u0000e\": 10,\n\t\"zdotaccent\\u0000eacute\": 10,\n\t\"zdotaccent\\u0000ecaron\": 10,\n\t\"zdotaccent\\u0000ecircumflex\": 10,\n\t\"zdotaccent\\u0000edieresis\": 10,\n\t\"zdotaccent\\u0000edotaccent\": 10,\n\t\"zdotaccent\\u0000egrave\": 10,\n\t\"zdotaccent\\u0000emacron\": 10,\n\t\"zdotaccent\\u0000eogonek\": 10\n};\nvar HelveticaBold = {\n\tattributes: attributes$4,\n\tglyphWidths: glyphWidths$4,\n\tkernPairs: kernPairs$4\n};\n\nvar attributes$3 = {\n\tComment: [\n\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Thu May 1 12:44:31 1997\",\n\t\t\"UniqueID 43055\",\n\t\t\"VMusage 14960 69346\"\n\t],\n\tFontName: \"Helvetica-Oblique\",\n\tFullName: \"Helvetica Oblique\",\n\tFamilyName: \"Helvetica\",\n\tWeight: \"Medium\",\n\tItalicAngle: \"-12\",\n\tIsFixedPitch: \"false\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-170 -225 1116 931 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"002.000\",\n\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"718\",\n\tXHeight: \"523\",\n\tAscender: \"718\",\n\tDescender: \"-207\",\n\tStdHW: \"76\",\n\tStdVW: \"88\"\n};\nvar glyphWidths$3 = {\n\tspace: 278,\n\texclam: 278,\n\tquotedbl: 355,\n\tnumbersign: 556,\n\tdollar: 556,\n\tpercent: 889,\n\tampersand: 667,\n\tquoteright: 222,\n\tparenleft: 333,\n\tparenright: 333,\n\tasterisk: 389,\n\tplus: 584,\n\tcomma: 278,\n\thyphen: 333,\n\tperiod: 278,\n\tslash: 278,\n\tzero: 556,\n\tone: 556,\n\ttwo: 556,\n\tthree: 556,\n\tfour: 556,\n\tfive: 556,\n\tsix: 556,\n\tseven: 556,\n\teight: 556,\n\tnine: 556,\n\tcolon: 278,\n\tsemicolon: 278,\n\tless: 584,\n\tequal: 584,\n\tgreater: 584,\n\tquestion: 556,\n\tat: 1015,\n\tA: 667,\n\tB: 667,\n\tC: 722,\n\tD: 722,\n\tE: 667,\n\tF: 611,\n\tG: 778,\n\tH: 722,\n\tI: 278,\n\tJ: 500,\n\tK: 667,\n\tL: 556,\n\tM: 833,\n\tN: 722,\n\tO: 778,\n\tP: 667,\n\tQ: 778,\n\tR: 722,\n\tS: 667,\n\tT: 611,\n\tU: 722,\n\tV: 667,\n\tW: 944,\n\tX: 667,\n\tY: 667,\n\tZ: 611,\n\tbracketleft: 278,\n\tbackslash: 278,\n\tbracketright: 278,\n\tasciicircum: 469,\n\tunderscore: 556,\n\tquoteleft: 222,\n\ta: 556,\n\tb: 556,\n\tc: 500,\n\td: 556,\n\te: 556,\n\tf: 278,\n\tg: 556,\n\th: 556,\n\ti: 222,\n\tj: 222,\n\tk: 500,\n\tl: 222,\n\tm: 833,\n\tn: 556,\n\to: 556,\n\tp: 556,\n\tq: 556,\n\tr: 333,\n\ts: 500,\n\tt: 278,\n\tu: 556,\n\tv: 500,\n\tw: 722,\n\tx: 500,\n\ty: 500,\n\tz: 500,\n\tbraceleft: 334,\n\tbar: 260,\n\tbraceright: 334,\n\tasciitilde: 584,\n\texclamdown: 333,\n\tcent: 556,\n\tsterling: 556,\n\tfraction: 167,\n\tyen: 556,\n\tflorin: 556,\n\tsection: 556,\n\tcurrency: 556,\n\tquotesingle: 191,\n\tquotedblleft: 333,\n\tguillemotleft: 556,\n\tguilsinglleft: 333,\n\tguilsinglright: 333,\n\tfi: 500,\n\tfl: 500,\n\tendash: 556,\n\tdagger: 556,\n\tdaggerdbl: 556,\n\tperiodcentered: 278,\n\tparagraph: 537,\n\tbullet: 350,\n\tquotesinglbase: 222,\n\tquotedblbase: 333,\n\tquotedblright: 333,\n\tguillemotright: 556,\n\tellipsis: 1000,\n\tperthousand: 1000,\n\tquestiondown: 611,\n\tgrave: 333,\n\tacute: 333,\n\tcircumflex: 333,\n\ttilde: 333,\n\tmacron: 333,\n\tbreve: 333,\n\tdotaccent: 333,\n\tdieresis: 333,\n\tring: 333,\n\tcedilla: 333,\n\thungarumlaut: 333,\n\togonek: 333,\n\tcaron: 333,\n\temdash: 1000,\n\tAE: 1000,\n\tordfeminine: 370,\n\tLslash: 556,\n\tOslash: 778,\n\tOE: 1000,\n\tordmasculine: 365,\n\tae: 889,\n\tdotlessi: 278,\n\tlslash: 222,\n\toslash: 611,\n\toe: 944,\n\tgermandbls: 611,\n\tIdieresis: 278,\n\teacute: 556,\n\tabreve: 556,\n\tuhungarumlaut: 556,\n\tecaron: 556,\n\tYdieresis: 667,\n\tdivide: 584,\n\tYacute: 667,\n\tAcircumflex: 667,\n\taacute: 556,\n\tUcircumflex: 722,\n\tyacute: 500,\n\tscommaaccent: 500,\n\tecircumflex: 556,\n\tUring: 722,\n\tUdieresis: 722,\n\taogonek: 556,\n\tUacute: 722,\n\tuogonek: 556,\n\tEdieresis: 667,\n\tDcroat: 722,\n\tcommaaccent: 250,\n\tcopyright: 737,\n\tEmacron: 667,\n\tccaron: 500,\n\taring: 556,\n\tNcommaaccent: 722,\n\tlacute: 222,\n\tagrave: 556,\n\tTcommaaccent: 611,\n\tCacute: 722,\n\tatilde: 556,\n\tEdotaccent: 667,\n\tscaron: 500,\n\tscedilla: 500,\n\tiacute: 278,\n\tlozenge: 471,\n\tRcaron: 722,\n\tGcommaaccent: 778,\n\tucircumflex: 556,\n\tacircumflex: 556,\n\tAmacron: 667,\n\trcaron: 333,\n\tccedilla: 500,\n\tZdotaccent: 611,\n\tThorn: 667,\n\tOmacron: 778,\n\tRacute: 722,\n\tSacute: 667,\n\tdcaron: 643,\n\tUmacron: 722,\n\turing: 556,\n\tthreesuperior: 333,\n\tOgrave: 778,\n\tAgrave: 667,\n\tAbreve: 667,\n\tmultiply: 584,\n\tuacute: 556,\n\tTcaron: 611,\n\tpartialdiff: 476,\n\tydieresis: 500,\n\tNacute: 722,\n\ticircumflex: 278,\n\tEcircumflex: 667,\n\tadieresis: 556,\n\tedieresis: 556,\n\tcacute: 500,\n\tnacute: 556,\n\tumacron: 556,\n\tNcaron: 722,\n\tIacute: 278,\n\tplusminus: 584,\n\tbrokenbar: 260,\n\tregistered: 737,\n\tGbreve: 778,\n\tIdotaccent: 278,\n\tsummation: 600,\n\tEgrave: 667,\n\tracute: 333,\n\tomacron: 556,\n\tZacute: 611,\n\tZcaron: 611,\n\tgreaterequal: 549,\n\tEth: 722,\n\tCcedilla: 722,\n\tlcommaaccent: 222,\n\ttcaron: 317,\n\teogonek: 556,\n\tUogonek: 722,\n\tAacute: 667,\n\tAdieresis: 667,\n\tegrave: 556,\n\tzacute: 500,\n\tiogonek: 222,\n\tOacute: 778,\n\toacute: 556,\n\tamacron: 556,\n\tsacute: 500,\n\tidieresis: 278,\n\tOcircumflex: 778,\n\tUgrave: 722,\n\tDelta: 612,\n\tthorn: 556,\n\ttwosuperior: 333,\n\tOdieresis: 778,\n\tmu: 556,\n\tigrave: 278,\n\tohungarumlaut: 556,\n\tEogonek: 667,\n\tdcroat: 556,\n\tthreequarters: 834,\n\tScedilla: 667,\n\tlcaron: 299,\n\tKcommaaccent: 667,\n\tLacute: 556,\n\ttrademark: 1000,\n\tedotaccent: 556,\n\tIgrave: 278,\n\tImacron: 278,\n\tLcaron: 556,\n\tonehalf: 834,\n\tlessequal: 549,\n\tocircumflex: 556,\n\tntilde: 556,\n\tUhungarumlaut: 722,\n\tEacute: 667,\n\temacron: 556,\n\tgbreve: 556,\n\tonequarter: 834,\n\tScaron: 667,\n\tScommaaccent: 667,\n\tOhungarumlaut: 778,\n\tdegree: 400,\n\tograve: 556,\n\tCcaron: 722,\n\tugrave: 556,\n\tradical: 453,\n\tDcaron: 722,\n\trcommaaccent: 333,\n\tNtilde: 722,\n\totilde: 556,\n\tRcommaaccent: 722,\n\tLcommaaccent: 556,\n\tAtilde: 667,\n\tAogonek: 667,\n\tAring: 667,\n\tOtilde: 778,\n\tzdotaccent: 500,\n\tEcaron: 667,\n\tIogonek: 278,\n\tkcommaaccent: 500,\n\tminus: 584,\n\tIcircumflex: 278,\n\tncaron: 556,\n\ttcommaaccent: 278,\n\tlogicalnot: 584,\n\todieresis: 556,\n\tudieresis: 556,\n\tnotequal: 549,\n\tgcommaaccent: 556,\n\teth: 556,\n\tzcaron: 500,\n\tncommaaccent: 556,\n\tonesuperior: 333,\n\timacron: 278,\n\tEuro: 556\n};\nvar kernPairs$3 = {\n\t\"A\\u0000C\": -30,\n\t\"A\\u0000Cacute\": -30,\n\t\"A\\u0000Ccaron\": -30,\n\t\"A\\u0000Ccedilla\": -30,\n\t\"A\\u0000G\": -30,\n\t\"A\\u0000Gbreve\": -30,\n\t\"A\\u0000Gcommaaccent\": -30,\n\t\"A\\u0000O\": -30,\n\t\"A\\u0000Oacute\": -30,\n\t\"A\\u0000Ocircumflex\": -30,\n\t\"A\\u0000Odieresis\": -30,\n\t\"A\\u0000Ograve\": -30,\n\t\"A\\u0000Ohungarumlaut\": -30,\n\t\"A\\u0000Omacron\": -30,\n\t\"A\\u0000Oslash\": -30,\n\t\"A\\u0000Otilde\": -30,\n\t\"A\\u0000Q\": -30,\n\t\"A\\u0000T\": -120,\n\t\"A\\u0000Tcaron\": -120,\n\t\"A\\u0000Tcommaaccent\": -120,\n\t\"A\\u0000U\": -50,\n\t\"A\\u0000Uacute\": -50,\n\t\"A\\u0000Ucircumflex\": -50,\n\t\"A\\u0000Udieresis\": -50,\n\t\"A\\u0000Ugrave\": -50,\n\t\"A\\u0000Uhungarumlaut\": -50,\n\t\"A\\u0000Umacron\": -50,\n\t\"A\\u0000Uogonek\": -50,\n\t\"A\\u0000Uring\": -50,\n\t\"A\\u0000V\": -70,\n\t\"A\\u0000W\": -50,\n\t\"A\\u0000Y\": -100,\n\t\"A\\u0000Yacute\": -100,\n\t\"A\\u0000Ydieresis\": -100,\n\t\"A\\u0000u\": -30,\n\t\"A\\u0000uacute\": -30,\n\t\"A\\u0000ucircumflex\": -30,\n\t\"A\\u0000udieresis\": -30,\n\t\"A\\u0000ugrave\": -30,\n\t\"A\\u0000uhungarumlaut\": -30,\n\t\"A\\u0000umacron\": -30,\n\t\"A\\u0000uogonek\": -30,\n\t\"A\\u0000uring\": -30,\n\t\"A\\u0000v\": -40,\n\t\"A\\u0000w\": -40,\n\t\"A\\u0000y\": -40,\n\t\"A\\u0000yacute\": -40,\n\t\"A\\u0000ydieresis\": -40,\n\t\"Aacute\\u0000C\": -30,\n\t\"Aacute\\u0000Cacute\": -30,\n\t\"Aacute\\u0000Ccaron\": -30,\n\t\"Aacute\\u0000Ccedilla\": -30,\n\t\"Aacute\\u0000G\": -30,\n\t\"Aacute\\u0000Gbreve\": -30,\n\t\"Aacute\\u0000Gcommaaccent\": -30,\n\t\"Aacute\\u0000O\": -30,\n\t\"Aacute\\u0000Oacute\": -30,\n\t\"Aacute\\u0000Ocircumflex\": -30,\n\t\"Aacute\\u0000Odieresis\": -30,\n\t\"Aacute\\u0000Ograve\": -30,\n\t\"Aacute\\u0000Ohungarumlaut\": -30,\n\t\"Aacute\\u0000Omacron\": -30,\n\t\"Aacute\\u0000Oslash\": -30,\n\t\"Aacute\\u0000Otilde\": -30,\n\t\"Aacute\\u0000Q\": -30,\n\t\"Aacute\\u0000T\": -120,\n\t\"Aacute\\u0000Tcaron\": -120,\n\t\"Aacute\\u0000Tcommaaccent\": -120,\n\t\"Aacute\\u0000U\": -50,\n\t\"Aacute\\u0000Uacute\": -50,\n\t\"Aacute\\u0000Ucircumflex\": -50,\n\t\"Aacute\\u0000Udieresis\": -50,\n\t\"Aacute\\u0000Ugrave\": -50,\n\t\"Aacute\\u0000Uhungarumlaut\": -50,\n\t\"Aacute\\u0000Umacron\": -50,\n\t\"Aacute\\u0000Uogonek\": -50,\n\t\"Aacute\\u0000Uring\": -50,\n\t\"Aacute\\u0000V\": -70,\n\t\"Aacute\\u0000W\": -50,\n\t\"Aacute\\u0000Y\": -100,\n\t\"Aacute\\u0000Yacute\": -100,\n\t\"Aacute\\u0000Ydieresis\": -100,\n\t\"Aacute\\u0000u\": -30,\n\t\"Aacute\\u0000uacute\": -30,\n\t\"Aacute\\u0000ucircumflex\": -30,\n\t\"Aacute\\u0000udieresis\": -30,\n\t\"Aacute\\u0000ugrave\": -30,\n\t\"Aacute\\u0000uhungarumlaut\": -30,\n\t\"Aacute\\u0000umacron\": -30,\n\t\"Aacute\\u0000uogonek\": -30,\n\t\"Aacute\\u0000uring\": -30,\n\t\"Aacute\\u0000v\": -40,\n\t\"Aacute\\u0000w\": -40,\n\t\"Aacute\\u0000y\": -40,\n\t\"Aacute\\u0000yacute\": -40,\n\t\"Aacute\\u0000ydieresis\": -40,\n\t\"Abreve\\u0000C\": -30,\n\t\"Abreve\\u0000Cacute\": -30,\n\t\"Abreve\\u0000Ccaron\": -30,\n\t\"Abreve\\u0000Ccedilla\": -30,\n\t\"Abreve\\u0000G\": -30,\n\t\"Abreve\\u0000Gbreve\": -30,\n\t\"Abreve\\u0000Gcommaaccent\": -30,\n\t\"Abreve\\u0000O\": -30,\n\t\"Abreve\\u0000Oacute\": -30,\n\t\"Abreve\\u0000Ocircumflex\": -30,\n\t\"Abreve\\u0000Odieresis\": -30,\n\t\"Abreve\\u0000Ograve\": -30,\n\t\"Abreve\\u0000Ohungarumlaut\": -30,\n\t\"Abreve\\u0000Omacron\": -30,\n\t\"Abreve\\u0000Oslash\": -30,\n\t\"Abreve\\u0000Otilde\": -30,\n\t\"Abreve\\u0000Q\": -30,\n\t\"Abreve\\u0000T\": -120,\n\t\"Abreve\\u0000Tcaron\": -120,\n\t\"Abreve\\u0000Tcommaaccent\": -120,\n\t\"Abreve\\u0000U\": -50,\n\t\"Abreve\\u0000Uacute\": -50,\n\t\"Abreve\\u0000Ucircumflex\": -50,\n\t\"Abreve\\u0000Udieresis\": -50,\n\t\"Abreve\\u0000Ugrave\": -50,\n\t\"Abreve\\u0000Uhungarumlaut\": -50,\n\t\"Abreve\\u0000Umacron\": -50,\n\t\"Abreve\\u0000Uogonek\": -50,\n\t\"Abreve\\u0000Uring\": -50,\n\t\"Abreve\\u0000V\": -70,\n\t\"Abreve\\u0000W\": -50,\n\t\"Abreve\\u0000Y\": -100,\n\t\"Abreve\\u0000Yacute\": -100,\n\t\"Abreve\\u0000Ydieresis\": -100,\n\t\"Abreve\\u0000u\": -30,\n\t\"Abreve\\u0000uacute\": -30,\n\t\"Abreve\\u0000ucircumflex\": -30,\n\t\"Abreve\\u0000udieresis\": -30,\n\t\"Abreve\\u0000ugrave\": -30,\n\t\"Abreve\\u0000uhungarumlaut\": -30,\n\t\"Abreve\\u0000umacron\": -30,\n\t\"Abreve\\u0000uogonek\": -30,\n\t\"Abreve\\u0000uring\": -30,\n\t\"Abreve\\u0000v\": -40,\n\t\"Abreve\\u0000w\": -40,\n\t\"Abreve\\u0000y\": -40,\n\t\"Abreve\\u0000yacute\": -40,\n\t\"Abreve\\u0000ydieresis\": -40,\n\t\"Acircumflex\\u0000C\": -30,\n\t\"Acircumflex\\u0000Cacute\": -30,\n\t\"Acircumflex\\u0000Ccaron\": -30,\n\t\"Acircumflex\\u0000Ccedilla\": -30,\n\t\"Acircumflex\\u0000G\": -30,\n\t\"Acircumflex\\u0000Gbreve\": -30,\n\t\"Acircumflex\\u0000Gcommaaccent\": -30,\n\t\"Acircumflex\\u0000O\": -30,\n\t\"Acircumflex\\u0000Oacute\": -30,\n\t\"Acircumflex\\u0000Ocircumflex\": -30,\n\t\"Acircumflex\\u0000Odieresis\": -30,\n\t\"Acircumflex\\u0000Ograve\": -30,\n\t\"Acircumflex\\u0000Ohungarumlaut\": -30,\n\t\"Acircumflex\\u0000Omacron\": -30,\n\t\"Acircumflex\\u0000Oslash\": -30,\n\t\"Acircumflex\\u0000Otilde\": -30,\n\t\"Acircumflex\\u0000Q\": -30,\n\t\"Acircumflex\\u0000T\": -120,\n\t\"Acircumflex\\u0000Tcaron\": -120,\n\t\"Acircumflex\\u0000Tcommaaccent\": -120,\n\t\"Acircumflex\\u0000U\": -50,\n\t\"Acircumflex\\u0000Uacute\": -50,\n\t\"Acircumflex\\u0000Ucircumflex\": -50,\n\t\"Acircumflex\\u0000Udieresis\": -50,\n\t\"Acircumflex\\u0000Ugrave\": -50,\n\t\"Acircumflex\\u0000Uhungarumlaut\": -50,\n\t\"Acircumflex\\u0000Umacron\": -50,\n\t\"Acircumflex\\u0000Uogonek\": -50,\n\t\"Acircumflex\\u0000Uring\": -50,\n\t\"Acircumflex\\u0000V\": -70,\n\t\"Acircumflex\\u0000W\": -50,\n\t\"Acircumflex\\u0000Y\": -100,\n\t\"Acircumflex\\u0000Yacute\": -100,\n\t\"Acircumflex\\u0000Ydieresis\": -100,\n\t\"Acircumflex\\u0000u\": -30,\n\t\"Acircumflex\\u0000uacute\": -30,\n\t\"Acircumflex\\u0000ucircumflex\": -30,\n\t\"Acircumflex\\u0000udieresis\": -30,\n\t\"Acircumflex\\u0000ugrave\": -30,\n\t\"Acircumflex\\u0000uhungarumlaut\": -30,\n\t\"Acircumflex\\u0000umacron\": -30,\n\t\"Acircumflex\\u0000uogonek\": -30,\n\t\"Acircumflex\\u0000uring\": -30,\n\t\"Acircumflex\\u0000v\": -40,\n\t\"Acircumflex\\u0000w\": -40,\n\t\"Acircumflex\\u0000y\": -40,\n\t\"Acircumflex\\u0000yacute\": -40,\n\t\"Acircumflex\\u0000ydieresis\": -40,\n\t\"Adieresis\\u0000C\": -30,\n\t\"Adieresis\\u0000Cacute\": -30,\n\t\"Adieresis\\u0000Ccaron\": -30,\n\t\"Adieresis\\u0000Ccedilla\": -30,\n\t\"Adieresis\\u0000G\": -30,\n\t\"Adieresis\\u0000Gbreve\": -30,\n\t\"Adieresis\\u0000Gcommaaccent\": -30,\n\t\"Adieresis\\u0000O\": -30,\n\t\"Adieresis\\u0000Oacute\": -30,\n\t\"Adieresis\\u0000Ocircumflex\": -30,\n\t\"Adieresis\\u0000Odieresis\": -30,\n\t\"Adieresis\\u0000Ograve\": -30,\n\t\"Adieresis\\u0000Ohungarumlaut\": -30,\n\t\"Adieresis\\u0000Omacron\": -30,\n\t\"Adieresis\\u0000Oslash\": -30,\n\t\"Adieresis\\u0000Otilde\": -30,\n\t\"Adieresis\\u0000Q\": -30,\n\t\"Adieresis\\u0000T\": -120,\n\t\"Adieresis\\u0000Tcaron\": -120,\n\t\"Adieresis\\u0000Tcommaaccent\": -120,\n\t\"Adieresis\\u0000U\": -50,\n\t\"Adieresis\\u0000Uacute\": -50,\n\t\"Adieresis\\u0000Ucircumflex\": -50,\n\t\"Adieresis\\u0000Udieresis\": -50,\n\t\"Adieresis\\u0000Ugrave\": -50,\n\t\"Adieresis\\u0000Uhungarumlaut\": -50,\n\t\"Adieresis\\u0000Umacron\": -50,\n\t\"Adieresis\\u0000Uogonek\": -50,\n\t\"Adieresis\\u0000Uring\": -50,\n\t\"Adieresis\\u0000V\": -70,\n\t\"Adieresis\\u0000W\": -50,\n\t\"Adieresis\\u0000Y\": -100,\n\t\"Adieresis\\u0000Yacute\": -100,\n\t\"Adieresis\\u0000Ydieresis\": -100,\n\t\"Adieresis\\u0000u\": -30,\n\t\"Adieresis\\u0000uacute\": -30,\n\t\"Adieresis\\u0000ucircumflex\": -30,\n\t\"Adieresis\\u0000udieresis\": -30,\n\t\"Adieresis\\u0000ugrave\": -30,\n\t\"Adieresis\\u0000uhungarumlaut\": -30,\n\t\"Adieresis\\u0000umacron\": -30,\n\t\"Adieresis\\u0000uogonek\": -30,\n\t\"Adieresis\\u0000uring\": -30,\n\t\"Adieresis\\u0000v\": -40,\n\t\"Adieresis\\u0000w\": -40,\n\t\"Adieresis\\u0000y\": -40,\n\t\"Adieresis\\u0000yacute\": -40,\n\t\"Adieresis\\u0000ydieresis\": -40,\n\t\"Agrave\\u0000C\": -30,\n\t\"Agrave\\u0000Cacute\": -30,\n\t\"Agrave\\u0000Ccaron\": -30,\n\t\"Agrave\\u0000Ccedilla\": -30,\n\t\"Agrave\\u0000G\": -30,\n\t\"Agrave\\u0000Gbreve\": -30,\n\t\"Agrave\\u0000Gcommaaccent\": -30,\n\t\"Agrave\\u0000O\": -30,\n\t\"Agrave\\u0000Oacute\": -30,\n\t\"Agrave\\u0000Ocircumflex\": -30,\n\t\"Agrave\\u0000Odieresis\": -30,\n\t\"Agrave\\u0000Ograve\": -30,\n\t\"Agrave\\u0000Ohungarumlaut\": -30,\n\t\"Agrave\\u0000Omacron\": -30,\n\t\"Agrave\\u0000Oslash\": -30,\n\t\"Agrave\\u0000Otilde\": -30,\n\t\"Agrave\\u0000Q\": -30,\n\t\"Agrave\\u0000T\": -120,\n\t\"Agrave\\u0000Tcaron\": -120,\n\t\"Agrave\\u0000Tcommaaccent\": -120,\n\t\"Agrave\\u0000U\": -50,\n\t\"Agrave\\u0000Uacute\": -50,\n\t\"Agrave\\u0000Ucircumflex\": -50,\n\t\"Agrave\\u0000Udieresis\": -50,\n\t\"Agrave\\u0000Ugrave\": -50,\n\t\"Agrave\\u0000Uhungarumlaut\": -50,\n\t\"Agrave\\u0000Umacron\": -50,\n\t\"Agrave\\u0000Uogonek\": -50,\n\t\"Agrave\\u0000Uring\": -50,\n\t\"Agrave\\u0000V\": -70,\n\t\"Agrave\\u0000W\": -50,\n\t\"Agrave\\u0000Y\": -100,\n\t\"Agrave\\u0000Yacute\": -100,\n\t\"Agrave\\u0000Ydieresis\": -100,\n\t\"Agrave\\u0000u\": -30,\n\t\"Agrave\\u0000uacute\": -30,\n\t\"Agrave\\u0000ucircumflex\": -30,\n\t\"Agrave\\u0000udieresis\": -30,\n\t\"Agrave\\u0000ugrave\": -30,\n\t\"Agrave\\u0000uhungarumlaut\": -30,\n\t\"Agrave\\u0000umacron\": -30,\n\t\"Agrave\\u0000uogonek\": -30,\n\t\"Agrave\\u0000uring\": -30,\n\t\"Agrave\\u0000v\": -40,\n\t\"Agrave\\u0000w\": -40,\n\t\"Agrave\\u0000y\": -40,\n\t\"Agrave\\u0000yacute\": -40,\n\t\"Agrave\\u0000ydieresis\": -40,\n\t\"Amacron\\u0000C\": -30,\n\t\"Amacron\\u0000Cacute\": -30,\n\t\"Amacron\\u0000Ccaron\": -30,\n\t\"Amacron\\u0000Ccedilla\": -30,\n\t\"Amacron\\u0000G\": -30,\n\t\"Amacron\\u0000Gbreve\": -30,\n\t\"Amacron\\u0000Gcommaaccent\": -30,\n\t\"Amacron\\u0000O\": -30,\n\t\"Amacron\\u0000Oacute\": -30,\n\t\"Amacron\\u0000Ocircumflex\": -30,\n\t\"Amacron\\u0000Odieresis\": -30,\n\t\"Amacron\\u0000Ograve\": -30,\n\t\"Amacron\\u0000Ohungarumlaut\": -30,\n\t\"Amacron\\u0000Omacron\": -30,\n\t\"Amacron\\u0000Oslash\": -30,\n\t\"Amacron\\u0000Otilde\": -30,\n\t\"Amacron\\u0000Q\": -30,\n\t\"Amacron\\u0000T\": -120,\n\t\"Amacron\\u0000Tcaron\": -120,\n\t\"Amacron\\u0000Tcommaaccent\": -120,\n\t\"Amacron\\u0000U\": -50,\n\t\"Amacron\\u0000Uacute\": -50,\n\t\"Amacron\\u0000Ucircumflex\": -50,\n\t\"Amacron\\u0000Udieresis\": -50,\n\t\"Amacron\\u0000Ugrave\": -50,\n\t\"Amacron\\u0000Uhungarumlaut\": -50,\n\t\"Amacron\\u0000Umacron\": -50,\n\t\"Amacron\\u0000Uogonek\": -50,\n\t\"Amacron\\u0000Uring\": -50,\n\t\"Amacron\\u0000V\": -70,\n\t\"Amacron\\u0000W\": -50,\n\t\"Amacron\\u0000Y\": -100,\n\t\"Amacron\\u0000Yacute\": -100,\n\t\"Amacron\\u0000Ydieresis\": -100,\n\t\"Amacron\\u0000u\": -30,\n\t\"Amacron\\u0000uacute\": -30,\n\t\"Amacron\\u0000ucircumflex\": -30,\n\t\"Amacron\\u0000udieresis\": -30,\n\t\"Amacron\\u0000ugrave\": -30,\n\t\"Amacron\\u0000uhungarumlaut\": -30,\n\t\"Amacron\\u0000umacron\": -30,\n\t\"Amacron\\u0000uogonek\": -30,\n\t\"Amacron\\u0000uring\": -30,\n\t\"Amacron\\u0000v\": -40,\n\t\"Amacron\\u0000w\": -40,\n\t\"Amacron\\u0000y\": -40,\n\t\"Amacron\\u0000yacute\": -40,\n\t\"Amacron\\u0000ydieresis\": -40,\n\t\"Aogonek\\u0000C\": -30,\n\t\"Aogonek\\u0000Cacute\": -30,\n\t\"Aogonek\\u0000Ccaron\": -30,\n\t\"Aogonek\\u0000Ccedilla\": -30,\n\t\"Aogonek\\u0000G\": -30,\n\t\"Aogonek\\u0000Gbreve\": -30,\n\t\"Aogonek\\u0000Gcommaaccent\": -30,\n\t\"Aogonek\\u0000O\": -30,\n\t\"Aogonek\\u0000Oacute\": -30,\n\t\"Aogonek\\u0000Ocircumflex\": -30,\n\t\"Aogonek\\u0000Odieresis\": -30,\n\t\"Aogonek\\u0000Ograve\": -30,\n\t\"Aogonek\\u0000Ohungarumlaut\": -30,\n\t\"Aogonek\\u0000Omacron\": -30,\n\t\"Aogonek\\u0000Oslash\": -30,\n\t\"Aogonek\\u0000Otilde\": -30,\n\t\"Aogonek\\u0000Q\": -30,\n\t\"Aogonek\\u0000T\": -120,\n\t\"Aogonek\\u0000Tcaron\": -120,\n\t\"Aogonek\\u0000Tcommaaccent\": -120,\n\t\"Aogonek\\u0000U\": -50,\n\t\"Aogonek\\u0000Uacute\": -50,\n\t\"Aogonek\\u0000Ucircumflex\": -50,\n\t\"Aogonek\\u0000Udieresis\": -50,\n\t\"Aogonek\\u0000Ugrave\": -50,\n\t\"Aogonek\\u0000Uhungarumlaut\": -50,\n\t\"Aogonek\\u0000Umacron\": -50,\n\t\"Aogonek\\u0000Uogonek\": -50,\n\t\"Aogonek\\u0000Uring\": -50,\n\t\"Aogonek\\u0000V\": -70,\n\t\"Aogonek\\u0000W\": -50,\n\t\"Aogonek\\u0000Y\": -100,\n\t\"Aogonek\\u0000Yacute\": -100,\n\t\"Aogonek\\u0000Ydieresis\": -100,\n\t\"Aogonek\\u0000u\": -30,\n\t\"Aogonek\\u0000uacute\": -30,\n\t\"Aogonek\\u0000ucircumflex\": -30,\n\t\"Aogonek\\u0000udieresis\": -30,\n\t\"Aogonek\\u0000ugrave\": -30,\n\t\"Aogonek\\u0000uhungarumlaut\": -30,\n\t\"Aogonek\\u0000umacron\": -30,\n\t\"Aogonek\\u0000uogonek\": -30,\n\t\"Aogonek\\u0000uring\": -30,\n\t\"Aogonek\\u0000v\": -40,\n\t\"Aogonek\\u0000w\": -40,\n\t\"Aogonek\\u0000y\": -40,\n\t\"Aogonek\\u0000yacute\": -40,\n\t\"Aogonek\\u0000ydieresis\": -40,\n\t\"Aring\\u0000C\": -30,\n\t\"Aring\\u0000Cacute\": -30,\n\t\"Aring\\u0000Ccaron\": -30,\n\t\"Aring\\u0000Ccedilla\": -30,\n\t\"Aring\\u0000G\": -30,\n\t\"Aring\\u0000Gbreve\": -30,\n\t\"Aring\\u0000Gcommaaccent\": -30,\n\t\"Aring\\u0000O\": -30,\n\t\"Aring\\u0000Oacute\": -30,\n\t\"Aring\\u0000Ocircumflex\": -30,\n\t\"Aring\\u0000Odieresis\": -30,\n\t\"Aring\\u0000Ograve\": -30,\n\t\"Aring\\u0000Ohungarumlaut\": -30,\n\t\"Aring\\u0000Omacron\": -30,\n\t\"Aring\\u0000Oslash\": -30,\n\t\"Aring\\u0000Otilde\": -30,\n\t\"Aring\\u0000Q\": -30,\n\t\"Aring\\u0000T\": -120,\n\t\"Aring\\u0000Tcaron\": -120,\n\t\"Aring\\u0000Tcommaaccent\": -120,\n\t\"Aring\\u0000U\": -50,\n\t\"Aring\\u0000Uacute\": -50,\n\t\"Aring\\u0000Ucircumflex\": -50,\n\t\"Aring\\u0000Udieresis\": -50,\n\t\"Aring\\u0000Ugrave\": -50,\n\t\"Aring\\u0000Uhungarumlaut\": -50,\n\t\"Aring\\u0000Umacron\": -50,\n\t\"Aring\\u0000Uogonek\": -50,\n\t\"Aring\\u0000Uring\": -50,\n\t\"Aring\\u0000V\": -70,\n\t\"Aring\\u0000W\": -50,\n\t\"Aring\\u0000Y\": -100,\n\t\"Aring\\u0000Yacute\": -100,\n\t\"Aring\\u0000Ydieresis\": -100,\n\t\"Aring\\u0000u\": -30,\n\t\"Aring\\u0000uacute\": -30,\n\t\"Aring\\u0000ucircumflex\": -30,\n\t\"Aring\\u0000udieresis\": -30,\n\t\"Aring\\u0000ugrave\": -30,\n\t\"Aring\\u0000uhungarumlaut\": -30,\n\t\"Aring\\u0000umacron\": -30,\n\t\"Aring\\u0000uogonek\": -30,\n\t\"Aring\\u0000uring\": -30,\n\t\"Aring\\u0000v\": -40,\n\t\"Aring\\u0000w\": -40,\n\t\"Aring\\u0000y\": -40,\n\t\"Aring\\u0000yacute\": -40,\n\t\"Aring\\u0000ydieresis\": -40,\n\t\"Atilde\\u0000C\": -30,\n\t\"Atilde\\u0000Cacute\": -30,\n\t\"Atilde\\u0000Ccaron\": -30,\n\t\"Atilde\\u0000Ccedilla\": -30,\n\t\"Atilde\\u0000G\": -30,\n\t\"Atilde\\u0000Gbreve\": -30,\n\t\"Atilde\\u0000Gcommaaccent\": -30,\n\t\"Atilde\\u0000O\": -30,\n\t\"Atilde\\u0000Oacute\": -30,\n\t\"Atilde\\u0000Ocircumflex\": -30,\n\t\"Atilde\\u0000Odieresis\": -30,\n\t\"Atilde\\u0000Ograve\": -30,\n\t\"Atilde\\u0000Ohungarumlaut\": -30,\n\t\"Atilde\\u0000Omacron\": -30,\n\t\"Atilde\\u0000Oslash\": -30,\n\t\"Atilde\\u0000Otilde\": -30,\n\t\"Atilde\\u0000Q\": -30,\n\t\"Atilde\\u0000T\": -120,\n\t\"Atilde\\u0000Tcaron\": -120,\n\t\"Atilde\\u0000Tcommaaccent\": -120,\n\t\"Atilde\\u0000U\": -50,\n\t\"Atilde\\u0000Uacute\": -50,\n\t\"Atilde\\u0000Ucircumflex\": -50,\n\t\"Atilde\\u0000Udieresis\": -50,\n\t\"Atilde\\u0000Ugrave\": -50,\n\t\"Atilde\\u0000Uhungarumlaut\": -50,\n\t\"Atilde\\u0000Umacron\": -50,\n\t\"Atilde\\u0000Uogonek\": -50,\n\t\"Atilde\\u0000Uring\": -50,\n\t\"Atilde\\u0000V\": -70,\n\t\"Atilde\\u0000W\": -50,\n\t\"Atilde\\u0000Y\": -100,\n\t\"Atilde\\u0000Yacute\": -100,\n\t\"Atilde\\u0000Ydieresis\": -100,\n\t\"Atilde\\u0000u\": -30,\n\t\"Atilde\\u0000uacute\": -30,\n\t\"Atilde\\u0000ucircumflex\": -30,\n\t\"Atilde\\u0000udieresis\": -30,\n\t\"Atilde\\u0000ugrave\": -30,\n\t\"Atilde\\u0000uhungarumlaut\": -30,\n\t\"Atilde\\u0000umacron\": -30,\n\t\"Atilde\\u0000uogonek\": -30,\n\t\"Atilde\\u0000uring\": -30,\n\t\"Atilde\\u0000v\": -40,\n\t\"Atilde\\u0000w\": -40,\n\t\"Atilde\\u0000y\": -40,\n\t\"Atilde\\u0000yacute\": -40,\n\t\"Atilde\\u0000ydieresis\": -40,\n\t\"B\\u0000U\": -10,\n\t\"B\\u0000Uacute\": -10,\n\t\"B\\u0000Ucircumflex\": -10,\n\t\"B\\u0000Udieresis\": -10,\n\t\"B\\u0000Ugrave\": -10,\n\t\"B\\u0000Uhungarumlaut\": -10,\n\t\"B\\u0000Umacron\": -10,\n\t\"B\\u0000Uogonek\": -10,\n\t\"B\\u0000Uring\": -10,\n\t\"B\\u0000comma\": -20,\n\t\"B\\u0000period\": -20,\n\t\"C\\u0000comma\": -30,\n\t\"C\\u0000period\": -30,\n\t\"Cacute\\u0000comma\": -30,\n\t\"Cacute\\u0000period\": -30,\n\t\"Ccaron\\u0000comma\": -30,\n\t\"Ccaron\\u0000period\": -30,\n\t\"Ccedilla\\u0000comma\": -30,\n\t\"Ccedilla\\u0000period\": -30,\n\t\"D\\u0000A\": -40,\n\t\"D\\u0000Aacute\": -40,\n\t\"D\\u0000Abreve\": -40,\n\t\"D\\u0000Acircumflex\": -40,\n\t\"D\\u0000Adieresis\": -40,\n\t\"D\\u0000Agrave\": -40,\n\t\"D\\u0000Amacron\": -40,\n\t\"D\\u0000Aogonek\": -40,\n\t\"D\\u0000Aring\": -40,\n\t\"D\\u0000Atilde\": -40,\n\t\"D\\u0000V\": -70,\n\t\"D\\u0000W\": -40,\n\t\"D\\u0000Y\": -90,\n\t\"D\\u0000Yacute\": -90,\n\t\"D\\u0000Ydieresis\": -90,\n\t\"D\\u0000comma\": -70,\n\t\"D\\u0000period\": -70,\n\t\"Dcaron\\u0000A\": -40,\n\t\"Dcaron\\u0000Aacute\": -40,\n\t\"Dcaron\\u0000Abreve\": -40,\n\t\"Dcaron\\u0000Acircumflex\": -40,\n\t\"Dcaron\\u0000Adieresis\": -40,\n\t\"Dcaron\\u0000Agrave\": -40,\n\t\"Dcaron\\u0000Amacron\": -40,\n\t\"Dcaron\\u0000Aogonek\": -40,\n\t\"Dcaron\\u0000Aring\": -40,\n\t\"Dcaron\\u0000Atilde\": -40,\n\t\"Dcaron\\u0000V\": -70,\n\t\"Dcaron\\u0000W\": -40,\n\t\"Dcaron\\u0000Y\": -90,\n\t\"Dcaron\\u0000Yacute\": -90,\n\t\"Dcaron\\u0000Ydieresis\": -90,\n\t\"Dcaron\\u0000comma\": -70,\n\t\"Dcaron\\u0000period\": -70,\n\t\"Dcroat\\u0000A\": -40,\n\t\"Dcroat\\u0000Aacute\": -40,\n\t\"Dcroat\\u0000Abreve\": -40,\n\t\"Dcroat\\u0000Acircumflex\": -40,\n\t\"Dcroat\\u0000Adieresis\": -40,\n\t\"Dcroat\\u0000Agrave\": -40,\n\t\"Dcroat\\u0000Amacron\": -40,\n\t\"Dcroat\\u0000Aogonek\": -40,\n\t\"Dcroat\\u0000Aring\": -40,\n\t\"Dcroat\\u0000Atilde\": -40,\n\t\"Dcroat\\u0000V\": -70,\n\t\"Dcroat\\u0000W\": -40,\n\t\"Dcroat\\u0000Y\": -90,\n\t\"Dcroat\\u0000Yacute\": -90,\n\t\"Dcroat\\u0000Ydieresis\": -90,\n\t\"Dcroat\\u0000comma\": -70,\n\t\"Dcroat\\u0000period\": -70,\n\t\"F\\u0000A\": -80,\n\t\"F\\u0000Aacute\": -80,\n\t\"F\\u0000Abreve\": -80,\n\t\"F\\u0000Acircumflex\": -80,\n\t\"F\\u0000Adieresis\": -80,\n\t\"F\\u0000Agrave\": -80,\n\t\"F\\u0000Amacron\": -80,\n\t\"F\\u0000Aogonek\": -80,\n\t\"F\\u0000Aring\": -80,\n\t\"F\\u0000Atilde\": -80,\n\t\"F\\u0000a\": -50,\n\t\"F\\u0000aacute\": -50,\n\t\"F\\u0000abreve\": -50,\n\t\"F\\u0000acircumflex\": -50,\n\t\"F\\u0000adieresis\": -50,\n\t\"F\\u0000agrave\": -50,\n\t\"F\\u0000amacron\": -50,\n\t\"F\\u0000aogonek\": -50,\n\t\"F\\u0000aring\": -50,\n\t\"F\\u0000atilde\": -50,\n\t\"F\\u0000comma\": -150,\n\t\"F\\u0000e\": -30,\n\t\"F\\u0000eacute\": -30,\n\t\"F\\u0000ecaron\": -30,\n\t\"F\\u0000ecircumflex\": -30,\n\t\"F\\u0000edieresis\": -30,\n\t\"F\\u0000edotaccent\": -30,\n\t\"F\\u0000egrave\": -30,\n\t\"F\\u0000emacron\": -30,\n\t\"F\\u0000eogonek\": -30,\n\t\"F\\u0000o\": -30,\n\t\"F\\u0000oacute\": -30,\n\t\"F\\u0000ocircumflex\": -30,\n\t\"F\\u0000odieresis\": -30,\n\t\"F\\u0000ograve\": -30,\n\t\"F\\u0000ohungarumlaut\": -30,\n\t\"F\\u0000omacron\": -30,\n\t\"F\\u0000oslash\": -30,\n\t\"F\\u0000otilde\": -30,\n\t\"F\\u0000period\": -150,\n\t\"F\\u0000r\": -45,\n\t\"F\\u0000racute\": -45,\n\t\"F\\u0000rcaron\": -45,\n\t\"F\\u0000rcommaaccent\": -45,\n\t\"J\\u0000A\": -20,\n\t\"J\\u0000Aacute\": -20,\n\t\"J\\u0000Abreve\": -20,\n\t\"J\\u0000Acircumflex\": -20,\n\t\"J\\u0000Adieresis\": -20,\n\t\"J\\u0000Agrave\": -20,\n\t\"J\\u0000Amacron\": -20,\n\t\"J\\u0000Aogonek\": -20,\n\t\"J\\u0000Aring\": -20,\n\t\"J\\u0000Atilde\": -20,\n\t\"J\\u0000a\": -20,\n\t\"J\\u0000aacute\": -20,\n\t\"J\\u0000abreve\": -20,\n\t\"J\\u0000acircumflex\": -20,\n\t\"J\\u0000adieresis\": -20,\n\t\"J\\u0000agrave\": -20,\n\t\"J\\u0000amacron\": -20,\n\t\"J\\u0000aogonek\": -20,\n\t\"J\\u0000aring\": -20,\n\t\"J\\u0000atilde\": -20,\n\t\"J\\u0000comma\": -30,\n\t\"J\\u0000period\": -30,\n\t\"J\\u0000u\": -20,\n\t\"J\\u0000uacute\": -20,\n\t\"J\\u0000ucircumflex\": -20,\n\t\"J\\u0000udieresis\": -20,\n\t\"J\\u0000ugrave\": -20,\n\t\"J\\u0000uhungarumlaut\": -20,\n\t\"J\\u0000umacron\": -20,\n\t\"J\\u0000uogonek\": -20,\n\t\"J\\u0000uring\": -20,\n\t\"K\\u0000O\": -50,\n\t\"K\\u0000Oacute\": -50,\n\t\"K\\u0000Ocircumflex\": -50,\n\t\"K\\u0000Odieresis\": -50,\n\t\"K\\u0000Ograve\": -50,\n\t\"K\\u0000Ohungarumlaut\": -50,\n\t\"K\\u0000Omacron\": -50,\n\t\"K\\u0000Oslash\": -50,\n\t\"K\\u0000Otilde\": -50,\n\t\"K\\u0000e\": -40,\n\t\"K\\u0000eacute\": -40,\n\t\"K\\u0000ecaron\": -40,\n\t\"K\\u0000ecircumflex\": -40,\n\t\"K\\u0000edieresis\": -40,\n\t\"K\\u0000edotaccent\": -40,\n\t\"K\\u0000egrave\": -40,\n\t\"K\\u0000emacron\": -40,\n\t\"K\\u0000eogonek\": -40,\n\t\"K\\u0000o\": -40,\n\t\"K\\u0000oacute\": -40,\n\t\"K\\u0000ocircumflex\": -40,\n\t\"K\\u0000odieresis\": -40,\n\t\"K\\u0000ograve\": -40,\n\t\"K\\u0000ohungarumlaut\": -40,\n\t\"K\\u0000omacron\": -40,\n\t\"K\\u0000oslash\": -40,\n\t\"K\\u0000otilde\": -40,\n\t\"K\\u0000u\": -30,\n\t\"K\\u0000uacute\": -30,\n\t\"K\\u0000ucircumflex\": -30,\n\t\"K\\u0000udieresis\": -30,\n\t\"K\\u0000ugrave\": -30,\n\t\"K\\u0000uhungarumlaut\": -30,\n\t\"K\\u0000umacron\": -30,\n\t\"K\\u0000uogonek\": -30,\n\t\"K\\u0000uring\": -30,\n\t\"K\\u0000y\": -50,\n\t\"K\\u0000yacute\": -50,\n\t\"K\\u0000ydieresis\": -50,\n\t\"Kcommaaccent\\u0000O\": -50,\n\t\"Kcommaaccent\\u0000Oacute\": -50,\n\t\"Kcommaaccent\\u0000Ocircumflex\": -50,\n\t\"Kcommaaccent\\u0000Odieresis\": -50,\n\t\"Kcommaaccent\\u0000Ograve\": -50,\n\t\"Kcommaaccent\\u0000Ohungarumlaut\": -50,\n\t\"Kcommaaccent\\u0000Omacron\": -50,\n\t\"Kcommaaccent\\u0000Oslash\": -50,\n\t\"Kcommaaccent\\u0000Otilde\": -50,\n\t\"Kcommaaccent\\u0000e\": -40,\n\t\"Kcommaaccent\\u0000eacute\": -40,\n\t\"Kcommaaccent\\u0000ecaron\": -40,\n\t\"Kcommaaccent\\u0000ecircumflex\": -40,\n\t\"Kcommaaccent\\u0000edieresis\": -40,\n\t\"Kcommaaccent\\u0000edotaccent\": -40,\n\t\"Kcommaaccent\\u0000egrave\": -40,\n\t\"Kcommaaccent\\u0000emacron\": -40,\n\t\"Kcommaaccent\\u0000eogonek\": -40,\n\t\"Kcommaaccent\\u0000o\": -40,\n\t\"Kcommaaccent\\u0000oacute\": -40,\n\t\"Kcommaaccent\\u0000ocircumflex\": -40,\n\t\"Kcommaaccent\\u0000odieresis\": -40,\n\t\"Kcommaaccent\\u0000ograve\": -40,\n\t\"Kcommaaccent\\u0000ohungarumlaut\": -40,\n\t\"Kcommaaccent\\u0000omacron\": -40,\n\t\"Kcommaaccent\\u0000oslash\": -40,\n\t\"Kcommaaccent\\u0000otilde\": -40,\n\t\"Kcommaaccent\\u0000u\": -30,\n\t\"Kcommaaccent\\u0000uacute\": -30,\n\t\"Kcommaaccent\\u0000ucircumflex\": -30,\n\t\"Kcommaaccent\\u0000udieresis\": -30,\n\t\"Kcommaaccent\\u0000ugrave\": -30,\n\t\"Kcommaaccent\\u0000uhungarumlaut\": -30,\n\t\"Kcommaaccent\\u0000umacron\": -30,\n\t\"Kcommaaccent\\u0000uogonek\": -30,\n\t\"Kcommaaccent\\u0000uring\": -30,\n\t\"Kcommaaccent\\u0000y\": -50,\n\t\"Kcommaaccent\\u0000yacute\": -50,\n\t\"Kcommaaccent\\u0000ydieresis\": -50,\n\t\"L\\u0000T\": -110,\n\t\"L\\u0000Tcaron\": -110,\n\t\"L\\u0000Tcommaaccent\": -110,\n\t\"L\\u0000V\": -110,\n\t\"L\\u0000W\": -70,\n\t\"L\\u0000Y\": -140,\n\t\"L\\u0000Yacute\": -140,\n\t\"L\\u0000Ydieresis\": -140,\n\t\"L\\u0000quotedblright\": -140,\n\t\"L\\u0000quoteright\": -160,\n\t\"L\\u0000y\": -30,\n\t\"L\\u0000yacute\": -30,\n\t\"L\\u0000ydieresis\": -30,\n\t\"Lacute\\u0000T\": -110,\n\t\"Lacute\\u0000Tcaron\": -110,\n\t\"Lacute\\u0000Tcommaaccent\": -110,\n\t\"Lacute\\u0000V\": -110,\n\t\"Lacute\\u0000W\": -70,\n\t\"Lacute\\u0000Y\": -140,\n\t\"Lacute\\u0000Yacute\": -140,\n\t\"Lacute\\u0000Ydieresis\": -140,\n\t\"Lacute\\u0000quotedblright\": -140,\n\t\"Lacute\\u0000quoteright\": -160,\n\t\"Lacute\\u0000y\": -30,\n\t\"Lacute\\u0000yacute\": -30,\n\t\"Lacute\\u0000ydieresis\": -30,\n\t\"Lcaron\\u0000T\": -110,\n\t\"Lcaron\\u0000Tcaron\": -110,\n\t\"Lcaron\\u0000Tcommaaccent\": -110,\n\t\"Lcaron\\u0000V\": -110,\n\t\"Lcaron\\u0000W\": -70,\n\t\"Lcaron\\u0000Y\": -140,\n\t\"Lcaron\\u0000Yacute\": -140,\n\t\"Lcaron\\u0000Ydieresis\": -140,\n\t\"Lcaron\\u0000quotedblright\": -140,\n\t\"Lcaron\\u0000quoteright\": -160,\n\t\"Lcaron\\u0000y\": -30,\n\t\"Lcaron\\u0000yacute\": -30,\n\t\"Lcaron\\u0000ydieresis\": -30,\n\t\"Lcommaaccent\\u0000T\": -110,\n\t\"Lcommaaccent\\u0000Tcaron\": -110,\n\t\"Lcommaaccent\\u0000Tcommaaccent\": -110,\n\t\"Lcommaaccent\\u0000V\": -110,\n\t\"Lcommaaccent\\u0000W\": -70,\n\t\"Lcommaaccent\\u0000Y\": -140,\n\t\"Lcommaaccent\\u0000Yacute\": -140,\n\t\"Lcommaaccent\\u0000Ydieresis\": -140,\n\t\"Lcommaaccent\\u0000quotedblright\": -140,\n\t\"Lcommaaccent\\u0000quoteright\": -160,\n\t\"Lcommaaccent\\u0000y\": -30,\n\t\"Lcommaaccent\\u0000yacute\": -30,\n\t\"Lcommaaccent\\u0000ydieresis\": -30,\n\t\"Lslash\\u0000T\": -110,\n\t\"Lslash\\u0000Tcaron\": -110,\n\t\"Lslash\\u0000Tcommaaccent\": -110,\n\t\"Lslash\\u0000V\": -110,\n\t\"Lslash\\u0000W\": -70,\n\t\"Lslash\\u0000Y\": -140,\n\t\"Lslash\\u0000Yacute\": -140,\n\t\"Lslash\\u0000Ydieresis\": -140,\n\t\"Lslash\\u0000quotedblright\": -140,\n\t\"Lslash\\u0000quoteright\": -160,\n\t\"Lslash\\u0000y\": -30,\n\t\"Lslash\\u0000yacute\": -30,\n\t\"Lslash\\u0000ydieresis\": -30,\n\t\"O\\u0000A\": -20,\n\t\"O\\u0000Aacute\": -20,\n\t\"O\\u0000Abreve\": -20,\n\t\"O\\u0000Acircumflex\": -20,\n\t\"O\\u0000Adieresis\": -20,\n\t\"O\\u0000Agrave\": -20,\n\t\"O\\u0000Amacron\": -20,\n\t\"O\\u0000Aogonek\": -20,\n\t\"O\\u0000Aring\": -20,\n\t\"O\\u0000Atilde\": -20,\n\t\"O\\u0000T\": -40,\n\t\"O\\u0000Tcaron\": -40,\n\t\"O\\u0000Tcommaaccent\": -40,\n\t\"O\\u0000V\": -50,\n\t\"O\\u0000W\": -30,\n\t\"O\\u0000X\": -60,\n\t\"O\\u0000Y\": -70,\n\t\"O\\u0000Yacute\": -70,\n\t\"O\\u0000Ydieresis\": -70,\n\t\"O\\u0000comma\": -40,\n\t\"O\\u0000period\": -40,\n\t\"Oacute\\u0000A\": -20,\n\t\"Oacute\\u0000Aacute\": -20,\n\t\"Oacute\\u0000Abreve\": -20,\n\t\"Oacute\\u0000Acircumflex\": -20,\n\t\"Oacute\\u0000Adieresis\": -20,\n\t\"Oacute\\u0000Agrave\": -20,\n\t\"Oacute\\u0000Amacron\": -20,\n\t\"Oacute\\u0000Aogonek\": -20,\n\t\"Oacute\\u0000Aring\": -20,\n\t\"Oacute\\u0000Atilde\": -20,\n\t\"Oacute\\u0000T\": -40,\n\t\"Oacute\\u0000Tcaron\": -40,\n\t\"Oacute\\u0000Tcommaaccent\": -40,\n\t\"Oacute\\u0000V\": -50,\n\t\"Oacute\\u0000W\": -30,\n\t\"Oacute\\u0000X\": -60,\n\t\"Oacute\\u0000Y\": -70,\n\t\"Oacute\\u0000Yacute\": -70,\n\t\"Oacute\\u0000Ydieresis\": -70,\n\t\"Oacute\\u0000comma\": -40,\n\t\"Oacute\\u0000period\": -40,\n\t\"Ocircumflex\\u0000A\": -20,\n\t\"Ocircumflex\\u0000Aacute\": -20,\n\t\"Ocircumflex\\u0000Abreve\": -20,\n\t\"Ocircumflex\\u0000Acircumflex\": -20,\n\t\"Ocircumflex\\u0000Adieresis\": -20,\n\t\"Ocircumflex\\u0000Agrave\": -20,\n\t\"Ocircumflex\\u0000Amacron\": -20,\n\t\"Ocircumflex\\u0000Aogonek\": -20,\n\t\"Ocircumflex\\u0000Aring\": -20,\n\t\"Ocircumflex\\u0000Atilde\": -20,\n\t\"Ocircumflex\\u0000T\": -40,\n\t\"Ocircumflex\\u0000Tcaron\": -40,\n\t\"Ocircumflex\\u0000Tcommaaccent\": -40,\n\t\"Ocircumflex\\u0000V\": -50,\n\t\"Ocircumflex\\u0000W\": -30,\n\t\"Ocircumflex\\u0000X\": -60,\n\t\"Ocircumflex\\u0000Y\": -70,\n\t\"Ocircumflex\\u0000Yacute\": -70,\n\t\"Ocircumflex\\u0000Ydieresis\": -70,\n\t\"Ocircumflex\\u0000comma\": -40,\n\t\"Ocircumflex\\u0000period\": -40,\n\t\"Odieresis\\u0000A\": -20,\n\t\"Odieresis\\u0000Aacute\": -20,\n\t\"Odieresis\\u0000Abreve\": -20,\n\t\"Odieresis\\u0000Acircumflex\": -20,\n\t\"Odieresis\\u0000Adieresis\": -20,\n\t\"Odieresis\\u0000Agrave\": -20,\n\t\"Odieresis\\u0000Amacron\": -20,\n\t\"Odieresis\\u0000Aogonek\": -20,\n\t\"Odieresis\\u0000Aring\": -20,\n\t\"Odieresis\\u0000Atilde\": -20,\n\t\"Odieresis\\u0000T\": -40,\n\t\"Odieresis\\u0000Tcaron\": -40,\n\t\"Odieresis\\u0000Tcommaaccent\": -40,\n\t\"Odieresis\\u0000V\": -50,\n\t\"Odieresis\\u0000W\": -30,\n\t\"Odieresis\\u0000X\": -60,\n\t\"Odieresis\\u0000Y\": -70,\n\t\"Odieresis\\u0000Yacute\": -70,\n\t\"Odieresis\\u0000Ydieresis\": -70,\n\t\"Odieresis\\u0000comma\": -40,\n\t\"Odieresis\\u0000period\": -40,\n\t\"Ograve\\u0000A\": -20,\n\t\"Ograve\\u0000Aacute\": -20,\n\t\"Ograve\\u0000Abreve\": -20,\n\t\"Ograve\\u0000Acircumflex\": -20,\n\t\"Ograve\\u0000Adieresis\": -20,\n\t\"Ograve\\u0000Agrave\": -20,\n\t\"Ograve\\u0000Amacron\": -20,\n\t\"Ograve\\u0000Aogonek\": -20,\n\t\"Ograve\\u0000Aring\": -20,\n\t\"Ograve\\u0000Atilde\": -20,\n\t\"Ograve\\u0000T\": -40,\n\t\"Ograve\\u0000Tcaron\": -40,\n\t\"Ograve\\u0000Tcommaaccent\": -40,\n\t\"Ograve\\u0000V\": -50,\n\t\"Ograve\\u0000W\": -30,\n\t\"Ograve\\u0000X\": -60,\n\t\"Ograve\\u0000Y\": -70,\n\t\"Ograve\\u0000Yacute\": -70,\n\t\"Ograve\\u0000Ydieresis\": -70,\n\t\"Ograve\\u0000comma\": -40,\n\t\"Ograve\\u0000period\": -40,\n\t\"Ohungarumlaut\\u0000A\": -20,\n\t\"Ohungarumlaut\\u0000Aacute\": -20,\n\t\"Ohungarumlaut\\u0000Abreve\": -20,\n\t\"Ohungarumlaut\\u0000Acircumflex\": -20,\n\t\"Ohungarumlaut\\u0000Adieresis\": -20,\n\t\"Ohungarumlaut\\u0000Agrave\": -20,\n\t\"Ohungarumlaut\\u0000Amacron\": -20,\n\t\"Ohungarumlaut\\u0000Aogonek\": -20,\n\t\"Ohungarumlaut\\u0000Aring\": -20,\n\t\"Ohungarumlaut\\u0000Atilde\": -20,\n\t\"Ohungarumlaut\\u0000T\": -40,\n\t\"Ohungarumlaut\\u0000Tcaron\": -40,\n\t\"Ohungarumlaut\\u0000Tcommaaccent\": -40,\n\t\"Ohungarumlaut\\u0000V\": -50,\n\t\"Ohungarumlaut\\u0000W\": -30,\n\t\"Ohungarumlaut\\u0000X\": -60,\n\t\"Ohungarumlaut\\u0000Y\": -70,\n\t\"Ohungarumlaut\\u0000Yacute\": -70,\n\t\"Ohungarumlaut\\u0000Ydieresis\": -70,\n\t\"Ohungarumlaut\\u0000comma\": -40,\n\t\"Ohungarumlaut\\u0000period\": -40,\n\t\"Omacron\\u0000A\": -20,\n\t\"Omacron\\u0000Aacute\": -20,\n\t\"Omacron\\u0000Abreve\": -20,\n\t\"Omacron\\u0000Acircumflex\": -20,\n\t\"Omacron\\u0000Adieresis\": -20,\n\t\"Omacron\\u0000Agrave\": -20,\n\t\"Omacron\\u0000Amacron\": -20,\n\t\"Omacron\\u0000Aogonek\": -20,\n\t\"Omacron\\u0000Aring\": -20,\n\t\"Omacron\\u0000Atilde\": -20,\n\t\"Omacron\\u0000T\": -40,\n\t\"Omacron\\u0000Tcaron\": -40,\n\t\"Omacron\\u0000Tcommaaccent\": -40,\n\t\"Omacron\\u0000V\": -50,\n\t\"Omacron\\u0000W\": -30,\n\t\"Omacron\\u0000X\": -60,\n\t\"Omacron\\u0000Y\": -70,\n\t\"Omacron\\u0000Yacute\": -70,\n\t\"Omacron\\u0000Ydieresis\": -70,\n\t\"Omacron\\u0000comma\": -40,\n\t\"Omacron\\u0000period\": -40,\n\t\"Oslash\\u0000A\": -20,\n\t\"Oslash\\u0000Aacute\": -20,\n\t\"Oslash\\u0000Abreve\": -20,\n\t\"Oslash\\u0000Acircumflex\": -20,\n\t\"Oslash\\u0000Adieresis\": -20,\n\t\"Oslash\\u0000Agrave\": -20,\n\t\"Oslash\\u0000Amacron\": -20,\n\t\"Oslash\\u0000Aogonek\": -20,\n\t\"Oslash\\u0000Aring\": -20,\n\t\"Oslash\\u0000Atilde\": -20,\n\t\"Oslash\\u0000T\": -40,\n\t\"Oslash\\u0000Tcaron\": -40,\n\t\"Oslash\\u0000Tcommaaccent\": -40,\n\t\"Oslash\\u0000V\": -50,\n\t\"Oslash\\u0000W\": -30,\n\t\"Oslash\\u0000X\": -60,\n\t\"Oslash\\u0000Y\": -70,\n\t\"Oslash\\u0000Yacute\": -70,\n\t\"Oslash\\u0000Ydieresis\": -70,\n\t\"Oslash\\u0000comma\": -40,\n\t\"Oslash\\u0000period\": -40,\n\t\"Otilde\\u0000A\": -20,\n\t\"Otilde\\u0000Aacute\": -20,\n\t\"Otilde\\u0000Abreve\": -20,\n\t\"Otilde\\u0000Acircumflex\": -20,\n\t\"Otilde\\u0000Adieresis\": -20,\n\t\"Otilde\\u0000Agrave\": -20,\n\t\"Otilde\\u0000Amacron\": -20,\n\t\"Otilde\\u0000Aogonek\": -20,\n\t\"Otilde\\u0000Aring\": -20,\n\t\"Otilde\\u0000Atilde\": -20,\n\t\"Otilde\\u0000T\": -40,\n\t\"Otilde\\u0000Tcaron\": -40,\n\t\"Otilde\\u0000Tcommaaccent\": -40,\n\t\"Otilde\\u0000V\": -50,\n\t\"Otilde\\u0000W\": -30,\n\t\"Otilde\\u0000X\": -60,\n\t\"Otilde\\u0000Y\": -70,\n\t\"Otilde\\u0000Yacute\": -70,\n\t\"Otilde\\u0000Ydieresis\": -70,\n\t\"Otilde\\u0000comma\": -40,\n\t\"Otilde\\u0000period\": -40,\n\t\"P\\u0000A\": -120,\n\t\"P\\u0000Aacute\": -120,\n\t\"P\\u0000Abreve\": -120,\n\t\"P\\u0000Acircumflex\": -120,\n\t\"P\\u0000Adieresis\": -120,\n\t\"P\\u0000Agrave\": -120,\n\t\"P\\u0000Amacron\": -120,\n\t\"P\\u0000Aogonek\": -120,\n\t\"P\\u0000Aring\": -120,\n\t\"P\\u0000Atilde\": -120,\n\t\"P\\u0000a\": -40,\n\t\"P\\u0000aacute\": -40,\n\t\"P\\u0000abreve\": -40,\n\t\"P\\u0000acircumflex\": -40,\n\t\"P\\u0000adieresis\": -40,\n\t\"P\\u0000agrave\": -40,\n\t\"P\\u0000amacron\": -40,\n\t\"P\\u0000aogonek\": -40,\n\t\"P\\u0000aring\": -40,\n\t\"P\\u0000atilde\": -40,\n\t\"P\\u0000comma\": -180,\n\t\"P\\u0000e\": -50,\n\t\"P\\u0000eacute\": -50,\n\t\"P\\u0000ecaron\": -50,\n\t\"P\\u0000ecircumflex\": -50,\n\t\"P\\u0000edieresis\": -50,\n\t\"P\\u0000edotaccent\": -50,\n\t\"P\\u0000egrave\": -50,\n\t\"P\\u0000emacron\": -50,\n\t\"P\\u0000eogonek\": -50,\n\t\"P\\u0000o\": -50,\n\t\"P\\u0000oacute\": -50,\n\t\"P\\u0000ocircumflex\": -50,\n\t\"P\\u0000odieresis\": -50,\n\t\"P\\u0000ograve\": -50,\n\t\"P\\u0000ohungarumlaut\": -50,\n\t\"P\\u0000omacron\": -50,\n\t\"P\\u0000oslash\": -50,\n\t\"P\\u0000otilde\": -50,\n\t\"P\\u0000period\": -180,\n\t\"Q\\u0000U\": -10,\n\t\"Q\\u0000Uacute\": -10,\n\t\"Q\\u0000Ucircumflex\": -10,\n\t\"Q\\u0000Udieresis\": -10,\n\t\"Q\\u0000Ugrave\": -10,\n\t\"Q\\u0000Uhungarumlaut\": -10,\n\t\"Q\\u0000Umacron\": -10,\n\t\"Q\\u0000Uogonek\": -10,\n\t\"Q\\u0000Uring\": -10,\n\t\"R\\u0000O\": -20,\n\t\"R\\u0000Oacute\": -20,\n\t\"R\\u0000Ocircumflex\": -20,\n\t\"R\\u0000Odieresis\": -20,\n\t\"R\\u0000Ograve\": -20,\n\t\"R\\u0000Ohungarumlaut\": -20,\n\t\"R\\u0000Omacron\": -20,\n\t\"R\\u0000Oslash\": -20,\n\t\"R\\u0000Otilde\": -20,\n\t\"R\\u0000T\": -30,\n\t\"R\\u0000Tcaron\": -30,\n\t\"R\\u0000Tcommaaccent\": -30,\n\t\"R\\u0000U\": -40,\n\t\"R\\u0000Uacute\": -40,\n\t\"R\\u0000Ucircumflex\": -40,\n\t\"R\\u0000Udieresis\": -40,\n\t\"R\\u0000Ugrave\": -40,\n\t\"R\\u0000Uhungarumlaut\": -40,\n\t\"R\\u0000Umacron\": -40,\n\t\"R\\u0000Uogonek\": -40,\n\t\"R\\u0000Uring\": -40,\n\t\"R\\u0000V\": -50,\n\t\"R\\u0000W\": -30,\n\t\"R\\u0000Y\": -50,\n\t\"R\\u0000Yacute\": -50,\n\t\"R\\u0000Ydieresis\": -50,\n\t\"Racute\\u0000O\": -20,\n\t\"Racute\\u0000Oacute\": -20,\n\t\"Racute\\u0000Ocircumflex\": -20,\n\t\"Racute\\u0000Odieresis\": -20,\n\t\"Racute\\u0000Ograve\": -20,\n\t\"Racute\\u0000Ohungarumlaut\": -20,\n\t\"Racute\\u0000Omacron\": -20,\n\t\"Racute\\u0000Oslash\": -20,\n\t\"Racute\\u0000Otilde\": -20,\n\t\"Racute\\u0000T\": -30,\n\t\"Racute\\u0000Tcaron\": -30,\n\t\"Racute\\u0000Tcommaaccent\": -30,\n\t\"Racute\\u0000U\": -40,\n\t\"Racute\\u0000Uacute\": -40,\n\t\"Racute\\u0000Ucircumflex\": -40,\n\t\"Racute\\u0000Udieresis\": -40,\n\t\"Racute\\u0000Ugrave\": -40,\n\t\"Racute\\u0000Uhungarumlaut\": -40,\n\t\"Racute\\u0000Umacron\": -40,\n\t\"Racute\\u0000Uogonek\": -40,\n\t\"Racute\\u0000Uring\": -40,\n\t\"Racute\\u0000V\": -50,\n\t\"Racute\\u0000W\": -30,\n\t\"Racute\\u0000Y\": -50,\n\t\"Racute\\u0000Yacute\": -50,\n\t\"Racute\\u0000Ydieresis\": -50,\n\t\"Rcaron\\u0000O\": -20,\n\t\"Rcaron\\u0000Oacute\": -20,\n\t\"Rcaron\\u0000Ocircumflex\": -20,\n\t\"Rcaron\\u0000Odieresis\": -20,\n\t\"Rcaron\\u0000Ograve\": -20,\n\t\"Rcaron\\u0000Ohungarumlaut\": -20,\n\t\"Rcaron\\u0000Omacron\": -20,\n\t\"Rcaron\\u0000Oslash\": -20,\n\t\"Rcaron\\u0000Otilde\": -20,\n\t\"Rcaron\\u0000T\": -30,\n\t\"Rcaron\\u0000Tcaron\": -30,\n\t\"Rcaron\\u0000Tcommaaccent\": -30,\n\t\"Rcaron\\u0000U\": -40,\n\t\"Rcaron\\u0000Uacute\": -40,\n\t\"Rcaron\\u0000Ucircumflex\": -40,\n\t\"Rcaron\\u0000Udieresis\": -40,\n\t\"Rcaron\\u0000Ugrave\": -40,\n\t\"Rcaron\\u0000Uhungarumlaut\": -40,\n\t\"Rcaron\\u0000Umacron\": -40,\n\t\"Rcaron\\u0000Uogonek\": -40,\n\t\"Rcaron\\u0000Uring\": -40,\n\t\"Rcaron\\u0000V\": -50,\n\t\"Rcaron\\u0000W\": -30,\n\t\"Rcaron\\u0000Y\": -50,\n\t\"Rcaron\\u0000Yacute\": -50,\n\t\"Rcaron\\u0000Ydieresis\": -50,\n\t\"Rcommaaccent\\u0000O\": -20,\n\t\"Rcommaaccent\\u0000Oacute\": -20,\n\t\"Rcommaaccent\\u0000Ocircumflex\": -20,\n\t\"Rcommaaccent\\u0000Odieresis\": -20,\n\t\"Rcommaaccent\\u0000Ograve\": -20,\n\t\"Rcommaaccent\\u0000Ohungarumlaut\": -20,\n\t\"Rcommaaccent\\u0000Omacron\": -20,\n\t\"Rcommaaccent\\u0000Oslash\": -20,\n\t\"Rcommaaccent\\u0000Otilde\": -20,\n\t\"Rcommaaccent\\u0000T\": -30,\n\t\"Rcommaaccent\\u0000Tcaron\": -30,\n\t\"Rcommaaccent\\u0000Tcommaaccent\": -30,\n\t\"Rcommaaccent\\u0000U\": -40,\n\t\"Rcommaaccent\\u0000Uacute\": -40,\n\t\"Rcommaaccent\\u0000Ucircumflex\": -40,\n\t\"Rcommaaccent\\u0000Udieresis\": -40,\n\t\"Rcommaaccent\\u0000Ugrave\": -40,\n\t\"Rcommaaccent\\u0000Uhungarumlaut\": -40,\n\t\"Rcommaaccent\\u0000Umacron\": -40,\n\t\"Rcommaaccent\\u0000Uogonek\": -40,\n\t\"Rcommaaccent\\u0000Uring\": -40,\n\t\"Rcommaaccent\\u0000V\": -50,\n\t\"Rcommaaccent\\u0000W\": -30,\n\t\"Rcommaaccent\\u0000Y\": -50,\n\t\"Rcommaaccent\\u0000Yacute\": -50,\n\t\"Rcommaaccent\\u0000Ydieresis\": -50,\n\t\"S\\u0000comma\": -20,\n\t\"S\\u0000period\": -20,\n\t\"Sacute\\u0000comma\": -20,\n\t\"Sacute\\u0000period\": -20,\n\t\"Scaron\\u0000comma\": -20,\n\t\"Scaron\\u0000period\": -20,\n\t\"Scedilla\\u0000comma\": -20,\n\t\"Scedilla\\u0000period\": -20,\n\t\"Scommaaccent\\u0000comma\": -20,\n\t\"Scommaaccent\\u0000period\": -20,\n\t\"T\\u0000A\": -120,\n\t\"T\\u0000Aacute\": -120,\n\t\"T\\u0000Abreve\": -120,\n\t\"T\\u0000Acircumflex\": -120,\n\t\"T\\u0000Adieresis\": -120,\n\t\"T\\u0000Agrave\": -120,\n\t\"T\\u0000Amacron\": -120,\n\t\"T\\u0000Aogonek\": -120,\n\t\"T\\u0000Aring\": -120,\n\t\"T\\u0000Atilde\": -120,\n\t\"T\\u0000O\": -40,\n\t\"T\\u0000Oacute\": -40,\n\t\"T\\u0000Ocircumflex\": -40,\n\t\"T\\u0000Odieresis\": -40,\n\t\"T\\u0000Ograve\": -40,\n\t\"T\\u0000Ohungarumlaut\": -40,\n\t\"T\\u0000Omacron\": -40,\n\t\"T\\u0000Oslash\": -40,\n\t\"T\\u0000Otilde\": -40,\n\t\"T\\u0000a\": -120,\n\t\"T\\u0000aacute\": -120,\n\t\"T\\u0000abreve\": -60,\n\t\"T\\u0000acircumflex\": -120,\n\t\"T\\u0000adieresis\": -120,\n\t\"T\\u0000agrave\": -120,\n\t\"T\\u0000amacron\": -60,\n\t\"T\\u0000aogonek\": -120,\n\t\"T\\u0000aring\": -120,\n\t\"T\\u0000atilde\": -60,\n\t\"T\\u0000colon\": -20,\n\t\"T\\u0000comma\": -120,\n\t\"T\\u0000e\": -120,\n\t\"T\\u0000eacute\": -120,\n\t\"T\\u0000ecaron\": -120,\n\t\"T\\u0000ecircumflex\": -120,\n\t\"T\\u0000edieresis\": -120,\n\t\"T\\u0000edotaccent\": -120,\n\t\"T\\u0000egrave\": -60,\n\t\"T\\u0000emacron\": -60,\n\t\"T\\u0000eogonek\": -120,\n\t\"T\\u0000hyphen\": -140,\n\t\"T\\u0000o\": -120,\n\t\"T\\u0000oacute\": -120,\n\t\"T\\u0000ocircumflex\": -120,\n\t\"T\\u0000odieresis\": -120,\n\t\"T\\u0000ograve\": -120,\n\t\"T\\u0000ohungarumlaut\": -120,\n\t\"T\\u0000omacron\": -60,\n\t\"T\\u0000oslash\": -120,\n\t\"T\\u0000otilde\": -60,\n\t\"T\\u0000period\": -120,\n\t\"T\\u0000r\": -120,\n\t\"T\\u0000racute\": -120,\n\t\"T\\u0000rcaron\": -120,\n\t\"T\\u0000rcommaaccent\": -120,\n\t\"T\\u0000semicolon\": -20,\n\t\"T\\u0000u\": -120,\n\t\"T\\u0000uacute\": -120,\n\t\"T\\u0000ucircumflex\": -120,\n\t\"T\\u0000udieresis\": -120,\n\t\"T\\u0000ugrave\": -120,\n\t\"T\\u0000uhungarumlaut\": -120,\n\t\"T\\u0000umacron\": -60,\n\t\"T\\u0000uogonek\": -120,\n\t\"T\\u0000uring\": -120,\n\t\"T\\u0000w\": -120,\n\t\"T\\u0000y\": -120,\n\t\"T\\u0000yacute\": -120,\n\t\"T\\u0000ydieresis\": -60,\n\t\"Tcaron\\u0000A\": -120,\n\t\"Tcaron\\u0000Aacute\": -120,\n\t\"Tcaron\\u0000Abreve\": -120,\n\t\"Tcaron\\u0000Acircumflex\": -120,\n\t\"Tcaron\\u0000Adieresis\": -120,\n\t\"Tcaron\\u0000Agrave\": -120,\n\t\"Tcaron\\u0000Amacron\": -120,\n\t\"Tcaron\\u0000Aogonek\": -120,\n\t\"Tcaron\\u0000Aring\": -120,\n\t\"Tcaron\\u0000Atilde\": -120,\n\t\"Tcaron\\u0000O\": -40,\n\t\"Tcaron\\u0000Oacute\": -40,\n\t\"Tcaron\\u0000Ocircumflex\": -40,\n\t\"Tcaron\\u0000Odieresis\": -40,\n\t\"Tcaron\\u0000Ograve\": -40,\n\t\"Tcaron\\u0000Ohungarumlaut\": -40,\n\t\"Tcaron\\u0000Omacron\": -40,\n\t\"Tcaron\\u0000Oslash\": -40,\n\t\"Tcaron\\u0000Otilde\": -40,\n\t\"Tcaron\\u0000a\": -120,\n\t\"Tcaron\\u0000aacute\": -120,\n\t\"Tcaron\\u0000abreve\": -60,\n\t\"Tcaron\\u0000acircumflex\": -120,\n\t\"Tcaron\\u0000adieresis\": -120,\n\t\"Tcaron\\u0000agrave\": -120,\n\t\"Tcaron\\u0000amacron\": -60,\n\t\"Tcaron\\u0000aogonek\": -120,\n\t\"Tcaron\\u0000aring\": -120,\n\t\"Tcaron\\u0000atilde\": -60,\n\t\"Tcaron\\u0000colon\": -20,\n\t\"Tcaron\\u0000comma\": -120,\n\t\"Tcaron\\u0000e\": -120,\n\t\"Tcaron\\u0000eacute\": -120,\n\t\"Tcaron\\u0000ecaron\": -120,\n\t\"Tcaron\\u0000ecircumflex\": -120,\n\t\"Tcaron\\u0000edieresis\": -120,\n\t\"Tcaron\\u0000edotaccent\": -120,\n\t\"Tcaron\\u0000egrave\": -60,\n\t\"Tcaron\\u0000emacron\": -60,\n\t\"Tcaron\\u0000eogonek\": -120,\n\t\"Tcaron\\u0000hyphen\": -140,\n\t\"Tcaron\\u0000o\": -120,\n\t\"Tcaron\\u0000oacute\": -120,\n\t\"Tcaron\\u0000ocircumflex\": -120,\n\t\"Tcaron\\u0000odieresis\": -120,\n\t\"Tcaron\\u0000ograve\": -120,\n\t\"Tcaron\\u0000ohungarumlaut\": -120,\n\t\"Tcaron\\u0000omacron\": -60,\n\t\"Tcaron\\u0000oslash\": -120,\n\t\"Tcaron\\u0000otilde\": -60,\n\t\"Tcaron\\u0000period\": -120,\n\t\"Tcaron\\u0000r\": -120,\n\t\"Tcaron\\u0000racute\": -120,\n\t\"Tcaron\\u0000rcaron\": -120,\n\t\"Tcaron\\u0000rcommaaccent\": -120,\n\t\"Tcaron\\u0000semicolon\": -20,\n\t\"Tcaron\\u0000u\": -120,\n\t\"Tcaron\\u0000uacute\": -120,\n\t\"Tcaron\\u0000ucircumflex\": -120,\n\t\"Tcaron\\u0000udieresis\": -120,\n\t\"Tcaron\\u0000ugrave\": -120,\n\t\"Tcaron\\u0000uhungarumlaut\": -120,\n\t\"Tcaron\\u0000umacron\": -60,\n\t\"Tcaron\\u0000uogonek\": -120,\n\t\"Tcaron\\u0000uring\": -120,\n\t\"Tcaron\\u0000w\": -120,\n\t\"Tcaron\\u0000y\": -120,\n\t\"Tcaron\\u0000yacute\": -120,\n\t\"Tcaron\\u0000ydieresis\": -60,\n\t\"Tcommaaccent\\u0000A\": -120,\n\t\"Tcommaaccent\\u0000Aacute\": -120,\n\t\"Tcommaaccent\\u0000Abreve\": -120,\n\t\"Tcommaaccent\\u0000Acircumflex\": -120,\n\t\"Tcommaaccent\\u0000Adieresis\": -120,\n\t\"Tcommaaccent\\u0000Agrave\": -120,\n\t\"Tcommaaccent\\u0000Amacron\": -120,\n\t\"Tcommaaccent\\u0000Aogonek\": -120,\n\t\"Tcommaaccent\\u0000Aring\": -120,\n\t\"Tcommaaccent\\u0000Atilde\": -120,\n\t\"Tcommaaccent\\u0000O\": -40,\n\t\"Tcommaaccent\\u0000Oacute\": -40,\n\t\"Tcommaaccent\\u0000Ocircumflex\": -40,\n\t\"Tcommaaccent\\u0000Odieresis\": -40,\n\t\"Tcommaaccent\\u0000Ograve\": -40,\n\t\"Tcommaaccent\\u0000Ohungarumlaut\": -40,\n\t\"Tcommaaccent\\u0000Omacron\": -40,\n\t\"Tcommaaccent\\u0000Oslash\": -40,\n\t\"Tcommaaccent\\u0000Otilde\": -40,\n\t\"Tcommaaccent\\u0000a\": -120,\n\t\"Tcommaaccent\\u0000aacute\": -120,\n\t\"Tcommaaccent\\u0000abreve\": -60,\n\t\"Tcommaaccent\\u0000acircumflex\": -120,\n\t\"Tcommaaccent\\u0000adieresis\": -120,\n\t\"Tcommaaccent\\u0000agrave\": -120,\n\t\"Tcommaaccent\\u0000amacron\": -60,\n\t\"Tcommaaccent\\u0000aogonek\": -120,\n\t\"Tcommaaccent\\u0000aring\": -120,\n\t\"Tcommaaccent\\u0000atilde\": -60,\n\t\"Tcommaaccent\\u0000colon\": -20,\n\t\"Tcommaaccent\\u0000comma\": -120,\n\t\"Tcommaaccent\\u0000e\": -120,\n\t\"Tcommaaccent\\u0000eacute\": -120,\n\t\"Tcommaaccent\\u0000ecaron\": -120,\n\t\"Tcommaaccent\\u0000ecircumflex\": -120,\n\t\"Tcommaaccent\\u0000edieresis\": -120,\n\t\"Tcommaaccent\\u0000edotaccent\": -120,\n\t\"Tcommaaccent\\u0000egrave\": -60,\n\t\"Tcommaaccent\\u0000emacron\": -60,\n\t\"Tcommaaccent\\u0000eogonek\": -120,\n\t\"Tcommaaccent\\u0000hyphen\": -140,\n\t\"Tcommaaccent\\u0000o\": -120,\n\t\"Tcommaaccent\\u0000oacute\": -120,\n\t\"Tcommaaccent\\u0000ocircumflex\": -120,\n\t\"Tcommaaccent\\u0000odieresis\": -120,\n\t\"Tcommaaccent\\u0000ograve\": -120,\n\t\"Tcommaaccent\\u0000ohungarumlaut\": -120,\n\t\"Tcommaaccent\\u0000omacron\": -60,\n\t\"Tcommaaccent\\u0000oslash\": -120,\n\t\"Tcommaaccent\\u0000otilde\": -60,\n\t\"Tcommaaccent\\u0000period\": -120,\n\t\"Tcommaaccent\\u0000r\": -120,\n\t\"Tcommaaccent\\u0000racute\": -120,\n\t\"Tcommaaccent\\u0000rcaron\": -120,\n\t\"Tcommaaccent\\u0000rcommaaccent\": -120,\n\t\"Tcommaaccent\\u0000semicolon\": -20,\n\t\"Tcommaaccent\\u0000u\": -120,\n\t\"Tcommaaccent\\u0000uacute\": -120,\n\t\"Tcommaaccent\\u0000ucircumflex\": -120,\n\t\"Tcommaaccent\\u0000udieresis\": -120,\n\t\"Tcommaaccent\\u0000ugrave\": -120,\n\t\"Tcommaaccent\\u0000uhungarumlaut\": -120,\n\t\"Tcommaaccent\\u0000umacron\": -60,\n\t\"Tcommaaccent\\u0000uogonek\": -120,\n\t\"Tcommaaccent\\u0000uring\": -120,\n\t\"Tcommaaccent\\u0000w\": -120,\n\t\"Tcommaaccent\\u0000y\": -120,\n\t\"Tcommaaccent\\u0000yacute\": -120,\n\t\"Tcommaaccent\\u0000ydieresis\": -60,\n\t\"U\\u0000A\": -40,\n\t\"U\\u0000Aacute\": -40,\n\t\"U\\u0000Abreve\": -40,\n\t\"U\\u0000Acircumflex\": -40,\n\t\"U\\u0000Adieresis\": -40,\n\t\"U\\u0000Agrave\": -40,\n\t\"U\\u0000Amacron\": -40,\n\t\"U\\u0000Aogonek\": -40,\n\t\"U\\u0000Aring\": -40,\n\t\"U\\u0000Atilde\": -40,\n\t\"U\\u0000comma\": -40,\n\t\"U\\u0000period\": -40,\n\t\"Uacute\\u0000A\": -40,\n\t\"Uacute\\u0000Aacute\": -40,\n\t\"Uacute\\u0000Abreve\": -40,\n\t\"Uacute\\u0000Acircumflex\": -40,\n\t\"Uacute\\u0000Adieresis\": -40,\n\t\"Uacute\\u0000Agrave\": -40,\n\t\"Uacute\\u0000Amacron\": -40,\n\t\"Uacute\\u0000Aogonek\": -40,\n\t\"Uacute\\u0000Aring\": -40,\n\t\"Uacute\\u0000Atilde\": -40,\n\t\"Uacute\\u0000comma\": -40,\n\t\"Uacute\\u0000period\": -40,\n\t\"Ucircumflex\\u0000A\": -40,\n\t\"Ucircumflex\\u0000Aacute\": -40,\n\t\"Ucircumflex\\u0000Abreve\": -40,\n\t\"Ucircumflex\\u0000Acircumflex\": -40,\n\t\"Ucircumflex\\u0000Adieresis\": -40,\n\t\"Ucircumflex\\u0000Agrave\": -40,\n\t\"Ucircumflex\\u0000Amacron\": -40,\n\t\"Ucircumflex\\u0000Aogonek\": -40,\n\t\"Ucircumflex\\u0000Aring\": -40,\n\t\"Ucircumflex\\u0000Atilde\": -40,\n\t\"Ucircumflex\\u0000comma\": -40,\n\t\"Ucircumflex\\u0000period\": -40,\n\t\"Udieresis\\u0000A\": -40,\n\t\"Udieresis\\u0000Aacute\": -40,\n\t\"Udieresis\\u0000Abreve\": -40,\n\t\"Udieresis\\u0000Acircumflex\": -40,\n\t\"Udieresis\\u0000Adieresis\": -40,\n\t\"Udieresis\\u0000Agrave\": -40,\n\t\"Udieresis\\u0000Amacron\": -40,\n\t\"Udieresis\\u0000Aogonek\": -40,\n\t\"Udieresis\\u0000Aring\": -40,\n\t\"Udieresis\\u0000Atilde\": -40,\n\t\"Udieresis\\u0000comma\": -40,\n\t\"Udieresis\\u0000period\": -40,\n\t\"Ugrave\\u0000A\": -40,\n\t\"Ugrave\\u0000Aacute\": -40,\n\t\"Ugrave\\u0000Abreve\": -40,\n\t\"Ugrave\\u0000Acircumflex\": -40,\n\t\"Ugrave\\u0000Adieresis\": -40,\n\t\"Ugrave\\u0000Agrave\": -40,\n\t\"Ugrave\\u0000Amacron\": -40,\n\t\"Ugrave\\u0000Aogonek\": -40,\n\t\"Ugrave\\u0000Aring\": -40,\n\t\"Ugrave\\u0000Atilde\": -40,\n\t\"Ugrave\\u0000comma\": -40,\n\t\"Ugrave\\u0000period\": -40,\n\t\"Uhungarumlaut\\u0000A\": -40,\n\t\"Uhungarumlaut\\u0000Aacute\": -40,\n\t\"Uhungarumlaut\\u0000Abreve\": -40,\n\t\"Uhungarumlaut\\u0000Acircumflex\": -40,\n\t\"Uhungarumlaut\\u0000Adieresis\": -40,\n\t\"Uhungarumlaut\\u0000Agrave\": -40,\n\t\"Uhungarumlaut\\u0000Amacron\": -40,\n\t\"Uhungarumlaut\\u0000Aogonek\": -40,\n\t\"Uhungarumlaut\\u0000Aring\": -40,\n\t\"Uhungarumlaut\\u0000Atilde\": -40,\n\t\"Uhungarumlaut\\u0000comma\": -40,\n\t\"Uhungarumlaut\\u0000period\": -40,\n\t\"Umacron\\u0000A\": -40,\n\t\"Umacron\\u0000Aacute\": -40,\n\t\"Umacron\\u0000Abreve\": -40,\n\t\"Umacron\\u0000Acircumflex\": -40,\n\t\"Umacron\\u0000Adieresis\": -40,\n\t\"Umacron\\u0000Agrave\": -40,\n\t\"Umacron\\u0000Amacron\": -40,\n\t\"Umacron\\u0000Aogonek\": -40,\n\t\"Umacron\\u0000Aring\": -40,\n\t\"Umacron\\u0000Atilde\": -40,\n\t\"Umacron\\u0000comma\": -40,\n\t\"Umacron\\u0000period\": -40,\n\t\"Uogonek\\u0000A\": -40,\n\t\"Uogonek\\u0000Aacute\": -40,\n\t\"Uogonek\\u0000Abreve\": -40,\n\t\"Uogonek\\u0000Acircumflex\": -40,\n\t\"Uogonek\\u0000Adieresis\": -40,\n\t\"Uogonek\\u0000Agrave\": -40,\n\t\"Uogonek\\u0000Amacron\": -40,\n\t\"Uogonek\\u0000Aogonek\": -40,\n\t\"Uogonek\\u0000Aring\": -40,\n\t\"Uogonek\\u0000Atilde\": -40,\n\t\"Uogonek\\u0000comma\": -40,\n\t\"Uogonek\\u0000period\": -40,\n\t\"Uring\\u0000A\": -40,\n\t\"Uring\\u0000Aacute\": -40,\n\t\"Uring\\u0000Abreve\": -40,\n\t\"Uring\\u0000Acircumflex\": -40,\n\t\"Uring\\u0000Adieresis\": -40,\n\t\"Uring\\u0000Agrave\": -40,\n\t\"Uring\\u0000Amacron\": -40,\n\t\"Uring\\u0000Aogonek\": -40,\n\t\"Uring\\u0000Aring\": -40,\n\t\"Uring\\u0000Atilde\": -40,\n\t\"Uring\\u0000comma\": -40,\n\t\"Uring\\u0000period\": -40,\n\t\"V\\u0000A\": -80,\n\t\"V\\u0000Aacute\": -80,\n\t\"V\\u0000Abreve\": -80,\n\t\"V\\u0000Acircumflex\": -80,\n\t\"V\\u0000Adieresis\": -80,\n\t\"V\\u0000Agrave\": -80,\n\t\"V\\u0000Amacron\": -80,\n\t\"V\\u0000Aogonek\": -80,\n\t\"V\\u0000Aring\": -80,\n\t\"V\\u0000Atilde\": -80,\n\t\"V\\u0000G\": -40,\n\t\"V\\u0000Gbreve\": -40,\n\t\"V\\u0000Gcommaaccent\": -40,\n\t\"V\\u0000O\": -40,\n\t\"V\\u0000Oacute\": -40,\n\t\"V\\u0000Ocircumflex\": -40,\n\t\"V\\u0000Odieresis\": -40,\n\t\"V\\u0000Ograve\": -40,\n\t\"V\\u0000Ohungarumlaut\": -40,\n\t\"V\\u0000Omacron\": -40,\n\t\"V\\u0000Oslash\": -40,\n\t\"V\\u0000Otilde\": -40,\n\t\"V\\u0000a\": -70,\n\t\"V\\u0000aacute\": -70,\n\t\"V\\u0000abreve\": -70,\n\t\"V\\u0000acircumflex\": -70,\n\t\"V\\u0000adieresis\": -70,\n\t\"V\\u0000agrave\": -70,\n\t\"V\\u0000amacron\": -70,\n\t\"V\\u0000aogonek\": -70,\n\t\"V\\u0000aring\": -70,\n\t\"V\\u0000atilde\": -70,\n\t\"V\\u0000colon\": -40,\n\t\"V\\u0000comma\": -125,\n\t\"V\\u0000e\": -80,\n\t\"V\\u0000eacute\": -80,\n\t\"V\\u0000ecaron\": -80,\n\t\"V\\u0000ecircumflex\": -80,\n\t\"V\\u0000edieresis\": -80,\n\t\"V\\u0000edotaccent\": -80,\n\t\"V\\u0000egrave\": -80,\n\t\"V\\u0000emacron\": -80,\n\t\"V\\u0000eogonek\": -80,\n\t\"V\\u0000hyphen\": -80,\n\t\"V\\u0000o\": -80,\n\t\"V\\u0000oacute\": -80,\n\t\"V\\u0000ocircumflex\": -80,\n\t\"V\\u0000odieresis\": -80,\n\t\"V\\u0000ograve\": -80,\n\t\"V\\u0000ohungarumlaut\": -80,\n\t\"V\\u0000omacron\": -80,\n\t\"V\\u0000oslash\": -80,\n\t\"V\\u0000otilde\": -80,\n\t\"V\\u0000period\": -125,\n\t\"V\\u0000semicolon\": -40,\n\t\"V\\u0000u\": -70,\n\t\"V\\u0000uacute\": -70,\n\t\"V\\u0000ucircumflex\": -70,\n\t\"V\\u0000udieresis\": -70,\n\t\"V\\u0000ugrave\": -70,\n\t\"V\\u0000uhungarumlaut\": -70,\n\t\"V\\u0000umacron\": -70,\n\t\"V\\u0000uogonek\": -70,\n\t\"V\\u0000uring\": -70,\n\t\"W\\u0000A\": -50,\n\t\"W\\u0000Aacute\": -50,\n\t\"W\\u0000Abreve\": -50,\n\t\"W\\u0000Acircumflex\": -50,\n\t\"W\\u0000Adieresis\": -50,\n\t\"W\\u0000Agrave\": -50,\n\t\"W\\u0000Amacron\": -50,\n\t\"W\\u0000Aogonek\": -50,\n\t\"W\\u0000Aring\": -50,\n\t\"W\\u0000Atilde\": -50,\n\t\"W\\u0000O\": -20,\n\t\"W\\u0000Oacute\": -20,\n\t\"W\\u0000Ocircumflex\": -20,\n\t\"W\\u0000Odieresis\": -20,\n\t\"W\\u0000Ograve\": -20,\n\t\"W\\u0000Ohungarumlaut\": -20,\n\t\"W\\u0000Omacron\": -20,\n\t\"W\\u0000Oslash\": -20,\n\t\"W\\u0000Otilde\": -20,\n\t\"W\\u0000a\": -40,\n\t\"W\\u0000aacute\": -40,\n\t\"W\\u0000abreve\": -40,\n\t\"W\\u0000acircumflex\": -40,\n\t\"W\\u0000adieresis\": -40,\n\t\"W\\u0000agrave\": -40,\n\t\"W\\u0000amacron\": -40,\n\t\"W\\u0000aogonek\": -40,\n\t\"W\\u0000aring\": -40,\n\t\"W\\u0000atilde\": -40,\n\t\"W\\u0000comma\": -80,\n\t\"W\\u0000e\": -30,\n\t\"W\\u0000eacute\": -30,\n\t\"W\\u0000ecaron\": -30,\n\t\"W\\u0000ecircumflex\": -30,\n\t\"W\\u0000edieresis\": -30,\n\t\"W\\u0000edotaccent\": -30,\n\t\"W\\u0000egrave\": -30,\n\t\"W\\u0000emacron\": -30,\n\t\"W\\u0000eogonek\": -30,\n\t\"W\\u0000hyphen\": -40,\n\t\"W\\u0000o\": -30,\n\t\"W\\u0000oacute\": -30,\n\t\"W\\u0000ocircumflex\": -30,\n\t\"W\\u0000odieresis\": -30,\n\t\"W\\u0000ograve\": -30,\n\t\"W\\u0000ohungarumlaut\": -30,\n\t\"W\\u0000omacron\": -30,\n\t\"W\\u0000oslash\": -30,\n\t\"W\\u0000otilde\": -30,\n\t\"W\\u0000period\": -80,\n\t\"W\\u0000u\": -30,\n\t\"W\\u0000uacute\": -30,\n\t\"W\\u0000ucircumflex\": -30,\n\t\"W\\u0000udieresis\": -30,\n\t\"W\\u0000ugrave\": -30,\n\t\"W\\u0000uhungarumlaut\": -30,\n\t\"W\\u0000umacron\": -30,\n\t\"W\\u0000uogonek\": -30,\n\t\"W\\u0000uring\": -30,\n\t\"W\\u0000y\": -20,\n\t\"W\\u0000yacute\": -20,\n\t\"W\\u0000ydieresis\": -20,\n\t\"Y\\u0000A\": -110,\n\t\"Y\\u0000Aacute\": -110,\n\t\"Y\\u0000Abreve\": -110,\n\t\"Y\\u0000Acircumflex\": -110,\n\t\"Y\\u0000Adieresis\": -110,\n\t\"Y\\u0000Agrave\": -110,\n\t\"Y\\u0000Amacron\": -110,\n\t\"Y\\u0000Aogonek\": -110,\n\t\"Y\\u0000Aring\": -110,\n\t\"Y\\u0000Atilde\": -110,\n\t\"Y\\u0000O\": -85,\n\t\"Y\\u0000Oacute\": -85,\n\t\"Y\\u0000Ocircumflex\": -85,\n\t\"Y\\u0000Odieresis\": -85,\n\t\"Y\\u0000Ograve\": -85,\n\t\"Y\\u0000Ohungarumlaut\": -85,\n\t\"Y\\u0000Omacron\": -85,\n\t\"Y\\u0000Oslash\": -85,\n\t\"Y\\u0000Otilde\": -85,\n\t\"Y\\u0000a\": -140,\n\t\"Y\\u0000aacute\": -140,\n\t\"Y\\u0000abreve\": -70,\n\t\"Y\\u0000acircumflex\": -140,\n\t\"Y\\u0000adieresis\": -140,\n\t\"Y\\u0000agrave\": -140,\n\t\"Y\\u0000amacron\": -70,\n\t\"Y\\u0000aogonek\": -140,\n\t\"Y\\u0000aring\": -140,\n\t\"Y\\u0000atilde\": -140,\n\t\"Y\\u0000colon\": -60,\n\t\"Y\\u0000comma\": -140,\n\t\"Y\\u0000e\": -140,\n\t\"Y\\u0000eacute\": -140,\n\t\"Y\\u0000ecaron\": -140,\n\t\"Y\\u0000ecircumflex\": -140,\n\t\"Y\\u0000edieresis\": -140,\n\t\"Y\\u0000edotaccent\": -140,\n\t\"Y\\u0000egrave\": -140,\n\t\"Y\\u0000emacron\": -70,\n\t\"Y\\u0000eogonek\": -140,\n\t\"Y\\u0000hyphen\": -140,\n\t\"Y\\u0000i\": -20,\n\t\"Y\\u0000iacute\": -20,\n\t\"Y\\u0000iogonek\": -20,\n\t\"Y\\u0000o\": -140,\n\t\"Y\\u0000oacute\": -140,\n\t\"Y\\u0000ocircumflex\": -140,\n\t\"Y\\u0000odieresis\": -140,\n\t\"Y\\u0000ograve\": -140,\n\t\"Y\\u0000ohungarumlaut\": -140,\n\t\"Y\\u0000omacron\": -140,\n\t\"Y\\u0000oslash\": -140,\n\t\"Y\\u0000otilde\": -140,\n\t\"Y\\u0000period\": -140,\n\t\"Y\\u0000semicolon\": -60,\n\t\"Y\\u0000u\": -110,\n\t\"Y\\u0000uacute\": -110,\n\t\"Y\\u0000ucircumflex\": -110,\n\t\"Y\\u0000udieresis\": -110,\n\t\"Y\\u0000ugrave\": -110,\n\t\"Y\\u0000uhungarumlaut\": -110,\n\t\"Y\\u0000umacron\": -110,\n\t\"Y\\u0000uogonek\": -110,\n\t\"Y\\u0000uring\": -110,\n\t\"Yacute\\u0000A\": -110,\n\t\"Yacute\\u0000Aacute\": -110,\n\t\"Yacute\\u0000Abreve\": -110,\n\t\"Yacute\\u0000Acircumflex\": -110,\n\t\"Yacute\\u0000Adieresis\": -110,\n\t\"Yacute\\u0000Agrave\": -110,\n\t\"Yacute\\u0000Amacron\": -110,\n\t\"Yacute\\u0000Aogonek\": -110,\n\t\"Yacute\\u0000Aring\": -110,\n\t\"Yacute\\u0000Atilde\": -110,\n\t\"Yacute\\u0000O\": -85,\n\t\"Yacute\\u0000Oacute\": -85,\n\t\"Yacute\\u0000Ocircumflex\": -85,\n\t\"Yacute\\u0000Odieresis\": -85,\n\t\"Yacute\\u0000Ograve\": -85,\n\t\"Yacute\\u0000Ohungarumlaut\": -85,\n\t\"Yacute\\u0000Omacron\": -85,\n\t\"Yacute\\u0000Oslash\": -85,\n\t\"Yacute\\u0000Otilde\": -85,\n\t\"Yacute\\u0000a\": -140,\n\t\"Yacute\\u0000aacute\": -140,\n\t\"Yacute\\u0000abreve\": -70,\n\t\"Yacute\\u0000acircumflex\": -140,\n\t\"Yacute\\u0000adieresis\": -140,\n\t\"Yacute\\u0000agrave\": -140,\n\t\"Yacute\\u0000amacron\": -70,\n\t\"Yacute\\u0000aogonek\": -140,\n\t\"Yacute\\u0000aring\": -140,\n\t\"Yacute\\u0000atilde\": -70,\n\t\"Yacute\\u0000colon\": -60,\n\t\"Yacute\\u0000comma\": -140,\n\t\"Yacute\\u0000e\": -140,\n\t\"Yacute\\u0000eacute\": -140,\n\t\"Yacute\\u0000ecaron\": -140,\n\t\"Yacute\\u0000ecircumflex\": -140,\n\t\"Yacute\\u0000edieresis\": -140,\n\t\"Yacute\\u0000edotaccent\": -140,\n\t\"Yacute\\u0000egrave\": -140,\n\t\"Yacute\\u0000emacron\": -70,\n\t\"Yacute\\u0000eogonek\": -140,\n\t\"Yacute\\u0000hyphen\": -140,\n\t\"Yacute\\u0000i\": -20,\n\t\"Yacute\\u0000iacute\": -20,\n\t\"Yacute\\u0000iogonek\": -20,\n\t\"Yacute\\u0000o\": -140,\n\t\"Yacute\\u0000oacute\": -140,\n\t\"Yacute\\u0000ocircumflex\": -140,\n\t\"Yacute\\u0000odieresis\": -140,\n\t\"Yacute\\u0000ograve\": -140,\n\t\"Yacute\\u0000ohungarumlaut\": -140,\n\t\"Yacute\\u0000omacron\": -70,\n\t\"Yacute\\u0000oslash\": -140,\n\t\"Yacute\\u0000otilde\": -140,\n\t\"Yacute\\u0000period\": -140,\n\t\"Yacute\\u0000semicolon\": -60,\n\t\"Yacute\\u0000u\": -110,\n\t\"Yacute\\u0000uacute\": -110,\n\t\"Yacute\\u0000ucircumflex\": -110,\n\t\"Yacute\\u0000udieresis\": -110,\n\t\"Yacute\\u0000ugrave\": -110,\n\t\"Yacute\\u0000uhungarumlaut\": -110,\n\t\"Yacute\\u0000umacron\": -110,\n\t\"Yacute\\u0000uogonek\": -110,\n\t\"Yacute\\u0000uring\": -110,\n\t\"Ydieresis\\u0000A\": -110,\n\t\"Ydieresis\\u0000Aacute\": -110,\n\t\"Ydieresis\\u0000Abreve\": -110,\n\t\"Ydieresis\\u0000Acircumflex\": -110,\n\t\"Ydieresis\\u0000Adieresis\": -110,\n\t\"Ydieresis\\u0000Agrave\": -110,\n\t\"Ydieresis\\u0000Amacron\": -110,\n\t\"Ydieresis\\u0000Aogonek\": -110,\n\t\"Ydieresis\\u0000Aring\": -110,\n\t\"Ydieresis\\u0000Atilde\": -110,\n\t\"Ydieresis\\u0000O\": -85,\n\t\"Ydieresis\\u0000Oacute\": -85,\n\t\"Ydieresis\\u0000Ocircumflex\": -85,\n\t\"Ydieresis\\u0000Odieresis\": -85,\n\t\"Ydieresis\\u0000Ograve\": -85,\n\t\"Ydieresis\\u0000Ohungarumlaut\": -85,\n\t\"Ydieresis\\u0000Omacron\": -85,\n\t\"Ydieresis\\u0000Oslash\": -85,\n\t\"Ydieresis\\u0000Otilde\": -85,\n\t\"Ydieresis\\u0000a\": -140,\n\t\"Ydieresis\\u0000aacute\": -140,\n\t\"Ydieresis\\u0000abreve\": -70,\n\t\"Ydieresis\\u0000acircumflex\": -140,\n\t\"Ydieresis\\u0000adieresis\": -140,\n\t\"Ydieresis\\u0000agrave\": -140,\n\t\"Ydieresis\\u0000amacron\": -70,\n\t\"Ydieresis\\u0000aogonek\": -140,\n\t\"Ydieresis\\u0000aring\": -140,\n\t\"Ydieresis\\u0000atilde\": -70,\n\t\"Ydieresis\\u0000colon\": -60,\n\t\"Ydieresis\\u0000comma\": -140,\n\t\"Ydieresis\\u0000e\": -140,\n\t\"Ydieresis\\u0000eacute\": -140,\n\t\"Ydieresis\\u0000ecaron\": -140,\n\t\"Ydieresis\\u0000ecircumflex\": -140,\n\t\"Ydieresis\\u0000edieresis\": -140,\n\t\"Ydieresis\\u0000edotaccent\": -140,\n\t\"Ydieresis\\u0000egrave\": -140,\n\t\"Ydieresis\\u0000emacron\": -70,\n\t\"Ydieresis\\u0000eogonek\": -140,\n\t\"Ydieresis\\u0000hyphen\": -140,\n\t\"Ydieresis\\u0000i\": -20,\n\t\"Ydieresis\\u0000iacute\": -20,\n\t\"Ydieresis\\u0000iogonek\": -20,\n\t\"Ydieresis\\u0000o\": -140,\n\t\"Ydieresis\\u0000oacute\": -140,\n\t\"Ydieresis\\u0000ocircumflex\": -140,\n\t\"Ydieresis\\u0000odieresis\": -140,\n\t\"Ydieresis\\u0000ograve\": -140,\n\t\"Ydieresis\\u0000ohungarumlaut\": -140,\n\t\"Ydieresis\\u0000omacron\": -140,\n\t\"Ydieresis\\u0000oslash\": -140,\n\t\"Ydieresis\\u0000otilde\": -140,\n\t\"Ydieresis\\u0000period\": -140,\n\t\"Ydieresis\\u0000semicolon\": -60,\n\t\"Ydieresis\\u0000u\": -110,\n\t\"Ydieresis\\u0000uacute\": -110,\n\t\"Ydieresis\\u0000ucircumflex\": -110,\n\t\"Ydieresis\\u0000udieresis\": -110,\n\t\"Ydieresis\\u0000ugrave\": -110,\n\t\"Ydieresis\\u0000uhungarumlaut\": -110,\n\t\"Ydieresis\\u0000umacron\": -110,\n\t\"Ydieresis\\u0000uogonek\": -110,\n\t\"Ydieresis\\u0000uring\": -110,\n\t\"a\\u0000v\": -20,\n\t\"a\\u0000w\": -20,\n\t\"a\\u0000y\": -30,\n\t\"a\\u0000yacute\": -30,\n\t\"a\\u0000ydieresis\": -30,\n\t\"aacute\\u0000v\": -20,\n\t\"aacute\\u0000w\": -20,\n\t\"aacute\\u0000y\": -30,\n\t\"aacute\\u0000yacute\": -30,\n\t\"aacute\\u0000ydieresis\": -30,\n\t\"abreve\\u0000v\": -20,\n\t\"abreve\\u0000w\": -20,\n\t\"abreve\\u0000y\": -30,\n\t\"abreve\\u0000yacute\": -30,\n\t\"abreve\\u0000ydieresis\": -30,\n\t\"acircumflex\\u0000v\": -20,\n\t\"acircumflex\\u0000w\": -20,\n\t\"acircumflex\\u0000y\": -30,\n\t\"acircumflex\\u0000yacute\": -30,\n\t\"acircumflex\\u0000ydieresis\": -30,\n\t\"adieresis\\u0000v\": -20,\n\t\"adieresis\\u0000w\": -20,\n\t\"adieresis\\u0000y\": -30,\n\t\"adieresis\\u0000yacute\": -30,\n\t\"adieresis\\u0000ydieresis\": -30,\n\t\"agrave\\u0000v\": -20,\n\t\"agrave\\u0000w\": -20,\n\t\"agrave\\u0000y\": -30,\n\t\"agrave\\u0000yacute\": -30,\n\t\"agrave\\u0000ydieresis\": -30,\n\t\"amacron\\u0000v\": -20,\n\t\"amacron\\u0000w\": -20,\n\t\"amacron\\u0000y\": -30,\n\t\"amacron\\u0000yacute\": -30,\n\t\"amacron\\u0000ydieresis\": -30,\n\t\"aogonek\\u0000v\": -20,\n\t\"aogonek\\u0000w\": -20,\n\t\"aogonek\\u0000y\": -30,\n\t\"aogonek\\u0000yacute\": -30,\n\t\"aogonek\\u0000ydieresis\": -30,\n\t\"aring\\u0000v\": -20,\n\t\"aring\\u0000w\": -20,\n\t\"aring\\u0000y\": -30,\n\t\"aring\\u0000yacute\": -30,\n\t\"aring\\u0000ydieresis\": -30,\n\t\"atilde\\u0000v\": -20,\n\t\"atilde\\u0000w\": -20,\n\t\"atilde\\u0000y\": -30,\n\t\"atilde\\u0000yacute\": -30,\n\t\"atilde\\u0000ydieresis\": -30,\n\t\"b\\u0000b\": -10,\n\t\"b\\u0000comma\": -40,\n\t\"b\\u0000l\": -20,\n\t\"b\\u0000lacute\": -20,\n\t\"b\\u0000lcommaaccent\": -20,\n\t\"b\\u0000lslash\": -20,\n\t\"b\\u0000period\": -40,\n\t\"b\\u0000u\": -20,\n\t\"b\\u0000uacute\": -20,\n\t\"b\\u0000ucircumflex\": -20,\n\t\"b\\u0000udieresis\": -20,\n\t\"b\\u0000ugrave\": -20,\n\t\"b\\u0000uhungarumlaut\": -20,\n\t\"b\\u0000umacron\": -20,\n\t\"b\\u0000uogonek\": -20,\n\t\"b\\u0000uring\": -20,\n\t\"b\\u0000v\": -20,\n\t\"b\\u0000y\": -20,\n\t\"b\\u0000yacute\": -20,\n\t\"b\\u0000ydieresis\": -20,\n\t\"c\\u0000comma\": -15,\n\t\"c\\u0000k\": -20,\n\t\"c\\u0000kcommaaccent\": -20,\n\t\"cacute\\u0000comma\": -15,\n\t\"cacute\\u0000k\": -20,\n\t\"cacute\\u0000kcommaaccent\": -20,\n\t\"ccaron\\u0000comma\": -15,\n\t\"ccaron\\u0000k\": -20,\n\t\"ccaron\\u0000kcommaaccent\": -20,\n\t\"ccedilla\\u0000comma\": -15,\n\t\"ccedilla\\u0000k\": -20,\n\t\"ccedilla\\u0000kcommaaccent\": -20,\n\t\"colon\\u0000space\": -50,\n\t\"comma\\u0000quotedblright\": -100,\n\t\"comma\\u0000quoteright\": -100,\n\t\"e\\u0000comma\": -15,\n\t\"e\\u0000period\": -15,\n\t\"e\\u0000v\": -30,\n\t\"e\\u0000w\": -20,\n\t\"e\\u0000x\": -30,\n\t\"e\\u0000y\": -20,\n\t\"e\\u0000yacute\": -20,\n\t\"e\\u0000ydieresis\": -20,\n\t\"eacute\\u0000comma\": -15,\n\t\"eacute\\u0000period\": -15,\n\t\"eacute\\u0000v\": -30,\n\t\"eacute\\u0000w\": -20,\n\t\"eacute\\u0000x\": -30,\n\t\"eacute\\u0000y\": -20,\n\t\"eacute\\u0000yacute\": -20,\n\t\"eacute\\u0000ydieresis\": -20,\n\t\"ecaron\\u0000comma\": -15,\n\t\"ecaron\\u0000period\": -15,\n\t\"ecaron\\u0000v\": -30,\n\t\"ecaron\\u0000w\": -20,\n\t\"ecaron\\u0000x\": -30,\n\t\"ecaron\\u0000y\": -20,\n\t\"ecaron\\u0000yacute\": -20,\n\t\"ecaron\\u0000ydieresis\": -20,\n\t\"ecircumflex\\u0000comma\": -15,\n\t\"ecircumflex\\u0000period\": -15,\n\t\"ecircumflex\\u0000v\": -30,\n\t\"ecircumflex\\u0000w\": -20,\n\t\"ecircumflex\\u0000x\": -30,\n\t\"ecircumflex\\u0000y\": -20,\n\t\"ecircumflex\\u0000yacute\": -20,\n\t\"ecircumflex\\u0000ydieresis\": -20,\n\t\"edieresis\\u0000comma\": -15,\n\t\"edieresis\\u0000period\": -15,\n\t\"edieresis\\u0000v\": -30,\n\t\"edieresis\\u0000w\": -20,\n\t\"edieresis\\u0000x\": -30,\n\t\"edieresis\\u0000y\": -20,\n\t\"edieresis\\u0000yacute\": -20,\n\t\"edieresis\\u0000ydieresis\": -20,\n\t\"edotaccent\\u0000comma\": -15,\n\t\"edotaccent\\u0000period\": -15,\n\t\"edotaccent\\u0000v\": -30,\n\t\"edotaccent\\u0000w\": -20,\n\t\"edotaccent\\u0000x\": -30,\n\t\"edotaccent\\u0000y\": -20,\n\t\"edotaccent\\u0000yacute\": -20,\n\t\"edotaccent\\u0000ydieresis\": -20,\n\t\"egrave\\u0000comma\": -15,\n\t\"egrave\\u0000period\": -15,\n\t\"egrave\\u0000v\": -30,\n\t\"egrave\\u0000w\": -20,\n\t\"egrave\\u0000x\": -30,\n\t\"egrave\\u0000y\": -20,\n\t\"egrave\\u0000yacute\": -20,\n\t\"egrave\\u0000ydieresis\": -20,\n\t\"emacron\\u0000comma\": -15,\n\t\"emacron\\u0000period\": -15,\n\t\"emacron\\u0000v\": -30,\n\t\"emacron\\u0000w\": -20,\n\t\"emacron\\u0000x\": -30,\n\t\"emacron\\u0000y\": -20,\n\t\"emacron\\u0000yacute\": -20,\n\t\"emacron\\u0000ydieresis\": -20,\n\t\"eogonek\\u0000comma\": -15,\n\t\"eogonek\\u0000period\": -15,\n\t\"eogonek\\u0000v\": -30,\n\t\"eogonek\\u0000w\": -20,\n\t\"eogonek\\u0000x\": -30,\n\t\"eogonek\\u0000y\": -20,\n\t\"eogonek\\u0000yacute\": -20,\n\t\"eogonek\\u0000ydieresis\": -20,\n\t\"f\\u0000a\": -30,\n\t\"f\\u0000aacute\": -30,\n\t\"f\\u0000abreve\": -30,\n\t\"f\\u0000acircumflex\": -30,\n\t\"f\\u0000adieresis\": -30,\n\t\"f\\u0000agrave\": -30,\n\t\"f\\u0000amacron\": -30,\n\t\"f\\u0000aogonek\": -30,\n\t\"f\\u0000aring\": -30,\n\t\"f\\u0000atilde\": -30,\n\t\"f\\u0000comma\": -30,\n\t\"f\\u0000dotlessi\": -28,\n\t\"f\\u0000e\": -30,\n\t\"f\\u0000eacute\": -30,\n\t\"f\\u0000ecaron\": -30,\n\t\"f\\u0000ecircumflex\": -30,\n\t\"f\\u0000edieresis\": -30,\n\t\"f\\u0000edotaccent\": -30,\n\t\"f\\u0000egrave\": -30,\n\t\"f\\u0000emacron\": -30,\n\t\"f\\u0000eogonek\": -30,\n\t\"f\\u0000o\": -30,\n\t\"f\\u0000oacute\": -30,\n\t\"f\\u0000ocircumflex\": -30,\n\t\"f\\u0000odieresis\": -30,\n\t\"f\\u0000ograve\": -30,\n\t\"f\\u0000ohungarumlaut\": -30,\n\t\"f\\u0000omacron\": -30,\n\t\"f\\u0000oslash\": -30,\n\t\"f\\u0000otilde\": -30,\n\t\"f\\u0000period\": -30,\n\t\"f\\u0000quotedblright\": 60,\n\t\"f\\u0000quoteright\": 50,\n\t\"g\\u0000r\": -10,\n\t\"g\\u0000racute\": -10,\n\t\"g\\u0000rcaron\": -10,\n\t\"g\\u0000rcommaaccent\": -10,\n\t\"gbreve\\u0000r\": -10,\n\t\"gbreve\\u0000racute\": -10,\n\t\"gbreve\\u0000rcaron\": -10,\n\t\"gbreve\\u0000rcommaaccent\": -10,\n\t\"gcommaaccent\\u0000r\": -10,\n\t\"gcommaaccent\\u0000racute\": -10,\n\t\"gcommaaccent\\u0000rcaron\": -10,\n\t\"gcommaaccent\\u0000rcommaaccent\": -10,\n\t\"h\\u0000y\": -30,\n\t\"h\\u0000yacute\": -30,\n\t\"h\\u0000ydieresis\": -30,\n\t\"k\\u0000e\": -20,\n\t\"k\\u0000eacute\": -20,\n\t\"k\\u0000ecaron\": -20,\n\t\"k\\u0000ecircumflex\": -20,\n\t\"k\\u0000edieresis\": -20,\n\t\"k\\u0000edotaccent\": -20,\n\t\"k\\u0000egrave\": -20,\n\t\"k\\u0000emacron\": -20,\n\t\"k\\u0000eogonek\": -20,\n\t\"k\\u0000o\": -20,\n\t\"k\\u0000oacute\": -20,\n\t\"k\\u0000ocircumflex\": -20,\n\t\"k\\u0000odieresis\": -20,\n\t\"k\\u0000ograve\": -20,\n\t\"k\\u0000ohungarumlaut\": -20,\n\t\"k\\u0000omacron\": -20,\n\t\"k\\u0000oslash\": -20,\n\t\"k\\u0000otilde\": -20,\n\t\"kcommaaccent\\u0000e\": -20,\n\t\"kcommaaccent\\u0000eacute\": -20,\n\t\"kcommaaccent\\u0000ecaron\": -20,\n\t\"kcommaaccent\\u0000ecircumflex\": -20,\n\t\"kcommaaccent\\u0000edieresis\": -20,\n\t\"kcommaaccent\\u0000edotaccent\": -20,\n\t\"kcommaaccent\\u0000egrave\": -20,\n\t\"kcommaaccent\\u0000emacron\": -20,\n\t\"kcommaaccent\\u0000eogonek\": -20,\n\t\"kcommaaccent\\u0000o\": -20,\n\t\"kcommaaccent\\u0000oacute\": -20,\n\t\"kcommaaccent\\u0000ocircumflex\": -20,\n\t\"kcommaaccent\\u0000odieresis\": -20,\n\t\"kcommaaccent\\u0000ograve\": -20,\n\t\"kcommaaccent\\u0000ohungarumlaut\": -20,\n\t\"kcommaaccent\\u0000omacron\": -20,\n\t\"kcommaaccent\\u0000oslash\": -20,\n\t\"kcommaaccent\\u0000otilde\": -20,\n\t\"m\\u0000u\": -10,\n\t\"m\\u0000uacute\": -10,\n\t\"m\\u0000ucircumflex\": -10,\n\t\"m\\u0000udieresis\": -10,\n\t\"m\\u0000ugrave\": -10,\n\t\"m\\u0000uhungarumlaut\": -10,\n\t\"m\\u0000umacron\": -10,\n\t\"m\\u0000uogonek\": -10,\n\t\"m\\u0000uring\": -10,\n\t\"m\\u0000y\": -15,\n\t\"m\\u0000yacute\": -15,\n\t\"m\\u0000ydieresis\": -15,\n\t\"n\\u0000u\": -10,\n\t\"n\\u0000uacute\": -10,\n\t\"n\\u0000ucircumflex\": -10,\n\t\"n\\u0000udieresis\": -10,\n\t\"n\\u0000ugrave\": -10,\n\t\"n\\u0000uhungarumlaut\": -10,\n\t\"n\\u0000umacron\": -10,\n\t\"n\\u0000uogonek\": -10,\n\t\"n\\u0000uring\": -10,\n\t\"n\\u0000v\": -20,\n\t\"n\\u0000y\": -15,\n\t\"n\\u0000yacute\": -15,\n\t\"n\\u0000ydieresis\": -15,\n\t\"nacute\\u0000u\": -10,\n\t\"nacute\\u0000uacute\": -10,\n\t\"nacute\\u0000ucircumflex\": -10,\n\t\"nacute\\u0000udieresis\": -10,\n\t\"nacute\\u0000ugrave\": -10,\n\t\"nacute\\u0000uhungarumlaut\": -10,\n\t\"nacute\\u0000umacron\": -10,\n\t\"nacute\\u0000uogonek\": -10,\n\t\"nacute\\u0000uring\": -10,\n\t\"nacute\\u0000v\": -20,\n\t\"nacute\\u0000y\": -15,\n\t\"nacute\\u0000yacute\": -15,\n\t\"nacute\\u0000ydieresis\": -15,\n\t\"ncaron\\u0000u\": -10,\n\t\"ncaron\\u0000uacute\": -10,\n\t\"ncaron\\u0000ucircumflex\": -10,\n\t\"ncaron\\u0000udieresis\": -10,\n\t\"ncaron\\u0000ugrave\": -10,\n\t\"ncaron\\u0000uhungarumlaut\": -10,\n\t\"ncaron\\u0000umacron\": -10,\n\t\"ncaron\\u0000uogonek\": -10,\n\t\"ncaron\\u0000uring\": -10,\n\t\"ncaron\\u0000v\": -20,\n\t\"ncaron\\u0000y\": -15,\n\t\"ncaron\\u0000yacute\": -15,\n\t\"ncaron\\u0000ydieresis\": -15,\n\t\"ncommaaccent\\u0000u\": -10,\n\t\"ncommaaccent\\u0000uacute\": -10,\n\t\"ncommaaccent\\u0000ucircumflex\": -10,\n\t\"ncommaaccent\\u0000udieresis\": -10,\n\t\"ncommaaccent\\u0000ugrave\": -10,\n\t\"ncommaaccent\\u0000uhungarumlaut\": -10,\n\t\"ncommaaccent\\u0000umacron\": -10,\n\t\"ncommaaccent\\u0000uogonek\": -10,\n\t\"ncommaaccent\\u0000uring\": -10,\n\t\"ncommaaccent\\u0000v\": -20,\n\t\"ncommaaccent\\u0000y\": -15,\n\t\"ncommaaccent\\u0000yacute\": -15,\n\t\"ncommaaccent\\u0000ydieresis\": -15,\n\t\"ntilde\\u0000u\": -10,\n\t\"ntilde\\u0000uacute\": -10,\n\t\"ntilde\\u0000ucircumflex\": -10,\n\t\"ntilde\\u0000udieresis\": -10,\n\t\"ntilde\\u0000ugrave\": -10,\n\t\"ntilde\\u0000uhungarumlaut\": -10,\n\t\"ntilde\\u0000umacron\": -10,\n\t\"ntilde\\u0000uogonek\": -10,\n\t\"ntilde\\u0000uring\": -10,\n\t\"ntilde\\u0000v\": -20,\n\t\"ntilde\\u0000y\": -15,\n\t\"ntilde\\u0000yacute\": -15,\n\t\"ntilde\\u0000ydieresis\": -15,\n\t\"o\\u0000comma\": -40,\n\t\"o\\u0000period\": -40,\n\t\"o\\u0000v\": -15,\n\t\"o\\u0000w\": -15,\n\t\"o\\u0000x\": -30,\n\t\"o\\u0000y\": -30,\n\t\"o\\u0000yacute\": -30,\n\t\"o\\u0000ydieresis\": -30,\n\t\"oacute\\u0000comma\": -40,\n\t\"oacute\\u0000period\": -40,\n\t\"oacute\\u0000v\": -15,\n\t\"oacute\\u0000w\": -15,\n\t\"oacute\\u0000x\": -30,\n\t\"oacute\\u0000y\": -30,\n\t\"oacute\\u0000yacute\": -30,\n\t\"oacute\\u0000ydieresis\": -30,\n\t\"ocircumflex\\u0000comma\": -40,\n\t\"ocircumflex\\u0000period\": -40,\n\t\"ocircumflex\\u0000v\": -15,\n\t\"ocircumflex\\u0000w\": -15,\n\t\"ocircumflex\\u0000x\": -30,\n\t\"ocircumflex\\u0000y\": -30,\n\t\"ocircumflex\\u0000yacute\": -30,\n\t\"ocircumflex\\u0000ydieresis\": -30,\n\t\"odieresis\\u0000comma\": -40,\n\t\"odieresis\\u0000period\": -40,\n\t\"odieresis\\u0000v\": -15,\n\t\"odieresis\\u0000w\": -15,\n\t\"odieresis\\u0000x\": -30,\n\t\"odieresis\\u0000y\": -30,\n\t\"odieresis\\u0000yacute\": -30,\n\t\"odieresis\\u0000ydieresis\": -30,\n\t\"ograve\\u0000comma\": -40,\n\t\"ograve\\u0000period\": -40,\n\t\"ograve\\u0000v\": -15,\n\t\"ograve\\u0000w\": -15,\n\t\"ograve\\u0000x\": -30,\n\t\"ograve\\u0000y\": -30,\n\t\"ograve\\u0000yacute\": -30,\n\t\"ograve\\u0000ydieresis\": -30,\n\t\"ohungarumlaut\\u0000comma\": -40,\n\t\"ohungarumlaut\\u0000period\": -40,\n\t\"ohungarumlaut\\u0000v\": -15,\n\t\"ohungarumlaut\\u0000w\": -15,\n\t\"ohungarumlaut\\u0000x\": -30,\n\t\"ohungarumlaut\\u0000y\": -30,\n\t\"ohungarumlaut\\u0000yacute\": -30,\n\t\"ohungarumlaut\\u0000ydieresis\": -30,\n\t\"omacron\\u0000comma\": -40,\n\t\"omacron\\u0000period\": -40,\n\t\"omacron\\u0000v\": -15,\n\t\"omacron\\u0000w\": -15,\n\t\"omacron\\u0000x\": -30,\n\t\"omacron\\u0000y\": -30,\n\t\"omacron\\u0000yacute\": -30,\n\t\"omacron\\u0000ydieresis\": -30,\n\t\"oslash\\u0000a\": -55,\n\t\"oslash\\u0000aacute\": -55,\n\t\"oslash\\u0000abreve\": -55,\n\t\"oslash\\u0000acircumflex\": -55,\n\t\"oslash\\u0000adieresis\": -55,\n\t\"oslash\\u0000agrave\": -55,\n\t\"oslash\\u0000amacron\": -55,\n\t\"oslash\\u0000aogonek\": -55,\n\t\"oslash\\u0000aring\": -55,\n\t\"oslash\\u0000atilde\": -55,\n\t\"oslash\\u0000b\": -55,\n\t\"oslash\\u0000c\": -55,\n\t\"oslash\\u0000cacute\": -55,\n\t\"oslash\\u0000ccaron\": -55,\n\t\"oslash\\u0000ccedilla\": -55,\n\t\"oslash\\u0000comma\": -95,\n\t\"oslash\\u0000d\": -55,\n\t\"oslash\\u0000dcroat\": -55,\n\t\"oslash\\u0000e\": -55,\n\t\"oslash\\u0000eacute\": -55,\n\t\"oslash\\u0000ecaron\": -55,\n\t\"oslash\\u0000ecircumflex\": -55,\n\t\"oslash\\u0000edieresis\": -55,\n\t\"oslash\\u0000edotaccent\": -55,\n\t\"oslash\\u0000egrave\": -55,\n\t\"oslash\\u0000emacron\": -55,\n\t\"oslash\\u0000eogonek\": -55,\n\t\"oslash\\u0000f\": -55,\n\t\"oslash\\u0000g\": -55,\n\t\"oslash\\u0000gbreve\": -55,\n\t\"oslash\\u0000gcommaaccent\": -55,\n\t\"oslash\\u0000h\": -55,\n\t\"oslash\\u0000i\": -55,\n\t\"oslash\\u0000iacute\": -55,\n\t\"oslash\\u0000icircumflex\": -55,\n\t\"oslash\\u0000idieresis\": -55,\n\t\"oslash\\u0000igrave\": -55,\n\t\"oslash\\u0000imacron\": -55,\n\t\"oslash\\u0000iogonek\": -55,\n\t\"oslash\\u0000j\": -55,\n\t\"oslash\\u0000k\": -55,\n\t\"oslash\\u0000kcommaaccent\": -55,\n\t\"oslash\\u0000l\": -55,\n\t\"oslash\\u0000lacute\": -55,\n\t\"oslash\\u0000lcommaaccent\": -55,\n\t\"oslash\\u0000lslash\": -55,\n\t\"oslash\\u0000m\": -55,\n\t\"oslash\\u0000n\": -55,\n\t\"oslash\\u0000nacute\": -55,\n\t\"oslash\\u0000ncaron\": -55,\n\t\"oslash\\u0000ncommaaccent\": -55,\n\t\"oslash\\u0000ntilde\": -55,\n\t\"oslash\\u0000o\": -55,\n\t\"oslash\\u0000oacute\": -55,\n\t\"oslash\\u0000ocircumflex\": -55,\n\t\"oslash\\u0000odieresis\": -55,\n\t\"oslash\\u0000ograve\": -55,\n\t\"oslash\\u0000ohungarumlaut\": -55,\n\t\"oslash\\u0000omacron\": -55,\n\t\"oslash\\u0000oslash\": -55,\n\t\"oslash\\u0000otilde\": -55,\n\t\"oslash\\u0000p\": -55,\n\t\"oslash\\u0000period\": -95,\n\t\"oslash\\u0000q\": -55,\n\t\"oslash\\u0000r\": -55,\n\t\"oslash\\u0000racute\": -55,\n\t\"oslash\\u0000rcaron\": -55,\n\t\"oslash\\u0000rcommaaccent\": -55,\n\t\"oslash\\u0000s\": -55,\n\t\"oslash\\u0000sacute\": -55,\n\t\"oslash\\u0000scaron\": -55,\n\t\"oslash\\u0000scedilla\": -55,\n\t\"oslash\\u0000scommaaccent\": -55,\n\t\"oslash\\u0000t\": -55,\n\t\"oslash\\u0000tcommaaccent\": -55,\n\t\"oslash\\u0000u\": -55,\n\t\"oslash\\u0000uacute\": -55,\n\t\"oslash\\u0000ucircumflex\": -55,\n\t\"oslash\\u0000udieresis\": -55,\n\t\"oslash\\u0000ugrave\": -55,\n\t\"oslash\\u0000uhungarumlaut\": -55,\n\t\"oslash\\u0000umacron\": -55,\n\t\"oslash\\u0000uogonek\": -55,\n\t\"oslash\\u0000uring\": -55,\n\t\"oslash\\u0000v\": -70,\n\t\"oslash\\u0000w\": -70,\n\t\"oslash\\u0000x\": -85,\n\t\"oslash\\u0000y\": -70,\n\t\"oslash\\u0000yacute\": -70,\n\t\"oslash\\u0000ydieresis\": -70,\n\t\"oslash\\u0000z\": -55,\n\t\"oslash\\u0000zacute\": -55,\n\t\"oslash\\u0000zcaron\": -55,\n\t\"oslash\\u0000zdotaccent\": -55,\n\t\"otilde\\u0000comma\": -40,\n\t\"otilde\\u0000period\": -40,\n\t\"otilde\\u0000v\": -15,\n\t\"otilde\\u0000w\": -15,\n\t\"otilde\\u0000x\": -30,\n\t\"otilde\\u0000y\": -30,\n\t\"otilde\\u0000yacute\": -30,\n\t\"otilde\\u0000ydieresis\": -30,\n\t\"p\\u0000comma\": -35,\n\t\"p\\u0000period\": -35,\n\t\"p\\u0000y\": -30,\n\t\"p\\u0000yacute\": -30,\n\t\"p\\u0000ydieresis\": -30,\n\t\"period\\u0000quotedblright\": -100,\n\t\"period\\u0000quoteright\": -100,\n\t\"period\\u0000space\": -60,\n\t\"quotedblright\\u0000space\": -40,\n\t\"quoteleft\\u0000quoteleft\": -57,\n\t\"quoteright\\u0000d\": -50,\n\t\"quoteright\\u0000dcroat\": -50,\n\t\"quoteright\\u0000quoteright\": -57,\n\t\"quoteright\\u0000r\": -50,\n\t\"quoteright\\u0000racute\": -50,\n\t\"quoteright\\u0000rcaron\": -50,\n\t\"quoteright\\u0000rcommaaccent\": -50,\n\t\"quoteright\\u0000s\": -50,\n\t\"quoteright\\u0000sacute\": -50,\n\t\"quoteright\\u0000scaron\": -50,\n\t\"quoteright\\u0000scedilla\": -50,\n\t\"quoteright\\u0000scommaaccent\": -50,\n\t\"quoteright\\u0000space\": -70,\n\t\"r\\u0000a\": -10,\n\t\"r\\u0000aacute\": -10,\n\t\"r\\u0000abreve\": -10,\n\t\"r\\u0000acircumflex\": -10,\n\t\"r\\u0000adieresis\": -10,\n\t\"r\\u0000agrave\": -10,\n\t\"r\\u0000amacron\": -10,\n\t\"r\\u0000aogonek\": -10,\n\t\"r\\u0000aring\": -10,\n\t\"r\\u0000atilde\": -10,\n\t\"r\\u0000colon\": 30,\n\t\"r\\u0000comma\": -50,\n\t\"r\\u0000i\": 15,\n\t\"r\\u0000iacute\": 15,\n\t\"r\\u0000icircumflex\": 15,\n\t\"r\\u0000idieresis\": 15,\n\t\"r\\u0000igrave\": 15,\n\t\"r\\u0000imacron\": 15,\n\t\"r\\u0000iogonek\": 15,\n\t\"r\\u0000k\": 15,\n\t\"r\\u0000kcommaaccent\": 15,\n\t\"r\\u0000l\": 15,\n\t\"r\\u0000lacute\": 15,\n\t\"r\\u0000lcommaaccent\": 15,\n\t\"r\\u0000lslash\": 15,\n\t\"r\\u0000m\": 25,\n\t\"r\\u0000n\": 25,\n\t\"r\\u0000nacute\": 25,\n\t\"r\\u0000ncaron\": 25,\n\t\"r\\u0000ncommaaccent\": 25,\n\t\"r\\u0000ntilde\": 25,\n\t\"r\\u0000p\": 30,\n\t\"r\\u0000period\": -50,\n\t\"r\\u0000semicolon\": 30,\n\t\"r\\u0000t\": 40,\n\t\"r\\u0000tcommaaccent\": 40,\n\t\"r\\u0000u\": 15,\n\t\"r\\u0000uacute\": 15,\n\t\"r\\u0000ucircumflex\": 15,\n\t\"r\\u0000udieresis\": 15,\n\t\"r\\u0000ugrave\": 15,\n\t\"r\\u0000uhungarumlaut\": 15,\n\t\"r\\u0000umacron\": 15,\n\t\"r\\u0000uogonek\": 15,\n\t\"r\\u0000uring\": 15,\n\t\"r\\u0000v\": 30,\n\t\"r\\u0000y\": 30,\n\t\"r\\u0000yacute\": 30,\n\t\"r\\u0000ydieresis\": 30,\n\t\"racute\\u0000a\": -10,\n\t\"racute\\u0000aacute\": -10,\n\t\"racute\\u0000abreve\": -10,\n\t\"racute\\u0000acircumflex\": -10,\n\t\"racute\\u0000adieresis\": -10,\n\t\"racute\\u0000agrave\": -10,\n\t\"racute\\u0000amacron\": -10,\n\t\"racute\\u0000aogonek\": -10,\n\t\"racute\\u0000aring\": -10,\n\t\"racute\\u0000atilde\": -10,\n\t\"racute\\u0000colon\": 30,\n\t\"racute\\u0000comma\": -50,\n\t\"racute\\u0000i\": 15,\n\t\"racute\\u0000iacute\": 15,\n\t\"racute\\u0000icircumflex\": 15,\n\t\"racute\\u0000idieresis\": 15,\n\t\"racute\\u0000igrave\": 15,\n\t\"racute\\u0000imacron\": 15,\n\t\"racute\\u0000iogonek\": 15,\n\t\"racute\\u0000k\": 15,\n\t\"racute\\u0000kcommaaccent\": 15,\n\t\"racute\\u0000l\": 15,\n\t\"racute\\u0000lacute\": 15,\n\t\"racute\\u0000lcommaaccent\": 15,\n\t\"racute\\u0000lslash\": 15,\n\t\"racute\\u0000m\": 25,\n\t\"racute\\u0000n\": 25,\n\t\"racute\\u0000nacute\": 25,\n\t\"racute\\u0000ncaron\": 25,\n\t\"racute\\u0000ncommaaccent\": 25,\n\t\"racute\\u0000ntilde\": 25,\n\t\"racute\\u0000p\": 30,\n\t\"racute\\u0000period\": -50,\n\t\"racute\\u0000semicolon\": 30,\n\t\"racute\\u0000t\": 40,\n\t\"racute\\u0000tcommaaccent\": 40,\n\t\"racute\\u0000u\": 15,\n\t\"racute\\u0000uacute\": 15,\n\t\"racute\\u0000ucircumflex\": 15,\n\t\"racute\\u0000udieresis\": 15,\n\t\"racute\\u0000ugrave\": 15,\n\t\"racute\\u0000uhungarumlaut\": 15,\n\t\"racute\\u0000umacron\": 15,\n\t\"racute\\u0000uogonek\": 15,\n\t\"racute\\u0000uring\": 15,\n\t\"racute\\u0000v\": 30,\n\t\"racute\\u0000y\": 30,\n\t\"racute\\u0000yacute\": 30,\n\t\"racute\\u0000ydieresis\": 30,\n\t\"rcaron\\u0000a\": -10,\n\t\"rcaron\\u0000aacute\": -10,\n\t\"rcaron\\u0000abreve\": -10,\n\t\"rcaron\\u0000acircumflex\": -10,\n\t\"rcaron\\u0000adieresis\": -10,\n\t\"rcaron\\u0000agrave\": -10,\n\t\"rcaron\\u0000amacron\": -10,\n\t\"rcaron\\u0000aogonek\": -10,\n\t\"rcaron\\u0000aring\": -10,\n\t\"rcaron\\u0000atilde\": -10,\n\t\"rcaron\\u0000colon\": 30,\n\t\"rcaron\\u0000comma\": -50,\n\t\"rcaron\\u0000i\": 15,\n\t\"rcaron\\u0000iacute\": 15,\n\t\"rcaron\\u0000icircumflex\": 15,\n\t\"rcaron\\u0000idieresis\": 15,\n\t\"rcaron\\u0000igrave\": 15,\n\t\"rcaron\\u0000imacron\": 15,\n\t\"rcaron\\u0000iogonek\": 15,\n\t\"rcaron\\u0000k\": 15,\n\t\"rcaron\\u0000kcommaaccent\": 15,\n\t\"rcaron\\u0000l\": 15,\n\t\"rcaron\\u0000lacute\": 15,\n\t\"rcaron\\u0000lcommaaccent\": 15,\n\t\"rcaron\\u0000lslash\": 15,\n\t\"rcaron\\u0000m\": 25,\n\t\"rcaron\\u0000n\": 25,\n\t\"rcaron\\u0000nacute\": 25,\n\t\"rcaron\\u0000ncaron\": 25,\n\t\"rcaron\\u0000ncommaaccent\": 25,\n\t\"rcaron\\u0000ntilde\": 25,\n\t\"rcaron\\u0000p\": 30,\n\t\"rcaron\\u0000period\": -50,\n\t\"rcaron\\u0000semicolon\": 30,\n\t\"rcaron\\u0000t\": 40,\n\t\"rcaron\\u0000tcommaaccent\": 40,\n\t\"rcaron\\u0000u\": 15,\n\t\"rcaron\\u0000uacute\": 15,\n\t\"rcaron\\u0000ucircumflex\": 15,\n\t\"rcaron\\u0000udieresis\": 15,\n\t\"rcaron\\u0000ugrave\": 15,\n\t\"rcaron\\u0000uhungarumlaut\": 15,\n\t\"rcaron\\u0000umacron\": 15,\n\t\"rcaron\\u0000uogonek\": 15,\n\t\"rcaron\\u0000uring\": 15,\n\t\"rcaron\\u0000v\": 30,\n\t\"rcaron\\u0000y\": 30,\n\t\"rcaron\\u0000yacute\": 30,\n\t\"rcaron\\u0000ydieresis\": 30,\n\t\"rcommaaccent\\u0000a\": -10,\n\t\"rcommaaccent\\u0000aacute\": -10,\n\t\"rcommaaccent\\u0000abreve\": -10,\n\t\"rcommaaccent\\u0000acircumflex\": -10,\n\t\"rcommaaccent\\u0000adieresis\": -10,\n\t\"rcommaaccent\\u0000agrave\": -10,\n\t\"rcommaaccent\\u0000amacron\": -10,\n\t\"rcommaaccent\\u0000aogonek\": -10,\n\t\"rcommaaccent\\u0000aring\": -10,\n\t\"rcommaaccent\\u0000atilde\": -10,\n\t\"rcommaaccent\\u0000colon\": 30,\n\t\"rcommaaccent\\u0000comma\": -50,\n\t\"rcommaaccent\\u0000i\": 15,\n\t\"rcommaaccent\\u0000iacute\": 15,\n\t\"rcommaaccent\\u0000icircumflex\": 15,\n\t\"rcommaaccent\\u0000idieresis\": 15,\n\t\"rcommaaccent\\u0000igrave\": 15,\n\t\"rcommaaccent\\u0000imacron\": 15,\n\t\"rcommaaccent\\u0000iogonek\": 15,\n\t\"rcommaaccent\\u0000k\": 15,\n\t\"rcommaaccent\\u0000kcommaaccent\": 15,\n\t\"rcommaaccent\\u0000l\": 15,\n\t\"rcommaaccent\\u0000lacute\": 15,\n\t\"rcommaaccent\\u0000lcommaaccent\": 15,\n\t\"rcommaaccent\\u0000lslash\": 15,\n\t\"rcommaaccent\\u0000m\": 25,\n\t\"rcommaaccent\\u0000n\": 25,\n\t\"rcommaaccent\\u0000nacute\": 25,\n\t\"rcommaaccent\\u0000ncaron\": 25,\n\t\"rcommaaccent\\u0000ncommaaccent\": 25,\n\t\"rcommaaccent\\u0000ntilde\": 25,\n\t\"rcommaaccent\\u0000p\": 30,\n\t\"rcommaaccent\\u0000period\": -50,\n\t\"rcommaaccent\\u0000semicolon\": 30,\n\t\"rcommaaccent\\u0000t\": 40,\n\t\"rcommaaccent\\u0000tcommaaccent\": 40,\n\t\"rcommaaccent\\u0000u\": 15,\n\t\"rcommaaccent\\u0000uacute\": 15,\n\t\"rcommaaccent\\u0000ucircumflex\": 15,\n\t\"rcommaaccent\\u0000udieresis\": 15,\n\t\"rcommaaccent\\u0000ugrave\": 15,\n\t\"rcommaaccent\\u0000uhungarumlaut\": 15,\n\t\"rcommaaccent\\u0000umacron\": 15,\n\t\"rcommaaccent\\u0000uogonek\": 15,\n\t\"rcommaaccent\\u0000uring\": 15,\n\t\"rcommaaccent\\u0000v\": 30,\n\t\"rcommaaccent\\u0000y\": 30,\n\t\"rcommaaccent\\u0000yacute\": 30,\n\t\"rcommaaccent\\u0000ydieresis\": 30,\n\t\"s\\u0000comma\": -15,\n\t\"s\\u0000period\": -15,\n\t\"s\\u0000w\": -30,\n\t\"sacute\\u0000comma\": -15,\n\t\"sacute\\u0000period\": -15,\n\t\"sacute\\u0000w\": -30,\n\t\"scaron\\u0000comma\": -15,\n\t\"scaron\\u0000period\": -15,\n\t\"scaron\\u0000w\": -30,\n\t\"scedilla\\u0000comma\": -15,\n\t\"scedilla\\u0000period\": -15,\n\t\"scedilla\\u0000w\": -30,\n\t\"scommaaccent\\u0000comma\": -15,\n\t\"scommaaccent\\u0000period\": -15,\n\t\"scommaaccent\\u0000w\": -30,\n\t\"semicolon\\u0000space\": -50,\n\t\"space\\u0000T\": -50,\n\t\"space\\u0000Tcaron\": -50,\n\t\"space\\u0000Tcommaaccent\": -50,\n\t\"space\\u0000V\": -50,\n\t\"space\\u0000W\": -40,\n\t\"space\\u0000Y\": -90,\n\t\"space\\u0000Yacute\": -90,\n\t\"space\\u0000Ydieresis\": -90,\n\t\"space\\u0000quotedblleft\": -30,\n\t\"space\\u0000quoteleft\": -60,\n\t\"v\\u0000a\": -25,\n\t\"v\\u0000aacute\": -25,\n\t\"v\\u0000abreve\": -25,\n\t\"v\\u0000acircumflex\": -25,\n\t\"v\\u0000adieresis\": -25,\n\t\"v\\u0000agrave\": -25,\n\t\"v\\u0000amacron\": -25,\n\t\"v\\u0000aogonek\": -25,\n\t\"v\\u0000aring\": -25,\n\t\"v\\u0000atilde\": -25,\n\t\"v\\u0000comma\": -80,\n\t\"v\\u0000e\": -25,\n\t\"v\\u0000eacute\": -25,\n\t\"v\\u0000ecaron\": -25,\n\t\"v\\u0000ecircumflex\": -25,\n\t\"v\\u0000edieresis\": -25,\n\t\"v\\u0000edotaccent\": -25,\n\t\"v\\u0000egrave\": -25,\n\t\"v\\u0000emacron\": -25,\n\t\"v\\u0000eogonek\": -25,\n\t\"v\\u0000o\": -25,\n\t\"v\\u0000oacute\": -25,\n\t\"v\\u0000ocircumflex\": -25,\n\t\"v\\u0000odieresis\": -25,\n\t\"v\\u0000ograve\": -25,\n\t\"v\\u0000ohungarumlaut\": -25,\n\t\"v\\u0000omacron\": -25,\n\t\"v\\u0000oslash\": -25,\n\t\"v\\u0000otilde\": -25,\n\t\"v\\u0000period\": -80,\n\t\"w\\u0000a\": -15,\n\t\"w\\u0000aacute\": -15,\n\t\"w\\u0000abreve\": -15,\n\t\"w\\u0000acircumflex\": -15,\n\t\"w\\u0000adieresis\": -15,\n\t\"w\\u0000agrave\": -15,\n\t\"w\\u0000amacron\": -15,\n\t\"w\\u0000aogonek\": -15,\n\t\"w\\u0000aring\": -15,\n\t\"w\\u0000atilde\": -15,\n\t\"w\\u0000comma\": -60,\n\t\"w\\u0000e\": -10,\n\t\"w\\u0000eacute\": -10,\n\t\"w\\u0000ecaron\": -10,\n\t\"w\\u0000ecircumflex\": -10,\n\t\"w\\u0000edieresis\": -10,\n\t\"w\\u0000edotaccent\": -10,\n\t\"w\\u0000egrave\": -10,\n\t\"w\\u0000emacron\": -10,\n\t\"w\\u0000eogonek\": -10,\n\t\"w\\u0000o\": -10,\n\t\"w\\u0000oacute\": -10,\n\t\"w\\u0000ocircumflex\": -10,\n\t\"w\\u0000odieresis\": -10,\n\t\"w\\u0000ograve\": -10,\n\t\"w\\u0000ohungarumlaut\": -10,\n\t\"w\\u0000omacron\": -10,\n\t\"w\\u0000oslash\": -10,\n\t\"w\\u0000otilde\": -10,\n\t\"w\\u0000period\": -60,\n\t\"x\\u0000e\": -30,\n\t\"x\\u0000eacute\": -30,\n\t\"x\\u0000ecaron\": -30,\n\t\"x\\u0000ecircumflex\": -30,\n\t\"x\\u0000edieresis\": -30,\n\t\"x\\u0000edotaccent\": -30,\n\t\"x\\u0000egrave\": -30,\n\t\"x\\u0000emacron\": -30,\n\t\"x\\u0000eogonek\": -30,\n\t\"y\\u0000a\": -20,\n\t\"y\\u0000aacute\": -20,\n\t\"y\\u0000abreve\": -20,\n\t\"y\\u0000acircumflex\": -20,\n\t\"y\\u0000adieresis\": -20,\n\t\"y\\u0000agrave\": -20,\n\t\"y\\u0000amacron\": -20,\n\t\"y\\u0000aogonek\": -20,\n\t\"y\\u0000aring\": -20,\n\t\"y\\u0000atilde\": -20,\n\t\"y\\u0000comma\": -100,\n\t\"y\\u0000e\": -20,\n\t\"y\\u0000eacute\": -20,\n\t\"y\\u0000ecaron\": -20,\n\t\"y\\u0000ecircumflex\": -20,\n\t\"y\\u0000edieresis\": -20,\n\t\"y\\u0000edotaccent\": -20,\n\t\"y\\u0000egrave\": -20,\n\t\"y\\u0000emacron\": -20,\n\t\"y\\u0000eogonek\": -20,\n\t\"y\\u0000o\": -20,\n\t\"y\\u0000oacute\": -20,\n\t\"y\\u0000ocircumflex\": -20,\n\t\"y\\u0000odieresis\": -20,\n\t\"y\\u0000ograve\": -20,\n\t\"y\\u0000ohungarumlaut\": -20,\n\t\"y\\u0000omacron\": -20,\n\t\"y\\u0000oslash\": -20,\n\t\"y\\u0000otilde\": -20,\n\t\"y\\u0000period\": -100,\n\t\"yacute\\u0000a\": -20,\n\t\"yacute\\u0000aacute\": -20,\n\t\"yacute\\u0000abreve\": -20,\n\t\"yacute\\u0000acircumflex\": -20,\n\t\"yacute\\u0000adieresis\": -20,\n\t\"yacute\\u0000agrave\": -20,\n\t\"yacute\\u0000amacron\": -20,\n\t\"yacute\\u0000aogonek\": -20,\n\t\"yacute\\u0000aring\": -20,\n\t\"yacute\\u0000atilde\": -20,\n\t\"yacute\\u0000comma\": -100,\n\t\"yacute\\u0000e\": -20,\n\t\"yacute\\u0000eacute\": -20,\n\t\"yacute\\u0000ecaron\": -20,\n\t\"yacute\\u0000ecircumflex\": -20,\n\t\"yacute\\u0000edieresis\": -20,\n\t\"yacute\\u0000edotaccent\": -20,\n\t\"yacute\\u0000egrave\": -20,\n\t\"yacute\\u0000emacron\": -20,\n\t\"yacute\\u0000eogonek\": -20,\n\t\"yacute\\u0000o\": -20,\n\t\"yacute\\u0000oacute\": -20,\n\t\"yacute\\u0000ocircumflex\": -20,\n\t\"yacute\\u0000odieresis\": -20,\n\t\"yacute\\u0000ograve\": -20,\n\t\"yacute\\u0000ohungarumlaut\": -20,\n\t\"yacute\\u0000omacron\": -20,\n\t\"yacute\\u0000oslash\": -20,\n\t\"yacute\\u0000otilde\": -20,\n\t\"yacute\\u0000period\": -100,\n\t\"ydieresis\\u0000a\": -20,\n\t\"ydieresis\\u0000aacute\": -20,\n\t\"ydieresis\\u0000abreve\": -20,\n\t\"ydieresis\\u0000acircumflex\": -20,\n\t\"ydieresis\\u0000adieresis\": -20,\n\t\"ydieresis\\u0000agrave\": -20,\n\t\"ydieresis\\u0000amacron\": -20,\n\t\"ydieresis\\u0000aogonek\": -20,\n\t\"ydieresis\\u0000aring\": -20,\n\t\"ydieresis\\u0000atilde\": -20,\n\t\"ydieresis\\u0000comma\": -100,\n\t\"ydieresis\\u0000e\": -20,\n\t\"ydieresis\\u0000eacute\": -20,\n\t\"ydieresis\\u0000ecaron\": -20,\n\t\"ydieresis\\u0000ecircumflex\": -20,\n\t\"ydieresis\\u0000edieresis\": -20,\n\t\"ydieresis\\u0000edotaccent\": -20,\n\t\"ydieresis\\u0000egrave\": -20,\n\t\"ydieresis\\u0000emacron\": -20,\n\t\"ydieresis\\u0000eogonek\": -20,\n\t\"ydieresis\\u0000o\": -20,\n\t\"ydieresis\\u0000oacute\": -20,\n\t\"ydieresis\\u0000ocircumflex\": -20,\n\t\"ydieresis\\u0000odieresis\": -20,\n\t\"ydieresis\\u0000ograve\": -20,\n\t\"ydieresis\\u0000ohungarumlaut\": -20,\n\t\"ydieresis\\u0000omacron\": -20,\n\t\"ydieresis\\u0000oslash\": -20,\n\t\"ydieresis\\u0000otilde\": -20,\n\t\"ydieresis\\u0000period\": -100,\n\t\"z\\u0000e\": -15,\n\t\"z\\u0000eacute\": -15,\n\t\"z\\u0000ecaron\": -15,\n\t\"z\\u0000ecircumflex\": -15,\n\t\"z\\u0000edieresis\": -15,\n\t\"z\\u0000edotaccent\": -15,\n\t\"z\\u0000egrave\": -15,\n\t\"z\\u0000emacron\": -15,\n\t\"z\\u0000eogonek\": -15,\n\t\"z\\u0000o\": -15,\n\t\"z\\u0000oacute\": -15,\n\t\"z\\u0000ocircumflex\": -15,\n\t\"z\\u0000odieresis\": -15,\n\t\"z\\u0000ograve\": -15,\n\t\"z\\u0000ohungarumlaut\": -15,\n\t\"z\\u0000omacron\": -15,\n\t\"z\\u0000oslash\": -15,\n\t\"z\\u0000otilde\": -15,\n\t\"zacute\\u0000e\": -15,\n\t\"zacute\\u0000eacute\": -15,\n\t\"zacute\\u0000ecaron\": -15,\n\t\"zacute\\u0000ecircumflex\": -15,\n\t\"zacute\\u0000edieresis\": -15,\n\t\"zacute\\u0000edotaccent\": -15,\n\t\"zacute\\u0000egrave\": -15,\n\t\"zacute\\u0000emacron\": -15,\n\t\"zacute\\u0000eogonek\": -15,\n\t\"zacute\\u0000o\": -15,\n\t\"zacute\\u0000oacute\": -15,\n\t\"zacute\\u0000ocircumflex\": -15,\n\t\"zacute\\u0000odieresis\": -15,\n\t\"zacute\\u0000ograve\": -15,\n\t\"zacute\\u0000ohungarumlaut\": -15,\n\t\"zacute\\u0000omacron\": -15,\n\t\"zacute\\u0000oslash\": -15,\n\t\"zacute\\u0000otilde\": -15,\n\t\"zcaron\\u0000e\": -15,\n\t\"zcaron\\u0000eacute\": -15,\n\t\"zcaron\\u0000ecaron\": -15,\n\t\"zcaron\\u0000ecircumflex\": -15,\n\t\"zcaron\\u0000edieresis\": -15,\n\t\"zcaron\\u0000edotaccent\": -15,\n\t\"zcaron\\u0000egrave\": -15,\n\t\"zcaron\\u0000emacron\": -15,\n\t\"zcaron\\u0000eogonek\": -15,\n\t\"zcaron\\u0000o\": -15,\n\t\"zcaron\\u0000oacute\": -15,\n\t\"zcaron\\u0000ocircumflex\": -15,\n\t\"zcaron\\u0000odieresis\": -15,\n\t\"zcaron\\u0000ograve\": -15,\n\t\"zcaron\\u0000ohungarumlaut\": -15,\n\t\"zcaron\\u0000omacron\": -15,\n\t\"zcaron\\u0000oslash\": -15,\n\t\"zcaron\\u0000otilde\": -15,\n\t\"zdotaccent\\u0000e\": -15,\n\t\"zdotaccent\\u0000eacute\": -15,\n\t\"zdotaccent\\u0000ecaron\": -15,\n\t\"zdotaccent\\u0000ecircumflex\": -15,\n\t\"zdotaccent\\u0000edieresis\": -15,\n\t\"zdotaccent\\u0000edotaccent\": -15,\n\t\"zdotaccent\\u0000egrave\": -15,\n\t\"zdotaccent\\u0000emacron\": -15,\n\t\"zdotaccent\\u0000eogonek\": -15,\n\t\"zdotaccent\\u0000o\": -15,\n\t\"zdotaccent\\u0000oacute\": -15,\n\t\"zdotaccent\\u0000ocircumflex\": -15,\n\t\"zdotaccent\\u0000odieresis\": -15,\n\t\"zdotaccent\\u0000ograve\": -15,\n\t\"zdotaccent\\u0000ohungarumlaut\": -15,\n\t\"zdotaccent\\u0000omacron\": -15,\n\t\"zdotaccent\\u0000oslash\": -15,\n\t\"zdotaccent\\u0000otilde\": -15\n};\nvar HelveticaOblique = {\n\tattributes: attributes$3,\n\tglyphWidths: glyphWidths$3,\n\tkernPairs: kernPairs$3\n};\n\nvar attributes$2 = {\n\tComment: [\n\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Thu May 1 12:49:17 1997\",\n\t\t\"UniqueID 43068\",\n\t\t\"VMusage 43909 54934\"\n\t],\n\tFontName: \"Times-Roman\",\n\tFullName: \"Times Roman\",\n\tFamilyName: \"Times\",\n\tWeight: \"Roman\",\n\tItalicAngle: \"0\",\n\tIsFixedPitch: \"false\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-168 -218 1000 898 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"002.000\",\n\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"662\",\n\tXHeight: \"450\",\n\tAscender: \"683\",\n\tDescender: \"-217\",\n\tStdHW: \"28\",\n\tStdVW: \"84\"\n};\nvar glyphWidths$2 = {\n\tspace: 250,\n\texclam: 333,\n\tquotedbl: 408,\n\tnumbersign: 500,\n\tdollar: 500,\n\tpercent: 833,\n\tampersand: 778,\n\tquoteright: 333,\n\tparenleft: 333,\n\tparenright: 333,\n\tasterisk: 500,\n\tplus: 564,\n\tcomma: 250,\n\thyphen: 333,\n\tperiod: 250,\n\tslash: 278,\n\tzero: 500,\n\tone: 500,\n\ttwo: 500,\n\tthree: 500,\n\tfour: 500,\n\tfive: 500,\n\tsix: 500,\n\tseven: 500,\n\teight: 500,\n\tnine: 500,\n\tcolon: 278,\n\tsemicolon: 278,\n\tless: 564,\n\tequal: 564,\n\tgreater: 564,\n\tquestion: 444,\n\tat: 921,\n\tA: 722,\n\tB: 667,\n\tC: 667,\n\tD: 722,\n\tE: 611,\n\tF: 556,\n\tG: 722,\n\tH: 722,\n\tI: 333,\n\tJ: 389,\n\tK: 722,\n\tL: 611,\n\tM: 889,\n\tN: 722,\n\tO: 722,\n\tP: 556,\n\tQ: 722,\n\tR: 667,\n\tS: 556,\n\tT: 611,\n\tU: 722,\n\tV: 722,\n\tW: 944,\n\tX: 722,\n\tY: 722,\n\tZ: 611,\n\tbracketleft: 333,\n\tbackslash: 278,\n\tbracketright: 333,\n\tasciicircum: 469,\n\tunderscore: 500,\n\tquoteleft: 333,\n\ta: 444,\n\tb: 500,\n\tc: 444,\n\td: 500,\n\te: 444,\n\tf: 333,\n\tg: 500,\n\th: 500,\n\ti: 278,\n\tj: 278,\n\tk: 500,\n\tl: 278,\n\tm: 778,\n\tn: 500,\n\to: 500,\n\tp: 500,\n\tq: 500,\n\tr: 333,\n\ts: 389,\n\tt: 278,\n\tu: 500,\n\tv: 500,\n\tw: 722,\n\tx: 500,\n\ty: 500,\n\tz: 444,\n\tbraceleft: 480,\n\tbar: 200,\n\tbraceright: 480,\n\tasciitilde: 541,\n\texclamdown: 333,\n\tcent: 500,\n\tsterling: 500,\n\tfraction: 167,\n\tyen: 500,\n\tflorin: 500,\n\tsection: 500,\n\tcurrency: 500,\n\tquotesingle: 180,\n\tquotedblleft: 444,\n\tguillemotleft: 500,\n\tguilsinglleft: 333,\n\tguilsinglright: 333,\n\tfi: 556,\n\tfl: 556,\n\tendash: 500,\n\tdagger: 500,\n\tdaggerdbl: 500,\n\tperiodcentered: 250,\n\tparagraph: 453,\n\tbullet: 350,\n\tquotesinglbase: 333,\n\tquotedblbase: 444,\n\tquotedblright: 444,\n\tguillemotright: 500,\n\tellipsis: 1000,\n\tperthousand: 1000,\n\tquestiondown: 444,\n\tgrave: 333,\n\tacute: 333,\n\tcircumflex: 333,\n\ttilde: 333,\n\tmacron: 333,\n\tbreve: 333,\n\tdotaccent: 333,\n\tdieresis: 333,\n\tring: 333,\n\tcedilla: 333,\n\thungarumlaut: 333,\n\togonek: 333,\n\tcaron: 333,\n\temdash: 1000,\n\tAE: 889,\n\tordfeminine: 276,\n\tLslash: 611,\n\tOslash: 722,\n\tOE: 889,\n\tordmasculine: 310,\n\tae: 667,\n\tdotlessi: 278,\n\tlslash: 278,\n\toslash: 500,\n\toe: 722,\n\tgermandbls: 500,\n\tIdieresis: 333,\n\teacute: 444,\n\tabreve: 444,\n\tuhungarumlaut: 500,\n\tecaron: 444,\n\tYdieresis: 722,\n\tdivide: 564,\n\tYacute: 722,\n\tAcircumflex: 722,\n\taacute: 444,\n\tUcircumflex: 722,\n\tyacute: 500,\n\tscommaaccent: 389,\n\tecircumflex: 444,\n\tUring: 722,\n\tUdieresis: 722,\n\taogonek: 444,\n\tUacute: 722,\n\tuogonek: 500,\n\tEdieresis: 611,\n\tDcroat: 722,\n\tcommaaccent: 250,\n\tcopyright: 760,\n\tEmacron: 611,\n\tccaron: 444,\n\taring: 444,\n\tNcommaaccent: 722,\n\tlacute: 278,\n\tagrave: 444,\n\tTcommaaccent: 611,\n\tCacute: 667,\n\tatilde: 444,\n\tEdotaccent: 611,\n\tscaron: 389,\n\tscedilla: 389,\n\tiacute: 278,\n\tlozenge: 471,\n\tRcaron: 667,\n\tGcommaaccent: 722,\n\tucircumflex: 500,\n\tacircumflex: 444,\n\tAmacron: 722,\n\trcaron: 333,\n\tccedilla: 444,\n\tZdotaccent: 611,\n\tThorn: 556,\n\tOmacron: 722,\n\tRacute: 667,\n\tSacute: 556,\n\tdcaron: 588,\n\tUmacron: 722,\n\turing: 500,\n\tthreesuperior: 300,\n\tOgrave: 722,\n\tAgrave: 722,\n\tAbreve: 722,\n\tmultiply: 564,\n\tuacute: 500,\n\tTcaron: 611,\n\tpartialdiff: 476,\n\tydieresis: 500,\n\tNacute: 722,\n\ticircumflex: 278,\n\tEcircumflex: 611,\n\tadieresis: 444,\n\tedieresis: 444,\n\tcacute: 444,\n\tnacute: 500,\n\tumacron: 500,\n\tNcaron: 722,\n\tIacute: 333,\n\tplusminus: 564,\n\tbrokenbar: 200,\n\tregistered: 760,\n\tGbreve: 722,\n\tIdotaccent: 333,\n\tsummation: 600,\n\tEgrave: 611,\n\tracute: 333,\n\tomacron: 500,\n\tZacute: 611,\n\tZcaron: 611,\n\tgreaterequal: 549,\n\tEth: 722,\n\tCcedilla: 667,\n\tlcommaaccent: 278,\n\ttcaron: 326,\n\teogonek: 444,\n\tUogonek: 722,\n\tAacute: 722,\n\tAdieresis: 722,\n\tegrave: 444,\n\tzacute: 444,\n\tiogonek: 278,\n\tOacute: 722,\n\toacute: 500,\n\tamacron: 444,\n\tsacute: 389,\n\tidieresis: 278,\n\tOcircumflex: 722,\n\tUgrave: 722,\n\tDelta: 612,\n\tthorn: 500,\n\ttwosuperior: 300,\n\tOdieresis: 722,\n\tmu: 500,\n\tigrave: 278,\n\tohungarumlaut: 500,\n\tEogonek: 611,\n\tdcroat: 500,\n\tthreequarters: 750,\n\tScedilla: 556,\n\tlcaron: 344,\n\tKcommaaccent: 722,\n\tLacute: 611,\n\ttrademark: 980,\n\tedotaccent: 444,\n\tIgrave: 333,\n\tImacron: 333,\n\tLcaron: 611,\n\tonehalf: 750,\n\tlessequal: 549,\n\tocircumflex: 500,\n\tntilde: 500,\n\tUhungarumlaut: 722,\n\tEacute: 611,\n\temacron: 444,\n\tgbreve: 500,\n\tonequarter: 750,\n\tScaron: 556,\n\tScommaaccent: 556,\n\tOhungarumlaut: 722,\n\tdegree: 400,\n\tograve: 500,\n\tCcaron: 667,\n\tugrave: 500,\n\tradical: 453,\n\tDcaron: 722,\n\trcommaaccent: 333,\n\tNtilde: 722,\n\totilde: 500,\n\tRcommaaccent: 667,\n\tLcommaaccent: 611,\n\tAtilde: 722,\n\tAogonek: 722,\n\tAring: 722,\n\tOtilde: 722,\n\tzdotaccent: 444,\n\tEcaron: 611,\n\tIogonek: 333,\n\tkcommaaccent: 500,\n\tminus: 564,\n\tIcircumflex: 333,\n\tncaron: 500,\n\ttcommaaccent: 278,\n\tlogicalnot: 564,\n\todieresis: 500,\n\tudieresis: 500,\n\tnotequal: 549,\n\tgcommaaccent: 500,\n\teth: 500,\n\tzcaron: 444,\n\tncommaaccent: 500,\n\tonesuperior: 300,\n\timacron: 278,\n\tEuro: 500\n};\nvar kernPairs$2 = {\n\t\"A\\u0000C\": -40,\n\t\"A\\u0000Cacute\": -40,\n\t\"A\\u0000Ccaron\": -40,\n\t\"A\\u0000Ccedilla\": -40,\n\t\"A\\u0000G\": -40,\n\t\"A\\u0000Gbreve\": -40,\n\t\"A\\u0000Gcommaaccent\": -40,\n\t\"A\\u0000O\": -55,\n\t\"A\\u0000Oacute\": -55,\n\t\"A\\u0000Ocircumflex\": -55,\n\t\"A\\u0000Odieresis\": -55,\n\t\"A\\u0000Ograve\": -55,\n\t\"A\\u0000Ohungarumlaut\": -55,\n\t\"A\\u0000Omacron\": -55,\n\t\"A\\u0000Oslash\": -55,\n\t\"A\\u0000Otilde\": -55,\n\t\"A\\u0000Q\": -55,\n\t\"A\\u0000T\": -111,\n\t\"A\\u0000Tcaron\": -111,\n\t\"A\\u0000Tcommaaccent\": -111,\n\t\"A\\u0000U\": -55,\n\t\"A\\u0000Uacute\": -55,\n\t\"A\\u0000Ucircumflex\": -55,\n\t\"A\\u0000Udieresis\": -55,\n\t\"A\\u0000Ugrave\": -55,\n\t\"A\\u0000Uhungarumlaut\": -55,\n\t\"A\\u0000Umacron\": -55,\n\t\"A\\u0000Uogonek\": -55,\n\t\"A\\u0000Uring\": -55,\n\t\"A\\u0000V\": -135,\n\t\"A\\u0000W\": -90,\n\t\"A\\u0000Y\": -105,\n\t\"A\\u0000Yacute\": -105,\n\t\"A\\u0000Ydieresis\": -105,\n\t\"A\\u0000quoteright\": -111,\n\t\"A\\u0000v\": -74,\n\t\"A\\u0000w\": -92,\n\t\"A\\u0000y\": -92,\n\t\"A\\u0000yacute\": -92,\n\t\"A\\u0000ydieresis\": -92,\n\t\"Aacute\\u0000C\": -40,\n\t\"Aacute\\u0000Cacute\": -40,\n\t\"Aacute\\u0000Ccaron\": -40,\n\t\"Aacute\\u0000Ccedilla\": -40,\n\t\"Aacute\\u0000G\": -40,\n\t\"Aacute\\u0000Gbreve\": -40,\n\t\"Aacute\\u0000Gcommaaccent\": -40,\n\t\"Aacute\\u0000O\": -55,\n\t\"Aacute\\u0000Oacute\": -55,\n\t\"Aacute\\u0000Ocircumflex\": -55,\n\t\"Aacute\\u0000Odieresis\": -55,\n\t\"Aacute\\u0000Ograve\": -55,\n\t\"Aacute\\u0000Ohungarumlaut\": -55,\n\t\"Aacute\\u0000Omacron\": -55,\n\t\"Aacute\\u0000Oslash\": -55,\n\t\"Aacute\\u0000Otilde\": -55,\n\t\"Aacute\\u0000Q\": -55,\n\t\"Aacute\\u0000T\": -111,\n\t\"Aacute\\u0000Tcaron\": -111,\n\t\"Aacute\\u0000Tcommaaccent\": -111,\n\t\"Aacute\\u0000U\": -55,\n\t\"Aacute\\u0000Uacute\": -55,\n\t\"Aacute\\u0000Ucircumflex\": -55,\n\t\"Aacute\\u0000Udieresis\": -55,\n\t\"Aacute\\u0000Ugrave\": -55,\n\t\"Aacute\\u0000Uhungarumlaut\": -55,\n\t\"Aacute\\u0000Umacron\": -55,\n\t\"Aacute\\u0000Uogonek\": -55,\n\t\"Aacute\\u0000Uring\": -55,\n\t\"Aacute\\u0000V\": -135,\n\t\"Aacute\\u0000W\": -90,\n\t\"Aacute\\u0000Y\": -105,\n\t\"Aacute\\u0000Yacute\": -105,\n\t\"Aacute\\u0000Ydieresis\": -105,\n\t\"Aacute\\u0000quoteright\": -111,\n\t\"Aacute\\u0000v\": -74,\n\t\"Aacute\\u0000w\": -92,\n\t\"Aacute\\u0000y\": -92,\n\t\"Aacute\\u0000yacute\": -92,\n\t\"Aacute\\u0000ydieresis\": -92,\n\t\"Abreve\\u0000C\": -40,\n\t\"Abreve\\u0000Cacute\": -40,\n\t\"Abreve\\u0000Ccaron\": -40,\n\t\"Abreve\\u0000Ccedilla\": -40,\n\t\"Abreve\\u0000G\": -40,\n\t\"Abreve\\u0000Gbreve\": -40,\n\t\"Abreve\\u0000Gcommaaccent\": -40,\n\t\"Abreve\\u0000O\": -55,\n\t\"Abreve\\u0000Oacute\": -55,\n\t\"Abreve\\u0000Ocircumflex\": -55,\n\t\"Abreve\\u0000Odieresis\": -55,\n\t\"Abreve\\u0000Ograve\": -55,\n\t\"Abreve\\u0000Ohungarumlaut\": -55,\n\t\"Abreve\\u0000Omacron\": -55,\n\t\"Abreve\\u0000Oslash\": -55,\n\t\"Abreve\\u0000Otilde\": -55,\n\t\"Abreve\\u0000Q\": -55,\n\t\"Abreve\\u0000T\": -111,\n\t\"Abreve\\u0000Tcaron\": -111,\n\t\"Abreve\\u0000Tcommaaccent\": -111,\n\t\"Abreve\\u0000U\": -55,\n\t\"Abreve\\u0000Uacute\": -55,\n\t\"Abreve\\u0000Ucircumflex\": -55,\n\t\"Abreve\\u0000Udieresis\": -55,\n\t\"Abreve\\u0000Ugrave\": -55,\n\t\"Abreve\\u0000Uhungarumlaut\": -55,\n\t\"Abreve\\u0000Umacron\": -55,\n\t\"Abreve\\u0000Uogonek\": -55,\n\t\"Abreve\\u0000Uring\": -55,\n\t\"Abreve\\u0000V\": -135,\n\t\"Abreve\\u0000W\": -90,\n\t\"Abreve\\u0000Y\": -105,\n\t\"Abreve\\u0000Yacute\": -105,\n\t\"Abreve\\u0000Ydieresis\": -105,\n\t\"Abreve\\u0000quoteright\": -111,\n\t\"Abreve\\u0000v\": -74,\n\t\"Abreve\\u0000w\": -92,\n\t\"Abreve\\u0000y\": -92,\n\t\"Abreve\\u0000yacute\": -92,\n\t\"Abreve\\u0000ydieresis\": -92,\n\t\"Acircumflex\\u0000C\": -40,\n\t\"Acircumflex\\u0000Cacute\": -40,\n\t\"Acircumflex\\u0000Ccaron\": -40,\n\t\"Acircumflex\\u0000Ccedilla\": -40,\n\t\"Acircumflex\\u0000G\": -40,\n\t\"Acircumflex\\u0000Gbreve\": -40,\n\t\"Acircumflex\\u0000Gcommaaccent\": -40,\n\t\"Acircumflex\\u0000O\": -55,\n\t\"Acircumflex\\u0000Oacute\": -55,\n\t\"Acircumflex\\u0000Ocircumflex\": -55,\n\t\"Acircumflex\\u0000Odieresis\": -55,\n\t\"Acircumflex\\u0000Ograve\": -55,\n\t\"Acircumflex\\u0000Ohungarumlaut\": -55,\n\t\"Acircumflex\\u0000Omacron\": -55,\n\t\"Acircumflex\\u0000Oslash\": -55,\n\t\"Acircumflex\\u0000Otilde\": -55,\n\t\"Acircumflex\\u0000Q\": -55,\n\t\"Acircumflex\\u0000T\": -111,\n\t\"Acircumflex\\u0000Tcaron\": -111,\n\t\"Acircumflex\\u0000Tcommaaccent\": -111,\n\t\"Acircumflex\\u0000U\": -55,\n\t\"Acircumflex\\u0000Uacute\": -55,\n\t\"Acircumflex\\u0000Ucircumflex\": -55,\n\t\"Acircumflex\\u0000Udieresis\": -55,\n\t\"Acircumflex\\u0000Ugrave\": -55,\n\t\"Acircumflex\\u0000Uhungarumlaut\": -55,\n\t\"Acircumflex\\u0000Umacron\": -55,\n\t\"Acircumflex\\u0000Uogonek\": -55,\n\t\"Acircumflex\\u0000Uring\": -55,\n\t\"Acircumflex\\u0000V\": -135,\n\t\"Acircumflex\\u0000W\": -90,\n\t\"Acircumflex\\u0000Y\": -105,\n\t\"Acircumflex\\u0000Yacute\": -105,\n\t\"Acircumflex\\u0000Ydieresis\": -105,\n\t\"Acircumflex\\u0000quoteright\": -111,\n\t\"Acircumflex\\u0000v\": -74,\n\t\"Acircumflex\\u0000w\": -92,\n\t\"Acircumflex\\u0000y\": -92,\n\t\"Acircumflex\\u0000yacute\": -92,\n\t\"Acircumflex\\u0000ydieresis\": -92,\n\t\"Adieresis\\u0000C\": -40,\n\t\"Adieresis\\u0000Cacute\": -40,\n\t\"Adieresis\\u0000Ccaron\": -40,\n\t\"Adieresis\\u0000Ccedilla\": -40,\n\t\"Adieresis\\u0000G\": -40,\n\t\"Adieresis\\u0000Gbreve\": -40,\n\t\"Adieresis\\u0000Gcommaaccent\": -40,\n\t\"Adieresis\\u0000O\": -55,\n\t\"Adieresis\\u0000Oacute\": -55,\n\t\"Adieresis\\u0000Ocircumflex\": -55,\n\t\"Adieresis\\u0000Odieresis\": -55,\n\t\"Adieresis\\u0000Ograve\": -55,\n\t\"Adieresis\\u0000Ohungarumlaut\": -55,\n\t\"Adieresis\\u0000Omacron\": -55,\n\t\"Adieresis\\u0000Oslash\": -55,\n\t\"Adieresis\\u0000Otilde\": -55,\n\t\"Adieresis\\u0000Q\": -55,\n\t\"Adieresis\\u0000T\": -111,\n\t\"Adieresis\\u0000Tcaron\": -111,\n\t\"Adieresis\\u0000Tcommaaccent\": -111,\n\t\"Adieresis\\u0000U\": -55,\n\t\"Adieresis\\u0000Uacute\": -55,\n\t\"Adieresis\\u0000Ucircumflex\": -55,\n\t\"Adieresis\\u0000Udieresis\": -55,\n\t\"Adieresis\\u0000Ugrave\": -55,\n\t\"Adieresis\\u0000Uhungarumlaut\": -55,\n\t\"Adieresis\\u0000Umacron\": -55,\n\t\"Adieresis\\u0000Uogonek\": -55,\n\t\"Adieresis\\u0000Uring\": -55,\n\t\"Adieresis\\u0000V\": -135,\n\t\"Adieresis\\u0000W\": -90,\n\t\"Adieresis\\u0000Y\": -105,\n\t\"Adieresis\\u0000Yacute\": -105,\n\t\"Adieresis\\u0000Ydieresis\": -105,\n\t\"Adieresis\\u0000quoteright\": -111,\n\t\"Adieresis\\u0000v\": -74,\n\t\"Adieresis\\u0000w\": -92,\n\t\"Adieresis\\u0000y\": -92,\n\t\"Adieresis\\u0000yacute\": -92,\n\t\"Adieresis\\u0000ydieresis\": -92,\n\t\"Agrave\\u0000C\": -40,\n\t\"Agrave\\u0000Cacute\": -40,\n\t\"Agrave\\u0000Ccaron\": -40,\n\t\"Agrave\\u0000Ccedilla\": -40,\n\t\"Agrave\\u0000G\": -40,\n\t\"Agrave\\u0000Gbreve\": -40,\n\t\"Agrave\\u0000Gcommaaccent\": -40,\n\t\"Agrave\\u0000O\": -55,\n\t\"Agrave\\u0000Oacute\": -55,\n\t\"Agrave\\u0000Ocircumflex\": -55,\n\t\"Agrave\\u0000Odieresis\": -55,\n\t\"Agrave\\u0000Ograve\": -55,\n\t\"Agrave\\u0000Ohungarumlaut\": -55,\n\t\"Agrave\\u0000Omacron\": -55,\n\t\"Agrave\\u0000Oslash\": -55,\n\t\"Agrave\\u0000Otilde\": -55,\n\t\"Agrave\\u0000Q\": -55,\n\t\"Agrave\\u0000T\": -111,\n\t\"Agrave\\u0000Tcaron\": -111,\n\t\"Agrave\\u0000Tcommaaccent\": -111,\n\t\"Agrave\\u0000U\": -55,\n\t\"Agrave\\u0000Uacute\": -55,\n\t\"Agrave\\u0000Ucircumflex\": -55,\n\t\"Agrave\\u0000Udieresis\": -55,\n\t\"Agrave\\u0000Ugrave\": -55,\n\t\"Agrave\\u0000Uhungarumlaut\": -55,\n\t\"Agrave\\u0000Umacron\": -55,\n\t\"Agrave\\u0000Uogonek\": -55,\n\t\"Agrave\\u0000Uring\": -55,\n\t\"Agrave\\u0000V\": -135,\n\t\"Agrave\\u0000W\": -90,\n\t\"Agrave\\u0000Y\": -105,\n\t\"Agrave\\u0000Yacute\": -105,\n\t\"Agrave\\u0000Ydieresis\": -105,\n\t\"Agrave\\u0000quoteright\": -111,\n\t\"Agrave\\u0000v\": -74,\n\t\"Agrave\\u0000w\": -92,\n\t\"Agrave\\u0000y\": -92,\n\t\"Agrave\\u0000yacute\": -92,\n\t\"Agrave\\u0000ydieresis\": -92,\n\t\"Amacron\\u0000C\": -40,\n\t\"Amacron\\u0000Cacute\": -40,\n\t\"Amacron\\u0000Ccaron\": -40,\n\t\"Amacron\\u0000Ccedilla\": -40,\n\t\"Amacron\\u0000G\": -40,\n\t\"Amacron\\u0000Gbreve\": -40,\n\t\"Amacron\\u0000Gcommaaccent\": -40,\n\t\"Amacron\\u0000O\": -55,\n\t\"Amacron\\u0000Oacute\": -55,\n\t\"Amacron\\u0000Ocircumflex\": -55,\n\t\"Amacron\\u0000Odieresis\": -55,\n\t\"Amacron\\u0000Ograve\": -55,\n\t\"Amacron\\u0000Ohungarumlaut\": -55,\n\t\"Amacron\\u0000Omacron\": -55,\n\t\"Amacron\\u0000Oslash\": -55,\n\t\"Amacron\\u0000Otilde\": -55,\n\t\"Amacron\\u0000Q\": -55,\n\t\"Amacron\\u0000T\": -111,\n\t\"Amacron\\u0000Tcaron\": -111,\n\t\"Amacron\\u0000Tcommaaccent\": -111,\n\t\"Amacron\\u0000U\": -55,\n\t\"Amacron\\u0000Uacute\": -55,\n\t\"Amacron\\u0000Ucircumflex\": -55,\n\t\"Amacron\\u0000Udieresis\": -55,\n\t\"Amacron\\u0000Ugrave\": -55,\n\t\"Amacron\\u0000Uhungarumlaut\": -55,\n\t\"Amacron\\u0000Umacron\": -55,\n\t\"Amacron\\u0000Uogonek\": -55,\n\t\"Amacron\\u0000Uring\": -55,\n\t\"Amacron\\u0000V\": -135,\n\t\"Amacron\\u0000W\": -90,\n\t\"Amacron\\u0000Y\": -105,\n\t\"Amacron\\u0000Yacute\": -105,\n\t\"Amacron\\u0000Ydieresis\": -105,\n\t\"Amacron\\u0000quoteright\": -111,\n\t\"Amacron\\u0000v\": -74,\n\t\"Amacron\\u0000w\": -92,\n\t\"Amacron\\u0000y\": -92,\n\t\"Amacron\\u0000yacute\": -92,\n\t\"Amacron\\u0000ydieresis\": -92,\n\t\"Aogonek\\u0000C\": -40,\n\t\"Aogonek\\u0000Cacute\": -40,\n\t\"Aogonek\\u0000Ccaron\": -40,\n\t\"Aogonek\\u0000Ccedilla\": -40,\n\t\"Aogonek\\u0000G\": -40,\n\t\"Aogonek\\u0000Gbreve\": -40,\n\t\"Aogonek\\u0000Gcommaaccent\": -40,\n\t\"Aogonek\\u0000O\": -55,\n\t\"Aogonek\\u0000Oacute\": -55,\n\t\"Aogonek\\u0000Ocircumflex\": -55,\n\t\"Aogonek\\u0000Odieresis\": -55,\n\t\"Aogonek\\u0000Ograve\": -55,\n\t\"Aogonek\\u0000Ohungarumlaut\": -55,\n\t\"Aogonek\\u0000Omacron\": -55,\n\t\"Aogonek\\u0000Oslash\": -55,\n\t\"Aogonek\\u0000Otilde\": -55,\n\t\"Aogonek\\u0000Q\": -55,\n\t\"Aogonek\\u0000T\": -111,\n\t\"Aogonek\\u0000Tcaron\": -111,\n\t\"Aogonek\\u0000Tcommaaccent\": -111,\n\t\"Aogonek\\u0000U\": -55,\n\t\"Aogonek\\u0000Uacute\": -55,\n\t\"Aogonek\\u0000Ucircumflex\": -55,\n\t\"Aogonek\\u0000Udieresis\": -55,\n\t\"Aogonek\\u0000Ugrave\": -55,\n\t\"Aogonek\\u0000Uhungarumlaut\": -55,\n\t\"Aogonek\\u0000Umacron\": -55,\n\t\"Aogonek\\u0000Uogonek\": -55,\n\t\"Aogonek\\u0000Uring\": -55,\n\t\"Aogonek\\u0000V\": -135,\n\t\"Aogonek\\u0000W\": -90,\n\t\"Aogonek\\u0000Y\": -105,\n\t\"Aogonek\\u0000Yacute\": -105,\n\t\"Aogonek\\u0000Ydieresis\": -105,\n\t\"Aogonek\\u0000quoteright\": -111,\n\t\"Aogonek\\u0000v\": -74,\n\t\"Aogonek\\u0000w\": -52,\n\t\"Aogonek\\u0000y\": -52,\n\t\"Aogonek\\u0000yacute\": -52,\n\t\"Aogonek\\u0000ydieresis\": -52,\n\t\"Aring\\u0000C\": -40,\n\t\"Aring\\u0000Cacute\": -40,\n\t\"Aring\\u0000Ccaron\": -40,\n\t\"Aring\\u0000Ccedilla\": -40,\n\t\"Aring\\u0000G\": -40,\n\t\"Aring\\u0000Gbreve\": -40,\n\t\"Aring\\u0000Gcommaaccent\": -40,\n\t\"Aring\\u0000O\": -55,\n\t\"Aring\\u0000Oacute\": -55,\n\t\"Aring\\u0000Ocircumflex\": -55,\n\t\"Aring\\u0000Odieresis\": -55,\n\t\"Aring\\u0000Ograve\": -55,\n\t\"Aring\\u0000Ohungarumlaut\": -55,\n\t\"Aring\\u0000Omacron\": -55,\n\t\"Aring\\u0000Oslash\": -55,\n\t\"Aring\\u0000Otilde\": -55,\n\t\"Aring\\u0000Q\": -55,\n\t\"Aring\\u0000T\": -111,\n\t\"Aring\\u0000Tcaron\": -111,\n\t\"Aring\\u0000Tcommaaccent\": -111,\n\t\"Aring\\u0000U\": -55,\n\t\"Aring\\u0000Uacute\": -55,\n\t\"Aring\\u0000Ucircumflex\": -55,\n\t\"Aring\\u0000Udieresis\": -55,\n\t\"Aring\\u0000Ugrave\": -55,\n\t\"Aring\\u0000Uhungarumlaut\": -55,\n\t\"Aring\\u0000Umacron\": -55,\n\t\"Aring\\u0000Uogonek\": -55,\n\t\"Aring\\u0000Uring\": -55,\n\t\"Aring\\u0000V\": -135,\n\t\"Aring\\u0000W\": -90,\n\t\"Aring\\u0000Y\": -105,\n\t\"Aring\\u0000Yacute\": -105,\n\t\"Aring\\u0000Ydieresis\": -105,\n\t\"Aring\\u0000quoteright\": -111,\n\t\"Aring\\u0000v\": -74,\n\t\"Aring\\u0000w\": -92,\n\t\"Aring\\u0000y\": -92,\n\t\"Aring\\u0000yacute\": -92,\n\t\"Aring\\u0000ydieresis\": -92,\n\t\"Atilde\\u0000C\": -40,\n\t\"Atilde\\u0000Cacute\": -40,\n\t\"Atilde\\u0000Ccaron\": -40,\n\t\"Atilde\\u0000Ccedilla\": -40,\n\t\"Atilde\\u0000G\": -40,\n\t\"Atilde\\u0000Gbreve\": -40,\n\t\"Atilde\\u0000Gcommaaccent\": -40,\n\t\"Atilde\\u0000O\": -55,\n\t\"Atilde\\u0000Oacute\": -55,\n\t\"Atilde\\u0000Ocircumflex\": -55,\n\t\"Atilde\\u0000Odieresis\": -55,\n\t\"Atilde\\u0000Ograve\": -55,\n\t\"Atilde\\u0000Ohungarumlaut\": -55,\n\t\"Atilde\\u0000Omacron\": -55,\n\t\"Atilde\\u0000Oslash\": -55,\n\t\"Atilde\\u0000Otilde\": -55,\n\t\"Atilde\\u0000Q\": -55,\n\t\"Atilde\\u0000T\": -111,\n\t\"Atilde\\u0000Tcaron\": -111,\n\t\"Atilde\\u0000Tcommaaccent\": -111,\n\t\"Atilde\\u0000U\": -55,\n\t\"Atilde\\u0000Uacute\": -55,\n\t\"Atilde\\u0000Ucircumflex\": -55,\n\t\"Atilde\\u0000Udieresis\": -55,\n\t\"Atilde\\u0000Ugrave\": -55,\n\t\"Atilde\\u0000Uhungarumlaut\": -55,\n\t\"Atilde\\u0000Umacron\": -55,\n\t\"Atilde\\u0000Uogonek\": -55,\n\t\"Atilde\\u0000Uring\": -55,\n\t\"Atilde\\u0000V\": -135,\n\t\"Atilde\\u0000W\": -90,\n\t\"Atilde\\u0000Y\": -105,\n\t\"Atilde\\u0000Yacute\": -105,\n\t\"Atilde\\u0000Ydieresis\": -105,\n\t\"Atilde\\u0000quoteright\": -111,\n\t\"Atilde\\u0000v\": -74,\n\t\"Atilde\\u0000w\": -92,\n\t\"Atilde\\u0000y\": -92,\n\t\"Atilde\\u0000yacute\": -92,\n\t\"Atilde\\u0000ydieresis\": -92,\n\t\"B\\u0000A\": -35,\n\t\"B\\u0000Aacute\": -35,\n\t\"B\\u0000Abreve\": -35,\n\t\"B\\u0000Acircumflex\": -35,\n\t\"B\\u0000Adieresis\": -35,\n\t\"B\\u0000Agrave\": -35,\n\t\"B\\u0000Amacron\": -35,\n\t\"B\\u0000Aogonek\": -35,\n\t\"B\\u0000Aring\": -35,\n\t\"B\\u0000Atilde\": -35,\n\t\"B\\u0000U\": -10,\n\t\"B\\u0000Uacute\": -10,\n\t\"B\\u0000Ucircumflex\": -10,\n\t\"B\\u0000Udieresis\": -10,\n\t\"B\\u0000Ugrave\": -10,\n\t\"B\\u0000Uhungarumlaut\": -10,\n\t\"B\\u0000Umacron\": -10,\n\t\"B\\u0000Uogonek\": -10,\n\t\"B\\u0000Uring\": -10,\n\t\"D\\u0000A\": -40,\n\t\"D\\u0000Aacute\": -40,\n\t\"D\\u0000Abreve\": -40,\n\t\"D\\u0000Acircumflex\": -40,\n\t\"D\\u0000Adieresis\": -40,\n\t\"D\\u0000Agrave\": -40,\n\t\"D\\u0000Amacron\": -40,\n\t\"D\\u0000Aogonek\": -40,\n\t\"D\\u0000Aring\": -40,\n\t\"D\\u0000Atilde\": -40,\n\t\"D\\u0000V\": -40,\n\t\"D\\u0000W\": -30,\n\t\"D\\u0000Y\": -55,\n\t\"D\\u0000Yacute\": -55,\n\t\"D\\u0000Ydieresis\": -55,\n\t\"Dcaron\\u0000A\": -40,\n\t\"Dcaron\\u0000Aacute\": -40,\n\t\"Dcaron\\u0000Abreve\": -40,\n\t\"Dcaron\\u0000Acircumflex\": -40,\n\t\"Dcaron\\u0000Adieresis\": -40,\n\t\"Dcaron\\u0000Agrave\": -40,\n\t\"Dcaron\\u0000Amacron\": -40,\n\t\"Dcaron\\u0000Aogonek\": -40,\n\t\"Dcaron\\u0000Aring\": -40,\n\t\"Dcaron\\u0000Atilde\": -40,\n\t\"Dcaron\\u0000V\": -40,\n\t\"Dcaron\\u0000W\": -30,\n\t\"Dcaron\\u0000Y\": -55,\n\t\"Dcaron\\u0000Yacute\": -55,\n\t\"Dcaron\\u0000Ydieresis\": -55,\n\t\"Dcroat\\u0000A\": -40,\n\t\"Dcroat\\u0000Aacute\": -40,\n\t\"Dcroat\\u0000Abreve\": -40,\n\t\"Dcroat\\u0000Acircumflex\": -40,\n\t\"Dcroat\\u0000Adieresis\": -40,\n\t\"Dcroat\\u0000Agrave\": -40,\n\t\"Dcroat\\u0000Amacron\": -40,\n\t\"Dcroat\\u0000Aogonek\": -40,\n\t\"Dcroat\\u0000Aring\": -40,\n\t\"Dcroat\\u0000Atilde\": -40,\n\t\"Dcroat\\u0000V\": -40,\n\t\"Dcroat\\u0000W\": -30,\n\t\"Dcroat\\u0000Y\": -55,\n\t\"Dcroat\\u0000Yacute\": -55,\n\t\"Dcroat\\u0000Ydieresis\": -55,\n\t\"F\\u0000A\": -74,\n\t\"F\\u0000Aacute\": -74,\n\t\"F\\u0000Abreve\": -74,\n\t\"F\\u0000Acircumflex\": -74,\n\t\"F\\u0000Adieresis\": -74,\n\t\"F\\u0000Agrave\": -74,\n\t\"F\\u0000Amacron\": -74,\n\t\"F\\u0000Aogonek\": -74,\n\t\"F\\u0000Aring\": -74,\n\t\"F\\u0000Atilde\": -74,\n\t\"F\\u0000a\": -15,\n\t\"F\\u0000aacute\": -15,\n\t\"F\\u0000abreve\": -15,\n\t\"F\\u0000acircumflex\": -15,\n\t\"F\\u0000adieresis\": -15,\n\t\"F\\u0000agrave\": -15,\n\t\"F\\u0000amacron\": -15,\n\t\"F\\u0000aogonek\": -15,\n\t\"F\\u0000aring\": -15,\n\t\"F\\u0000atilde\": -15,\n\t\"F\\u0000comma\": -80,\n\t\"F\\u0000o\": -15,\n\t\"F\\u0000oacute\": -15,\n\t\"F\\u0000ocircumflex\": -15,\n\t\"F\\u0000odieresis\": -15,\n\t\"F\\u0000ograve\": -15,\n\t\"F\\u0000ohungarumlaut\": -15,\n\t\"F\\u0000omacron\": -15,\n\t\"F\\u0000oslash\": -15,\n\t\"F\\u0000otilde\": -15,\n\t\"F\\u0000period\": -80,\n\t\"J\\u0000A\": -60,\n\t\"J\\u0000Aacute\": -60,\n\t\"J\\u0000Abreve\": -60,\n\t\"J\\u0000Acircumflex\": -60,\n\t\"J\\u0000Adieresis\": -60,\n\t\"J\\u0000Agrave\": -60,\n\t\"J\\u0000Amacron\": -60,\n\t\"J\\u0000Aogonek\": -60,\n\t\"J\\u0000Aring\": -60,\n\t\"J\\u0000Atilde\": -60,\n\t\"K\\u0000O\": -30,\n\t\"K\\u0000Oacute\": -30,\n\t\"K\\u0000Ocircumflex\": -30,\n\t\"K\\u0000Odieresis\": -30,\n\t\"K\\u0000Ograve\": -30,\n\t\"K\\u0000Ohungarumlaut\": -30,\n\t\"K\\u0000Omacron\": -30,\n\t\"K\\u0000Oslash\": -30,\n\t\"K\\u0000Otilde\": -30,\n\t\"K\\u0000e\": -25,\n\t\"K\\u0000eacute\": -25,\n\t\"K\\u0000ecaron\": -25,\n\t\"K\\u0000ecircumflex\": -25,\n\t\"K\\u0000edieresis\": -25,\n\t\"K\\u0000edotaccent\": -25,\n\t\"K\\u0000egrave\": -25,\n\t\"K\\u0000emacron\": -25,\n\t\"K\\u0000eogonek\": -25,\n\t\"K\\u0000o\": -35,\n\t\"K\\u0000oacute\": -35,\n\t\"K\\u0000ocircumflex\": -35,\n\t\"K\\u0000odieresis\": -35,\n\t\"K\\u0000ograve\": -35,\n\t\"K\\u0000ohungarumlaut\": -35,\n\t\"K\\u0000omacron\": -35,\n\t\"K\\u0000oslash\": -35,\n\t\"K\\u0000otilde\": -35,\n\t\"K\\u0000u\": -15,\n\t\"K\\u0000uacute\": -15,\n\t\"K\\u0000ucircumflex\": -15,\n\t\"K\\u0000udieresis\": -15,\n\t\"K\\u0000ugrave\": -15,\n\t\"K\\u0000uhungarumlaut\": -15,\n\t\"K\\u0000umacron\": -15,\n\t\"K\\u0000uogonek\": -15,\n\t\"K\\u0000uring\": -15,\n\t\"K\\u0000y\": -25,\n\t\"K\\u0000yacute\": -25,\n\t\"K\\u0000ydieresis\": -25,\n\t\"Kcommaaccent\\u0000O\": -30,\n\t\"Kcommaaccent\\u0000Oacute\": -30,\n\t\"Kcommaaccent\\u0000Ocircumflex\": -30,\n\t\"Kcommaaccent\\u0000Odieresis\": -30,\n\t\"Kcommaaccent\\u0000Ograve\": -30,\n\t\"Kcommaaccent\\u0000Ohungarumlaut\": -30,\n\t\"Kcommaaccent\\u0000Omacron\": -30,\n\t\"Kcommaaccent\\u0000Oslash\": -30,\n\t\"Kcommaaccent\\u0000Otilde\": -30,\n\t\"Kcommaaccent\\u0000e\": -25,\n\t\"Kcommaaccent\\u0000eacute\": -25,\n\t\"Kcommaaccent\\u0000ecaron\": -25,\n\t\"Kcommaaccent\\u0000ecircumflex\": -25,\n\t\"Kcommaaccent\\u0000edieresis\": -25,\n\t\"Kcommaaccent\\u0000edotaccent\": -25,\n\t\"Kcommaaccent\\u0000egrave\": -25,\n\t\"Kcommaaccent\\u0000emacron\": -25,\n\t\"Kcommaaccent\\u0000eogonek\": -25,\n\t\"Kcommaaccent\\u0000o\": -35,\n\t\"Kcommaaccent\\u0000oacute\": -35,\n\t\"Kcommaaccent\\u0000ocircumflex\": -35,\n\t\"Kcommaaccent\\u0000odieresis\": -35,\n\t\"Kcommaaccent\\u0000ograve\": -35,\n\t\"Kcommaaccent\\u0000ohungarumlaut\": -35,\n\t\"Kcommaaccent\\u0000omacron\": -35,\n\t\"Kcommaaccent\\u0000oslash\": -35,\n\t\"Kcommaaccent\\u0000otilde\": -35,\n\t\"Kcommaaccent\\u0000u\": -15,\n\t\"Kcommaaccent\\u0000uacute\": -15,\n\t\"Kcommaaccent\\u0000ucircumflex\": -15,\n\t\"Kcommaaccent\\u0000udieresis\": -15,\n\t\"Kcommaaccent\\u0000ugrave\": -15,\n\t\"Kcommaaccent\\u0000uhungarumlaut\": -15,\n\t\"Kcommaaccent\\u0000umacron\": -15,\n\t\"Kcommaaccent\\u0000uogonek\": -15,\n\t\"Kcommaaccent\\u0000uring\": -15,\n\t\"Kcommaaccent\\u0000y\": -25,\n\t\"Kcommaaccent\\u0000yacute\": -25,\n\t\"Kcommaaccent\\u0000ydieresis\": -25,\n\t\"L\\u0000T\": -92,\n\t\"L\\u0000Tcaron\": -92,\n\t\"L\\u0000Tcommaaccent\": -92,\n\t\"L\\u0000V\": -100,\n\t\"L\\u0000W\": -74,\n\t\"L\\u0000Y\": -100,\n\t\"L\\u0000Yacute\": -100,\n\t\"L\\u0000Ydieresis\": -100,\n\t\"L\\u0000quoteright\": -92,\n\t\"L\\u0000y\": -55,\n\t\"L\\u0000yacute\": -55,\n\t\"L\\u0000ydieresis\": -55,\n\t\"Lacute\\u0000T\": -92,\n\t\"Lacute\\u0000Tcaron\": -92,\n\t\"Lacute\\u0000Tcommaaccent\": -92,\n\t\"Lacute\\u0000V\": -100,\n\t\"Lacute\\u0000W\": -74,\n\t\"Lacute\\u0000Y\": -100,\n\t\"Lacute\\u0000Yacute\": -100,\n\t\"Lacute\\u0000Ydieresis\": -100,\n\t\"Lacute\\u0000quoteright\": -92,\n\t\"Lacute\\u0000y\": -55,\n\t\"Lacute\\u0000yacute\": -55,\n\t\"Lacute\\u0000ydieresis\": -55,\n\t\"Lcaron\\u0000quoteright\": -92,\n\t\"Lcaron\\u0000y\": -55,\n\t\"Lcaron\\u0000yacute\": -55,\n\t\"Lcaron\\u0000ydieresis\": -55,\n\t\"Lcommaaccent\\u0000T\": -92,\n\t\"Lcommaaccent\\u0000Tcaron\": -92,\n\t\"Lcommaaccent\\u0000Tcommaaccent\": -92,\n\t\"Lcommaaccent\\u0000V\": -100,\n\t\"Lcommaaccent\\u0000W\": -74,\n\t\"Lcommaaccent\\u0000Y\": -100,\n\t\"Lcommaaccent\\u0000Yacute\": -100,\n\t\"Lcommaaccent\\u0000Ydieresis\": -100,\n\t\"Lcommaaccent\\u0000quoteright\": -92,\n\t\"Lcommaaccent\\u0000y\": -55,\n\t\"Lcommaaccent\\u0000yacute\": -55,\n\t\"Lcommaaccent\\u0000ydieresis\": -55,\n\t\"Lslash\\u0000T\": -92,\n\t\"Lslash\\u0000Tcaron\": -92,\n\t\"Lslash\\u0000Tcommaaccent\": -92,\n\t\"Lslash\\u0000V\": -100,\n\t\"Lslash\\u0000W\": -74,\n\t\"Lslash\\u0000Y\": -100,\n\t\"Lslash\\u0000Yacute\": -100,\n\t\"Lslash\\u0000Ydieresis\": -100,\n\t\"Lslash\\u0000quoteright\": -92,\n\t\"Lslash\\u0000y\": -55,\n\t\"Lslash\\u0000yacute\": -55,\n\t\"Lslash\\u0000ydieresis\": -55,\n\t\"N\\u0000A\": -35,\n\t\"N\\u0000Aacute\": -35,\n\t\"N\\u0000Abreve\": -35,\n\t\"N\\u0000Acircumflex\": -35,\n\t\"N\\u0000Adieresis\": -35,\n\t\"N\\u0000Agrave\": -35,\n\t\"N\\u0000Amacron\": -35,\n\t\"N\\u0000Aogonek\": -35,\n\t\"N\\u0000Aring\": -35,\n\t\"N\\u0000Atilde\": -35,\n\t\"Nacute\\u0000A\": -35,\n\t\"Nacute\\u0000Aacute\": -35,\n\t\"Nacute\\u0000Abreve\": -35,\n\t\"Nacute\\u0000Acircumflex\": -35,\n\t\"Nacute\\u0000Adieresis\": -35,\n\t\"Nacute\\u0000Agrave\": -35,\n\t\"Nacute\\u0000Amacron\": -35,\n\t\"Nacute\\u0000Aogonek\": -35,\n\t\"Nacute\\u0000Aring\": -35,\n\t\"Nacute\\u0000Atilde\": -35,\n\t\"Ncaron\\u0000A\": -35,\n\t\"Ncaron\\u0000Aacute\": -35,\n\t\"Ncaron\\u0000Abreve\": -35,\n\t\"Ncaron\\u0000Acircumflex\": -35,\n\t\"Ncaron\\u0000Adieresis\": -35,\n\t\"Ncaron\\u0000Agrave\": -35,\n\t\"Ncaron\\u0000Amacron\": -35,\n\t\"Ncaron\\u0000Aogonek\": -35,\n\t\"Ncaron\\u0000Aring\": -35,\n\t\"Ncaron\\u0000Atilde\": -35,\n\t\"Ncommaaccent\\u0000A\": -35,\n\t\"Ncommaaccent\\u0000Aacute\": -35,\n\t\"Ncommaaccent\\u0000Abreve\": -35,\n\t\"Ncommaaccent\\u0000Acircumflex\": -35,\n\t\"Ncommaaccent\\u0000Adieresis\": -35,\n\t\"Ncommaaccent\\u0000Agrave\": -35,\n\t\"Ncommaaccent\\u0000Amacron\": -35,\n\t\"Ncommaaccent\\u0000Aogonek\": -35,\n\t\"Ncommaaccent\\u0000Aring\": -35,\n\t\"Ncommaaccent\\u0000Atilde\": -35,\n\t\"Ntilde\\u0000A\": -35,\n\t\"Ntilde\\u0000Aacute\": -35,\n\t\"Ntilde\\u0000Abreve\": -35,\n\t\"Ntilde\\u0000Acircumflex\": -35,\n\t\"Ntilde\\u0000Adieresis\": -35,\n\t\"Ntilde\\u0000Agrave\": -35,\n\t\"Ntilde\\u0000Amacron\": -35,\n\t\"Ntilde\\u0000Aogonek\": -35,\n\t\"Ntilde\\u0000Aring\": -35,\n\t\"Ntilde\\u0000Atilde\": -35,\n\t\"O\\u0000A\": -35,\n\t\"O\\u0000Aacute\": -35,\n\t\"O\\u0000Abreve\": -35,\n\t\"O\\u0000Acircumflex\": -35,\n\t\"O\\u0000Adieresis\": -35,\n\t\"O\\u0000Agrave\": -35,\n\t\"O\\u0000Amacron\": -35,\n\t\"O\\u0000Aogonek\": -35,\n\t\"O\\u0000Aring\": -35,\n\t\"O\\u0000Atilde\": -35,\n\t\"O\\u0000T\": -40,\n\t\"O\\u0000Tcaron\": -40,\n\t\"O\\u0000Tcommaaccent\": -40,\n\t\"O\\u0000V\": -50,\n\t\"O\\u0000W\": -35,\n\t\"O\\u0000X\": -40,\n\t\"O\\u0000Y\": -50,\n\t\"O\\u0000Yacute\": -50,\n\t\"O\\u0000Ydieresis\": -50,\n\t\"Oacute\\u0000A\": -35,\n\t\"Oacute\\u0000Aacute\": -35,\n\t\"Oacute\\u0000Abreve\": -35,\n\t\"Oacute\\u0000Acircumflex\": -35,\n\t\"Oacute\\u0000Adieresis\": -35,\n\t\"Oacute\\u0000Agrave\": -35,\n\t\"Oacute\\u0000Amacron\": -35,\n\t\"Oacute\\u0000Aogonek\": -35,\n\t\"Oacute\\u0000Aring\": -35,\n\t\"Oacute\\u0000Atilde\": -35,\n\t\"Oacute\\u0000T\": -40,\n\t\"Oacute\\u0000Tcaron\": -40,\n\t\"Oacute\\u0000Tcommaaccent\": -40,\n\t\"Oacute\\u0000V\": -50,\n\t\"Oacute\\u0000W\": -35,\n\t\"Oacute\\u0000X\": -40,\n\t\"Oacute\\u0000Y\": -50,\n\t\"Oacute\\u0000Yacute\": -50,\n\t\"Oacute\\u0000Ydieresis\": -50,\n\t\"Ocircumflex\\u0000A\": -35,\n\t\"Ocircumflex\\u0000Aacute\": -35,\n\t\"Ocircumflex\\u0000Abreve\": -35,\n\t\"Ocircumflex\\u0000Acircumflex\": -35,\n\t\"Ocircumflex\\u0000Adieresis\": -35,\n\t\"Ocircumflex\\u0000Agrave\": -35,\n\t\"Ocircumflex\\u0000Amacron\": -35,\n\t\"Ocircumflex\\u0000Aogonek\": -35,\n\t\"Ocircumflex\\u0000Aring\": -35,\n\t\"Ocircumflex\\u0000Atilde\": -35,\n\t\"Ocircumflex\\u0000T\": -40,\n\t\"Ocircumflex\\u0000Tcaron\": -40,\n\t\"Ocircumflex\\u0000Tcommaaccent\": -40,\n\t\"Ocircumflex\\u0000V\": -50,\n\t\"Ocircumflex\\u0000W\": -35,\n\t\"Ocircumflex\\u0000X\": -40,\n\t\"Ocircumflex\\u0000Y\": -50,\n\t\"Ocircumflex\\u0000Yacute\": -50,\n\t\"Ocircumflex\\u0000Ydieresis\": -50,\n\t\"Odieresis\\u0000A\": -35,\n\t\"Odieresis\\u0000Aacute\": -35,\n\t\"Odieresis\\u0000Abreve\": -35,\n\t\"Odieresis\\u0000Acircumflex\": -35,\n\t\"Odieresis\\u0000Adieresis\": -35,\n\t\"Odieresis\\u0000Agrave\": -35,\n\t\"Odieresis\\u0000Amacron\": -35,\n\t\"Odieresis\\u0000Aogonek\": -35,\n\t\"Odieresis\\u0000Aring\": -35,\n\t\"Odieresis\\u0000Atilde\": -35,\n\t\"Odieresis\\u0000T\": -40,\n\t\"Odieresis\\u0000Tcaron\": -40,\n\t\"Odieresis\\u0000Tcommaaccent\": -40,\n\t\"Odieresis\\u0000V\": -50,\n\t\"Odieresis\\u0000W\": -35,\n\t\"Odieresis\\u0000X\": -40,\n\t\"Odieresis\\u0000Y\": -50,\n\t\"Odieresis\\u0000Yacute\": -50,\n\t\"Odieresis\\u0000Ydieresis\": -50,\n\t\"Ograve\\u0000A\": -35,\n\t\"Ograve\\u0000Aacute\": -35,\n\t\"Ograve\\u0000Abreve\": -35,\n\t\"Ograve\\u0000Acircumflex\": -35,\n\t\"Ograve\\u0000Adieresis\": -35,\n\t\"Ograve\\u0000Agrave\": -35,\n\t\"Ograve\\u0000Amacron\": -35,\n\t\"Ograve\\u0000Aogonek\": -35,\n\t\"Ograve\\u0000Aring\": -35,\n\t\"Ograve\\u0000Atilde\": -35,\n\t\"Ograve\\u0000T\": -40,\n\t\"Ograve\\u0000Tcaron\": -40,\n\t\"Ograve\\u0000Tcommaaccent\": -40,\n\t\"Ograve\\u0000V\": -50,\n\t\"Ograve\\u0000W\": -35,\n\t\"Ograve\\u0000X\": -40,\n\t\"Ograve\\u0000Y\": -50,\n\t\"Ograve\\u0000Yacute\": -50,\n\t\"Ograve\\u0000Ydieresis\": -50,\n\t\"Ohungarumlaut\\u0000A\": -35,\n\t\"Ohungarumlaut\\u0000Aacute\": -35,\n\t\"Ohungarumlaut\\u0000Abreve\": -35,\n\t\"Ohungarumlaut\\u0000Acircumflex\": -35,\n\t\"Ohungarumlaut\\u0000Adieresis\": -35,\n\t\"Ohungarumlaut\\u0000Agrave\": -35,\n\t\"Ohungarumlaut\\u0000Amacron\": -35,\n\t\"Ohungarumlaut\\u0000Aogonek\": -35,\n\t\"Ohungarumlaut\\u0000Aring\": -35,\n\t\"Ohungarumlaut\\u0000Atilde\": -35,\n\t\"Ohungarumlaut\\u0000T\": -40,\n\t\"Ohungarumlaut\\u0000Tcaron\": -40,\n\t\"Ohungarumlaut\\u0000Tcommaaccent\": -40,\n\t\"Ohungarumlaut\\u0000V\": -50,\n\t\"Ohungarumlaut\\u0000W\": -35,\n\t\"Ohungarumlaut\\u0000X\": -40,\n\t\"Ohungarumlaut\\u0000Y\": -50,\n\t\"Ohungarumlaut\\u0000Yacute\": -50,\n\t\"Ohungarumlaut\\u0000Ydieresis\": -50,\n\t\"Omacron\\u0000A\": -35,\n\t\"Omacron\\u0000Aacute\": -35,\n\t\"Omacron\\u0000Abreve\": -35,\n\t\"Omacron\\u0000Acircumflex\": -35,\n\t\"Omacron\\u0000Adieresis\": -35,\n\t\"Omacron\\u0000Agrave\": -35,\n\t\"Omacron\\u0000Amacron\": -35,\n\t\"Omacron\\u0000Aogonek\": -35,\n\t\"Omacron\\u0000Aring\": -35,\n\t\"Omacron\\u0000Atilde\": -35,\n\t\"Omacron\\u0000T\": -40,\n\t\"Omacron\\u0000Tcaron\": -40,\n\t\"Omacron\\u0000Tcommaaccent\": -40,\n\t\"Omacron\\u0000V\": -50,\n\t\"Omacron\\u0000W\": -35,\n\t\"Omacron\\u0000X\": -40,\n\t\"Omacron\\u0000Y\": -50,\n\t\"Omacron\\u0000Yacute\": -50,\n\t\"Omacron\\u0000Ydieresis\": -50,\n\t\"Oslash\\u0000A\": -35,\n\t\"Oslash\\u0000Aacute\": -35,\n\t\"Oslash\\u0000Abreve\": -35,\n\t\"Oslash\\u0000Acircumflex\": -35,\n\t\"Oslash\\u0000Adieresis\": -35,\n\t\"Oslash\\u0000Agrave\": -35,\n\t\"Oslash\\u0000Amacron\": -35,\n\t\"Oslash\\u0000Aogonek\": -35,\n\t\"Oslash\\u0000Aring\": -35,\n\t\"Oslash\\u0000Atilde\": -35,\n\t\"Oslash\\u0000T\": -40,\n\t\"Oslash\\u0000Tcaron\": -40,\n\t\"Oslash\\u0000Tcommaaccent\": -40,\n\t\"Oslash\\u0000V\": -50,\n\t\"Oslash\\u0000W\": -35,\n\t\"Oslash\\u0000X\": -40,\n\t\"Oslash\\u0000Y\": -50,\n\t\"Oslash\\u0000Yacute\": -50,\n\t\"Oslash\\u0000Ydieresis\": -50,\n\t\"Otilde\\u0000A\": -35,\n\t\"Otilde\\u0000Aacute\": -35,\n\t\"Otilde\\u0000Abreve\": -35,\n\t\"Otilde\\u0000Acircumflex\": -35,\n\t\"Otilde\\u0000Adieresis\": -35,\n\t\"Otilde\\u0000Agrave\": -35,\n\t\"Otilde\\u0000Amacron\": -35,\n\t\"Otilde\\u0000Aogonek\": -35,\n\t\"Otilde\\u0000Aring\": -35,\n\t\"Otilde\\u0000Atilde\": -35,\n\t\"Otilde\\u0000T\": -40,\n\t\"Otilde\\u0000Tcaron\": -40,\n\t\"Otilde\\u0000Tcommaaccent\": -40,\n\t\"Otilde\\u0000V\": -50,\n\t\"Otilde\\u0000W\": -35,\n\t\"Otilde\\u0000X\": -40,\n\t\"Otilde\\u0000Y\": -50,\n\t\"Otilde\\u0000Yacute\": -50,\n\t\"Otilde\\u0000Ydieresis\": -50,\n\t\"P\\u0000A\": -92,\n\t\"P\\u0000Aacute\": -92,\n\t\"P\\u0000Abreve\": -92,\n\t\"P\\u0000Acircumflex\": -92,\n\t\"P\\u0000Adieresis\": -92,\n\t\"P\\u0000Agrave\": -92,\n\t\"P\\u0000Amacron\": -92,\n\t\"P\\u0000Aogonek\": -92,\n\t\"P\\u0000Aring\": -92,\n\t\"P\\u0000Atilde\": -92,\n\t\"P\\u0000a\": -15,\n\t\"P\\u0000aacute\": -15,\n\t\"P\\u0000abreve\": -15,\n\t\"P\\u0000acircumflex\": -15,\n\t\"P\\u0000adieresis\": -15,\n\t\"P\\u0000agrave\": -15,\n\t\"P\\u0000amacron\": -15,\n\t\"P\\u0000aogonek\": -15,\n\t\"P\\u0000aring\": -15,\n\t\"P\\u0000atilde\": -15,\n\t\"P\\u0000comma\": -111,\n\t\"P\\u0000period\": -111,\n\t\"Q\\u0000U\": -10,\n\t\"Q\\u0000Uacute\": -10,\n\t\"Q\\u0000Ucircumflex\": -10,\n\t\"Q\\u0000Udieresis\": -10,\n\t\"Q\\u0000Ugrave\": -10,\n\t\"Q\\u0000Uhungarumlaut\": -10,\n\t\"Q\\u0000Umacron\": -10,\n\t\"Q\\u0000Uogonek\": -10,\n\t\"Q\\u0000Uring\": -10,\n\t\"R\\u0000O\": -40,\n\t\"R\\u0000Oacute\": -40,\n\t\"R\\u0000Ocircumflex\": -40,\n\t\"R\\u0000Odieresis\": -40,\n\t\"R\\u0000Ograve\": -40,\n\t\"R\\u0000Ohungarumlaut\": -40,\n\t\"R\\u0000Omacron\": -40,\n\t\"R\\u0000Oslash\": -40,\n\t\"R\\u0000Otilde\": -40,\n\t\"R\\u0000T\": -60,\n\t\"R\\u0000Tcaron\": -60,\n\t\"R\\u0000Tcommaaccent\": -60,\n\t\"R\\u0000U\": -40,\n\t\"R\\u0000Uacute\": -40,\n\t\"R\\u0000Ucircumflex\": -40,\n\t\"R\\u0000Udieresis\": -40,\n\t\"R\\u0000Ugrave\": -40,\n\t\"R\\u0000Uhungarumlaut\": -40,\n\t\"R\\u0000Umacron\": -40,\n\t\"R\\u0000Uogonek\": -40,\n\t\"R\\u0000Uring\": -40,\n\t\"R\\u0000V\": -80,\n\t\"R\\u0000W\": -55,\n\t\"R\\u0000Y\": -65,\n\t\"R\\u0000Yacute\": -65,\n\t\"R\\u0000Ydieresis\": -65,\n\t\"Racute\\u0000O\": -40,\n\t\"Racute\\u0000Oacute\": -40,\n\t\"Racute\\u0000Ocircumflex\": -40,\n\t\"Racute\\u0000Odieresis\": -40,\n\t\"Racute\\u0000Ograve\": -40,\n\t\"Racute\\u0000Ohungarumlaut\": -40,\n\t\"Racute\\u0000Omacron\": -40,\n\t\"Racute\\u0000Oslash\": -40,\n\t\"Racute\\u0000Otilde\": -40,\n\t\"Racute\\u0000T\": -60,\n\t\"Racute\\u0000Tcaron\": -60,\n\t\"Racute\\u0000Tcommaaccent\": -60,\n\t\"Racute\\u0000U\": -40,\n\t\"Racute\\u0000Uacute\": -40,\n\t\"Racute\\u0000Ucircumflex\": -40,\n\t\"Racute\\u0000Udieresis\": -40,\n\t\"Racute\\u0000Ugrave\": -40,\n\t\"Racute\\u0000Uhungarumlaut\": -40,\n\t\"Racute\\u0000Umacron\": -40,\n\t\"Racute\\u0000Uogonek\": -40,\n\t\"Racute\\u0000Uring\": -40,\n\t\"Racute\\u0000V\": -80,\n\t\"Racute\\u0000W\": -55,\n\t\"Racute\\u0000Y\": -65,\n\t\"Racute\\u0000Yacute\": -65,\n\t\"Racute\\u0000Ydieresis\": -65,\n\t\"Rcaron\\u0000O\": -40,\n\t\"Rcaron\\u0000Oacute\": -40,\n\t\"Rcaron\\u0000Ocircumflex\": -40,\n\t\"Rcaron\\u0000Odieresis\": -40,\n\t\"Rcaron\\u0000Ograve\": -40,\n\t\"Rcaron\\u0000Ohungarumlaut\": -40,\n\t\"Rcaron\\u0000Omacron\": -40,\n\t\"Rcaron\\u0000Oslash\": -40,\n\t\"Rcaron\\u0000Otilde\": -40,\n\t\"Rcaron\\u0000T\": -60,\n\t\"Rcaron\\u0000Tcaron\": -60,\n\t\"Rcaron\\u0000Tcommaaccent\": -60,\n\t\"Rcaron\\u0000U\": -40,\n\t\"Rcaron\\u0000Uacute\": -40,\n\t\"Rcaron\\u0000Ucircumflex\": -40,\n\t\"Rcaron\\u0000Udieresis\": -40,\n\t\"Rcaron\\u0000Ugrave\": -40,\n\t\"Rcaron\\u0000Uhungarumlaut\": -40,\n\t\"Rcaron\\u0000Umacron\": -40,\n\t\"Rcaron\\u0000Uogonek\": -40,\n\t\"Rcaron\\u0000Uring\": -40,\n\t\"Rcaron\\u0000V\": -80,\n\t\"Rcaron\\u0000W\": -55,\n\t\"Rcaron\\u0000Y\": -65,\n\t\"Rcaron\\u0000Yacute\": -65,\n\t\"Rcaron\\u0000Ydieresis\": -65,\n\t\"Rcommaaccent\\u0000O\": -40,\n\t\"Rcommaaccent\\u0000Oacute\": -40,\n\t\"Rcommaaccent\\u0000Ocircumflex\": -40,\n\t\"Rcommaaccent\\u0000Odieresis\": -40,\n\t\"Rcommaaccent\\u0000Ograve\": -40,\n\t\"Rcommaaccent\\u0000Ohungarumlaut\": -40,\n\t\"Rcommaaccent\\u0000Omacron\": -40,\n\t\"Rcommaaccent\\u0000Oslash\": -40,\n\t\"Rcommaaccent\\u0000Otilde\": -40,\n\t\"Rcommaaccent\\u0000T\": -60,\n\t\"Rcommaaccent\\u0000Tcaron\": -60,\n\t\"Rcommaaccent\\u0000Tcommaaccent\": -60,\n\t\"Rcommaaccent\\u0000U\": -40,\n\t\"Rcommaaccent\\u0000Uacute\": -40,\n\t\"Rcommaaccent\\u0000Ucircumflex\": -40,\n\t\"Rcommaaccent\\u0000Udieresis\": -40,\n\t\"Rcommaaccent\\u0000Ugrave\": -40,\n\t\"Rcommaaccent\\u0000Uhungarumlaut\": -40,\n\t\"Rcommaaccent\\u0000Umacron\": -40,\n\t\"Rcommaaccent\\u0000Uogonek\": -40,\n\t\"Rcommaaccent\\u0000Uring\": -40,\n\t\"Rcommaaccent\\u0000V\": -80,\n\t\"Rcommaaccent\\u0000W\": -55,\n\t\"Rcommaaccent\\u0000Y\": -65,\n\t\"Rcommaaccent\\u0000Yacute\": -65,\n\t\"Rcommaaccent\\u0000Ydieresis\": -65,\n\t\"T\\u0000A\": -93,\n\t\"T\\u0000Aacute\": -93,\n\t\"T\\u0000Abreve\": -93,\n\t\"T\\u0000Acircumflex\": -93,\n\t\"T\\u0000Adieresis\": -93,\n\t\"T\\u0000Agrave\": -93,\n\t\"T\\u0000Amacron\": -93,\n\t\"T\\u0000Aogonek\": -93,\n\t\"T\\u0000Aring\": -93,\n\t\"T\\u0000Atilde\": -93,\n\t\"T\\u0000O\": -18,\n\t\"T\\u0000Oacute\": -18,\n\t\"T\\u0000Ocircumflex\": -18,\n\t\"T\\u0000Odieresis\": -18,\n\t\"T\\u0000Ograve\": -18,\n\t\"T\\u0000Ohungarumlaut\": -18,\n\t\"T\\u0000Omacron\": -18,\n\t\"T\\u0000Oslash\": -18,\n\t\"T\\u0000Otilde\": -18,\n\t\"T\\u0000a\": -80,\n\t\"T\\u0000aacute\": -80,\n\t\"T\\u0000abreve\": -80,\n\t\"T\\u0000acircumflex\": -80,\n\t\"T\\u0000adieresis\": -40,\n\t\"T\\u0000agrave\": -40,\n\t\"T\\u0000amacron\": -40,\n\t\"T\\u0000aogonek\": -80,\n\t\"T\\u0000aring\": -80,\n\t\"T\\u0000atilde\": -40,\n\t\"T\\u0000colon\": -50,\n\t\"T\\u0000comma\": -74,\n\t\"T\\u0000e\": -70,\n\t\"T\\u0000eacute\": -70,\n\t\"T\\u0000ecaron\": -70,\n\t\"T\\u0000ecircumflex\": -70,\n\t\"T\\u0000edieresis\": -30,\n\t\"T\\u0000edotaccent\": -70,\n\t\"T\\u0000egrave\": -70,\n\t\"T\\u0000emacron\": -30,\n\t\"T\\u0000eogonek\": -70,\n\t\"T\\u0000hyphen\": -92,\n\t\"T\\u0000i\": -35,\n\t\"T\\u0000iacute\": -35,\n\t\"T\\u0000iogonek\": -35,\n\t\"T\\u0000o\": -80,\n\t\"T\\u0000oacute\": -80,\n\t\"T\\u0000ocircumflex\": -80,\n\t\"T\\u0000odieresis\": -80,\n\t\"T\\u0000ograve\": -80,\n\t\"T\\u0000ohungarumlaut\": -80,\n\t\"T\\u0000omacron\": -80,\n\t\"T\\u0000oslash\": -80,\n\t\"T\\u0000otilde\": -80,\n\t\"T\\u0000period\": -74,\n\t\"T\\u0000r\": -35,\n\t\"T\\u0000racute\": -35,\n\t\"T\\u0000rcaron\": -35,\n\t\"T\\u0000rcommaaccent\": -35,\n\t\"T\\u0000semicolon\": -55,\n\t\"T\\u0000u\": -45,\n\t\"T\\u0000uacute\": -45,\n\t\"T\\u0000ucircumflex\": -45,\n\t\"T\\u0000udieresis\": -45,\n\t\"T\\u0000ugrave\": -45,\n\t\"T\\u0000uhungarumlaut\": -45,\n\t\"T\\u0000umacron\": -45,\n\t\"T\\u0000uogonek\": -45,\n\t\"T\\u0000uring\": -45,\n\t\"T\\u0000w\": -80,\n\t\"T\\u0000y\": -80,\n\t\"T\\u0000yacute\": -80,\n\t\"T\\u0000ydieresis\": -80,\n\t\"Tcaron\\u0000A\": -93,\n\t\"Tcaron\\u0000Aacute\": -93,\n\t\"Tcaron\\u0000Abreve\": -93,\n\t\"Tcaron\\u0000Acircumflex\": -93,\n\t\"Tcaron\\u0000Adieresis\": -93,\n\t\"Tcaron\\u0000Agrave\": -93,\n\t\"Tcaron\\u0000Amacron\": -93,\n\t\"Tcaron\\u0000Aogonek\": -93,\n\t\"Tcaron\\u0000Aring\": -93,\n\t\"Tcaron\\u0000Atilde\": -93,\n\t\"Tcaron\\u0000O\": -18,\n\t\"Tcaron\\u0000Oacute\": -18,\n\t\"Tcaron\\u0000Ocircumflex\": -18,\n\t\"Tcaron\\u0000Odieresis\": -18,\n\t\"Tcaron\\u0000Ograve\": -18,\n\t\"Tcaron\\u0000Ohungarumlaut\": -18,\n\t\"Tcaron\\u0000Omacron\": -18,\n\t\"Tcaron\\u0000Oslash\": -18,\n\t\"Tcaron\\u0000Otilde\": -18,\n\t\"Tcaron\\u0000a\": -80,\n\t\"Tcaron\\u0000aacute\": -80,\n\t\"Tcaron\\u0000abreve\": -80,\n\t\"Tcaron\\u0000acircumflex\": -80,\n\t\"Tcaron\\u0000adieresis\": -40,\n\t\"Tcaron\\u0000agrave\": -40,\n\t\"Tcaron\\u0000amacron\": -40,\n\t\"Tcaron\\u0000aogonek\": -80,\n\t\"Tcaron\\u0000aring\": -80,\n\t\"Tcaron\\u0000atilde\": -40,\n\t\"Tcaron\\u0000colon\": -50,\n\t\"Tcaron\\u0000comma\": -74,\n\t\"Tcaron\\u0000e\": -70,\n\t\"Tcaron\\u0000eacute\": -70,\n\t\"Tcaron\\u0000ecaron\": -70,\n\t\"Tcaron\\u0000ecircumflex\": -30,\n\t\"Tcaron\\u0000edieresis\": -30,\n\t\"Tcaron\\u0000edotaccent\": -70,\n\t\"Tcaron\\u0000egrave\": -70,\n\t\"Tcaron\\u0000emacron\": -30,\n\t\"Tcaron\\u0000eogonek\": -70,\n\t\"Tcaron\\u0000hyphen\": -92,\n\t\"Tcaron\\u0000i\": -35,\n\t\"Tcaron\\u0000iacute\": -35,\n\t\"Tcaron\\u0000iogonek\": -35,\n\t\"Tcaron\\u0000o\": -80,\n\t\"Tcaron\\u0000oacute\": -80,\n\t\"Tcaron\\u0000ocircumflex\": -80,\n\t\"Tcaron\\u0000odieresis\": -80,\n\t\"Tcaron\\u0000ograve\": -80,\n\t\"Tcaron\\u0000ohungarumlaut\": -80,\n\t\"Tcaron\\u0000omacron\": -80,\n\t\"Tcaron\\u0000oslash\": -80,\n\t\"Tcaron\\u0000otilde\": -80,\n\t\"Tcaron\\u0000period\": -74,\n\t\"Tcaron\\u0000r\": -35,\n\t\"Tcaron\\u0000racute\": -35,\n\t\"Tcaron\\u0000rcaron\": -35,\n\t\"Tcaron\\u0000rcommaaccent\": -35,\n\t\"Tcaron\\u0000semicolon\": -55,\n\t\"Tcaron\\u0000u\": -45,\n\t\"Tcaron\\u0000uacute\": -45,\n\t\"Tcaron\\u0000ucircumflex\": -45,\n\t\"Tcaron\\u0000udieresis\": -45,\n\t\"Tcaron\\u0000ugrave\": -45,\n\t\"Tcaron\\u0000uhungarumlaut\": -45,\n\t\"Tcaron\\u0000umacron\": -45,\n\t\"Tcaron\\u0000uogonek\": -45,\n\t\"Tcaron\\u0000uring\": -45,\n\t\"Tcaron\\u0000w\": -80,\n\t\"Tcaron\\u0000y\": -80,\n\t\"Tcaron\\u0000yacute\": -80,\n\t\"Tcaron\\u0000ydieresis\": -80,\n\t\"Tcommaaccent\\u0000A\": -93,\n\t\"Tcommaaccent\\u0000Aacute\": -93,\n\t\"Tcommaaccent\\u0000Abreve\": -93,\n\t\"Tcommaaccent\\u0000Acircumflex\": -93,\n\t\"Tcommaaccent\\u0000Adieresis\": -93,\n\t\"Tcommaaccent\\u0000Agrave\": -93,\n\t\"Tcommaaccent\\u0000Amacron\": -93,\n\t\"Tcommaaccent\\u0000Aogonek\": -93,\n\t\"Tcommaaccent\\u0000Aring\": -93,\n\t\"Tcommaaccent\\u0000Atilde\": -93,\n\t\"Tcommaaccent\\u0000O\": -18,\n\t\"Tcommaaccent\\u0000Oacute\": -18,\n\t\"Tcommaaccent\\u0000Ocircumflex\": -18,\n\t\"Tcommaaccent\\u0000Odieresis\": -18,\n\t\"Tcommaaccent\\u0000Ograve\": -18,\n\t\"Tcommaaccent\\u0000Ohungarumlaut\": -18,\n\t\"Tcommaaccent\\u0000Omacron\": -18,\n\t\"Tcommaaccent\\u0000Oslash\": -18,\n\t\"Tcommaaccent\\u0000Otilde\": -18,\n\t\"Tcommaaccent\\u0000a\": -80,\n\t\"Tcommaaccent\\u0000aacute\": -80,\n\t\"Tcommaaccent\\u0000abreve\": -80,\n\t\"Tcommaaccent\\u0000acircumflex\": -80,\n\t\"Tcommaaccent\\u0000adieresis\": -40,\n\t\"Tcommaaccent\\u0000agrave\": -40,\n\t\"Tcommaaccent\\u0000amacron\": -40,\n\t\"Tcommaaccent\\u0000aogonek\": -80,\n\t\"Tcommaaccent\\u0000aring\": -80,\n\t\"Tcommaaccent\\u0000atilde\": -40,\n\t\"Tcommaaccent\\u0000colon\": -50,\n\t\"Tcommaaccent\\u0000comma\": -74,\n\t\"Tcommaaccent\\u0000e\": -70,\n\t\"Tcommaaccent\\u0000eacute\": -70,\n\t\"Tcommaaccent\\u0000ecaron\": -70,\n\t\"Tcommaaccent\\u0000ecircumflex\": -30,\n\t\"Tcommaaccent\\u0000edieresis\": -30,\n\t\"Tcommaaccent\\u0000edotaccent\": -70,\n\t\"Tcommaaccent\\u0000egrave\": -30,\n\t\"Tcommaaccent\\u0000emacron\": -70,\n\t\"Tcommaaccent\\u0000eogonek\": -70,\n\t\"Tcommaaccent\\u0000hyphen\": -92,\n\t\"Tcommaaccent\\u0000i\": -35,\n\t\"Tcommaaccent\\u0000iacute\": -35,\n\t\"Tcommaaccent\\u0000iogonek\": -35,\n\t\"Tcommaaccent\\u0000o\": -80,\n\t\"Tcommaaccent\\u0000oacute\": -80,\n\t\"Tcommaaccent\\u0000ocircumflex\": -80,\n\t\"Tcommaaccent\\u0000odieresis\": -80,\n\t\"Tcommaaccent\\u0000ograve\": -80,\n\t\"Tcommaaccent\\u0000ohungarumlaut\": -80,\n\t\"Tcommaaccent\\u0000omacron\": -80,\n\t\"Tcommaaccent\\u0000oslash\": -80,\n\t\"Tcommaaccent\\u0000otilde\": -80,\n\t\"Tcommaaccent\\u0000period\": -74,\n\t\"Tcommaaccent\\u0000r\": -35,\n\t\"Tcommaaccent\\u0000racute\": -35,\n\t\"Tcommaaccent\\u0000rcaron\": -35,\n\t\"Tcommaaccent\\u0000rcommaaccent\": -35,\n\t\"Tcommaaccent\\u0000semicolon\": -55,\n\t\"Tcommaaccent\\u0000u\": -45,\n\t\"Tcommaaccent\\u0000uacute\": -45,\n\t\"Tcommaaccent\\u0000ucircumflex\": -45,\n\t\"Tcommaaccent\\u0000udieresis\": -45,\n\t\"Tcommaaccent\\u0000ugrave\": -45,\n\t\"Tcommaaccent\\u0000uhungarumlaut\": -45,\n\t\"Tcommaaccent\\u0000umacron\": -45,\n\t\"Tcommaaccent\\u0000uogonek\": -45,\n\t\"Tcommaaccent\\u0000uring\": -45,\n\t\"Tcommaaccent\\u0000w\": -80,\n\t\"Tcommaaccent\\u0000y\": -80,\n\t\"Tcommaaccent\\u0000yacute\": -80,\n\t\"Tcommaaccent\\u0000ydieresis\": -80,\n\t\"U\\u0000A\": -40,\n\t\"U\\u0000Aacute\": -40,\n\t\"U\\u0000Abreve\": -40,\n\t\"U\\u0000Acircumflex\": -40,\n\t\"U\\u0000Adieresis\": -40,\n\t\"U\\u0000Agrave\": -40,\n\t\"U\\u0000Amacron\": -40,\n\t\"U\\u0000Aogonek\": -40,\n\t\"U\\u0000Aring\": -40,\n\t\"U\\u0000Atilde\": -40,\n\t\"Uacute\\u0000A\": -40,\n\t\"Uacute\\u0000Aacute\": -40,\n\t\"Uacute\\u0000Abreve\": -40,\n\t\"Uacute\\u0000Acircumflex\": -40,\n\t\"Uacute\\u0000Adieresis\": -40,\n\t\"Uacute\\u0000Agrave\": -40,\n\t\"Uacute\\u0000Amacron\": -40,\n\t\"Uacute\\u0000Aogonek\": -40,\n\t\"Uacute\\u0000Aring\": -40,\n\t\"Uacute\\u0000Atilde\": -40,\n\t\"Ucircumflex\\u0000A\": -40,\n\t\"Ucircumflex\\u0000Aacute\": -40,\n\t\"Ucircumflex\\u0000Abreve\": -40,\n\t\"Ucircumflex\\u0000Acircumflex\": -40,\n\t\"Ucircumflex\\u0000Adieresis\": -40,\n\t\"Ucircumflex\\u0000Agrave\": -40,\n\t\"Ucircumflex\\u0000Amacron\": -40,\n\t\"Ucircumflex\\u0000Aogonek\": -40,\n\t\"Ucircumflex\\u0000Aring\": -40,\n\t\"Ucircumflex\\u0000Atilde\": -40,\n\t\"Udieresis\\u0000A\": -40,\n\t\"Udieresis\\u0000Aacute\": -40,\n\t\"Udieresis\\u0000Abreve\": -40,\n\t\"Udieresis\\u0000Acircumflex\": -40,\n\t\"Udieresis\\u0000Adieresis\": -40,\n\t\"Udieresis\\u0000Agrave\": -40,\n\t\"Udieresis\\u0000Amacron\": -40,\n\t\"Udieresis\\u0000Aogonek\": -40,\n\t\"Udieresis\\u0000Aring\": -40,\n\t\"Udieresis\\u0000Atilde\": -40,\n\t\"Ugrave\\u0000A\": -40,\n\t\"Ugrave\\u0000Aacute\": -40,\n\t\"Ugrave\\u0000Abreve\": -40,\n\t\"Ugrave\\u0000Acircumflex\": -40,\n\t\"Ugrave\\u0000Adieresis\": -40,\n\t\"Ugrave\\u0000Agrave\": -40,\n\t\"Ugrave\\u0000Amacron\": -40,\n\t\"Ugrave\\u0000Aogonek\": -40,\n\t\"Ugrave\\u0000Aring\": -40,\n\t\"Ugrave\\u0000Atilde\": -40,\n\t\"Uhungarumlaut\\u0000A\": -40,\n\t\"Uhungarumlaut\\u0000Aacute\": -40,\n\t\"Uhungarumlaut\\u0000Abreve\": -40,\n\t\"Uhungarumlaut\\u0000Acircumflex\": -40,\n\t\"Uhungarumlaut\\u0000Adieresis\": -40,\n\t\"Uhungarumlaut\\u0000Agrave\": -40,\n\t\"Uhungarumlaut\\u0000Amacron\": -40,\n\t\"Uhungarumlaut\\u0000Aogonek\": -40,\n\t\"Uhungarumlaut\\u0000Aring\": -40,\n\t\"Uhungarumlaut\\u0000Atilde\": -40,\n\t\"Umacron\\u0000A\": -40,\n\t\"Umacron\\u0000Aacute\": -40,\n\t\"Umacron\\u0000Abreve\": -40,\n\t\"Umacron\\u0000Acircumflex\": -40,\n\t\"Umacron\\u0000Adieresis\": -40,\n\t\"Umacron\\u0000Agrave\": -40,\n\t\"Umacron\\u0000Amacron\": -40,\n\t\"Umacron\\u0000Aogonek\": -40,\n\t\"Umacron\\u0000Aring\": -40,\n\t\"Umacron\\u0000Atilde\": -40,\n\t\"Uogonek\\u0000A\": -40,\n\t\"Uogonek\\u0000Aacute\": -40,\n\t\"Uogonek\\u0000Abreve\": -40,\n\t\"Uogonek\\u0000Acircumflex\": -40,\n\t\"Uogonek\\u0000Adieresis\": -40,\n\t\"Uogonek\\u0000Agrave\": -40,\n\t\"Uogonek\\u0000Amacron\": -40,\n\t\"Uogonek\\u0000Aogonek\": -40,\n\t\"Uogonek\\u0000Aring\": -40,\n\t\"Uogonek\\u0000Atilde\": -40,\n\t\"Uring\\u0000A\": -40,\n\t\"Uring\\u0000Aacute\": -40,\n\t\"Uring\\u0000Abreve\": -40,\n\t\"Uring\\u0000Acircumflex\": -40,\n\t\"Uring\\u0000Adieresis\": -40,\n\t\"Uring\\u0000Agrave\": -40,\n\t\"Uring\\u0000Amacron\": -40,\n\t\"Uring\\u0000Aogonek\": -40,\n\t\"Uring\\u0000Aring\": -40,\n\t\"Uring\\u0000Atilde\": -40,\n\t\"V\\u0000A\": -135,\n\t\"V\\u0000Aacute\": -135,\n\t\"V\\u0000Abreve\": -135,\n\t\"V\\u0000Acircumflex\": -135,\n\t\"V\\u0000Adieresis\": -135,\n\t\"V\\u0000Agrave\": -135,\n\t\"V\\u0000Amacron\": -135,\n\t\"V\\u0000Aogonek\": -135,\n\t\"V\\u0000Aring\": -135,\n\t\"V\\u0000Atilde\": -135,\n\t\"V\\u0000G\": -15,\n\t\"V\\u0000Gbreve\": -15,\n\t\"V\\u0000Gcommaaccent\": -15,\n\t\"V\\u0000O\": -40,\n\t\"V\\u0000Oacute\": -40,\n\t\"V\\u0000Ocircumflex\": -40,\n\t\"V\\u0000Odieresis\": -40,\n\t\"V\\u0000Ograve\": -40,\n\t\"V\\u0000Ohungarumlaut\": -40,\n\t\"V\\u0000Omacron\": -40,\n\t\"V\\u0000Oslash\": -40,\n\t\"V\\u0000Otilde\": -40,\n\t\"V\\u0000a\": -111,\n\t\"V\\u0000aacute\": -111,\n\t\"V\\u0000abreve\": -111,\n\t\"V\\u0000acircumflex\": -71,\n\t\"V\\u0000adieresis\": -71,\n\t\"V\\u0000agrave\": -71,\n\t\"V\\u0000amacron\": -71,\n\t\"V\\u0000aogonek\": -111,\n\t\"V\\u0000aring\": -111,\n\t\"V\\u0000atilde\": -71,\n\t\"V\\u0000colon\": -74,\n\t\"V\\u0000comma\": -129,\n\t\"V\\u0000e\": -111,\n\t\"V\\u0000eacute\": -111,\n\t\"V\\u0000ecaron\": -71,\n\t\"V\\u0000ecircumflex\": -71,\n\t\"V\\u0000edieresis\": -71,\n\t\"V\\u0000edotaccent\": -111,\n\t\"V\\u0000egrave\": -71,\n\t\"V\\u0000emacron\": -71,\n\t\"V\\u0000eogonek\": -111,\n\t\"V\\u0000hyphen\": -100,\n\t\"V\\u0000i\": -60,\n\t\"V\\u0000iacute\": -60,\n\t\"V\\u0000icircumflex\": -20,\n\t\"V\\u0000idieresis\": -20,\n\t\"V\\u0000igrave\": -20,\n\t\"V\\u0000imacron\": -20,\n\t\"V\\u0000iogonek\": -60,\n\t\"V\\u0000o\": -129,\n\t\"V\\u0000oacute\": -129,\n\t\"V\\u0000ocircumflex\": -129,\n\t\"V\\u0000odieresis\": -89,\n\t\"V\\u0000ograve\": -89,\n\t\"V\\u0000ohungarumlaut\": -129,\n\t\"V\\u0000omacron\": -89,\n\t\"V\\u0000oslash\": -129,\n\t\"V\\u0000otilde\": -89,\n\t\"V\\u0000period\": -129,\n\t\"V\\u0000semicolon\": -74,\n\t\"V\\u0000u\": -75,\n\t\"V\\u0000uacute\": -75,\n\t\"V\\u0000ucircumflex\": -75,\n\t\"V\\u0000udieresis\": -75,\n\t\"V\\u0000ugrave\": -75,\n\t\"V\\u0000uhungarumlaut\": -75,\n\t\"V\\u0000umacron\": -75,\n\t\"V\\u0000uogonek\": -75,\n\t\"V\\u0000uring\": -75,\n\t\"W\\u0000A\": -120,\n\t\"W\\u0000Aacute\": -120,\n\t\"W\\u0000Abreve\": -120,\n\t\"W\\u0000Acircumflex\": -120,\n\t\"W\\u0000Adieresis\": -120,\n\t\"W\\u0000Agrave\": -120,\n\t\"W\\u0000Amacron\": -120,\n\t\"W\\u0000Aogonek\": -120,\n\t\"W\\u0000Aring\": -120,\n\t\"W\\u0000Atilde\": -120,\n\t\"W\\u0000O\": -10,\n\t\"W\\u0000Oacute\": -10,\n\t\"W\\u0000Ocircumflex\": -10,\n\t\"W\\u0000Odieresis\": -10,\n\t\"W\\u0000Ograve\": -10,\n\t\"W\\u0000Ohungarumlaut\": -10,\n\t\"W\\u0000Omacron\": -10,\n\t\"W\\u0000Oslash\": -10,\n\t\"W\\u0000Otilde\": -10,\n\t\"W\\u0000a\": -80,\n\t\"W\\u0000aacute\": -80,\n\t\"W\\u0000abreve\": -80,\n\t\"W\\u0000acircumflex\": -80,\n\t\"W\\u0000adieresis\": -80,\n\t\"W\\u0000agrave\": -80,\n\t\"W\\u0000amacron\": -80,\n\t\"W\\u0000aogonek\": -80,\n\t\"W\\u0000aring\": -80,\n\t\"W\\u0000atilde\": -80,\n\t\"W\\u0000colon\": -37,\n\t\"W\\u0000comma\": -92,\n\t\"W\\u0000e\": -80,\n\t\"W\\u0000eacute\": -80,\n\t\"W\\u0000ecaron\": -80,\n\t\"W\\u0000ecircumflex\": -80,\n\t\"W\\u0000edieresis\": -40,\n\t\"W\\u0000edotaccent\": -80,\n\t\"W\\u0000egrave\": -40,\n\t\"W\\u0000emacron\": -40,\n\t\"W\\u0000eogonek\": -80,\n\t\"W\\u0000hyphen\": -65,\n\t\"W\\u0000i\": -40,\n\t\"W\\u0000iacute\": -40,\n\t\"W\\u0000iogonek\": -40,\n\t\"W\\u0000o\": -80,\n\t\"W\\u0000oacute\": -80,\n\t\"W\\u0000ocircumflex\": -80,\n\t\"W\\u0000odieresis\": -80,\n\t\"W\\u0000ograve\": -80,\n\t\"W\\u0000ohungarumlaut\": -80,\n\t\"W\\u0000omacron\": -80,\n\t\"W\\u0000oslash\": -80,\n\t\"W\\u0000otilde\": -80,\n\t\"W\\u0000period\": -92,\n\t\"W\\u0000semicolon\": -37,\n\t\"W\\u0000u\": -50,\n\t\"W\\u0000uacute\": -50,\n\t\"W\\u0000ucircumflex\": -50,\n\t\"W\\u0000udieresis\": -50,\n\t\"W\\u0000ugrave\": -50,\n\t\"W\\u0000uhungarumlaut\": -50,\n\t\"W\\u0000umacron\": -50,\n\t\"W\\u0000uogonek\": -50,\n\t\"W\\u0000uring\": -50,\n\t\"W\\u0000y\": -73,\n\t\"W\\u0000yacute\": -73,\n\t\"W\\u0000ydieresis\": -73,\n\t\"Y\\u0000A\": -120,\n\t\"Y\\u0000Aacute\": -120,\n\t\"Y\\u0000Abreve\": -120,\n\t\"Y\\u0000Acircumflex\": -120,\n\t\"Y\\u0000Adieresis\": -120,\n\t\"Y\\u0000Agrave\": -120,\n\t\"Y\\u0000Amacron\": -120,\n\t\"Y\\u0000Aogonek\": -120,\n\t\"Y\\u0000Aring\": -120,\n\t\"Y\\u0000Atilde\": -120,\n\t\"Y\\u0000O\": -30,\n\t\"Y\\u0000Oacute\": -30,\n\t\"Y\\u0000Ocircumflex\": -30,\n\t\"Y\\u0000Odieresis\": -30,\n\t\"Y\\u0000Ograve\": -30,\n\t\"Y\\u0000Ohungarumlaut\": -30,\n\t\"Y\\u0000Omacron\": -30,\n\t\"Y\\u0000Oslash\": -30,\n\t\"Y\\u0000Otilde\": -30,\n\t\"Y\\u0000a\": -100,\n\t\"Y\\u0000aacute\": -100,\n\t\"Y\\u0000abreve\": -100,\n\t\"Y\\u0000acircumflex\": -100,\n\t\"Y\\u0000adieresis\": -60,\n\t\"Y\\u0000agrave\": -60,\n\t\"Y\\u0000amacron\": -60,\n\t\"Y\\u0000aogonek\": -100,\n\t\"Y\\u0000aring\": -100,\n\t\"Y\\u0000atilde\": -60,\n\t\"Y\\u0000colon\": -92,\n\t\"Y\\u0000comma\": -129,\n\t\"Y\\u0000e\": -100,\n\t\"Y\\u0000eacute\": -100,\n\t\"Y\\u0000ecaron\": -100,\n\t\"Y\\u0000ecircumflex\": -100,\n\t\"Y\\u0000edieresis\": -60,\n\t\"Y\\u0000edotaccent\": -100,\n\t\"Y\\u0000egrave\": -60,\n\t\"Y\\u0000emacron\": -60,\n\t\"Y\\u0000eogonek\": -100,\n\t\"Y\\u0000hyphen\": -111,\n\t\"Y\\u0000i\": -55,\n\t\"Y\\u0000iacute\": -55,\n\t\"Y\\u0000iogonek\": -55,\n\t\"Y\\u0000o\": -110,\n\t\"Y\\u0000oacute\": -110,\n\t\"Y\\u0000ocircumflex\": -110,\n\t\"Y\\u0000odieresis\": -70,\n\t\"Y\\u0000ograve\": -70,\n\t\"Y\\u0000ohungarumlaut\": -110,\n\t\"Y\\u0000omacron\": -70,\n\t\"Y\\u0000oslash\": -110,\n\t\"Y\\u0000otilde\": -70,\n\t\"Y\\u0000period\": -129,\n\t\"Y\\u0000semicolon\": -92,\n\t\"Y\\u0000u\": -111,\n\t\"Y\\u0000uacute\": -111,\n\t\"Y\\u0000ucircumflex\": -111,\n\t\"Y\\u0000udieresis\": -71,\n\t\"Y\\u0000ugrave\": -71,\n\t\"Y\\u0000uhungarumlaut\": -111,\n\t\"Y\\u0000umacron\": -71,\n\t\"Y\\u0000uogonek\": -111,\n\t\"Y\\u0000uring\": -111,\n\t\"Yacute\\u0000A\": -120,\n\t\"Yacute\\u0000Aacute\": -120,\n\t\"Yacute\\u0000Abreve\": -120,\n\t\"Yacute\\u0000Acircumflex\": -120,\n\t\"Yacute\\u0000Adieresis\": -120,\n\t\"Yacute\\u0000Agrave\": -120,\n\t\"Yacute\\u0000Amacron\": -120,\n\t\"Yacute\\u0000Aogonek\": -120,\n\t\"Yacute\\u0000Aring\": -120,\n\t\"Yacute\\u0000Atilde\": -120,\n\t\"Yacute\\u0000O\": -30,\n\t\"Yacute\\u0000Oacute\": -30,\n\t\"Yacute\\u0000Ocircumflex\": -30,\n\t\"Yacute\\u0000Odieresis\": -30,\n\t\"Yacute\\u0000Ograve\": -30,\n\t\"Yacute\\u0000Ohungarumlaut\": -30,\n\t\"Yacute\\u0000Omacron\": -30,\n\t\"Yacute\\u0000Oslash\": -30,\n\t\"Yacute\\u0000Otilde\": -30,\n\t\"Yacute\\u0000a\": -100,\n\t\"Yacute\\u0000aacute\": -100,\n\t\"Yacute\\u0000abreve\": -100,\n\t\"Yacute\\u0000acircumflex\": -100,\n\t\"Yacute\\u0000adieresis\": -60,\n\t\"Yacute\\u0000agrave\": -60,\n\t\"Yacute\\u0000amacron\": -60,\n\t\"Yacute\\u0000aogonek\": -100,\n\t\"Yacute\\u0000aring\": -100,\n\t\"Yacute\\u0000atilde\": -60,\n\t\"Yacute\\u0000colon\": -92,\n\t\"Yacute\\u0000comma\": -129,\n\t\"Yacute\\u0000e\": -100,\n\t\"Yacute\\u0000eacute\": -100,\n\t\"Yacute\\u0000ecaron\": -100,\n\t\"Yacute\\u0000ecircumflex\": -100,\n\t\"Yacute\\u0000edieresis\": -60,\n\t\"Yacute\\u0000edotaccent\": -100,\n\t\"Yacute\\u0000egrave\": -60,\n\t\"Yacute\\u0000emacron\": -60,\n\t\"Yacute\\u0000eogonek\": -100,\n\t\"Yacute\\u0000hyphen\": -111,\n\t\"Yacute\\u0000i\": -55,\n\t\"Yacute\\u0000iacute\": -55,\n\t\"Yacute\\u0000iogonek\": -55,\n\t\"Yacute\\u0000o\": -110,\n\t\"Yacute\\u0000oacute\": -110,\n\t\"Yacute\\u0000ocircumflex\": -110,\n\t\"Yacute\\u0000odieresis\": -70,\n\t\"Yacute\\u0000ograve\": -70,\n\t\"Yacute\\u0000ohungarumlaut\": -110,\n\t\"Yacute\\u0000omacron\": -70,\n\t\"Yacute\\u0000oslash\": -110,\n\t\"Yacute\\u0000otilde\": -70,\n\t\"Yacute\\u0000period\": -129,\n\t\"Yacute\\u0000semicolon\": -92,\n\t\"Yacute\\u0000u\": -111,\n\t\"Yacute\\u0000uacute\": -111,\n\t\"Yacute\\u0000ucircumflex\": -111,\n\t\"Yacute\\u0000udieresis\": -71,\n\t\"Yacute\\u0000ugrave\": -71,\n\t\"Yacute\\u0000uhungarumlaut\": -111,\n\t\"Yacute\\u0000umacron\": -71,\n\t\"Yacute\\u0000uogonek\": -111,\n\t\"Yacute\\u0000uring\": -111,\n\t\"Ydieresis\\u0000A\": -120,\n\t\"Ydieresis\\u0000Aacute\": -120,\n\t\"Ydieresis\\u0000Abreve\": -120,\n\t\"Ydieresis\\u0000Acircumflex\": -120,\n\t\"Ydieresis\\u0000Adieresis\": -120,\n\t\"Ydieresis\\u0000Agrave\": -120,\n\t\"Ydieresis\\u0000Amacron\": -120,\n\t\"Ydieresis\\u0000Aogonek\": -120,\n\t\"Ydieresis\\u0000Aring\": -120,\n\t\"Ydieresis\\u0000Atilde\": -120,\n\t\"Ydieresis\\u0000O\": -30,\n\t\"Ydieresis\\u0000Oacute\": -30,\n\t\"Ydieresis\\u0000Ocircumflex\": -30,\n\t\"Ydieresis\\u0000Odieresis\": -30,\n\t\"Ydieresis\\u0000Ograve\": -30,\n\t\"Ydieresis\\u0000Ohungarumlaut\": -30,\n\t\"Ydieresis\\u0000Omacron\": -30,\n\t\"Ydieresis\\u0000Oslash\": -30,\n\t\"Ydieresis\\u0000Otilde\": -30,\n\t\"Ydieresis\\u0000a\": -100,\n\t\"Ydieresis\\u0000aacute\": -100,\n\t\"Ydieresis\\u0000abreve\": -100,\n\t\"Ydieresis\\u0000acircumflex\": -100,\n\t\"Ydieresis\\u0000adieresis\": -60,\n\t\"Ydieresis\\u0000agrave\": -60,\n\t\"Ydieresis\\u0000amacron\": -60,\n\t\"Ydieresis\\u0000aogonek\": -100,\n\t\"Ydieresis\\u0000aring\": -100,\n\t\"Ydieresis\\u0000atilde\": -100,\n\t\"Ydieresis\\u0000colon\": -92,\n\t\"Ydieresis\\u0000comma\": -129,\n\t\"Ydieresis\\u0000e\": -100,\n\t\"Ydieresis\\u0000eacute\": -100,\n\t\"Ydieresis\\u0000ecaron\": -100,\n\t\"Ydieresis\\u0000ecircumflex\": -100,\n\t\"Ydieresis\\u0000edieresis\": -60,\n\t\"Ydieresis\\u0000edotaccent\": -100,\n\t\"Ydieresis\\u0000egrave\": -60,\n\t\"Ydieresis\\u0000emacron\": -60,\n\t\"Ydieresis\\u0000eogonek\": -100,\n\t\"Ydieresis\\u0000hyphen\": -111,\n\t\"Ydieresis\\u0000i\": -55,\n\t\"Ydieresis\\u0000iacute\": -55,\n\t\"Ydieresis\\u0000iogonek\": -55,\n\t\"Ydieresis\\u0000o\": -110,\n\t\"Ydieresis\\u0000oacute\": -110,\n\t\"Ydieresis\\u0000ocircumflex\": -110,\n\t\"Ydieresis\\u0000odieresis\": -70,\n\t\"Ydieresis\\u0000ograve\": -70,\n\t\"Ydieresis\\u0000ohungarumlaut\": -110,\n\t\"Ydieresis\\u0000omacron\": -70,\n\t\"Ydieresis\\u0000oslash\": -110,\n\t\"Ydieresis\\u0000otilde\": -70,\n\t\"Ydieresis\\u0000period\": -129,\n\t\"Ydieresis\\u0000semicolon\": -92,\n\t\"Ydieresis\\u0000u\": -111,\n\t\"Ydieresis\\u0000uacute\": -111,\n\t\"Ydieresis\\u0000ucircumflex\": -111,\n\t\"Ydieresis\\u0000udieresis\": -71,\n\t\"Ydieresis\\u0000ugrave\": -71,\n\t\"Ydieresis\\u0000uhungarumlaut\": -111,\n\t\"Ydieresis\\u0000umacron\": -71,\n\t\"Ydieresis\\u0000uogonek\": -111,\n\t\"Ydieresis\\u0000uring\": -111,\n\t\"a\\u0000v\": -20,\n\t\"a\\u0000w\": -15,\n\t\"aacute\\u0000v\": -20,\n\t\"aacute\\u0000w\": -15,\n\t\"abreve\\u0000v\": -20,\n\t\"abreve\\u0000w\": -15,\n\t\"acircumflex\\u0000v\": -20,\n\t\"acircumflex\\u0000w\": -15,\n\t\"adieresis\\u0000v\": -20,\n\t\"adieresis\\u0000w\": -15,\n\t\"agrave\\u0000v\": -20,\n\t\"agrave\\u0000w\": -15,\n\t\"amacron\\u0000v\": -20,\n\t\"amacron\\u0000w\": -15,\n\t\"aogonek\\u0000v\": -20,\n\t\"aogonek\\u0000w\": -15,\n\t\"aring\\u0000v\": -20,\n\t\"aring\\u0000w\": -15,\n\t\"atilde\\u0000v\": -20,\n\t\"atilde\\u0000w\": -15,\n\t\"b\\u0000period\": -40,\n\t\"b\\u0000u\": -20,\n\t\"b\\u0000uacute\": -20,\n\t\"b\\u0000ucircumflex\": -20,\n\t\"b\\u0000udieresis\": -20,\n\t\"b\\u0000ugrave\": -20,\n\t\"b\\u0000uhungarumlaut\": -20,\n\t\"b\\u0000umacron\": -20,\n\t\"b\\u0000uogonek\": -20,\n\t\"b\\u0000uring\": -20,\n\t\"b\\u0000v\": -15,\n\t\"c\\u0000y\": -15,\n\t\"c\\u0000yacute\": -15,\n\t\"c\\u0000ydieresis\": -15,\n\t\"cacute\\u0000y\": -15,\n\t\"cacute\\u0000yacute\": -15,\n\t\"cacute\\u0000ydieresis\": -15,\n\t\"ccaron\\u0000y\": -15,\n\t\"ccaron\\u0000yacute\": -15,\n\t\"ccaron\\u0000ydieresis\": -15,\n\t\"ccedilla\\u0000y\": -15,\n\t\"ccedilla\\u0000yacute\": -15,\n\t\"ccedilla\\u0000ydieresis\": -15,\n\t\"comma\\u0000quotedblright\": -70,\n\t\"comma\\u0000quoteright\": -70,\n\t\"e\\u0000g\": -15,\n\t\"e\\u0000gbreve\": -15,\n\t\"e\\u0000gcommaaccent\": -15,\n\t\"e\\u0000v\": -25,\n\t\"e\\u0000w\": -25,\n\t\"e\\u0000x\": -15,\n\t\"e\\u0000y\": -15,\n\t\"e\\u0000yacute\": -15,\n\t\"e\\u0000ydieresis\": -15,\n\t\"eacute\\u0000g\": -15,\n\t\"eacute\\u0000gbreve\": -15,\n\t\"eacute\\u0000gcommaaccent\": -15,\n\t\"eacute\\u0000v\": -25,\n\t\"eacute\\u0000w\": -25,\n\t\"eacute\\u0000x\": -15,\n\t\"eacute\\u0000y\": -15,\n\t\"eacute\\u0000yacute\": -15,\n\t\"eacute\\u0000ydieresis\": -15,\n\t\"ecaron\\u0000g\": -15,\n\t\"ecaron\\u0000gbreve\": -15,\n\t\"ecaron\\u0000gcommaaccent\": -15,\n\t\"ecaron\\u0000v\": -25,\n\t\"ecaron\\u0000w\": -25,\n\t\"ecaron\\u0000x\": -15,\n\t\"ecaron\\u0000y\": -15,\n\t\"ecaron\\u0000yacute\": -15,\n\t\"ecaron\\u0000ydieresis\": -15,\n\t\"ecircumflex\\u0000g\": -15,\n\t\"ecircumflex\\u0000gbreve\": -15,\n\t\"ecircumflex\\u0000gcommaaccent\": -15,\n\t\"ecircumflex\\u0000v\": -25,\n\t\"ecircumflex\\u0000w\": -25,\n\t\"ecircumflex\\u0000x\": -15,\n\t\"ecircumflex\\u0000y\": -15,\n\t\"ecircumflex\\u0000yacute\": -15,\n\t\"ecircumflex\\u0000ydieresis\": -15,\n\t\"edieresis\\u0000g\": -15,\n\t\"edieresis\\u0000gbreve\": -15,\n\t\"edieresis\\u0000gcommaaccent\": -15,\n\t\"edieresis\\u0000v\": -25,\n\t\"edieresis\\u0000w\": -25,\n\t\"edieresis\\u0000x\": -15,\n\t\"edieresis\\u0000y\": -15,\n\t\"edieresis\\u0000yacute\": -15,\n\t\"edieresis\\u0000ydieresis\": -15,\n\t\"edotaccent\\u0000g\": -15,\n\t\"edotaccent\\u0000gbreve\": -15,\n\t\"edotaccent\\u0000gcommaaccent\": -15,\n\t\"edotaccent\\u0000v\": -25,\n\t\"edotaccent\\u0000w\": -25,\n\t\"edotaccent\\u0000x\": -15,\n\t\"edotaccent\\u0000y\": -15,\n\t\"edotaccent\\u0000yacute\": -15,\n\t\"edotaccent\\u0000ydieresis\": -15,\n\t\"egrave\\u0000g\": -15,\n\t\"egrave\\u0000gbreve\": -15,\n\t\"egrave\\u0000gcommaaccent\": -15,\n\t\"egrave\\u0000v\": -25,\n\t\"egrave\\u0000w\": -25,\n\t\"egrave\\u0000x\": -15,\n\t\"egrave\\u0000y\": -15,\n\t\"egrave\\u0000yacute\": -15,\n\t\"egrave\\u0000ydieresis\": -15,\n\t\"emacron\\u0000g\": -15,\n\t\"emacron\\u0000gbreve\": -15,\n\t\"emacron\\u0000gcommaaccent\": -15,\n\t\"emacron\\u0000v\": -25,\n\t\"emacron\\u0000w\": -25,\n\t\"emacron\\u0000x\": -15,\n\t\"emacron\\u0000y\": -15,\n\t\"emacron\\u0000yacute\": -15,\n\t\"emacron\\u0000ydieresis\": -15,\n\t\"eogonek\\u0000g\": -15,\n\t\"eogonek\\u0000gbreve\": -15,\n\t\"eogonek\\u0000gcommaaccent\": -15,\n\t\"eogonek\\u0000v\": -25,\n\t\"eogonek\\u0000w\": -25,\n\t\"eogonek\\u0000x\": -15,\n\t\"eogonek\\u0000y\": -15,\n\t\"eogonek\\u0000yacute\": -15,\n\t\"eogonek\\u0000ydieresis\": -15,\n\t\"f\\u0000a\": -10,\n\t\"f\\u0000aacute\": -10,\n\t\"f\\u0000abreve\": -10,\n\t\"f\\u0000acircumflex\": -10,\n\t\"f\\u0000adieresis\": -10,\n\t\"f\\u0000agrave\": -10,\n\t\"f\\u0000amacron\": -10,\n\t\"f\\u0000aogonek\": -10,\n\t\"f\\u0000aring\": -10,\n\t\"f\\u0000atilde\": -10,\n\t\"f\\u0000dotlessi\": -50,\n\t\"f\\u0000f\": -25,\n\t\"f\\u0000i\": -20,\n\t\"f\\u0000iacute\": -20,\n\t\"f\\u0000quoteright\": 55,\n\t\"g\\u0000a\": -5,\n\t\"g\\u0000aacute\": -5,\n\t\"g\\u0000abreve\": -5,\n\t\"g\\u0000acircumflex\": -5,\n\t\"g\\u0000adieresis\": -5,\n\t\"g\\u0000agrave\": -5,\n\t\"g\\u0000amacron\": -5,\n\t\"g\\u0000aogonek\": -5,\n\t\"g\\u0000aring\": -5,\n\t\"g\\u0000atilde\": -5,\n\t\"gbreve\\u0000a\": -5,\n\t\"gbreve\\u0000aacute\": -5,\n\t\"gbreve\\u0000abreve\": -5,\n\t\"gbreve\\u0000acircumflex\": -5,\n\t\"gbreve\\u0000adieresis\": -5,\n\t\"gbreve\\u0000agrave\": -5,\n\t\"gbreve\\u0000amacron\": -5,\n\t\"gbreve\\u0000aogonek\": -5,\n\t\"gbreve\\u0000aring\": -5,\n\t\"gbreve\\u0000atilde\": -5,\n\t\"gcommaaccent\\u0000a\": -5,\n\t\"gcommaaccent\\u0000aacute\": -5,\n\t\"gcommaaccent\\u0000abreve\": -5,\n\t\"gcommaaccent\\u0000acircumflex\": -5,\n\t\"gcommaaccent\\u0000adieresis\": -5,\n\t\"gcommaaccent\\u0000agrave\": -5,\n\t\"gcommaaccent\\u0000amacron\": -5,\n\t\"gcommaaccent\\u0000aogonek\": -5,\n\t\"gcommaaccent\\u0000aring\": -5,\n\t\"gcommaaccent\\u0000atilde\": -5,\n\t\"h\\u0000y\": -5,\n\t\"h\\u0000yacute\": -5,\n\t\"h\\u0000ydieresis\": -5,\n\t\"i\\u0000v\": -25,\n\t\"iacute\\u0000v\": -25,\n\t\"icircumflex\\u0000v\": -25,\n\t\"idieresis\\u0000v\": -25,\n\t\"igrave\\u0000v\": -25,\n\t\"imacron\\u0000v\": -25,\n\t\"iogonek\\u0000v\": -25,\n\t\"k\\u0000e\": -10,\n\t\"k\\u0000eacute\": -10,\n\t\"k\\u0000ecaron\": -10,\n\t\"k\\u0000ecircumflex\": -10,\n\t\"k\\u0000edieresis\": -10,\n\t\"k\\u0000edotaccent\": -10,\n\t\"k\\u0000egrave\": -10,\n\t\"k\\u0000emacron\": -10,\n\t\"k\\u0000eogonek\": -10,\n\t\"k\\u0000o\": -10,\n\t\"k\\u0000oacute\": -10,\n\t\"k\\u0000ocircumflex\": -10,\n\t\"k\\u0000odieresis\": -10,\n\t\"k\\u0000ograve\": -10,\n\t\"k\\u0000ohungarumlaut\": -10,\n\t\"k\\u0000omacron\": -10,\n\t\"k\\u0000oslash\": -10,\n\t\"k\\u0000otilde\": -10,\n\t\"k\\u0000y\": -15,\n\t\"k\\u0000yacute\": -15,\n\t\"k\\u0000ydieresis\": -15,\n\t\"kcommaaccent\\u0000e\": -10,\n\t\"kcommaaccent\\u0000eacute\": -10,\n\t\"kcommaaccent\\u0000ecaron\": -10,\n\t\"kcommaaccent\\u0000ecircumflex\": -10,\n\t\"kcommaaccent\\u0000edieresis\": -10,\n\t\"kcommaaccent\\u0000edotaccent\": -10,\n\t\"kcommaaccent\\u0000egrave\": -10,\n\t\"kcommaaccent\\u0000emacron\": -10,\n\t\"kcommaaccent\\u0000eogonek\": -10,\n\t\"kcommaaccent\\u0000o\": -10,\n\t\"kcommaaccent\\u0000oacute\": -10,\n\t\"kcommaaccent\\u0000ocircumflex\": -10,\n\t\"kcommaaccent\\u0000odieresis\": -10,\n\t\"kcommaaccent\\u0000ograve\": -10,\n\t\"kcommaaccent\\u0000ohungarumlaut\": -10,\n\t\"kcommaaccent\\u0000omacron\": -10,\n\t\"kcommaaccent\\u0000oslash\": -10,\n\t\"kcommaaccent\\u0000otilde\": -10,\n\t\"kcommaaccent\\u0000y\": -15,\n\t\"kcommaaccent\\u0000yacute\": -15,\n\t\"kcommaaccent\\u0000ydieresis\": -15,\n\t\"l\\u0000w\": -10,\n\t\"lacute\\u0000w\": -10,\n\t\"lcommaaccent\\u0000w\": -10,\n\t\"lslash\\u0000w\": -10,\n\t\"n\\u0000v\": -40,\n\t\"n\\u0000y\": -15,\n\t\"n\\u0000yacute\": -15,\n\t\"n\\u0000ydieresis\": -15,\n\t\"nacute\\u0000v\": -40,\n\t\"nacute\\u0000y\": -15,\n\t\"nacute\\u0000yacute\": -15,\n\t\"nacute\\u0000ydieresis\": -15,\n\t\"ncaron\\u0000v\": -40,\n\t\"ncaron\\u0000y\": -15,\n\t\"ncaron\\u0000yacute\": -15,\n\t\"ncaron\\u0000ydieresis\": -15,\n\t\"ncommaaccent\\u0000v\": -40,\n\t\"ncommaaccent\\u0000y\": -15,\n\t\"ncommaaccent\\u0000yacute\": -15,\n\t\"ncommaaccent\\u0000ydieresis\": -15,\n\t\"ntilde\\u0000v\": -40,\n\t\"ntilde\\u0000y\": -15,\n\t\"ntilde\\u0000yacute\": -15,\n\t\"ntilde\\u0000ydieresis\": -15,\n\t\"o\\u0000v\": -15,\n\t\"o\\u0000w\": -25,\n\t\"o\\u0000y\": -10,\n\t\"o\\u0000yacute\": -10,\n\t\"o\\u0000ydieresis\": -10,\n\t\"oacute\\u0000v\": -15,\n\t\"oacute\\u0000w\": -25,\n\t\"oacute\\u0000y\": -10,\n\t\"oacute\\u0000yacute\": -10,\n\t\"oacute\\u0000ydieresis\": -10,\n\t\"ocircumflex\\u0000v\": -15,\n\t\"ocircumflex\\u0000w\": -25,\n\t\"ocircumflex\\u0000y\": -10,\n\t\"ocircumflex\\u0000yacute\": -10,\n\t\"ocircumflex\\u0000ydieresis\": -10,\n\t\"odieresis\\u0000v\": -15,\n\t\"odieresis\\u0000w\": -25,\n\t\"odieresis\\u0000y\": -10,\n\t\"odieresis\\u0000yacute\": -10,\n\t\"odieresis\\u0000ydieresis\": -10,\n\t\"ograve\\u0000v\": -15,\n\t\"ograve\\u0000w\": -25,\n\t\"ograve\\u0000y\": -10,\n\t\"ograve\\u0000yacute\": -10,\n\t\"ograve\\u0000ydieresis\": -10,\n\t\"ohungarumlaut\\u0000v\": -15,\n\t\"ohungarumlaut\\u0000w\": -25,\n\t\"ohungarumlaut\\u0000y\": -10,\n\t\"ohungarumlaut\\u0000yacute\": -10,\n\t\"ohungarumlaut\\u0000ydieresis\": -10,\n\t\"omacron\\u0000v\": -15,\n\t\"omacron\\u0000w\": -25,\n\t\"omacron\\u0000y\": -10,\n\t\"omacron\\u0000yacute\": -10,\n\t\"omacron\\u0000ydieresis\": -10,\n\t\"oslash\\u0000v\": -15,\n\t\"oslash\\u0000w\": -25,\n\t\"oslash\\u0000y\": -10,\n\t\"oslash\\u0000yacute\": -10,\n\t\"oslash\\u0000ydieresis\": -10,\n\t\"otilde\\u0000v\": -15,\n\t\"otilde\\u0000w\": -25,\n\t\"otilde\\u0000y\": -10,\n\t\"otilde\\u0000yacute\": -10,\n\t\"otilde\\u0000ydieresis\": -10,\n\t\"p\\u0000y\": -10,\n\t\"p\\u0000yacute\": -10,\n\t\"p\\u0000ydieresis\": -10,\n\t\"period\\u0000quotedblright\": -70,\n\t\"period\\u0000quoteright\": -70,\n\t\"quotedblleft\\u0000A\": -80,\n\t\"quotedblleft\\u0000Aacute\": -80,\n\t\"quotedblleft\\u0000Abreve\": -80,\n\t\"quotedblleft\\u0000Acircumflex\": -80,\n\t\"quotedblleft\\u0000Adieresis\": -80,\n\t\"quotedblleft\\u0000Agrave\": -80,\n\t\"quotedblleft\\u0000Amacron\": -80,\n\t\"quotedblleft\\u0000Aogonek\": -80,\n\t\"quotedblleft\\u0000Aring\": -80,\n\t\"quotedblleft\\u0000Atilde\": -80,\n\t\"quoteleft\\u0000A\": -80,\n\t\"quoteleft\\u0000Aacute\": -80,\n\t\"quoteleft\\u0000Abreve\": -80,\n\t\"quoteleft\\u0000Acircumflex\": -80,\n\t\"quoteleft\\u0000Adieresis\": -80,\n\t\"quoteleft\\u0000Agrave\": -80,\n\t\"quoteleft\\u0000Amacron\": -80,\n\t\"quoteleft\\u0000Aogonek\": -80,\n\t\"quoteleft\\u0000Aring\": -80,\n\t\"quoteleft\\u0000Atilde\": -80,\n\t\"quoteleft\\u0000quoteleft\": -74,\n\t\"quoteright\\u0000d\": -50,\n\t\"quoteright\\u0000dcroat\": -50,\n\t\"quoteright\\u0000l\": -10,\n\t\"quoteright\\u0000lacute\": -10,\n\t\"quoteright\\u0000lcommaaccent\": -10,\n\t\"quoteright\\u0000lslash\": -10,\n\t\"quoteright\\u0000quoteright\": -74,\n\t\"quoteright\\u0000r\": -50,\n\t\"quoteright\\u0000racute\": -50,\n\t\"quoteright\\u0000rcaron\": -50,\n\t\"quoteright\\u0000rcommaaccent\": -50,\n\t\"quoteright\\u0000s\": -55,\n\t\"quoteright\\u0000sacute\": -55,\n\t\"quoteright\\u0000scaron\": -55,\n\t\"quoteright\\u0000scedilla\": -55,\n\t\"quoteright\\u0000scommaaccent\": -55,\n\t\"quoteright\\u0000space\": -74,\n\t\"quoteright\\u0000t\": -18,\n\t\"quoteright\\u0000tcommaaccent\": -18,\n\t\"quoteright\\u0000v\": -50,\n\t\"r\\u0000comma\": -40,\n\t\"r\\u0000g\": -18,\n\t\"r\\u0000gbreve\": -18,\n\t\"r\\u0000gcommaaccent\": -18,\n\t\"r\\u0000hyphen\": -20,\n\t\"r\\u0000period\": -55,\n\t\"racute\\u0000comma\": -40,\n\t\"racute\\u0000g\": -18,\n\t\"racute\\u0000gbreve\": -18,\n\t\"racute\\u0000gcommaaccent\": -18,\n\t\"racute\\u0000hyphen\": -20,\n\t\"racute\\u0000period\": -55,\n\t\"rcaron\\u0000comma\": -40,\n\t\"rcaron\\u0000g\": -18,\n\t\"rcaron\\u0000gbreve\": -18,\n\t\"rcaron\\u0000gcommaaccent\": -18,\n\t\"rcaron\\u0000hyphen\": -20,\n\t\"rcaron\\u0000period\": -55,\n\t\"rcommaaccent\\u0000comma\": -40,\n\t\"rcommaaccent\\u0000g\": -18,\n\t\"rcommaaccent\\u0000gbreve\": -18,\n\t\"rcommaaccent\\u0000gcommaaccent\": -18,\n\t\"rcommaaccent\\u0000hyphen\": -20,\n\t\"rcommaaccent\\u0000period\": -55,\n\t\"space\\u0000A\": -55,\n\t\"space\\u0000Aacute\": -55,\n\t\"space\\u0000Abreve\": -55,\n\t\"space\\u0000Acircumflex\": -55,\n\t\"space\\u0000Adieresis\": -55,\n\t\"space\\u0000Agrave\": -55,\n\t\"space\\u0000Amacron\": -55,\n\t\"space\\u0000Aogonek\": -55,\n\t\"space\\u0000Aring\": -55,\n\t\"space\\u0000Atilde\": -55,\n\t\"space\\u0000T\": -18,\n\t\"space\\u0000Tcaron\": -18,\n\t\"space\\u0000Tcommaaccent\": -18,\n\t\"space\\u0000V\": -50,\n\t\"space\\u0000W\": -30,\n\t\"space\\u0000Y\": -90,\n\t\"space\\u0000Yacute\": -90,\n\t\"space\\u0000Ydieresis\": -90,\n\t\"v\\u0000a\": -25,\n\t\"v\\u0000aacute\": -25,\n\t\"v\\u0000abreve\": -25,\n\t\"v\\u0000acircumflex\": -25,\n\t\"v\\u0000adieresis\": -25,\n\t\"v\\u0000agrave\": -25,\n\t\"v\\u0000amacron\": -25,\n\t\"v\\u0000aogonek\": -25,\n\t\"v\\u0000aring\": -25,\n\t\"v\\u0000atilde\": -25,\n\t\"v\\u0000comma\": -65,\n\t\"v\\u0000e\": -15,\n\t\"v\\u0000eacute\": -15,\n\t\"v\\u0000ecaron\": -15,\n\t\"v\\u0000ecircumflex\": -15,\n\t\"v\\u0000edieresis\": -15,\n\t\"v\\u0000edotaccent\": -15,\n\t\"v\\u0000egrave\": -15,\n\t\"v\\u0000emacron\": -15,\n\t\"v\\u0000eogonek\": -15,\n\t\"v\\u0000o\": -20,\n\t\"v\\u0000oacute\": -20,\n\t\"v\\u0000ocircumflex\": -20,\n\t\"v\\u0000odieresis\": -20,\n\t\"v\\u0000ograve\": -20,\n\t\"v\\u0000ohungarumlaut\": -20,\n\t\"v\\u0000omacron\": -20,\n\t\"v\\u0000oslash\": -20,\n\t\"v\\u0000otilde\": -20,\n\t\"v\\u0000period\": -65,\n\t\"w\\u0000a\": -10,\n\t\"w\\u0000aacute\": -10,\n\t\"w\\u0000abreve\": -10,\n\t\"w\\u0000acircumflex\": -10,\n\t\"w\\u0000adieresis\": -10,\n\t\"w\\u0000agrave\": -10,\n\t\"w\\u0000amacron\": -10,\n\t\"w\\u0000aogonek\": -10,\n\t\"w\\u0000aring\": -10,\n\t\"w\\u0000atilde\": -10,\n\t\"w\\u0000comma\": -65,\n\t\"w\\u0000o\": -10,\n\t\"w\\u0000oacute\": -10,\n\t\"w\\u0000ocircumflex\": -10,\n\t\"w\\u0000odieresis\": -10,\n\t\"w\\u0000ograve\": -10,\n\t\"w\\u0000ohungarumlaut\": -10,\n\t\"w\\u0000omacron\": -10,\n\t\"w\\u0000oslash\": -10,\n\t\"w\\u0000otilde\": -10,\n\t\"w\\u0000period\": -65,\n\t\"x\\u0000e\": -15,\n\t\"x\\u0000eacute\": -15,\n\t\"x\\u0000ecaron\": -15,\n\t\"x\\u0000ecircumflex\": -15,\n\t\"x\\u0000edieresis\": -15,\n\t\"x\\u0000edotaccent\": -15,\n\t\"x\\u0000egrave\": -15,\n\t\"x\\u0000emacron\": -15,\n\t\"x\\u0000eogonek\": -15,\n\t\"y\\u0000comma\": -65,\n\t\"y\\u0000period\": -65,\n\t\"yacute\\u0000comma\": -65,\n\t\"yacute\\u0000period\": -65,\n\t\"ydieresis\\u0000comma\": -65,\n\t\"ydieresis\\u0000period\": -65\n};\nvar TimesRoman = {\n\tattributes: attributes$2,\n\tglyphWidths: glyphWidths$2,\n\tkernPairs: kernPairs$2\n};\n\nvar attributes$1 = {\n\tComment: [\n\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Thu May 1 12:52:56 1997\",\n\t\t\"UniqueID 43065\",\n\t\t\"VMusage 41636 52661\"\n\t],\n\tFontName: \"Times-Bold\",\n\tFullName: \"Times Bold\",\n\tFamilyName: \"Times\",\n\tWeight: \"Bold\",\n\tItalicAngle: \"0\",\n\tIsFixedPitch: \"false\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-168 -218 1000 935 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"002.000\",\n\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"676\",\n\tXHeight: \"461\",\n\tAscender: \"683\",\n\tDescender: \"-217\",\n\tStdHW: \"44\",\n\tStdVW: \"139\"\n};\nvar glyphWidths$1 = {\n\tspace: 250,\n\texclam: 333,\n\tquotedbl: 555,\n\tnumbersign: 500,\n\tdollar: 500,\n\tpercent: 1000,\n\tampersand: 833,\n\tquoteright: 333,\n\tparenleft: 333,\n\tparenright: 333,\n\tasterisk: 500,\n\tplus: 570,\n\tcomma: 250,\n\thyphen: 333,\n\tperiod: 250,\n\tslash: 278,\n\tzero: 500,\n\tone: 500,\n\ttwo: 500,\n\tthree: 500,\n\tfour: 500,\n\tfive: 500,\n\tsix: 500,\n\tseven: 500,\n\teight: 500,\n\tnine: 500,\n\tcolon: 333,\n\tsemicolon: 333,\n\tless: 570,\n\tequal: 570,\n\tgreater: 570,\n\tquestion: 500,\n\tat: 930,\n\tA: 722,\n\tB: 667,\n\tC: 722,\n\tD: 722,\n\tE: 667,\n\tF: 611,\n\tG: 778,\n\tH: 778,\n\tI: 389,\n\tJ: 500,\n\tK: 778,\n\tL: 667,\n\tM: 944,\n\tN: 722,\n\tO: 778,\n\tP: 611,\n\tQ: 778,\n\tR: 722,\n\tS: 556,\n\tT: 667,\n\tU: 722,\n\tV: 722,\n\tW: 1000,\n\tX: 722,\n\tY: 722,\n\tZ: 667,\n\tbracketleft: 333,\n\tbackslash: 278,\n\tbracketright: 333,\n\tasciicircum: 581,\n\tunderscore: 500,\n\tquoteleft: 333,\n\ta: 500,\n\tb: 556,\n\tc: 444,\n\td: 556,\n\te: 444,\n\tf: 333,\n\tg: 500,\n\th: 556,\n\ti: 278,\n\tj: 333,\n\tk: 556,\n\tl: 278,\n\tm: 833,\n\tn: 556,\n\to: 500,\n\tp: 556,\n\tq: 556,\n\tr: 444,\n\ts: 389,\n\tt: 333,\n\tu: 556,\n\tv: 500,\n\tw: 722,\n\tx: 500,\n\ty: 500,\n\tz: 444,\n\tbraceleft: 394,\n\tbar: 220,\n\tbraceright: 394,\n\tasciitilde: 520,\n\texclamdown: 333,\n\tcent: 500,\n\tsterling: 500,\n\tfraction: 167,\n\tyen: 500,\n\tflorin: 500,\n\tsection: 500,\n\tcurrency: 500,\n\tquotesingle: 278,\n\tquotedblleft: 500,\n\tguillemotleft: 500,\n\tguilsinglleft: 333,\n\tguilsinglright: 333,\n\tfi: 556,\n\tfl: 556,\n\tendash: 500,\n\tdagger: 500,\n\tdaggerdbl: 500,\n\tperiodcentered: 250,\n\tparagraph: 540,\n\tbullet: 350,\n\tquotesinglbase: 333,\n\tquotedblbase: 500,\n\tquotedblright: 500,\n\tguillemotright: 500,\n\tellipsis: 1000,\n\tperthousand: 1000,\n\tquestiondown: 500,\n\tgrave: 333,\n\tacute: 333,\n\tcircumflex: 333,\n\ttilde: 333,\n\tmacron: 333,\n\tbreve: 333,\n\tdotaccent: 333,\n\tdieresis: 333,\n\tring: 333,\n\tcedilla: 333,\n\thungarumlaut: 333,\n\togonek: 333,\n\tcaron: 333,\n\temdash: 1000,\n\tAE: 1000,\n\tordfeminine: 300,\n\tLslash: 667,\n\tOslash: 778,\n\tOE: 1000,\n\tordmasculine: 330,\n\tae: 722,\n\tdotlessi: 278,\n\tlslash: 278,\n\toslash: 500,\n\toe: 722,\n\tgermandbls: 556,\n\tIdieresis: 389,\n\teacute: 444,\n\tabreve: 500,\n\tuhungarumlaut: 556,\n\tecaron: 444,\n\tYdieresis: 722,\n\tdivide: 570,\n\tYacute: 722,\n\tAcircumflex: 722,\n\taacute: 500,\n\tUcircumflex: 722,\n\tyacute: 500,\n\tscommaaccent: 389,\n\tecircumflex: 444,\n\tUring: 722,\n\tUdieresis: 722,\n\taogonek: 500,\n\tUacute: 722,\n\tuogonek: 556,\n\tEdieresis: 667,\n\tDcroat: 722,\n\tcommaaccent: 250,\n\tcopyright: 747,\n\tEmacron: 667,\n\tccaron: 444,\n\taring: 500,\n\tNcommaaccent: 722,\n\tlacute: 278,\n\tagrave: 500,\n\tTcommaaccent: 667,\n\tCacute: 722,\n\tatilde: 500,\n\tEdotaccent: 667,\n\tscaron: 389,\n\tscedilla: 389,\n\tiacute: 278,\n\tlozenge: 494,\n\tRcaron: 722,\n\tGcommaaccent: 778,\n\tucircumflex: 556,\n\tacircumflex: 500,\n\tAmacron: 722,\n\trcaron: 444,\n\tccedilla: 444,\n\tZdotaccent: 667,\n\tThorn: 611,\n\tOmacron: 778,\n\tRacute: 722,\n\tSacute: 556,\n\tdcaron: 672,\n\tUmacron: 722,\n\turing: 556,\n\tthreesuperior: 300,\n\tOgrave: 778,\n\tAgrave: 722,\n\tAbreve: 722,\n\tmultiply: 570,\n\tuacute: 556,\n\tTcaron: 667,\n\tpartialdiff: 494,\n\tydieresis: 500,\n\tNacute: 722,\n\ticircumflex: 278,\n\tEcircumflex: 667,\n\tadieresis: 500,\n\tedieresis: 444,\n\tcacute: 444,\n\tnacute: 556,\n\tumacron: 556,\n\tNcaron: 722,\n\tIacute: 389,\n\tplusminus: 570,\n\tbrokenbar: 220,\n\tregistered: 747,\n\tGbreve: 778,\n\tIdotaccent: 389,\n\tsummation: 600,\n\tEgrave: 667,\n\tracute: 444,\n\tomacron: 500,\n\tZacute: 667,\n\tZcaron: 667,\n\tgreaterequal: 549,\n\tEth: 722,\n\tCcedilla: 722,\n\tlcommaaccent: 278,\n\ttcaron: 416,\n\teogonek: 444,\n\tUogonek: 722,\n\tAacute: 722,\n\tAdieresis: 722,\n\tegrave: 444,\n\tzacute: 444,\n\tiogonek: 278,\n\tOacute: 778,\n\toacute: 500,\n\tamacron: 500,\n\tsacute: 389,\n\tidieresis: 278,\n\tOcircumflex: 778,\n\tUgrave: 722,\n\tDelta: 612,\n\tthorn: 556,\n\ttwosuperior: 300,\n\tOdieresis: 778,\n\tmu: 556,\n\tigrave: 278,\n\tohungarumlaut: 500,\n\tEogonek: 667,\n\tdcroat: 556,\n\tthreequarters: 750,\n\tScedilla: 556,\n\tlcaron: 394,\n\tKcommaaccent: 778,\n\tLacute: 667,\n\ttrademark: 1000,\n\tedotaccent: 444,\n\tIgrave: 389,\n\tImacron: 389,\n\tLcaron: 667,\n\tonehalf: 750,\n\tlessequal: 549,\n\tocircumflex: 500,\n\tntilde: 556,\n\tUhungarumlaut: 722,\n\tEacute: 667,\n\temacron: 444,\n\tgbreve: 500,\n\tonequarter: 750,\n\tScaron: 556,\n\tScommaaccent: 556,\n\tOhungarumlaut: 778,\n\tdegree: 400,\n\tograve: 500,\n\tCcaron: 722,\n\tugrave: 556,\n\tradical: 549,\n\tDcaron: 722,\n\trcommaaccent: 444,\n\tNtilde: 722,\n\totilde: 500,\n\tRcommaaccent: 722,\n\tLcommaaccent: 667,\n\tAtilde: 722,\n\tAogonek: 722,\n\tAring: 722,\n\tOtilde: 778,\n\tzdotaccent: 444,\n\tEcaron: 667,\n\tIogonek: 389,\n\tkcommaaccent: 556,\n\tminus: 570,\n\tIcircumflex: 389,\n\tncaron: 556,\n\ttcommaaccent: 333,\n\tlogicalnot: 570,\n\todieresis: 500,\n\tudieresis: 556,\n\tnotequal: 549,\n\tgcommaaccent: 500,\n\teth: 500,\n\tzcaron: 444,\n\tncommaaccent: 556,\n\tonesuperior: 300,\n\timacron: 278,\n\tEuro: 500\n};\nvar kernPairs$1 = {\n\t\"A\\u0000C\": -55,\n\t\"A\\u0000Cacute\": -55,\n\t\"A\\u0000Ccaron\": -55,\n\t\"A\\u0000Ccedilla\": -55,\n\t\"A\\u0000G\": -55,\n\t\"A\\u0000Gbreve\": -55,\n\t\"A\\u0000Gcommaaccent\": -55,\n\t\"A\\u0000O\": -45,\n\t\"A\\u0000Oacute\": -45,\n\t\"A\\u0000Ocircumflex\": -45,\n\t\"A\\u0000Odieresis\": -45,\n\t\"A\\u0000Ograve\": -45,\n\t\"A\\u0000Ohungarumlaut\": -45,\n\t\"A\\u0000Omacron\": -45,\n\t\"A\\u0000Oslash\": -45,\n\t\"A\\u0000Otilde\": -45,\n\t\"A\\u0000Q\": -45,\n\t\"A\\u0000T\": -95,\n\t\"A\\u0000Tcaron\": -95,\n\t\"A\\u0000Tcommaaccent\": -95,\n\t\"A\\u0000U\": -50,\n\t\"A\\u0000Uacute\": -50,\n\t\"A\\u0000Ucircumflex\": -50,\n\t\"A\\u0000Udieresis\": -50,\n\t\"A\\u0000Ugrave\": -50,\n\t\"A\\u0000Uhungarumlaut\": -50,\n\t\"A\\u0000Umacron\": -50,\n\t\"A\\u0000Uogonek\": -50,\n\t\"A\\u0000Uring\": -50,\n\t\"A\\u0000V\": -145,\n\t\"A\\u0000W\": -130,\n\t\"A\\u0000Y\": -100,\n\t\"A\\u0000Yacute\": -100,\n\t\"A\\u0000Ydieresis\": -100,\n\t\"A\\u0000p\": -25,\n\t\"A\\u0000quoteright\": -74,\n\t\"A\\u0000u\": -50,\n\t\"A\\u0000uacute\": -50,\n\t\"A\\u0000ucircumflex\": -50,\n\t\"A\\u0000udieresis\": -50,\n\t\"A\\u0000ugrave\": -50,\n\t\"A\\u0000uhungarumlaut\": -50,\n\t\"A\\u0000umacron\": -50,\n\t\"A\\u0000uogonek\": -50,\n\t\"A\\u0000uring\": -50,\n\t\"A\\u0000v\": -100,\n\t\"A\\u0000w\": -90,\n\t\"A\\u0000y\": -74,\n\t\"A\\u0000yacute\": -74,\n\t\"A\\u0000ydieresis\": -74,\n\t\"Aacute\\u0000C\": -55,\n\t\"Aacute\\u0000Cacute\": -55,\n\t\"Aacute\\u0000Ccaron\": -55,\n\t\"Aacute\\u0000Ccedilla\": -55,\n\t\"Aacute\\u0000G\": -55,\n\t\"Aacute\\u0000Gbreve\": -55,\n\t\"Aacute\\u0000Gcommaaccent\": -55,\n\t\"Aacute\\u0000O\": -45,\n\t\"Aacute\\u0000Oacute\": -45,\n\t\"Aacute\\u0000Ocircumflex\": -45,\n\t\"Aacute\\u0000Odieresis\": -45,\n\t\"Aacute\\u0000Ograve\": -45,\n\t\"Aacute\\u0000Ohungarumlaut\": -45,\n\t\"Aacute\\u0000Omacron\": -45,\n\t\"Aacute\\u0000Oslash\": -45,\n\t\"Aacute\\u0000Otilde\": -45,\n\t\"Aacute\\u0000Q\": -45,\n\t\"Aacute\\u0000T\": -95,\n\t\"Aacute\\u0000Tcaron\": -95,\n\t\"Aacute\\u0000Tcommaaccent\": -95,\n\t\"Aacute\\u0000U\": -50,\n\t\"Aacute\\u0000Uacute\": -50,\n\t\"Aacute\\u0000Ucircumflex\": -50,\n\t\"Aacute\\u0000Udieresis\": -50,\n\t\"Aacute\\u0000Ugrave\": -50,\n\t\"Aacute\\u0000Uhungarumlaut\": -50,\n\t\"Aacute\\u0000Umacron\": -50,\n\t\"Aacute\\u0000Uogonek\": -50,\n\t\"Aacute\\u0000Uring\": -50,\n\t\"Aacute\\u0000V\": -145,\n\t\"Aacute\\u0000W\": -130,\n\t\"Aacute\\u0000Y\": -100,\n\t\"Aacute\\u0000Yacute\": -100,\n\t\"Aacute\\u0000Ydieresis\": -100,\n\t\"Aacute\\u0000p\": -25,\n\t\"Aacute\\u0000quoteright\": -74,\n\t\"Aacute\\u0000u\": -50,\n\t\"Aacute\\u0000uacute\": -50,\n\t\"Aacute\\u0000ucircumflex\": -50,\n\t\"Aacute\\u0000udieresis\": -50,\n\t\"Aacute\\u0000ugrave\": -50,\n\t\"Aacute\\u0000uhungarumlaut\": -50,\n\t\"Aacute\\u0000umacron\": -50,\n\t\"Aacute\\u0000uogonek\": -50,\n\t\"Aacute\\u0000uring\": -50,\n\t\"Aacute\\u0000v\": -100,\n\t\"Aacute\\u0000w\": -90,\n\t\"Aacute\\u0000y\": -74,\n\t\"Aacute\\u0000yacute\": -74,\n\t\"Aacute\\u0000ydieresis\": -74,\n\t\"Abreve\\u0000C\": -55,\n\t\"Abreve\\u0000Cacute\": -55,\n\t\"Abreve\\u0000Ccaron\": -55,\n\t\"Abreve\\u0000Ccedilla\": -55,\n\t\"Abreve\\u0000G\": -55,\n\t\"Abreve\\u0000Gbreve\": -55,\n\t\"Abreve\\u0000Gcommaaccent\": -55,\n\t\"Abreve\\u0000O\": -45,\n\t\"Abreve\\u0000Oacute\": -45,\n\t\"Abreve\\u0000Ocircumflex\": -45,\n\t\"Abreve\\u0000Odieresis\": -45,\n\t\"Abreve\\u0000Ograve\": -45,\n\t\"Abreve\\u0000Ohungarumlaut\": -45,\n\t\"Abreve\\u0000Omacron\": -45,\n\t\"Abreve\\u0000Oslash\": -45,\n\t\"Abreve\\u0000Otilde\": -45,\n\t\"Abreve\\u0000Q\": -45,\n\t\"Abreve\\u0000T\": -95,\n\t\"Abreve\\u0000Tcaron\": -95,\n\t\"Abreve\\u0000Tcommaaccent\": -95,\n\t\"Abreve\\u0000U\": -50,\n\t\"Abreve\\u0000Uacute\": -50,\n\t\"Abreve\\u0000Ucircumflex\": -50,\n\t\"Abreve\\u0000Udieresis\": -50,\n\t\"Abreve\\u0000Ugrave\": -50,\n\t\"Abreve\\u0000Uhungarumlaut\": -50,\n\t\"Abreve\\u0000Umacron\": -50,\n\t\"Abreve\\u0000Uogonek\": -50,\n\t\"Abreve\\u0000Uring\": -50,\n\t\"Abreve\\u0000V\": -145,\n\t\"Abreve\\u0000W\": -130,\n\t\"Abreve\\u0000Y\": -100,\n\t\"Abreve\\u0000Yacute\": -100,\n\t\"Abreve\\u0000Ydieresis\": -100,\n\t\"Abreve\\u0000p\": -25,\n\t\"Abreve\\u0000quoteright\": -74,\n\t\"Abreve\\u0000u\": -50,\n\t\"Abreve\\u0000uacute\": -50,\n\t\"Abreve\\u0000ucircumflex\": -50,\n\t\"Abreve\\u0000udieresis\": -50,\n\t\"Abreve\\u0000ugrave\": -50,\n\t\"Abreve\\u0000uhungarumlaut\": -50,\n\t\"Abreve\\u0000umacron\": -50,\n\t\"Abreve\\u0000uogonek\": -50,\n\t\"Abreve\\u0000uring\": -50,\n\t\"Abreve\\u0000v\": -100,\n\t\"Abreve\\u0000w\": -90,\n\t\"Abreve\\u0000y\": -74,\n\t\"Abreve\\u0000yacute\": -74,\n\t\"Abreve\\u0000ydieresis\": -74,\n\t\"Acircumflex\\u0000C\": -55,\n\t\"Acircumflex\\u0000Cacute\": -55,\n\t\"Acircumflex\\u0000Ccaron\": -55,\n\t\"Acircumflex\\u0000Ccedilla\": -55,\n\t\"Acircumflex\\u0000G\": -55,\n\t\"Acircumflex\\u0000Gbreve\": -55,\n\t\"Acircumflex\\u0000Gcommaaccent\": -55,\n\t\"Acircumflex\\u0000O\": -45,\n\t\"Acircumflex\\u0000Oacute\": -45,\n\t\"Acircumflex\\u0000Ocircumflex\": -45,\n\t\"Acircumflex\\u0000Odieresis\": -45,\n\t\"Acircumflex\\u0000Ograve\": -45,\n\t\"Acircumflex\\u0000Ohungarumlaut\": -45,\n\t\"Acircumflex\\u0000Omacron\": -45,\n\t\"Acircumflex\\u0000Oslash\": -45,\n\t\"Acircumflex\\u0000Otilde\": -45,\n\t\"Acircumflex\\u0000Q\": -45,\n\t\"Acircumflex\\u0000T\": -95,\n\t\"Acircumflex\\u0000Tcaron\": -95,\n\t\"Acircumflex\\u0000Tcommaaccent\": -95,\n\t\"Acircumflex\\u0000U\": -50,\n\t\"Acircumflex\\u0000Uacute\": -50,\n\t\"Acircumflex\\u0000Ucircumflex\": -50,\n\t\"Acircumflex\\u0000Udieresis\": -50,\n\t\"Acircumflex\\u0000Ugrave\": -50,\n\t\"Acircumflex\\u0000Uhungarumlaut\": -50,\n\t\"Acircumflex\\u0000Umacron\": -50,\n\t\"Acircumflex\\u0000Uogonek\": -50,\n\t\"Acircumflex\\u0000Uring\": -50,\n\t\"Acircumflex\\u0000V\": -145,\n\t\"Acircumflex\\u0000W\": -130,\n\t\"Acircumflex\\u0000Y\": -100,\n\t\"Acircumflex\\u0000Yacute\": -100,\n\t\"Acircumflex\\u0000Ydieresis\": -100,\n\t\"Acircumflex\\u0000p\": -25,\n\t\"Acircumflex\\u0000quoteright\": -74,\n\t\"Acircumflex\\u0000u\": -50,\n\t\"Acircumflex\\u0000uacute\": -50,\n\t\"Acircumflex\\u0000ucircumflex\": -50,\n\t\"Acircumflex\\u0000udieresis\": -50,\n\t\"Acircumflex\\u0000ugrave\": -50,\n\t\"Acircumflex\\u0000uhungarumlaut\": -50,\n\t\"Acircumflex\\u0000umacron\": -50,\n\t\"Acircumflex\\u0000uogonek\": -50,\n\t\"Acircumflex\\u0000uring\": -50,\n\t\"Acircumflex\\u0000v\": -100,\n\t\"Acircumflex\\u0000w\": -90,\n\t\"Acircumflex\\u0000y\": -74,\n\t\"Acircumflex\\u0000yacute\": -74,\n\t\"Acircumflex\\u0000ydieresis\": -74,\n\t\"Adieresis\\u0000C\": -55,\n\t\"Adieresis\\u0000Cacute\": -55,\n\t\"Adieresis\\u0000Ccaron\": -55,\n\t\"Adieresis\\u0000Ccedilla\": -55,\n\t\"Adieresis\\u0000G\": -55,\n\t\"Adieresis\\u0000Gbreve\": -55,\n\t\"Adieresis\\u0000Gcommaaccent\": -55,\n\t\"Adieresis\\u0000O\": -45,\n\t\"Adieresis\\u0000Oacute\": -45,\n\t\"Adieresis\\u0000Ocircumflex\": -45,\n\t\"Adieresis\\u0000Odieresis\": -45,\n\t\"Adieresis\\u0000Ograve\": -45,\n\t\"Adieresis\\u0000Ohungarumlaut\": -45,\n\t\"Adieresis\\u0000Omacron\": -45,\n\t\"Adieresis\\u0000Oslash\": -45,\n\t\"Adieresis\\u0000Otilde\": -45,\n\t\"Adieresis\\u0000Q\": -45,\n\t\"Adieresis\\u0000T\": -95,\n\t\"Adieresis\\u0000Tcaron\": -95,\n\t\"Adieresis\\u0000Tcommaaccent\": -95,\n\t\"Adieresis\\u0000U\": -50,\n\t\"Adieresis\\u0000Uacute\": -50,\n\t\"Adieresis\\u0000Ucircumflex\": -50,\n\t\"Adieresis\\u0000Udieresis\": -50,\n\t\"Adieresis\\u0000Ugrave\": -50,\n\t\"Adieresis\\u0000Uhungarumlaut\": -50,\n\t\"Adieresis\\u0000Umacron\": -50,\n\t\"Adieresis\\u0000Uogonek\": -50,\n\t\"Adieresis\\u0000Uring\": -50,\n\t\"Adieresis\\u0000V\": -145,\n\t\"Adieresis\\u0000W\": -130,\n\t\"Adieresis\\u0000Y\": -100,\n\t\"Adieresis\\u0000Yacute\": -100,\n\t\"Adieresis\\u0000Ydieresis\": -100,\n\t\"Adieresis\\u0000p\": -25,\n\t\"Adieresis\\u0000quoteright\": -74,\n\t\"Adieresis\\u0000u\": -50,\n\t\"Adieresis\\u0000uacute\": -50,\n\t\"Adieresis\\u0000ucircumflex\": -50,\n\t\"Adieresis\\u0000udieresis\": -50,\n\t\"Adieresis\\u0000ugrave\": -50,\n\t\"Adieresis\\u0000uhungarumlaut\": -50,\n\t\"Adieresis\\u0000umacron\": -50,\n\t\"Adieresis\\u0000uogonek\": -50,\n\t\"Adieresis\\u0000uring\": -50,\n\t\"Adieresis\\u0000v\": -100,\n\t\"Adieresis\\u0000w\": -90,\n\t\"Adieresis\\u0000y\": -74,\n\t\"Adieresis\\u0000yacute\": -74,\n\t\"Adieresis\\u0000ydieresis\": -74,\n\t\"Agrave\\u0000C\": -55,\n\t\"Agrave\\u0000Cacute\": -55,\n\t\"Agrave\\u0000Ccaron\": -55,\n\t\"Agrave\\u0000Ccedilla\": -55,\n\t\"Agrave\\u0000G\": -55,\n\t\"Agrave\\u0000Gbreve\": -55,\n\t\"Agrave\\u0000Gcommaaccent\": -55,\n\t\"Agrave\\u0000O\": -45,\n\t\"Agrave\\u0000Oacute\": -45,\n\t\"Agrave\\u0000Ocircumflex\": -45,\n\t\"Agrave\\u0000Odieresis\": -45,\n\t\"Agrave\\u0000Ograve\": -45,\n\t\"Agrave\\u0000Ohungarumlaut\": -45,\n\t\"Agrave\\u0000Omacron\": -45,\n\t\"Agrave\\u0000Oslash\": -45,\n\t\"Agrave\\u0000Otilde\": -45,\n\t\"Agrave\\u0000Q\": -45,\n\t\"Agrave\\u0000T\": -95,\n\t\"Agrave\\u0000Tcaron\": -95,\n\t\"Agrave\\u0000Tcommaaccent\": -95,\n\t\"Agrave\\u0000U\": -50,\n\t\"Agrave\\u0000Uacute\": -50,\n\t\"Agrave\\u0000Ucircumflex\": -50,\n\t\"Agrave\\u0000Udieresis\": -50,\n\t\"Agrave\\u0000Ugrave\": -50,\n\t\"Agrave\\u0000Uhungarumlaut\": -50,\n\t\"Agrave\\u0000Umacron\": -50,\n\t\"Agrave\\u0000Uogonek\": -50,\n\t\"Agrave\\u0000Uring\": -50,\n\t\"Agrave\\u0000V\": -145,\n\t\"Agrave\\u0000W\": -130,\n\t\"Agrave\\u0000Y\": -100,\n\t\"Agrave\\u0000Yacute\": -100,\n\t\"Agrave\\u0000Ydieresis\": -100,\n\t\"Agrave\\u0000p\": -25,\n\t\"Agrave\\u0000quoteright\": -74,\n\t\"Agrave\\u0000u\": -50,\n\t\"Agrave\\u0000uacute\": -50,\n\t\"Agrave\\u0000ucircumflex\": -50,\n\t\"Agrave\\u0000udieresis\": -50,\n\t\"Agrave\\u0000ugrave\": -50,\n\t\"Agrave\\u0000uhungarumlaut\": -50,\n\t\"Agrave\\u0000umacron\": -50,\n\t\"Agrave\\u0000uogonek\": -50,\n\t\"Agrave\\u0000uring\": -50,\n\t\"Agrave\\u0000v\": -100,\n\t\"Agrave\\u0000w\": -90,\n\t\"Agrave\\u0000y\": -74,\n\t\"Agrave\\u0000yacute\": -74,\n\t\"Agrave\\u0000ydieresis\": -74,\n\t\"Amacron\\u0000C\": -55,\n\t\"Amacron\\u0000Cacute\": -55,\n\t\"Amacron\\u0000Ccaron\": -55,\n\t\"Amacron\\u0000Ccedilla\": -55,\n\t\"Amacron\\u0000G\": -55,\n\t\"Amacron\\u0000Gbreve\": -55,\n\t\"Amacron\\u0000Gcommaaccent\": -55,\n\t\"Amacron\\u0000O\": -45,\n\t\"Amacron\\u0000Oacute\": -45,\n\t\"Amacron\\u0000Ocircumflex\": -45,\n\t\"Amacron\\u0000Odieresis\": -45,\n\t\"Amacron\\u0000Ograve\": -45,\n\t\"Amacron\\u0000Ohungarumlaut\": -45,\n\t\"Amacron\\u0000Omacron\": -45,\n\t\"Amacron\\u0000Oslash\": -45,\n\t\"Amacron\\u0000Otilde\": -45,\n\t\"Amacron\\u0000Q\": -45,\n\t\"Amacron\\u0000T\": -95,\n\t\"Amacron\\u0000Tcaron\": -95,\n\t\"Amacron\\u0000Tcommaaccent\": -95,\n\t\"Amacron\\u0000U\": -50,\n\t\"Amacron\\u0000Uacute\": -50,\n\t\"Amacron\\u0000Ucircumflex\": -50,\n\t\"Amacron\\u0000Udieresis\": -50,\n\t\"Amacron\\u0000Ugrave\": -50,\n\t\"Amacron\\u0000Uhungarumlaut\": -50,\n\t\"Amacron\\u0000Umacron\": -50,\n\t\"Amacron\\u0000Uogonek\": -50,\n\t\"Amacron\\u0000Uring\": -50,\n\t\"Amacron\\u0000V\": -145,\n\t\"Amacron\\u0000W\": -130,\n\t\"Amacron\\u0000Y\": -100,\n\t\"Amacron\\u0000Yacute\": -100,\n\t\"Amacron\\u0000Ydieresis\": -100,\n\t\"Amacron\\u0000p\": -25,\n\t\"Amacron\\u0000quoteright\": -74,\n\t\"Amacron\\u0000u\": -50,\n\t\"Amacron\\u0000uacute\": -50,\n\t\"Amacron\\u0000ucircumflex\": -50,\n\t\"Amacron\\u0000udieresis\": -50,\n\t\"Amacron\\u0000ugrave\": -50,\n\t\"Amacron\\u0000uhungarumlaut\": -50,\n\t\"Amacron\\u0000umacron\": -50,\n\t\"Amacron\\u0000uogonek\": -50,\n\t\"Amacron\\u0000uring\": -50,\n\t\"Amacron\\u0000v\": -100,\n\t\"Amacron\\u0000w\": -90,\n\t\"Amacron\\u0000y\": -74,\n\t\"Amacron\\u0000yacute\": -74,\n\t\"Amacron\\u0000ydieresis\": -74,\n\t\"Aogonek\\u0000C\": -55,\n\t\"Aogonek\\u0000Cacute\": -55,\n\t\"Aogonek\\u0000Ccaron\": -55,\n\t\"Aogonek\\u0000Ccedilla\": -55,\n\t\"Aogonek\\u0000G\": -55,\n\t\"Aogonek\\u0000Gbreve\": -55,\n\t\"Aogonek\\u0000Gcommaaccent\": -55,\n\t\"Aogonek\\u0000O\": -45,\n\t\"Aogonek\\u0000Oacute\": -45,\n\t\"Aogonek\\u0000Ocircumflex\": -45,\n\t\"Aogonek\\u0000Odieresis\": -45,\n\t\"Aogonek\\u0000Ograve\": -45,\n\t\"Aogonek\\u0000Ohungarumlaut\": -45,\n\t\"Aogonek\\u0000Omacron\": -45,\n\t\"Aogonek\\u0000Oslash\": -45,\n\t\"Aogonek\\u0000Otilde\": -45,\n\t\"Aogonek\\u0000Q\": -45,\n\t\"Aogonek\\u0000T\": -95,\n\t\"Aogonek\\u0000Tcaron\": -95,\n\t\"Aogonek\\u0000Tcommaaccent\": -95,\n\t\"Aogonek\\u0000U\": -50,\n\t\"Aogonek\\u0000Uacute\": -50,\n\t\"Aogonek\\u0000Ucircumflex\": -50,\n\t\"Aogonek\\u0000Udieresis\": -50,\n\t\"Aogonek\\u0000Ugrave\": -50,\n\t\"Aogonek\\u0000Uhungarumlaut\": -50,\n\t\"Aogonek\\u0000Umacron\": -50,\n\t\"Aogonek\\u0000Uogonek\": -50,\n\t\"Aogonek\\u0000Uring\": -50,\n\t\"Aogonek\\u0000V\": -145,\n\t\"Aogonek\\u0000W\": -130,\n\t\"Aogonek\\u0000Y\": -100,\n\t\"Aogonek\\u0000Yacute\": -100,\n\t\"Aogonek\\u0000Ydieresis\": -100,\n\t\"Aogonek\\u0000p\": -25,\n\t\"Aogonek\\u0000quoteright\": -74,\n\t\"Aogonek\\u0000u\": -50,\n\t\"Aogonek\\u0000uacute\": -50,\n\t\"Aogonek\\u0000ucircumflex\": -50,\n\t\"Aogonek\\u0000udieresis\": -50,\n\t\"Aogonek\\u0000ugrave\": -50,\n\t\"Aogonek\\u0000uhungarumlaut\": -50,\n\t\"Aogonek\\u0000umacron\": -50,\n\t\"Aogonek\\u0000uogonek\": -50,\n\t\"Aogonek\\u0000uring\": -50,\n\t\"Aogonek\\u0000v\": -100,\n\t\"Aogonek\\u0000w\": -90,\n\t\"Aogonek\\u0000y\": -34,\n\t\"Aogonek\\u0000yacute\": -34,\n\t\"Aogonek\\u0000ydieresis\": -34,\n\t\"Aring\\u0000C\": -55,\n\t\"Aring\\u0000Cacute\": -55,\n\t\"Aring\\u0000Ccaron\": -55,\n\t\"Aring\\u0000Ccedilla\": -55,\n\t\"Aring\\u0000G\": -55,\n\t\"Aring\\u0000Gbreve\": -55,\n\t\"Aring\\u0000Gcommaaccent\": -55,\n\t\"Aring\\u0000O\": -45,\n\t\"Aring\\u0000Oacute\": -45,\n\t\"Aring\\u0000Ocircumflex\": -45,\n\t\"Aring\\u0000Odieresis\": -45,\n\t\"Aring\\u0000Ograve\": -45,\n\t\"Aring\\u0000Ohungarumlaut\": -45,\n\t\"Aring\\u0000Omacron\": -45,\n\t\"Aring\\u0000Oslash\": -45,\n\t\"Aring\\u0000Otilde\": -45,\n\t\"Aring\\u0000Q\": -45,\n\t\"Aring\\u0000T\": -95,\n\t\"Aring\\u0000Tcaron\": -95,\n\t\"Aring\\u0000Tcommaaccent\": -95,\n\t\"Aring\\u0000U\": -50,\n\t\"Aring\\u0000Uacute\": -50,\n\t\"Aring\\u0000Ucircumflex\": -50,\n\t\"Aring\\u0000Udieresis\": -50,\n\t\"Aring\\u0000Ugrave\": -50,\n\t\"Aring\\u0000Uhungarumlaut\": -50,\n\t\"Aring\\u0000Umacron\": -50,\n\t\"Aring\\u0000Uogonek\": -50,\n\t\"Aring\\u0000Uring\": -50,\n\t\"Aring\\u0000V\": -145,\n\t\"Aring\\u0000W\": -130,\n\t\"Aring\\u0000Y\": -100,\n\t\"Aring\\u0000Yacute\": -100,\n\t\"Aring\\u0000Ydieresis\": -100,\n\t\"Aring\\u0000p\": -25,\n\t\"Aring\\u0000quoteright\": -74,\n\t\"Aring\\u0000u\": -50,\n\t\"Aring\\u0000uacute\": -50,\n\t\"Aring\\u0000ucircumflex\": -50,\n\t\"Aring\\u0000udieresis\": -50,\n\t\"Aring\\u0000ugrave\": -50,\n\t\"Aring\\u0000uhungarumlaut\": -50,\n\t\"Aring\\u0000umacron\": -50,\n\t\"Aring\\u0000uogonek\": -50,\n\t\"Aring\\u0000uring\": -50,\n\t\"Aring\\u0000v\": -100,\n\t\"Aring\\u0000w\": -90,\n\t\"Aring\\u0000y\": -74,\n\t\"Aring\\u0000yacute\": -74,\n\t\"Aring\\u0000ydieresis\": -74,\n\t\"Atilde\\u0000C\": -55,\n\t\"Atilde\\u0000Cacute\": -55,\n\t\"Atilde\\u0000Ccaron\": -55,\n\t\"Atilde\\u0000Ccedilla\": -55,\n\t\"Atilde\\u0000G\": -55,\n\t\"Atilde\\u0000Gbreve\": -55,\n\t\"Atilde\\u0000Gcommaaccent\": -55,\n\t\"Atilde\\u0000O\": -45,\n\t\"Atilde\\u0000Oacute\": -45,\n\t\"Atilde\\u0000Ocircumflex\": -45,\n\t\"Atilde\\u0000Odieresis\": -45,\n\t\"Atilde\\u0000Ograve\": -45,\n\t\"Atilde\\u0000Ohungarumlaut\": -45,\n\t\"Atilde\\u0000Omacron\": -45,\n\t\"Atilde\\u0000Oslash\": -45,\n\t\"Atilde\\u0000Otilde\": -45,\n\t\"Atilde\\u0000Q\": -45,\n\t\"Atilde\\u0000T\": -95,\n\t\"Atilde\\u0000Tcaron\": -95,\n\t\"Atilde\\u0000Tcommaaccent\": -95,\n\t\"Atilde\\u0000U\": -50,\n\t\"Atilde\\u0000Uacute\": -50,\n\t\"Atilde\\u0000Ucircumflex\": -50,\n\t\"Atilde\\u0000Udieresis\": -50,\n\t\"Atilde\\u0000Ugrave\": -50,\n\t\"Atilde\\u0000Uhungarumlaut\": -50,\n\t\"Atilde\\u0000Umacron\": -50,\n\t\"Atilde\\u0000Uogonek\": -50,\n\t\"Atilde\\u0000Uring\": -50,\n\t\"Atilde\\u0000V\": -145,\n\t\"Atilde\\u0000W\": -130,\n\t\"Atilde\\u0000Y\": -100,\n\t\"Atilde\\u0000Yacute\": -100,\n\t\"Atilde\\u0000Ydieresis\": -100,\n\t\"Atilde\\u0000p\": -25,\n\t\"Atilde\\u0000quoteright\": -74,\n\t\"Atilde\\u0000u\": -50,\n\t\"Atilde\\u0000uacute\": -50,\n\t\"Atilde\\u0000ucircumflex\": -50,\n\t\"Atilde\\u0000udieresis\": -50,\n\t\"Atilde\\u0000ugrave\": -50,\n\t\"Atilde\\u0000uhungarumlaut\": -50,\n\t\"Atilde\\u0000umacron\": -50,\n\t\"Atilde\\u0000uogonek\": -50,\n\t\"Atilde\\u0000uring\": -50,\n\t\"Atilde\\u0000v\": -100,\n\t\"Atilde\\u0000w\": -90,\n\t\"Atilde\\u0000y\": -74,\n\t\"Atilde\\u0000yacute\": -74,\n\t\"Atilde\\u0000ydieresis\": -74,\n\t\"B\\u0000A\": -30,\n\t\"B\\u0000Aacute\": -30,\n\t\"B\\u0000Abreve\": -30,\n\t\"B\\u0000Acircumflex\": -30,\n\t\"B\\u0000Adieresis\": -30,\n\t\"B\\u0000Agrave\": -30,\n\t\"B\\u0000Amacron\": -30,\n\t\"B\\u0000Aogonek\": -30,\n\t\"B\\u0000Aring\": -30,\n\t\"B\\u0000Atilde\": -30,\n\t\"B\\u0000U\": -10,\n\t\"B\\u0000Uacute\": -10,\n\t\"B\\u0000Ucircumflex\": -10,\n\t\"B\\u0000Udieresis\": -10,\n\t\"B\\u0000Ugrave\": -10,\n\t\"B\\u0000Uhungarumlaut\": -10,\n\t\"B\\u0000Umacron\": -10,\n\t\"B\\u0000Uogonek\": -10,\n\t\"B\\u0000Uring\": -10,\n\t\"D\\u0000A\": -35,\n\t\"D\\u0000Aacute\": -35,\n\t\"D\\u0000Abreve\": -35,\n\t\"D\\u0000Acircumflex\": -35,\n\t\"D\\u0000Adieresis\": -35,\n\t\"D\\u0000Agrave\": -35,\n\t\"D\\u0000Amacron\": -35,\n\t\"D\\u0000Aogonek\": -35,\n\t\"D\\u0000Aring\": -35,\n\t\"D\\u0000Atilde\": -35,\n\t\"D\\u0000V\": -40,\n\t\"D\\u0000W\": -40,\n\t\"D\\u0000Y\": -40,\n\t\"D\\u0000Yacute\": -40,\n\t\"D\\u0000Ydieresis\": -40,\n\t\"D\\u0000period\": -20,\n\t\"Dcaron\\u0000A\": -35,\n\t\"Dcaron\\u0000Aacute\": -35,\n\t\"Dcaron\\u0000Abreve\": -35,\n\t\"Dcaron\\u0000Acircumflex\": -35,\n\t\"Dcaron\\u0000Adieresis\": -35,\n\t\"Dcaron\\u0000Agrave\": -35,\n\t\"Dcaron\\u0000Amacron\": -35,\n\t\"Dcaron\\u0000Aogonek\": -35,\n\t\"Dcaron\\u0000Aring\": -35,\n\t\"Dcaron\\u0000Atilde\": -35,\n\t\"Dcaron\\u0000V\": -40,\n\t\"Dcaron\\u0000W\": -40,\n\t\"Dcaron\\u0000Y\": -40,\n\t\"Dcaron\\u0000Yacute\": -40,\n\t\"Dcaron\\u0000Ydieresis\": -40,\n\t\"Dcaron\\u0000period\": -20,\n\t\"Dcroat\\u0000A\": -35,\n\t\"Dcroat\\u0000Aacute\": -35,\n\t\"Dcroat\\u0000Abreve\": -35,\n\t\"Dcroat\\u0000Acircumflex\": -35,\n\t\"Dcroat\\u0000Adieresis\": -35,\n\t\"Dcroat\\u0000Agrave\": -35,\n\t\"Dcroat\\u0000Amacron\": -35,\n\t\"Dcroat\\u0000Aogonek\": -35,\n\t\"Dcroat\\u0000Aring\": -35,\n\t\"Dcroat\\u0000Atilde\": -35,\n\t\"Dcroat\\u0000V\": -40,\n\t\"Dcroat\\u0000W\": -40,\n\t\"Dcroat\\u0000Y\": -40,\n\t\"Dcroat\\u0000Yacute\": -40,\n\t\"Dcroat\\u0000Ydieresis\": -40,\n\t\"Dcroat\\u0000period\": -20,\n\t\"F\\u0000A\": -90,\n\t\"F\\u0000Aacute\": -90,\n\t\"F\\u0000Abreve\": -90,\n\t\"F\\u0000Acircumflex\": -90,\n\t\"F\\u0000Adieresis\": -90,\n\t\"F\\u0000Agrave\": -90,\n\t\"F\\u0000Amacron\": -90,\n\t\"F\\u0000Aogonek\": -90,\n\t\"F\\u0000Aring\": -90,\n\t\"F\\u0000Atilde\": -90,\n\t\"F\\u0000a\": -25,\n\t\"F\\u0000aacute\": -25,\n\t\"F\\u0000abreve\": -25,\n\t\"F\\u0000acircumflex\": -25,\n\t\"F\\u0000adieresis\": -25,\n\t\"F\\u0000agrave\": -25,\n\t\"F\\u0000amacron\": -25,\n\t\"F\\u0000aogonek\": -25,\n\t\"F\\u0000aring\": -25,\n\t\"F\\u0000atilde\": -25,\n\t\"F\\u0000comma\": -92,\n\t\"F\\u0000e\": -25,\n\t\"F\\u0000eacute\": -25,\n\t\"F\\u0000ecaron\": -25,\n\t\"F\\u0000ecircumflex\": -25,\n\t\"F\\u0000edieresis\": -25,\n\t\"F\\u0000edotaccent\": -25,\n\t\"F\\u0000egrave\": -25,\n\t\"F\\u0000emacron\": -25,\n\t\"F\\u0000eogonek\": -25,\n\t\"F\\u0000o\": -25,\n\t\"F\\u0000oacute\": -25,\n\t\"F\\u0000ocircumflex\": -25,\n\t\"F\\u0000odieresis\": -25,\n\t\"F\\u0000ograve\": -25,\n\t\"F\\u0000ohungarumlaut\": -25,\n\t\"F\\u0000omacron\": -25,\n\t\"F\\u0000oslash\": -25,\n\t\"F\\u0000otilde\": -25,\n\t\"F\\u0000period\": -110,\n\t\"J\\u0000A\": -30,\n\t\"J\\u0000Aacute\": -30,\n\t\"J\\u0000Abreve\": -30,\n\t\"J\\u0000Acircumflex\": -30,\n\t\"J\\u0000Adieresis\": -30,\n\t\"J\\u0000Agrave\": -30,\n\t\"J\\u0000Amacron\": -30,\n\t\"J\\u0000Aogonek\": -30,\n\t\"J\\u0000Aring\": -30,\n\t\"J\\u0000Atilde\": -30,\n\t\"J\\u0000a\": -15,\n\t\"J\\u0000aacute\": -15,\n\t\"J\\u0000abreve\": -15,\n\t\"J\\u0000acircumflex\": -15,\n\t\"J\\u0000adieresis\": -15,\n\t\"J\\u0000agrave\": -15,\n\t\"J\\u0000amacron\": -15,\n\t\"J\\u0000aogonek\": -15,\n\t\"J\\u0000aring\": -15,\n\t\"J\\u0000atilde\": -15,\n\t\"J\\u0000e\": -15,\n\t\"J\\u0000eacute\": -15,\n\t\"J\\u0000ecaron\": -15,\n\t\"J\\u0000ecircumflex\": -15,\n\t\"J\\u0000edieresis\": -15,\n\t\"J\\u0000edotaccent\": -15,\n\t\"J\\u0000egrave\": -15,\n\t\"J\\u0000emacron\": -15,\n\t\"J\\u0000eogonek\": -15,\n\t\"J\\u0000o\": -15,\n\t\"J\\u0000oacute\": -15,\n\t\"J\\u0000ocircumflex\": -15,\n\t\"J\\u0000odieresis\": -15,\n\t\"J\\u0000ograve\": -15,\n\t\"J\\u0000ohungarumlaut\": -15,\n\t\"J\\u0000omacron\": -15,\n\t\"J\\u0000oslash\": -15,\n\t\"J\\u0000otilde\": -15,\n\t\"J\\u0000period\": -20,\n\t\"J\\u0000u\": -15,\n\t\"J\\u0000uacute\": -15,\n\t\"J\\u0000ucircumflex\": -15,\n\t\"J\\u0000udieresis\": -15,\n\t\"J\\u0000ugrave\": -15,\n\t\"J\\u0000uhungarumlaut\": -15,\n\t\"J\\u0000umacron\": -15,\n\t\"J\\u0000uogonek\": -15,\n\t\"J\\u0000uring\": -15,\n\t\"K\\u0000O\": -30,\n\t\"K\\u0000Oacute\": -30,\n\t\"K\\u0000Ocircumflex\": -30,\n\t\"K\\u0000Odieresis\": -30,\n\t\"K\\u0000Ograve\": -30,\n\t\"K\\u0000Ohungarumlaut\": -30,\n\t\"K\\u0000Omacron\": -30,\n\t\"K\\u0000Oslash\": -30,\n\t\"K\\u0000Otilde\": -30,\n\t\"K\\u0000e\": -25,\n\t\"K\\u0000eacute\": -25,\n\t\"K\\u0000ecaron\": -25,\n\t\"K\\u0000ecircumflex\": -25,\n\t\"K\\u0000edieresis\": -25,\n\t\"K\\u0000edotaccent\": -25,\n\t\"K\\u0000egrave\": -25,\n\t\"K\\u0000emacron\": -25,\n\t\"K\\u0000eogonek\": -25,\n\t\"K\\u0000o\": -25,\n\t\"K\\u0000oacute\": -25,\n\t\"K\\u0000ocircumflex\": -25,\n\t\"K\\u0000odieresis\": -25,\n\t\"K\\u0000ograve\": -25,\n\t\"K\\u0000ohungarumlaut\": -25,\n\t\"K\\u0000omacron\": -25,\n\t\"K\\u0000oslash\": -25,\n\t\"K\\u0000otilde\": -25,\n\t\"K\\u0000u\": -15,\n\t\"K\\u0000uacute\": -15,\n\t\"K\\u0000ucircumflex\": -15,\n\t\"K\\u0000udieresis\": -15,\n\t\"K\\u0000ugrave\": -15,\n\t\"K\\u0000uhungarumlaut\": -15,\n\t\"K\\u0000umacron\": -15,\n\t\"K\\u0000uogonek\": -15,\n\t\"K\\u0000uring\": -15,\n\t\"K\\u0000y\": -45,\n\t\"K\\u0000yacute\": -45,\n\t\"K\\u0000ydieresis\": -45,\n\t\"Kcommaaccent\\u0000O\": -30,\n\t\"Kcommaaccent\\u0000Oacute\": -30,\n\t\"Kcommaaccent\\u0000Ocircumflex\": -30,\n\t\"Kcommaaccent\\u0000Odieresis\": -30,\n\t\"Kcommaaccent\\u0000Ograve\": -30,\n\t\"Kcommaaccent\\u0000Ohungarumlaut\": -30,\n\t\"Kcommaaccent\\u0000Omacron\": -30,\n\t\"Kcommaaccent\\u0000Oslash\": -30,\n\t\"Kcommaaccent\\u0000Otilde\": -30,\n\t\"Kcommaaccent\\u0000e\": -25,\n\t\"Kcommaaccent\\u0000eacute\": -25,\n\t\"Kcommaaccent\\u0000ecaron\": -25,\n\t\"Kcommaaccent\\u0000ecircumflex\": -25,\n\t\"Kcommaaccent\\u0000edieresis\": -25,\n\t\"Kcommaaccent\\u0000edotaccent\": -25,\n\t\"Kcommaaccent\\u0000egrave\": -25,\n\t\"Kcommaaccent\\u0000emacron\": -25,\n\t\"Kcommaaccent\\u0000eogonek\": -25,\n\t\"Kcommaaccent\\u0000o\": -25,\n\t\"Kcommaaccent\\u0000oacute\": -25,\n\t\"Kcommaaccent\\u0000ocircumflex\": -25,\n\t\"Kcommaaccent\\u0000odieresis\": -25,\n\t\"Kcommaaccent\\u0000ograve\": -25,\n\t\"Kcommaaccent\\u0000ohungarumlaut\": -25,\n\t\"Kcommaaccent\\u0000omacron\": -25,\n\t\"Kcommaaccent\\u0000oslash\": -25,\n\t\"Kcommaaccent\\u0000otilde\": -25,\n\t\"Kcommaaccent\\u0000u\": -15,\n\t\"Kcommaaccent\\u0000uacute\": -15,\n\t\"Kcommaaccent\\u0000ucircumflex\": -15,\n\t\"Kcommaaccent\\u0000udieresis\": -15,\n\t\"Kcommaaccent\\u0000ugrave\": -15,\n\t\"Kcommaaccent\\u0000uhungarumlaut\": -15,\n\t\"Kcommaaccent\\u0000umacron\": -15,\n\t\"Kcommaaccent\\u0000uogonek\": -15,\n\t\"Kcommaaccent\\u0000uring\": -15,\n\t\"Kcommaaccent\\u0000y\": -45,\n\t\"Kcommaaccent\\u0000yacute\": -45,\n\t\"Kcommaaccent\\u0000ydieresis\": -45,\n\t\"L\\u0000T\": -92,\n\t\"L\\u0000Tcaron\": -92,\n\t\"L\\u0000Tcommaaccent\": -92,\n\t\"L\\u0000V\": -92,\n\t\"L\\u0000W\": -92,\n\t\"L\\u0000Y\": -92,\n\t\"L\\u0000Yacute\": -92,\n\t\"L\\u0000Ydieresis\": -92,\n\t\"L\\u0000quotedblright\": -20,\n\t\"L\\u0000quoteright\": -110,\n\t\"L\\u0000y\": -55,\n\t\"L\\u0000yacute\": -55,\n\t\"L\\u0000ydieresis\": -55,\n\t\"Lacute\\u0000T\": -92,\n\t\"Lacute\\u0000Tcaron\": -92,\n\t\"Lacute\\u0000Tcommaaccent\": -92,\n\t\"Lacute\\u0000V\": -92,\n\t\"Lacute\\u0000W\": -92,\n\t\"Lacute\\u0000Y\": -92,\n\t\"Lacute\\u0000Yacute\": -92,\n\t\"Lacute\\u0000Ydieresis\": -92,\n\t\"Lacute\\u0000quotedblright\": -20,\n\t\"Lacute\\u0000quoteright\": -110,\n\t\"Lacute\\u0000y\": -55,\n\t\"Lacute\\u0000yacute\": -55,\n\t\"Lacute\\u0000ydieresis\": -55,\n\t\"Lcommaaccent\\u0000T\": -92,\n\t\"Lcommaaccent\\u0000Tcaron\": -92,\n\t\"Lcommaaccent\\u0000Tcommaaccent\": -92,\n\t\"Lcommaaccent\\u0000V\": -92,\n\t\"Lcommaaccent\\u0000W\": -92,\n\t\"Lcommaaccent\\u0000Y\": -92,\n\t\"Lcommaaccent\\u0000Yacute\": -92,\n\t\"Lcommaaccent\\u0000Ydieresis\": -92,\n\t\"Lcommaaccent\\u0000quotedblright\": -20,\n\t\"Lcommaaccent\\u0000quoteright\": -110,\n\t\"Lcommaaccent\\u0000y\": -55,\n\t\"Lcommaaccent\\u0000yacute\": -55,\n\t\"Lcommaaccent\\u0000ydieresis\": -55,\n\t\"Lslash\\u0000T\": -92,\n\t\"Lslash\\u0000Tcaron\": -92,\n\t\"Lslash\\u0000Tcommaaccent\": -92,\n\t\"Lslash\\u0000V\": -92,\n\t\"Lslash\\u0000W\": -92,\n\t\"Lslash\\u0000Y\": -92,\n\t\"Lslash\\u0000Yacute\": -92,\n\t\"Lslash\\u0000Ydieresis\": -92,\n\t\"Lslash\\u0000quotedblright\": -20,\n\t\"Lslash\\u0000quoteright\": -110,\n\t\"Lslash\\u0000y\": -55,\n\t\"Lslash\\u0000yacute\": -55,\n\t\"Lslash\\u0000ydieresis\": -55,\n\t\"N\\u0000A\": -20,\n\t\"N\\u0000Aacute\": -20,\n\t\"N\\u0000Abreve\": -20,\n\t\"N\\u0000Acircumflex\": -20,\n\t\"N\\u0000Adieresis\": -20,\n\t\"N\\u0000Agrave\": -20,\n\t\"N\\u0000Amacron\": -20,\n\t\"N\\u0000Aogonek\": -20,\n\t\"N\\u0000Aring\": -20,\n\t\"N\\u0000Atilde\": -20,\n\t\"Nacute\\u0000A\": -20,\n\t\"Nacute\\u0000Aacute\": -20,\n\t\"Nacute\\u0000Abreve\": -20,\n\t\"Nacute\\u0000Acircumflex\": -20,\n\t\"Nacute\\u0000Adieresis\": -20,\n\t\"Nacute\\u0000Agrave\": -20,\n\t\"Nacute\\u0000Amacron\": -20,\n\t\"Nacute\\u0000Aogonek\": -20,\n\t\"Nacute\\u0000Aring\": -20,\n\t\"Nacute\\u0000Atilde\": -20,\n\t\"Ncaron\\u0000A\": -20,\n\t\"Ncaron\\u0000Aacute\": -20,\n\t\"Ncaron\\u0000Abreve\": -20,\n\t\"Ncaron\\u0000Acircumflex\": -20,\n\t\"Ncaron\\u0000Adieresis\": -20,\n\t\"Ncaron\\u0000Agrave\": -20,\n\t\"Ncaron\\u0000Amacron\": -20,\n\t\"Ncaron\\u0000Aogonek\": -20,\n\t\"Ncaron\\u0000Aring\": -20,\n\t\"Ncaron\\u0000Atilde\": -20,\n\t\"Ncommaaccent\\u0000A\": -20,\n\t\"Ncommaaccent\\u0000Aacute\": -20,\n\t\"Ncommaaccent\\u0000Abreve\": -20,\n\t\"Ncommaaccent\\u0000Acircumflex\": -20,\n\t\"Ncommaaccent\\u0000Adieresis\": -20,\n\t\"Ncommaaccent\\u0000Agrave\": -20,\n\t\"Ncommaaccent\\u0000Amacron\": -20,\n\t\"Ncommaaccent\\u0000Aogonek\": -20,\n\t\"Ncommaaccent\\u0000Aring\": -20,\n\t\"Ncommaaccent\\u0000Atilde\": -20,\n\t\"Ntilde\\u0000A\": -20,\n\t\"Ntilde\\u0000Aacute\": -20,\n\t\"Ntilde\\u0000Abreve\": -20,\n\t\"Ntilde\\u0000Acircumflex\": -20,\n\t\"Ntilde\\u0000Adieresis\": -20,\n\t\"Ntilde\\u0000Agrave\": -20,\n\t\"Ntilde\\u0000Amacron\": -20,\n\t\"Ntilde\\u0000Aogonek\": -20,\n\t\"Ntilde\\u0000Aring\": -20,\n\t\"Ntilde\\u0000Atilde\": -20,\n\t\"O\\u0000A\": -40,\n\t\"O\\u0000Aacute\": -40,\n\t\"O\\u0000Abreve\": -40,\n\t\"O\\u0000Acircumflex\": -40,\n\t\"O\\u0000Adieresis\": -40,\n\t\"O\\u0000Agrave\": -40,\n\t\"O\\u0000Amacron\": -40,\n\t\"O\\u0000Aogonek\": -40,\n\t\"O\\u0000Aring\": -40,\n\t\"O\\u0000Atilde\": -40,\n\t\"O\\u0000T\": -40,\n\t\"O\\u0000Tcaron\": -40,\n\t\"O\\u0000Tcommaaccent\": -40,\n\t\"O\\u0000V\": -50,\n\t\"O\\u0000W\": -50,\n\t\"O\\u0000X\": -40,\n\t\"O\\u0000Y\": -50,\n\t\"O\\u0000Yacute\": -50,\n\t\"O\\u0000Ydieresis\": -50,\n\t\"Oacute\\u0000A\": -40,\n\t\"Oacute\\u0000Aacute\": -40,\n\t\"Oacute\\u0000Abreve\": -40,\n\t\"Oacute\\u0000Acircumflex\": -40,\n\t\"Oacute\\u0000Adieresis\": -40,\n\t\"Oacute\\u0000Agrave\": -40,\n\t\"Oacute\\u0000Amacron\": -40,\n\t\"Oacute\\u0000Aogonek\": -40,\n\t\"Oacute\\u0000Aring\": -40,\n\t\"Oacute\\u0000Atilde\": -40,\n\t\"Oacute\\u0000T\": -40,\n\t\"Oacute\\u0000Tcaron\": -40,\n\t\"Oacute\\u0000Tcommaaccent\": -40,\n\t\"Oacute\\u0000V\": -50,\n\t\"Oacute\\u0000W\": -50,\n\t\"Oacute\\u0000X\": -40,\n\t\"Oacute\\u0000Y\": -50,\n\t\"Oacute\\u0000Yacute\": -50,\n\t\"Oacute\\u0000Ydieresis\": -50,\n\t\"Ocircumflex\\u0000A\": -40,\n\t\"Ocircumflex\\u0000Aacute\": -40,\n\t\"Ocircumflex\\u0000Abreve\": -40,\n\t\"Ocircumflex\\u0000Acircumflex\": -40,\n\t\"Ocircumflex\\u0000Adieresis\": -40,\n\t\"Ocircumflex\\u0000Agrave\": -40,\n\t\"Ocircumflex\\u0000Amacron\": -40,\n\t\"Ocircumflex\\u0000Aogonek\": -40,\n\t\"Ocircumflex\\u0000Aring\": -40,\n\t\"Ocircumflex\\u0000Atilde\": -40,\n\t\"Ocircumflex\\u0000T\": -40,\n\t\"Ocircumflex\\u0000Tcaron\": -40,\n\t\"Ocircumflex\\u0000Tcommaaccent\": -40,\n\t\"Ocircumflex\\u0000V\": -50,\n\t\"Ocircumflex\\u0000W\": -50,\n\t\"Ocircumflex\\u0000X\": -40,\n\t\"Ocircumflex\\u0000Y\": -50,\n\t\"Ocircumflex\\u0000Yacute\": -50,\n\t\"Ocircumflex\\u0000Ydieresis\": -50,\n\t\"Odieresis\\u0000A\": -40,\n\t\"Odieresis\\u0000Aacute\": -40,\n\t\"Odieresis\\u0000Abreve\": -40,\n\t\"Odieresis\\u0000Acircumflex\": -40,\n\t\"Odieresis\\u0000Adieresis\": -40,\n\t\"Odieresis\\u0000Agrave\": -40,\n\t\"Odieresis\\u0000Amacron\": -40,\n\t\"Odieresis\\u0000Aogonek\": -40,\n\t\"Odieresis\\u0000Aring\": -40,\n\t\"Odieresis\\u0000Atilde\": -40,\n\t\"Odieresis\\u0000T\": -40,\n\t\"Odieresis\\u0000Tcaron\": -40,\n\t\"Odieresis\\u0000Tcommaaccent\": -40,\n\t\"Odieresis\\u0000V\": -50,\n\t\"Odieresis\\u0000W\": -50,\n\t\"Odieresis\\u0000X\": -40,\n\t\"Odieresis\\u0000Y\": -50,\n\t\"Odieresis\\u0000Yacute\": -50,\n\t\"Odieresis\\u0000Ydieresis\": -50,\n\t\"Ograve\\u0000A\": -40,\n\t\"Ograve\\u0000Aacute\": -40,\n\t\"Ograve\\u0000Abreve\": -40,\n\t\"Ograve\\u0000Acircumflex\": -40,\n\t\"Ograve\\u0000Adieresis\": -40,\n\t\"Ograve\\u0000Agrave\": -40,\n\t\"Ograve\\u0000Amacron\": -40,\n\t\"Ograve\\u0000Aogonek\": -40,\n\t\"Ograve\\u0000Aring\": -40,\n\t\"Ograve\\u0000Atilde\": -40,\n\t\"Ograve\\u0000T\": -40,\n\t\"Ograve\\u0000Tcaron\": -40,\n\t\"Ograve\\u0000Tcommaaccent\": -40,\n\t\"Ograve\\u0000V\": -50,\n\t\"Ograve\\u0000W\": -50,\n\t\"Ograve\\u0000X\": -40,\n\t\"Ograve\\u0000Y\": -50,\n\t\"Ograve\\u0000Yacute\": -50,\n\t\"Ograve\\u0000Ydieresis\": -50,\n\t\"Ohungarumlaut\\u0000A\": -40,\n\t\"Ohungarumlaut\\u0000Aacute\": -40,\n\t\"Ohungarumlaut\\u0000Abreve\": -40,\n\t\"Ohungarumlaut\\u0000Acircumflex\": -40,\n\t\"Ohungarumlaut\\u0000Adieresis\": -40,\n\t\"Ohungarumlaut\\u0000Agrave\": -40,\n\t\"Ohungarumlaut\\u0000Amacron\": -40,\n\t\"Ohungarumlaut\\u0000Aogonek\": -40,\n\t\"Ohungarumlaut\\u0000Aring\": -40,\n\t\"Ohungarumlaut\\u0000Atilde\": -40,\n\t\"Ohungarumlaut\\u0000T\": -40,\n\t\"Ohungarumlaut\\u0000Tcaron\": -40,\n\t\"Ohungarumlaut\\u0000Tcommaaccent\": -40,\n\t\"Ohungarumlaut\\u0000V\": -50,\n\t\"Ohungarumlaut\\u0000W\": -50,\n\t\"Ohungarumlaut\\u0000X\": -40,\n\t\"Ohungarumlaut\\u0000Y\": -50,\n\t\"Ohungarumlaut\\u0000Yacute\": -50,\n\t\"Ohungarumlaut\\u0000Ydieresis\": -50,\n\t\"Omacron\\u0000A\": -40,\n\t\"Omacron\\u0000Aacute\": -40,\n\t\"Omacron\\u0000Abreve\": -40,\n\t\"Omacron\\u0000Acircumflex\": -40,\n\t\"Omacron\\u0000Adieresis\": -40,\n\t\"Omacron\\u0000Agrave\": -40,\n\t\"Omacron\\u0000Amacron\": -40,\n\t\"Omacron\\u0000Aogonek\": -40,\n\t\"Omacron\\u0000Aring\": -40,\n\t\"Omacron\\u0000Atilde\": -40,\n\t\"Omacron\\u0000T\": -40,\n\t\"Omacron\\u0000Tcaron\": -40,\n\t\"Omacron\\u0000Tcommaaccent\": -40,\n\t\"Omacron\\u0000V\": -50,\n\t\"Omacron\\u0000W\": -50,\n\t\"Omacron\\u0000X\": -40,\n\t\"Omacron\\u0000Y\": -50,\n\t\"Omacron\\u0000Yacute\": -50,\n\t\"Omacron\\u0000Ydieresis\": -50,\n\t\"Oslash\\u0000A\": -40,\n\t\"Oslash\\u0000Aacute\": -40,\n\t\"Oslash\\u0000Abreve\": -40,\n\t\"Oslash\\u0000Acircumflex\": -40,\n\t\"Oslash\\u0000Adieresis\": -40,\n\t\"Oslash\\u0000Agrave\": -40,\n\t\"Oslash\\u0000Amacron\": -40,\n\t\"Oslash\\u0000Aogonek\": -40,\n\t\"Oslash\\u0000Aring\": -40,\n\t\"Oslash\\u0000Atilde\": -40,\n\t\"Oslash\\u0000T\": -40,\n\t\"Oslash\\u0000Tcaron\": -40,\n\t\"Oslash\\u0000Tcommaaccent\": -40,\n\t\"Oslash\\u0000V\": -50,\n\t\"Oslash\\u0000W\": -50,\n\t\"Oslash\\u0000X\": -40,\n\t\"Oslash\\u0000Y\": -50,\n\t\"Oslash\\u0000Yacute\": -50,\n\t\"Oslash\\u0000Ydieresis\": -50,\n\t\"Otilde\\u0000A\": -40,\n\t\"Otilde\\u0000Aacute\": -40,\n\t\"Otilde\\u0000Abreve\": -40,\n\t\"Otilde\\u0000Acircumflex\": -40,\n\t\"Otilde\\u0000Adieresis\": -40,\n\t\"Otilde\\u0000Agrave\": -40,\n\t\"Otilde\\u0000Amacron\": -40,\n\t\"Otilde\\u0000Aogonek\": -40,\n\t\"Otilde\\u0000Aring\": -40,\n\t\"Otilde\\u0000Atilde\": -40,\n\t\"Otilde\\u0000T\": -40,\n\t\"Otilde\\u0000Tcaron\": -40,\n\t\"Otilde\\u0000Tcommaaccent\": -40,\n\t\"Otilde\\u0000V\": -50,\n\t\"Otilde\\u0000W\": -50,\n\t\"Otilde\\u0000X\": -40,\n\t\"Otilde\\u0000Y\": -50,\n\t\"Otilde\\u0000Yacute\": -50,\n\t\"Otilde\\u0000Ydieresis\": -50,\n\t\"P\\u0000A\": -74,\n\t\"P\\u0000Aacute\": -74,\n\t\"P\\u0000Abreve\": -74,\n\t\"P\\u0000Acircumflex\": -74,\n\t\"P\\u0000Adieresis\": -74,\n\t\"P\\u0000Agrave\": -74,\n\t\"P\\u0000Amacron\": -74,\n\t\"P\\u0000Aogonek\": -74,\n\t\"P\\u0000Aring\": -74,\n\t\"P\\u0000Atilde\": -74,\n\t\"P\\u0000a\": -10,\n\t\"P\\u0000aacute\": -10,\n\t\"P\\u0000abreve\": -10,\n\t\"P\\u0000acircumflex\": -10,\n\t\"P\\u0000adieresis\": -10,\n\t\"P\\u0000agrave\": -10,\n\t\"P\\u0000amacron\": -10,\n\t\"P\\u0000aogonek\": -10,\n\t\"P\\u0000aring\": -10,\n\t\"P\\u0000atilde\": -10,\n\t\"P\\u0000comma\": -92,\n\t\"P\\u0000e\": -20,\n\t\"P\\u0000eacute\": -20,\n\t\"P\\u0000ecaron\": -20,\n\t\"P\\u0000ecircumflex\": -20,\n\t\"P\\u0000edieresis\": -20,\n\t\"P\\u0000edotaccent\": -20,\n\t\"P\\u0000egrave\": -20,\n\t\"P\\u0000emacron\": -20,\n\t\"P\\u0000eogonek\": -20,\n\t\"P\\u0000o\": -20,\n\t\"P\\u0000oacute\": -20,\n\t\"P\\u0000ocircumflex\": -20,\n\t\"P\\u0000odieresis\": -20,\n\t\"P\\u0000ograve\": -20,\n\t\"P\\u0000ohungarumlaut\": -20,\n\t\"P\\u0000omacron\": -20,\n\t\"P\\u0000oslash\": -20,\n\t\"P\\u0000otilde\": -20,\n\t\"P\\u0000period\": -110,\n\t\"Q\\u0000U\": -10,\n\t\"Q\\u0000Uacute\": -10,\n\t\"Q\\u0000Ucircumflex\": -10,\n\t\"Q\\u0000Udieresis\": -10,\n\t\"Q\\u0000Ugrave\": -10,\n\t\"Q\\u0000Uhungarumlaut\": -10,\n\t\"Q\\u0000Umacron\": -10,\n\t\"Q\\u0000Uogonek\": -10,\n\t\"Q\\u0000Uring\": -10,\n\t\"Q\\u0000period\": -20,\n\t\"R\\u0000O\": -30,\n\t\"R\\u0000Oacute\": -30,\n\t\"R\\u0000Ocircumflex\": -30,\n\t\"R\\u0000Odieresis\": -30,\n\t\"R\\u0000Ograve\": -30,\n\t\"R\\u0000Ohungarumlaut\": -30,\n\t\"R\\u0000Omacron\": -30,\n\t\"R\\u0000Oslash\": -30,\n\t\"R\\u0000Otilde\": -30,\n\t\"R\\u0000T\": -40,\n\t\"R\\u0000Tcaron\": -40,\n\t\"R\\u0000Tcommaaccent\": -40,\n\t\"R\\u0000U\": -30,\n\t\"R\\u0000Uacute\": -30,\n\t\"R\\u0000Ucircumflex\": -30,\n\t\"R\\u0000Udieresis\": -30,\n\t\"R\\u0000Ugrave\": -30,\n\t\"R\\u0000Uhungarumlaut\": -30,\n\t\"R\\u0000Umacron\": -30,\n\t\"R\\u0000Uogonek\": -30,\n\t\"R\\u0000Uring\": -30,\n\t\"R\\u0000V\": -55,\n\t\"R\\u0000W\": -35,\n\t\"R\\u0000Y\": -35,\n\t\"R\\u0000Yacute\": -35,\n\t\"R\\u0000Ydieresis\": -35,\n\t\"Racute\\u0000O\": -30,\n\t\"Racute\\u0000Oacute\": -30,\n\t\"Racute\\u0000Ocircumflex\": -30,\n\t\"Racute\\u0000Odieresis\": -30,\n\t\"Racute\\u0000Ograve\": -30,\n\t\"Racute\\u0000Ohungarumlaut\": -30,\n\t\"Racute\\u0000Omacron\": -30,\n\t\"Racute\\u0000Oslash\": -30,\n\t\"Racute\\u0000Otilde\": -30,\n\t\"Racute\\u0000T\": -40,\n\t\"Racute\\u0000Tcaron\": -40,\n\t\"Racute\\u0000Tcommaaccent\": -40,\n\t\"Racute\\u0000U\": -30,\n\t\"Racute\\u0000Uacute\": -30,\n\t\"Racute\\u0000Ucircumflex\": -30,\n\t\"Racute\\u0000Udieresis\": -30,\n\t\"Racute\\u0000Ugrave\": -30,\n\t\"Racute\\u0000Uhungarumlaut\": -30,\n\t\"Racute\\u0000Umacron\": -30,\n\t\"Racute\\u0000Uogonek\": -30,\n\t\"Racute\\u0000Uring\": -30,\n\t\"Racute\\u0000V\": -55,\n\t\"Racute\\u0000W\": -35,\n\t\"Racute\\u0000Y\": -35,\n\t\"Racute\\u0000Yacute\": -35,\n\t\"Racute\\u0000Ydieresis\": -35,\n\t\"Rcaron\\u0000O\": -30,\n\t\"Rcaron\\u0000Oacute\": -30,\n\t\"Rcaron\\u0000Ocircumflex\": -30,\n\t\"Rcaron\\u0000Odieresis\": -30,\n\t\"Rcaron\\u0000Ograve\": -30,\n\t\"Rcaron\\u0000Ohungarumlaut\": -30,\n\t\"Rcaron\\u0000Omacron\": -30,\n\t\"Rcaron\\u0000Oslash\": -30,\n\t\"Rcaron\\u0000Otilde\": -30,\n\t\"Rcaron\\u0000T\": -40,\n\t\"Rcaron\\u0000Tcaron\": -40,\n\t\"Rcaron\\u0000Tcommaaccent\": -40,\n\t\"Rcaron\\u0000U\": -30,\n\t\"Rcaron\\u0000Uacute\": -30,\n\t\"Rcaron\\u0000Ucircumflex\": -30,\n\t\"Rcaron\\u0000Udieresis\": -30,\n\t\"Rcaron\\u0000Ugrave\": -30,\n\t\"Rcaron\\u0000Uhungarumlaut\": -30,\n\t\"Rcaron\\u0000Umacron\": -30,\n\t\"Rcaron\\u0000Uogonek\": -30,\n\t\"Rcaron\\u0000Uring\": -30,\n\t\"Rcaron\\u0000V\": -55,\n\t\"Rcaron\\u0000W\": -35,\n\t\"Rcaron\\u0000Y\": -35,\n\t\"Rcaron\\u0000Yacute\": -35,\n\t\"Rcaron\\u0000Ydieresis\": -35,\n\t\"Rcommaaccent\\u0000O\": -30,\n\t\"Rcommaaccent\\u0000Oacute\": -30,\n\t\"Rcommaaccent\\u0000Ocircumflex\": -30,\n\t\"Rcommaaccent\\u0000Odieresis\": -30,\n\t\"Rcommaaccent\\u0000Ograve\": -30,\n\t\"Rcommaaccent\\u0000Ohungarumlaut\": -30,\n\t\"Rcommaaccent\\u0000Omacron\": -30,\n\t\"Rcommaaccent\\u0000Oslash\": -30,\n\t\"Rcommaaccent\\u0000Otilde\": -30,\n\t\"Rcommaaccent\\u0000T\": -40,\n\t\"Rcommaaccent\\u0000Tcaron\": -40,\n\t\"Rcommaaccent\\u0000Tcommaaccent\": -40,\n\t\"Rcommaaccent\\u0000U\": -30,\n\t\"Rcommaaccent\\u0000Uacute\": -30,\n\t\"Rcommaaccent\\u0000Ucircumflex\": -30,\n\t\"Rcommaaccent\\u0000Udieresis\": -30,\n\t\"Rcommaaccent\\u0000Ugrave\": -30,\n\t\"Rcommaaccent\\u0000Uhungarumlaut\": -30,\n\t\"Rcommaaccent\\u0000Umacron\": -30,\n\t\"Rcommaaccent\\u0000Uogonek\": -30,\n\t\"Rcommaaccent\\u0000Uring\": -30,\n\t\"Rcommaaccent\\u0000V\": -55,\n\t\"Rcommaaccent\\u0000W\": -35,\n\t\"Rcommaaccent\\u0000Y\": -35,\n\t\"Rcommaaccent\\u0000Yacute\": -35,\n\t\"Rcommaaccent\\u0000Ydieresis\": -35,\n\t\"T\\u0000A\": -90,\n\t\"T\\u0000Aacute\": -90,\n\t\"T\\u0000Abreve\": -90,\n\t\"T\\u0000Acircumflex\": -90,\n\t\"T\\u0000Adieresis\": -90,\n\t\"T\\u0000Agrave\": -90,\n\t\"T\\u0000Amacron\": -90,\n\t\"T\\u0000Aogonek\": -90,\n\t\"T\\u0000Aring\": -90,\n\t\"T\\u0000Atilde\": -90,\n\t\"T\\u0000O\": -18,\n\t\"T\\u0000Oacute\": -18,\n\t\"T\\u0000Ocircumflex\": -18,\n\t\"T\\u0000Odieresis\": -18,\n\t\"T\\u0000Ograve\": -18,\n\t\"T\\u0000Ohungarumlaut\": -18,\n\t\"T\\u0000Omacron\": -18,\n\t\"T\\u0000Oslash\": -18,\n\t\"T\\u0000Otilde\": -18,\n\t\"T\\u0000a\": -92,\n\t\"T\\u0000aacute\": -92,\n\t\"T\\u0000abreve\": -52,\n\t\"T\\u0000acircumflex\": -52,\n\t\"T\\u0000adieresis\": -52,\n\t\"T\\u0000agrave\": -52,\n\t\"T\\u0000amacron\": -52,\n\t\"T\\u0000aogonek\": -92,\n\t\"T\\u0000aring\": -92,\n\t\"T\\u0000atilde\": -52,\n\t\"T\\u0000colon\": -74,\n\t\"T\\u0000comma\": -74,\n\t\"T\\u0000e\": -92,\n\t\"T\\u0000eacute\": -92,\n\t\"T\\u0000ecaron\": -92,\n\t\"T\\u0000ecircumflex\": -92,\n\t\"T\\u0000edieresis\": -52,\n\t\"T\\u0000edotaccent\": -92,\n\t\"T\\u0000egrave\": -52,\n\t\"T\\u0000emacron\": -52,\n\t\"T\\u0000eogonek\": -92,\n\t\"T\\u0000hyphen\": -92,\n\t\"T\\u0000i\": -18,\n\t\"T\\u0000iacute\": -18,\n\t\"T\\u0000iogonek\": -18,\n\t\"T\\u0000o\": -92,\n\t\"T\\u0000oacute\": -92,\n\t\"T\\u0000ocircumflex\": -92,\n\t\"T\\u0000odieresis\": -92,\n\t\"T\\u0000ograve\": -92,\n\t\"T\\u0000ohungarumlaut\": -92,\n\t\"T\\u0000omacron\": -92,\n\t\"T\\u0000oslash\": -92,\n\t\"T\\u0000otilde\": -92,\n\t\"T\\u0000period\": -90,\n\t\"T\\u0000r\": -74,\n\t\"T\\u0000racute\": -74,\n\t\"T\\u0000rcaron\": -74,\n\t\"T\\u0000rcommaaccent\": -74,\n\t\"T\\u0000semicolon\": -74,\n\t\"T\\u0000u\": -92,\n\t\"T\\u0000uacute\": -92,\n\t\"T\\u0000ucircumflex\": -92,\n\t\"T\\u0000udieresis\": -92,\n\t\"T\\u0000ugrave\": -92,\n\t\"T\\u0000uhungarumlaut\": -92,\n\t\"T\\u0000umacron\": -92,\n\t\"T\\u0000uogonek\": -92,\n\t\"T\\u0000uring\": -92,\n\t\"T\\u0000w\": -74,\n\t\"T\\u0000y\": -34,\n\t\"T\\u0000yacute\": -34,\n\t\"T\\u0000ydieresis\": -34,\n\t\"Tcaron\\u0000A\": -90,\n\t\"Tcaron\\u0000Aacute\": -90,\n\t\"Tcaron\\u0000Abreve\": -90,\n\t\"Tcaron\\u0000Acircumflex\": -90,\n\t\"Tcaron\\u0000Adieresis\": -90,\n\t\"Tcaron\\u0000Agrave\": -90,\n\t\"Tcaron\\u0000Amacron\": -90,\n\t\"Tcaron\\u0000Aogonek\": -90,\n\t\"Tcaron\\u0000Aring\": -90,\n\t\"Tcaron\\u0000Atilde\": -90,\n\t\"Tcaron\\u0000O\": -18,\n\t\"Tcaron\\u0000Oacute\": -18,\n\t\"Tcaron\\u0000Ocircumflex\": -18,\n\t\"Tcaron\\u0000Odieresis\": -18,\n\t\"Tcaron\\u0000Ograve\": -18,\n\t\"Tcaron\\u0000Ohungarumlaut\": -18,\n\t\"Tcaron\\u0000Omacron\": -18,\n\t\"Tcaron\\u0000Oslash\": -18,\n\t\"Tcaron\\u0000Otilde\": -18,\n\t\"Tcaron\\u0000a\": -92,\n\t\"Tcaron\\u0000aacute\": -92,\n\t\"Tcaron\\u0000abreve\": -52,\n\t\"Tcaron\\u0000acircumflex\": -52,\n\t\"Tcaron\\u0000adieresis\": -52,\n\t\"Tcaron\\u0000agrave\": -52,\n\t\"Tcaron\\u0000amacron\": -52,\n\t\"Tcaron\\u0000aogonek\": -92,\n\t\"Tcaron\\u0000aring\": -92,\n\t\"Tcaron\\u0000atilde\": -52,\n\t\"Tcaron\\u0000colon\": -74,\n\t\"Tcaron\\u0000comma\": -74,\n\t\"Tcaron\\u0000e\": -92,\n\t\"Tcaron\\u0000eacute\": -92,\n\t\"Tcaron\\u0000ecaron\": -92,\n\t\"Tcaron\\u0000ecircumflex\": -92,\n\t\"Tcaron\\u0000edieresis\": -52,\n\t\"Tcaron\\u0000edotaccent\": -92,\n\t\"Tcaron\\u0000egrave\": -52,\n\t\"Tcaron\\u0000emacron\": -52,\n\t\"Tcaron\\u0000eogonek\": -92,\n\t\"Tcaron\\u0000hyphen\": -92,\n\t\"Tcaron\\u0000i\": -18,\n\t\"Tcaron\\u0000iacute\": -18,\n\t\"Tcaron\\u0000iogonek\": -18,\n\t\"Tcaron\\u0000o\": -92,\n\t\"Tcaron\\u0000oacute\": -92,\n\t\"Tcaron\\u0000ocircumflex\": -92,\n\t\"Tcaron\\u0000odieresis\": -92,\n\t\"Tcaron\\u0000ograve\": -92,\n\t\"Tcaron\\u0000ohungarumlaut\": -92,\n\t\"Tcaron\\u0000omacron\": -92,\n\t\"Tcaron\\u0000oslash\": -92,\n\t\"Tcaron\\u0000otilde\": -92,\n\t\"Tcaron\\u0000period\": -90,\n\t\"Tcaron\\u0000r\": -74,\n\t\"Tcaron\\u0000racute\": -74,\n\t\"Tcaron\\u0000rcaron\": -74,\n\t\"Tcaron\\u0000rcommaaccent\": -74,\n\t\"Tcaron\\u0000semicolon\": -74,\n\t\"Tcaron\\u0000u\": -92,\n\t\"Tcaron\\u0000uacute\": -92,\n\t\"Tcaron\\u0000ucircumflex\": -92,\n\t\"Tcaron\\u0000udieresis\": -92,\n\t\"Tcaron\\u0000ugrave\": -92,\n\t\"Tcaron\\u0000uhungarumlaut\": -92,\n\t\"Tcaron\\u0000umacron\": -92,\n\t\"Tcaron\\u0000uogonek\": -92,\n\t\"Tcaron\\u0000uring\": -92,\n\t\"Tcaron\\u0000w\": -74,\n\t\"Tcaron\\u0000y\": -34,\n\t\"Tcaron\\u0000yacute\": -34,\n\t\"Tcaron\\u0000ydieresis\": -34,\n\t\"Tcommaaccent\\u0000A\": -90,\n\t\"Tcommaaccent\\u0000Aacute\": -90,\n\t\"Tcommaaccent\\u0000Abreve\": -90,\n\t\"Tcommaaccent\\u0000Acircumflex\": -90,\n\t\"Tcommaaccent\\u0000Adieresis\": -90,\n\t\"Tcommaaccent\\u0000Agrave\": -90,\n\t\"Tcommaaccent\\u0000Amacron\": -90,\n\t\"Tcommaaccent\\u0000Aogonek\": -90,\n\t\"Tcommaaccent\\u0000Aring\": -90,\n\t\"Tcommaaccent\\u0000Atilde\": -90,\n\t\"Tcommaaccent\\u0000O\": -18,\n\t\"Tcommaaccent\\u0000Oacute\": -18,\n\t\"Tcommaaccent\\u0000Ocircumflex\": -18,\n\t\"Tcommaaccent\\u0000Odieresis\": -18,\n\t\"Tcommaaccent\\u0000Ograve\": -18,\n\t\"Tcommaaccent\\u0000Ohungarumlaut\": -18,\n\t\"Tcommaaccent\\u0000Omacron\": -18,\n\t\"Tcommaaccent\\u0000Oslash\": -18,\n\t\"Tcommaaccent\\u0000Otilde\": -18,\n\t\"Tcommaaccent\\u0000a\": -92,\n\t\"Tcommaaccent\\u0000aacute\": -92,\n\t\"Tcommaaccent\\u0000abreve\": -52,\n\t\"Tcommaaccent\\u0000acircumflex\": -52,\n\t\"Tcommaaccent\\u0000adieresis\": -52,\n\t\"Tcommaaccent\\u0000agrave\": -52,\n\t\"Tcommaaccent\\u0000amacron\": -52,\n\t\"Tcommaaccent\\u0000aogonek\": -92,\n\t\"Tcommaaccent\\u0000aring\": -92,\n\t\"Tcommaaccent\\u0000atilde\": -52,\n\t\"Tcommaaccent\\u0000colon\": -74,\n\t\"Tcommaaccent\\u0000comma\": -74,\n\t\"Tcommaaccent\\u0000e\": -92,\n\t\"Tcommaaccent\\u0000eacute\": -92,\n\t\"Tcommaaccent\\u0000ecaron\": -92,\n\t\"Tcommaaccent\\u0000ecircumflex\": -92,\n\t\"Tcommaaccent\\u0000edieresis\": -52,\n\t\"Tcommaaccent\\u0000edotaccent\": -92,\n\t\"Tcommaaccent\\u0000egrave\": -52,\n\t\"Tcommaaccent\\u0000emacron\": -52,\n\t\"Tcommaaccent\\u0000eogonek\": -92,\n\t\"Tcommaaccent\\u0000hyphen\": -92,\n\t\"Tcommaaccent\\u0000i\": -18,\n\t\"Tcommaaccent\\u0000iacute\": -18,\n\t\"Tcommaaccent\\u0000iogonek\": -18,\n\t\"Tcommaaccent\\u0000o\": -92,\n\t\"Tcommaaccent\\u0000oacute\": -92,\n\t\"Tcommaaccent\\u0000ocircumflex\": -92,\n\t\"Tcommaaccent\\u0000odieresis\": -92,\n\t\"Tcommaaccent\\u0000ograve\": -92,\n\t\"Tcommaaccent\\u0000ohungarumlaut\": -92,\n\t\"Tcommaaccent\\u0000omacron\": -92,\n\t\"Tcommaaccent\\u0000oslash\": -92,\n\t\"Tcommaaccent\\u0000otilde\": -92,\n\t\"Tcommaaccent\\u0000period\": -90,\n\t\"Tcommaaccent\\u0000r\": -74,\n\t\"Tcommaaccent\\u0000racute\": -74,\n\t\"Tcommaaccent\\u0000rcaron\": -74,\n\t\"Tcommaaccent\\u0000rcommaaccent\": -74,\n\t\"Tcommaaccent\\u0000semicolon\": -74,\n\t\"Tcommaaccent\\u0000u\": -92,\n\t\"Tcommaaccent\\u0000uacute\": -92,\n\t\"Tcommaaccent\\u0000ucircumflex\": -92,\n\t\"Tcommaaccent\\u0000udieresis\": -92,\n\t\"Tcommaaccent\\u0000ugrave\": -92,\n\t\"Tcommaaccent\\u0000uhungarumlaut\": -92,\n\t\"Tcommaaccent\\u0000umacron\": -92,\n\t\"Tcommaaccent\\u0000uogonek\": -92,\n\t\"Tcommaaccent\\u0000uring\": -92,\n\t\"Tcommaaccent\\u0000w\": -74,\n\t\"Tcommaaccent\\u0000y\": -34,\n\t\"Tcommaaccent\\u0000yacute\": -34,\n\t\"Tcommaaccent\\u0000ydieresis\": -34,\n\t\"U\\u0000A\": -60,\n\t\"U\\u0000Aacute\": -60,\n\t\"U\\u0000Abreve\": -60,\n\t\"U\\u0000Acircumflex\": -60,\n\t\"U\\u0000Adieresis\": -60,\n\t\"U\\u0000Agrave\": -60,\n\t\"U\\u0000Amacron\": -60,\n\t\"U\\u0000Aogonek\": -60,\n\t\"U\\u0000Aring\": -60,\n\t\"U\\u0000Atilde\": -60,\n\t\"U\\u0000comma\": -50,\n\t\"U\\u0000period\": -50,\n\t\"Uacute\\u0000A\": -60,\n\t\"Uacute\\u0000Aacute\": -60,\n\t\"Uacute\\u0000Abreve\": -60,\n\t\"Uacute\\u0000Acircumflex\": -60,\n\t\"Uacute\\u0000Adieresis\": -60,\n\t\"Uacute\\u0000Agrave\": -60,\n\t\"Uacute\\u0000Amacron\": -60,\n\t\"Uacute\\u0000Aogonek\": -60,\n\t\"Uacute\\u0000Aring\": -60,\n\t\"Uacute\\u0000Atilde\": -60,\n\t\"Uacute\\u0000comma\": -50,\n\t\"Uacute\\u0000period\": -50,\n\t\"Ucircumflex\\u0000A\": -60,\n\t\"Ucircumflex\\u0000Aacute\": -60,\n\t\"Ucircumflex\\u0000Abreve\": -60,\n\t\"Ucircumflex\\u0000Acircumflex\": -60,\n\t\"Ucircumflex\\u0000Adieresis\": -60,\n\t\"Ucircumflex\\u0000Agrave\": -60,\n\t\"Ucircumflex\\u0000Amacron\": -60,\n\t\"Ucircumflex\\u0000Aogonek\": -60,\n\t\"Ucircumflex\\u0000Aring\": -60,\n\t\"Ucircumflex\\u0000Atilde\": -60,\n\t\"Ucircumflex\\u0000comma\": -50,\n\t\"Ucircumflex\\u0000period\": -50,\n\t\"Udieresis\\u0000A\": -60,\n\t\"Udieresis\\u0000Aacute\": -60,\n\t\"Udieresis\\u0000Abreve\": -60,\n\t\"Udieresis\\u0000Acircumflex\": -60,\n\t\"Udieresis\\u0000Adieresis\": -60,\n\t\"Udieresis\\u0000Agrave\": -60,\n\t\"Udieresis\\u0000Amacron\": -60,\n\t\"Udieresis\\u0000Aogonek\": -60,\n\t\"Udieresis\\u0000Aring\": -60,\n\t\"Udieresis\\u0000Atilde\": -60,\n\t\"Udieresis\\u0000comma\": -50,\n\t\"Udieresis\\u0000period\": -50,\n\t\"Ugrave\\u0000A\": -60,\n\t\"Ugrave\\u0000Aacute\": -60,\n\t\"Ugrave\\u0000Abreve\": -60,\n\t\"Ugrave\\u0000Acircumflex\": -60,\n\t\"Ugrave\\u0000Adieresis\": -60,\n\t\"Ugrave\\u0000Agrave\": -60,\n\t\"Ugrave\\u0000Amacron\": -60,\n\t\"Ugrave\\u0000Aogonek\": -60,\n\t\"Ugrave\\u0000Aring\": -60,\n\t\"Ugrave\\u0000Atilde\": -60,\n\t\"Ugrave\\u0000comma\": -50,\n\t\"Ugrave\\u0000period\": -50,\n\t\"Uhungarumlaut\\u0000A\": -60,\n\t\"Uhungarumlaut\\u0000Aacute\": -60,\n\t\"Uhungarumlaut\\u0000Abreve\": -60,\n\t\"Uhungarumlaut\\u0000Acircumflex\": -60,\n\t\"Uhungarumlaut\\u0000Adieresis\": -60,\n\t\"Uhungarumlaut\\u0000Agrave\": -60,\n\t\"Uhungarumlaut\\u0000Amacron\": -60,\n\t\"Uhungarumlaut\\u0000Aogonek\": -60,\n\t\"Uhungarumlaut\\u0000Aring\": -60,\n\t\"Uhungarumlaut\\u0000Atilde\": -60,\n\t\"Uhungarumlaut\\u0000comma\": -50,\n\t\"Uhungarumlaut\\u0000period\": -50,\n\t\"Umacron\\u0000A\": -60,\n\t\"Umacron\\u0000Aacute\": -60,\n\t\"Umacron\\u0000Abreve\": -60,\n\t\"Umacron\\u0000Acircumflex\": -60,\n\t\"Umacron\\u0000Adieresis\": -60,\n\t\"Umacron\\u0000Agrave\": -60,\n\t\"Umacron\\u0000Amacron\": -60,\n\t\"Umacron\\u0000Aogonek\": -60,\n\t\"Umacron\\u0000Aring\": -60,\n\t\"Umacron\\u0000Atilde\": -60,\n\t\"Umacron\\u0000comma\": -50,\n\t\"Umacron\\u0000period\": -50,\n\t\"Uogonek\\u0000A\": -60,\n\t\"Uogonek\\u0000Aacute\": -60,\n\t\"Uogonek\\u0000Abreve\": -60,\n\t\"Uogonek\\u0000Acircumflex\": -60,\n\t\"Uogonek\\u0000Adieresis\": -60,\n\t\"Uogonek\\u0000Agrave\": -60,\n\t\"Uogonek\\u0000Amacron\": -60,\n\t\"Uogonek\\u0000Aogonek\": -60,\n\t\"Uogonek\\u0000Aring\": -60,\n\t\"Uogonek\\u0000Atilde\": -60,\n\t\"Uogonek\\u0000comma\": -50,\n\t\"Uogonek\\u0000period\": -50,\n\t\"Uring\\u0000A\": -60,\n\t\"Uring\\u0000Aacute\": -60,\n\t\"Uring\\u0000Abreve\": -60,\n\t\"Uring\\u0000Acircumflex\": -60,\n\t\"Uring\\u0000Adieresis\": -60,\n\t\"Uring\\u0000Agrave\": -60,\n\t\"Uring\\u0000Amacron\": -60,\n\t\"Uring\\u0000Aogonek\": -60,\n\t\"Uring\\u0000Aring\": -60,\n\t\"Uring\\u0000Atilde\": -60,\n\t\"Uring\\u0000comma\": -50,\n\t\"Uring\\u0000period\": -50,\n\t\"V\\u0000A\": -135,\n\t\"V\\u0000Aacute\": -135,\n\t\"V\\u0000Abreve\": -135,\n\t\"V\\u0000Acircumflex\": -135,\n\t\"V\\u0000Adieresis\": -135,\n\t\"V\\u0000Agrave\": -135,\n\t\"V\\u0000Amacron\": -135,\n\t\"V\\u0000Aogonek\": -135,\n\t\"V\\u0000Aring\": -135,\n\t\"V\\u0000Atilde\": -135,\n\t\"V\\u0000G\": -30,\n\t\"V\\u0000Gbreve\": -30,\n\t\"V\\u0000Gcommaaccent\": -30,\n\t\"V\\u0000O\": -45,\n\t\"V\\u0000Oacute\": -45,\n\t\"V\\u0000Ocircumflex\": -45,\n\t\"V\\u0000Odieresis\": -45,\n\t\"V\\u0000Ograve\": -45,\n\t\"V\\u0000Ohungarumlaut\": -45,\n\t\"V\\u0000Omacron\": -45,\n\t\"V\\u0000Oslash\": -45,\n\t\"V\\u0000Otilde\": -45,\n\t\"V\\u0000a\": -92,\n\t\"V\\u0000aacute\": -92,\n\t\"V\\u0000abreve\": -92,\n\t\"V\\u0000acircumflex\": -92,\n\t\"V\\u0000adieresis\": -92,\n\t\"V\\u0000agrave\": -92,\n\t\"V\\u0000amacron\": -92,\n\t\"V\\u0000aogonek\": -92,\n\t\"V\\u0000aring\": -92,\n\t\"V\\u0000atilde\": -92,\n\t\"V\\u0000colon\": -92,\n\t\"V\\u0000comma\": -129,\n\t\"V\\u0000e\": -100,\n\t\"V\\u0000eacute\": -100,\n\t\"V\\u0000ecaron\": -100,\n\t\"V\\u0000ecircumflex\": -100,\n\t\"V\\u0000edieresis\": -100,\n\t\"V\\u0000edotaccent\": -100,\n\t\"V\\u0000egrave\": -100,\n\t\"V\\u0000emacron\": -100,\n\t\"V\\u0000eogonek\": -100,\n\t\"V\\u0000hyphen\": -74,\n\t\"V\\u0000i\": -37,\n\t\"V\\u0000iacute\": -37,\n\t\"V\\u0000icircumflex\": -37,\n\t\"V\\u0000idieresis\": -37,\n\t\"V\\u0000igrave\": -37,\n\t\"V\\u0000imacron\": -37,\n\t\"V\\u0000iogonek\": -37,\n\t\"V\\u0000o\": -100,\n\t\"V\\u0000oacute\": -100,\n\t\"V\\u0000ocircumflex\": -100,\n\t\"V\\u0000odieresis\": -100,\n\t\"V\\u0000ograve\": -100,\n\t\"V\\u0000ohungarumlaut\": -100,\n\t\"V\\u0000omacron\": -100,\n\t\"V\\u0000oslash\": -100,\n\t\"V\\u0000otilde\": -100,\n\t\"V\\u0000period\": -145,\n\t\"V\\u0000semicolon\": -92,\n\t\"V\\u0000u\": -92,\n\t\"V\\u0000uacute\": -92,\n\t\"V\\u0000ucircumflex\": -92,\n\t\"V\\u0000udieresis\": -92,\n\t\"V\\u0000ugrave\": -92,\n\t\"V\\u0000uhungarumlaut\": -92,\n\t\"V\\u0000umacron\": -92,\n\t\"V\\u0000uogonek\": -92,\n\t\"V\\u0000uring\": -92,\n\t\"W\\u0000A\": -120,\n\t\"W\\u0000Aacute\": -120,\n\t\"W\\u0000Abreve\": -120,\n\t\"W\\u0000Acircumflex\": -120,\n\t\"W\\u0000Adieresis\": -120,\n\t\"W\\u0000Agrave\": -120,\n\t\"W\\u0000Amacron\": -120,\n\t\"W\\u0000Aogonek\": -120,\n\t\"W\\u0000Aring\": -120,\n\t\"W\\u0000Atilde\": -120,\n\t\"W\\u0000O\": -10,\n\t\"W\\u0000Oacute\": -10,\n\t\"W\\u0000Ocircumflex\": -10,\n\t\"W\\u0000Odieresis\": -10,\n\t\"W\\u0000Ograve\": -10,\n\t\"W\\u0000Ohungarumlaut\": -10,\n\t\"W\\u0000Omacron\": -10,\n\t\"W\\u0000Oslash\": -10,\n\t\"W\\u0000Otilde\": -10,\n\t\"W\\u0000a\": -65,\n\t\"W\\u0000aacute\": -65,\n\t\"W\\u0000abreve\": -65,\n\t\"W\\u0000acircumflex\": -65,\n\t\"W\\u0000adieresis\": -65,\n\t\"W\\u0000agrave\": -65,\n\t\"W\\u0000amacron\": -65,\n\t\"W\\u0000aogonek\": -65,\n\t\"W\\u0000aring\": -65,\n\t\"W\\u0000atilde\": -65,\n\t\"W\\u0000colon\": -55,\n\t\"W\\u0000comma\": -92,\n\t\"W\\u0000e\": -65,\n\t\"W\\u0000eacute\": -65,\n\t\"W\\u0000ecaron\": -65,\n\t\"W\\u0000ecircumflex\": -65,\n\t\"W\\u0000edieresis\": -65,\n\t\"W\\u0000edotaccent\": -65,\n\t\"W\\u0000egrave\": -65,\n\t\"W\\u0000emacron\": -65,\n\t\"W\\u0000eogonek\": -65,\n\t\"W\\u0000hyphen\": -37,\n\t\"W\\u0000i\": -18,\n\t\"W\\u0000iacute\": -18,\n\t\"W\\u0000iogonek\": -18,\n\t\"W\\u0000o\": -75,\n\t\"W\\u0000oacute\": -75,\n\t\"W\\u0000ocircumflex\": -75,\n\t\"W\\u0000odieresis\": -75,\n\t\"W\\u0000ograve\": -75,\n\t\"W\\u0000ohungarumlaut\": -75,\n\t\"W\\u0000omacron\": -75,\n\t\"W\\u0000oslash\": -75,\n\t\"W\\u0000otilde\": -75,\n\t\"W\\u0000period\": -92,\n\t\"W\\u0000semicolon\": -55,\n\t\"W\\u0000u\": -50,\n\t\"W\\u0000uacute\": -50,\n\t\"W\\u0000ucircumflex\": -50,\n\t\"W\\u0000udieresis\": -50,\n\t\"W\\u0000ugrave\": -50,\n\t\"W\\u0000uhungarumlaut\": -50,\n\t\"W\\u0000umacron\": -50,\n\t\"W\\u0000uogonek\": -50,\n\t\"W\\u0000uring\": -50,\n\t\"W\\u0000y\": -60,\n\t\"W\\u0000yacute\": -60,\n\t\"W\\u0000ydieresis\": -60,\n\t\"Y\\u0000A\": -110,\n\t\"Y\\u0000Aacute\": -110,\n\t\"Y\\u0000Abreve\": -110,\n\t\"Y\\u0000Acircumflex\": -110,\n\t\"Y\\u0000Adieresis\": -110,\n\t\"Y\\u0000Agrave\": -110,\n\t\"Y\\u0000Amacron\": -110,\n\t\"Y\\u0000Aogonek\": -110,\n\t\"Y\\u0000Aring\": -110,\n\t\"Y\\u0000Atilde\": -110,\n\t\"Y\\u0000O\": -35,\n\t\"Y\\u0000Oacute\": -35,\n\t\"Y\\u0000Ocircumflex\": -35,\n\t\"Y\\u0000Odieresis\": -35,\n\t\"Y\\u0000Ograve\": -35,\n\t\"Y\\u0000Ohungarumlaut\": -35,\n\t\"Y\\u0000Omacron\": -35,\n\t\"Y\\u0000Oslash\": -35,\n\t\"Y\\u0000Otilde\": -35,\n\t\"Y\\u0000a\": -85,\n\t\"Y\\u0000aacute\": -85,\n\t\"Y\\u0000abreve\": -85,\n\t\"Y\\u0000acircumflex\": -85,\n\t\"Y\\u0000adieresis\": -85,\n\t\"Y\\u0000agrave\": -85,\n\t\"Y\\u0000amacron\": -85,\n\t\"Y\\u0000aogonek\": -85,\n\t\"Y\\u0000aring\": -85,\n\t\"Y\\u0000atilde\": -85,\n\t\"Y\\u0000colon\": -92,\n\t\"Y\\u0000comma\": -92,\n\t\"Y\\u0000e\": -111,\n\t\"Y\\u0000eacute\": -111,\n\t\"Y\\u0000ecaron\": -111,\n\t\"Y\\u0000ecircumflex\": -111,\n\t\"Y\\u0000edieresis\": -71,\n\t\"Y\\u0000edotaccent\": -111,\n\t\"Y\\u0000egrave\": -71,\n\t\"Y\\u0000emacron\": -71,\n\t\"Y\\u0000eogonek\": -111,\n\t\"Y\\u0000hyphen\": -92,\n\t\"Y\\u0000i\": -37,\n\t\"Y\\u0000iacute\": -37,\n\t\"Y\\u0000iogonek\": -37,\n\t\"Y\\u0000o\": -111,\n\t\"Y\\u0000oacute\": -111,\n\t\"Y\\u0000ocircumflex\": -111,\n\t\"Y\\u0000odieresis\": -111,\n\t\"Y\\u0000ograve\": -111,\n\t\"Y\\u0000ohungarumlaut\": -111,\n\t\"Y\\u0000omacron\": -111,\n\t\"Y\\u0000oslash\": -111,\n\t\"Y\\u0000otilde\": -111,\n\t\"Y\\u0000period\": -92,\n\t\"Y\\u0000semicolon\": -92,\n\t\"Y\\u0000u\": -92,\n\t\"Y\\u0000uacute\": -92,\n\t\"Y\\u0000ucircumflex\": -92,\n\t\"Y\\u0000udieresis\": -92,\n\t\"Y\\u0000ugrave\": -92,\n\t\"Y\\u0000uhungarumlaut\": -92,\n\t\"Y\\u0000umacron\": -92,\n\t\"Y\\u0000uogonek\": -92,\n\t\"Y\\u0000uring\": -92,\n\t\"Yacute\\u0000A\": -110,\n\t\"Yacute\\u0000Aacute\": -110,\n\t\"Yacute\\u0000Abreve\": -110,\n\t\"Yacute\\u0000Acircumflex\": -110,\n\t\"Yacute\\u0000Adieresis\": -110,\n\t\"Yacute\\u0000Agrave\": -110,\n\t\"Yacute\\u0000Amacron\": -110,\n\t\"Yacute\\u0000Aogonek\": -110,\n\t\"Yacute\\u0000Aring\": -110,\n\t\"Yacute\\u0000Atilde\": -110,\n\t\"Yacute\\u0000O\": -35,\n\t\"Yacute\\u0000Oacute\": -35,\n\t\"Yacute\\u0000Ocircumflex\": -35,\n\t\"Yacute\\u0000Odieresis\": -35,\n\t\"Yacute\\u0000Ograve\": -35,\n\t\"Yacute\\u0000Ohungarumlaut\": -35,\n\t\"Yacute\\u0000Omacron\": -35,\n\t\"Yacute\\u0000Oslash\": -35,\n\t\"Yacute\\u0000Otilde\": -35,\n\t\"Yacute\\u0000a\": -85,\n\t\"Yacute\\u0000aacute\": -85,\n\t\"Yacute\\u0000abreve\": -85,\n\t\"Yacute\\u0000acircumflex\": -85,\n\t\"Yacute\\u0000adieresis\": -85,\n\t\"Yacute\\u0000agrave\": -85,\n\t\"Yacute\\u0000amacron\": -85,\n\t\"Yacute\\u0000aogonek\": -85,\n\t\"Yacute\\u0000aring\": -85,\n\t\"Yacute\\u0000atilde\": -85,\n\t\"Yacute\\u0000colon\": -92,\n\t\"Yacute\\u0000comma\": -92,\n\t\"Yacute\\u0000e\": -111,\n\t\"Yacute\\u0000eacute\": -111,\n\t\"Yacute\\u0000ecaron\": -111,\n\t\"Yacute\\u0000ecircumflex\": -111,\n\t\"Yacute\\u0000edieresis\": -71,\n\t\"Yacute\\u0000edotaccent\": -111,\n\t\"Yacute\\u0000egrave\": -71,\n\t\"Yacute\\u0000emacron\": -71,\n\t\"Yacute\\u0000eogonek\": -111,\n\t\"Yacute\\u0000hyphen\": -92,\n\t\"Yacute\\u0000i\": -37,\n\t\"Yacute\\u0000iacute\": -37,\n\t\"Yacute\\u0000iogonek\": -37,\n\t\"Yacute\\u0000o\": -111,\n\t\"Yacute\\u0000oacute\": -111,\n\t\"Yacute\\u0000ocircumflex\": -111,\n\t\"Yacute\\u0000odieresis\": -111,\n\t\"Yacute\\u0000ograve\": -111,\n\t\"Yacute\\u0000ohungarumlaut\": -111,\n\t\"Yacute\\u0000omacron\": -111,\n\t\"Yacute\\u0000oslash\": -111,\n\t\"Yacute\\u0000otilde\": -111,\n\t\"Yacute\\u0000period\": -92,\n\t\"Yacute\\u0000semicolon\": -92,\n\t\"Yacute\\u0000u\": -92,\n\t\"Yacute\\u0000uacute\": -92,\n\t\"Yacute\\u0000ucircumflex\": -92,\n\t\"Yacute\\u0000udieresis\": -92,\n\t\"Yacute\\u0000ugrave\": -92,\n\t\"Yacute\\u0000uhungarumlaut\": -92,\n\t\"Yacute\\u0000umacron\": -92,\n\t\"Yacute\\u0000uogonek\": -92,\n\t\"Yacute\\u0000uring\": -92,\n\t\"Ydieresis\\u0000A\": -110,\n\t\"Ydieresis\\u0000Aacute\": -110,\n\t\"Ydieresis\\u0000Abreve\": -110,\n\t\"Ydieresis\\u0000Acircumflex\": -110,\n\t\"Ydieresis\\u0000Adieresis\": -110,\n\t\"Ydieresis\\u0000Agrave\": -110,\n\t\"Ydieresis\\u0000Amacron\": -110,\n\t\"Ydieresis\\u0000Aogonek\": -110,\n\t\"Ydieresis\\u0000Aring\": -110,\n\t\"Ydieresis\\u0000Atilde\": -110,\n\t\"Ydieresis\\u0000O\": -35,\n\t\"Ydieresis\\u0000Oacute\": -35,\n\t\"Ydieresis\\u0000Ocircumflex\": -35,\n\t\"Ydieresis\\u0000Odieresis\": -35,\n\t\"Ydieresis\\u0000Ograve\": -35,\n\t\"Ydieresis\\u0000Ohungarumlaut\": -35,\n\t\"Ydieresis\\u0000Omacron\": -35,\n\t\"Ydieresis\\u0000Oslash\": -35,\n\t\"Ydieresis\\u0000Otilde\": -35,\n\t\"Ydieresis\\u0000a\": -85,\n\t\"Ydieresis\\u0000aacute\": -85,\n\t\"Ydieresis\\u0000abreve\": -85,\n\t\"Ydieresis\\u0000acircumflex\": -85,\n\t\"Ydieresis\\u0000adieresis\": -85,\n\t\"Ydieresis\\u0000agrave\": -85,\n\t\"Ydieresis\\u0000amacron\": -85,\n\t\"Ydieresis\\u0000aogonek\": -85,\n\t\"Ydieresis\\u0000aring\": -85,\n\t\"Ydieresis\\u0000atilde\": -85,\n\t\"Ydieresis\\u0000colon\": -92,\n\t\"Ydieresis\\u0000comma\": -92,\n\t\"Ydieresis\\u0000e\": -111,\n\t\"Ydieresis\\u0000eacute\": -111,\n\t\"Ydieresis\\u0000ecaron\": -111,\n\t\"Ydieresis\\u0000ecircumflex\": -111,\n\t\"Ydieresis\\u0000edieresis\": -71,\n\t\"Ydieresis\\u0000edotaccent\": -111,\n\t\"Ydieresis\\u0000egrave\": -71,\n\t\"Ydieresis\\u0000emacron\": -71,\n\t\"Ydieresis\\u0000eogonek\": -111,\n\t\"Ydieresis\\u0000hyphen\": -92,\n\t\"Ydieresis\\u0000i\": -37,\n\t\"Ydieresis\\u0000iacute\": -37,\n\t\"Ydieresis\\u0000iogonek\": -37,\n\t\"Ydieresis\\u0000o\": -111,\n\t\"Ydieresis\\u0000oacute\": -111,\n\t\"Ydieresis\\u0000ocircumflex\": -111,\n\t\"Ydieresis\\u0000odieresis\": -111,\n\t\"Ydieresis\\u0000ograve\": -111,\n\t\"Ydieresis\\u0000ohungarumlaut\": -111,\n\t\"Ydieresis\\u0000omacron\": -111,\n\t\"Ydieresis\\u0000oslash\": -111,\n\t\"Ydieresis\\u0000otilde\": -111,\n\t\"Ydieresis\\u0000period\": -92,\n\t\"Ydieresis\\u0000semicolon\": -92,\n\t\"Ydieresis\\u0000u\": -92,\n\t\"Ydieresis\\u0000uacute\": -92,\n\t\"Ydieresis\\u0000ucircumflex\": -92,\n\t\"Ydieresis\\u0000udieresis\": -92,\n\t\"Ydieresis\\u0000ugrave\": -92,\n\t\"Ydieresis\\u0000uhungarumlaut\": -92,\n\t\"Ydieresis\\u0000umacron\": -92,\n\t\"Ydieresis\\u0000uogonek\": -92,\n\t\"Ydieresis\\u0000uring\": -92,\n\t\"a\\u0000v\": -25,\n\t\"aacute\\u0000v\": -25,\n\t\"abreve\\u0000v\": -25,\n\t\"acircumflex\\u0000v\": -25,\n\t\"adieresis\\u0000v\": -25,\n\t\"agrave\\u0000v\": -25,\n\t\"amacron\\u0000v\": -25,\n\t\"aogonek\\u0000v\": -25,\n\t\"aring\\u0000v\": -25,\n\t\"atilde\\u0000v\": -25,\n\t\"b\\u0000b\": -10,\n\t\"b\\u0000period\": -40,\n\t\"b\\u0000u\": -20,\n\t\"b\\u0000uacute\": -20,\n\t\"b\\u0000ucircumflex\": -20,\n\t\"b\\u0000udieresis\": -20,\n\t\"b\\u0000ugrave\": -20,\n\t\"b\\u0000uhungarumlaut\": -20,\n\t\"b\\u0000umacron\": -20,\n\t\"b\\u0000uogonek\": -20,\n\t\"b\\u0000uring\": -20,\n\t\"b\\u0000v\": -15,\n\t\"comma\\u0000quotedblright\": -45,\n\t\"comma\\u0000quoteright\": -55,\n\t\"d\\u0000w\": -15,\n\t\"dcroat\\u0000w\": -15,\n\t\"e\\u0000v\": -15,\n\t\"eacute\\u0000v\": -15,\n\t\"ecaron\\u0000v\": -15,\n\t\"ecircumflex\\u0000v\": -15,\n\t\"edieresis\\u0000v\": -15,\n\t\"edotaccent\\u0000v\": -15,\n\t\"egrave\\u0000v\": -15,\n\t\"emacron\\u0000v\": -15,\n\t\"eogonek\\u0000v\": -15,\n\t\"f\\u0000comma\": -15,\n\t\"f\\u0000dotlessi\": -35,\n\t\"f\\u0000i\": -25,\n\t\"f\\u0000o\": -25,\n\t\"f\\u0000oacute\": -25,\n\t\"f\\u0000ocircumflex\": -25,\n\t\"f\\u0000odieresis\": -25,\n\t\"f\\u0000ograve\": -25,\n\t\"f\\u0000ohungarumlaut\": -25,\n\t\"f\\u0000omacron\": -25,\n\t\"f\\u0000oslash\": -25,\n\t\"f\\u0000otilde\": -25,\n\t\"f\\u0000period\": -15,\n\t\"f\\u0000quotedblright\": 50,\n\t\"f\\u0000quoteright\": 55,\n\t\"g\\u0000period\": -15,\n\t\"gbreve\\u0000period\": -15,\n\t\"gcommaaccent\\u0000period\": -15,\n\t\"h\\u0000y\": -15,\n\t\"h\\u0000yacute\": -15,\n\t\"h\\u0000ydieresis\": -15,\n\t\"i\\u0000v\": -10,\n\t\"iacute\\u0000v\": -10,\n\t\"icircumflex\\u0000v\": -10,\n\t\"idieresis\\u0000v\": -10,\n\t\"igrave\\u0000v\": -10,\n\t\"imacron\\u0000v\": -10,\n\t\"iogonek\\u0000v\": -10,\n\t\"k\\u0000e\": -10,\n\t\"k\\u0000eacute\": -10,\n\t\"k\\u0000ecaron\": -10,\n\t\"k\\u0000ecircumflex\": -10,\n\t\"k\\u0000edieresis\": -10,\n\t\"k\\u0000edotaccent\": -10,\n\t\"k\\u0000egrave\": -10,\n\t\"k\\u0000emacron\": -10,\n\t\"k\\u0000eogonek\": -10,\n\t\"k\\u0000o\": -15,\n\t\"k\\u0000oacute\": -15,\n\t\"k\\u0000ocircumflex\": -15,\n\t\"k\\u0000odieresis\": -15,\n\t\"k\\u0000ograve\": -15,\n\t\"k\\u0000ohungarumlaut\": -15,\n\t\"k\\u0000omacron\": -15,\n\t\"k\\u0000oslash\": -15,\n\t\"k\\u0000otilde\": -15,\n\t\"k\\u0000y\": -15,\n\t\"k\\u0000yacute\": -15,\n\t\"k\\u0000ydieresis\": -15,\n\t\"kcommaaccent\\u0000e\": -10,\n\t\"kcommaaccent\\u0000eacute\": -10,\n\t\"kcommaaccent\\u0000ecaron\": -10,\n\t\"kcommaaccent\\u0000ecircumflex\": -10,\n\t\"kcommaaccent\\u0000edieresis\": -10,\n\t\"kcommaaccent\\u0000edotaccent\": -10,\n\t\"kcommaaccent\\u0000egrave\": -10,\n\t\"kcommaaccent\\u0000emacron\": -10,\n\t\"kcommaaccent\\u0000eogonek\": -10,\n\t\"kcommaaccent\\u0000o\": -15,\n\t\"kcommaaccent\\u0000oacute\": -15,\n\t\"kcommaaccent\\u0000ocircumflex\": -15,\n\t\"kcommaaccent\\u0000odieresis\": -15,\n\t\"kcommaaccent\\u0000ograve\": -15,\n\t\"kcommaaccent\\u0000ohungarumlaut\": -15,\n\t\"kcommaaccent\\u0000omacron\": -15,\n\t\"kcommaaccent\\u0000oslash\": -15,\n\t\"kcommaaccent\\u0000otilde\": -15,\n\t\"kcommaaccent\\u0000y\": -15,\n\t\"kcommaaccent\\u0000yacute\": -15,\n\t\"kcommaaccent\\u0000ydieresis\": -15,\n\t\"n\\u0000v\": -40,\n\t\"nacute\\u0000v\": -40,\n\t\"ncaron\\u0000v\": -40,\n\t\"ncommaaccent\\u0000v\": -40,\n\t\"ntilde\\u0000v\": -40,\n\t\"o\\u0000v\": -10,\n\t\"o\\u0000w\": -10,\n\t\"oacute\\u0000v\": -10,\n\t\"oacute\\u0000w\": -10,\n\t\"ocircumflex\\u0000v\": -10,\n\t\"ocircumflex\\u0000w\": -10,\n\t\"odieresis\\u0000v\": -10,\n\t\"odieresis\\u0000w\": -10,\n\t\"ograve\\u0000v\": -10,\n\t\"ograve\\u0000w\": -10,\n\t\"ohungarumlaut\\u0000v\": -10,\n\t\"ohungarumlaut\\u0000w\": -10,\n\t\"omacron\\u0000v\": -10,\n\t\"omacron\\u0000w\": -10,\n\t\"oslash\\u0000v\": -10,\n\t\"oslash\\u0000w\": -10,\n\t\"otilde\\u0000v\": -10,\n\t\"otilde\\u0000w\": -10,\n\t\"period\\u0000quotedblright\": -55,\n\t\"period\\u0000quoteright\": -55,\n\t\"quotedblleft\\u0000A\": -10,\n\t\"quotedblleft\\u0000Aacute\": -10,\n\t\"quotedblleft\\u0000Abreve\": -10,\n\t\"quotedblleft\\u0000Acircumflex\": -10,\n\t\"quotedblleft\\u0000Adieresis\": -10,\n\t\"quotedblleft\\u0000Agrave\": -10,\n\t\"quotedblleft\\u0000Amacron\": -10,\n\t\"quotedblleft\\u0000Aogonek\": -10,\n\t\"quotedblleft\\u0000Aring\": -10,\n\t\"quotedblleft\\u0000Atilde\": -10,\n\t\"quoteleft\\u0000A\": -10,\n\t\"quoteleft\\u0000Aacute\": -10,\n\t\"quoteleft\\u0000Abreve\": -10,\n\t\"quoteleft\\u0000Acircumflex\": -10,\n\t\"quoteleft\\u0000Adieresis\": -10,\n\t\"quoteleft\\u0000Agrave\": -10,\n\t\"quoteleft\\u0000Amacron\": -10,\n\t\"quoteleft\\u0000Aogonek\": -10,\n\t\"quoteleft\\u0000Aring\": -10,\n\t\"quoteleft\\u0000Atilde\": -10,\n\t\"quoteleft\\u0000quoteleft\": -63,\n\t\"quoteright\\u0000d\": -20,\n\t\"quoteright\\u0000dcroat\": -20,\n\t\"quoteright\\u0000quoteright\": -63,\n\t\"quoteright\\u0000r\": -20,\n\t\"quoteright\\u0000racute\": -20,\n\t\"quoteright\\u0000rcaron\": -20,\n\t\"quoteright\\u0000rcommaaccent\": -20,\n\t\"quoteright\\u0000s\": -37,\n\t\"quoteright\\u0000sacute\": -37,\n\t\"quoteright\\u0000scaron\": -37,\n\t\"quoteright\\u0000scedilla\": -37,\n\t\"quoteright\\u0000scommaaccent\": -37,\n\t\"quoteright\\u0000space\": -74,\n\t\"quoteright\\u0000v\": -20,\n\t\"r\\u0000c\": -18,\n\t\"r\\u0000cacute\": -18,\n\t\"r\\u0000ccaron\": -18,\n\t\"r\\u0000ccedilla\": -18,\n\t\"r\\u0000comma\": -92,\n\t\"r\\u0000e\": -18,\n\t\"r\\u0000eacute\": -18,\n\t\"r\\u0000ecaron\": -18,\n\t\"r\\u0000ecircumflex\": -18,\n\t\"r\\u0000edieresis\": -18,\n\t\"r\\u0000edotaccent\": -18,\n\t\"r\\u0000egrave\": -18,\n\t\"r\\u0000emacron\": -18,\n\t\"r\\u0000eogonek\": -18,\n\t\"r\\u0000g\": -10,\n\t\"r\\u0000gbreve\": -10,\n\t\"r\\u0000gcommaaccent\": -10,\n\t\"r\\u0000hyphen\": -37,\n\t\"r\\u0000n\": -15,\n\t\"r\\u0000nacute\": -15,\n\t\"r\\u0000ncaron\": -15,\n\t\"r\\u0000ncommaaccent\": -15,\n\t\"r\\u0000ntilde\": -15,\n\t\"r\\u0000o\": -18,\n\t\"r\\u0000oacute\": -18,\n\t\"r\\u0000ocircumflex\": -18,\n\t\"r\\u0000odieresis\": -18,\n\t\"r\\u0000ograve\": -18,\n\t\"r\\u0000ohungarumlaut\": -18,\n\t\"r\\u0000omacron\": -18,\n\t\"r\\u0000oslash\": -18,\n\t\"r\\u0000otilde\": -18,\n\t\"r\\u0000p\": -10,\n\t\"r\\u0000period\": -100,\n\t\"r\\u0000q\": -18,\n\t\"r\\u0000v\": -10,\n\t\"racute\\u0000c\": -18,\n\t\"racute\\u0000cacute\": -18,\n\t\"racute\\u0000ccaron\": -18,\n\t\"racute\\u0000ccedilla\": -18,\n\t\"racute\\u0000comma\": -92,\n\t\"racute\\u0000e\": -18,\n\t\"racute\\u0000eacute\": -18,\n\t\"racute\\u0000ecaron\": -18,\n\t\"racute\\u0000ecircumflex\": -18,\n\t\"racute\\u0000edieresis\": -18,\n\t\"racute\\u0000edotaccent\": -18,\n\t\"racute\\u0000egrave\": -18,\n\t\"racute\\u0000emacron\": -18,\n\t\"racute\\u0000eogonek\": -18,\n\t\"racute\\u0000g\": -10,\n\t\"racute\\u0000gbreve\": -10,\n\t\"racute\\u0000gcommaaccent\": -10,\n\t\"racute\\u0000hyphen\": -37,\n\t\"racute\\u0000n\": -15,\n\t\"racute\\u0000nacute\": -15,\n\t\"racute\\u0000ncaron\": -15,\n\t\"racute\\u0000ncommaaccent\": -15,\n\t\"racute\\u0000ntilde\": -15,\n\t\"racute\\u0000o\": -18,\n\t\"racute\\u0000oacute\": -18,\n\t\"racute\\u0000ocircumflex\": -18,\n\t\"racute\\u0000odieresis\": -18,\n\t\"racute\\u0000ograve\": -18,\n\t\"racute\\u0000ohungarumlaut\": -18,\n\t\"racute\\u0000omacron\": -18,\n\t\"racute\\u0000oslash\": -18,\n\t\"racute\\u0000otilde\": -18,\n\t\"racute\\u0000p\": -10,\n\t\"racute\\u0000period\": -100,\n\t\"racute\\u0000q\": -18,\n\t\"racute\\u0000v\": -10,\n\t\"rcaron\\u0000c\": -18,\n\t\"rcaron\\u0000cacute\": -18,\n\t\"rcaron\\u0000ccaron\": -18,\n\t\"rcaron\\u0000ccedilla\": -18,\n\t\"rcaron\\u0000comma\": -92,\n\t\"rcaron\\u0000e\": -18,\n\t\"rcaron\\u0000eacute\": -18,\n\t\"rcaron\\u0000ecaron\": -18,\n\t\"rcaron\\u0000ecircumflex\": -18,\n\t\"rcaron\\u0000edieresis\": -18,\n\t\"rcaron\\u0000edotaccent\": -18,\n\t\"rcaron\\u0000egrave\": -18,\n\t\"rcaron\\u0000emacron\": -18,\n\t\"rcaron\\u0000eogonek\": -18,\n\t\"rcaron\\u0000g\": -10,\n\t\"rcaron\\u0000gbreve\": -10,\n\t\"rcaron\\u0000gcommaaccent\": -10,\n\t\"rcaron\\u0000hyphen\": -37,\n\t\"rcaron\\u0000n\": -15,\n\t\"rcaron\\u0000nacute\": -15,\n\t\"rcaron\\u0000ncaron\": -15,\n\t\"rcaron\\u0000ncommaaccent\": -15,\n\t\"rcaron\\u0000ntilde\": -15,\n\t\"rcaron\\u0000o\": -18,\n\t\"rcaron\\u0000oacute\": -18,\n\t\"rcaron\\u0000ocircumflex\": -18,\n\t\"rcaron\\u0000odieresis\": -18,\n\t\"rcaron\\u0000ograve\": -18,\n\t\"rcaron\\u0000ohungarumlaut\": -18,\n\t\"rcaron\\u0000omacron\": -18,\n\t\"rcaron\\u0000oslash\": -18,\n\t\"rcaron\\u0000otilde\": -18,\n\t\"rcaron\\u0000p\": -10,\n\t\"rcaron\\u0000period\": -100,\n\t\"rcaron\\u0000q\": -18,\n\t\"rcaron\\u0000v\": -10,\n\t\"rcommaaccent\\u0000c\": -18,\n\t\"rcommaaccent\\u0000cacute\": -18,\n\t\"rcommaaccent\\u0000ccaron\": -18,\n\t\"rcommaaccent\\u0000ccedilla\": -18,\n\t\"rcommaaccent\\u0000comma\": -92,\n\t\"rcommaaccent\\u0000e\": -18,\n\t\"rcommaaccent\\u0000eacute\": -18,\n\t\"rcommaaccent\\u0000ecaron\": -18,\n\t\"rcommaaccent\\u0000ecircumflex\": -18,\n\t\"rcommaaccent\\u0000edieresis\": -18,\n\t\"rcommaaccent\\u0000edotaccent\": -18,\n\t\"rcommaaccent\\u0000egrave\": -18,\n\t\"rcommaaccent\\u0000emacron\": -18,\n\t\"rcommaaccent\\u0000eogonek\": -18,\n\t\"rcommaaccent\\u0000g\": -10,\n\t\"rcommaaccent\\u0000gbreve\": -10,\n\t\"rcommaaccent\\u0000gcommaaccent\": -10,\n\t\"rcommaaccent\\u0000hyphen\": -37,\n\t\"rcommaaccent\\u0000n\": -15,\n\t\"rcommaaccent\\u0000nacute\": -15,\n\t\"rcommaaccent\\u0000ncaron\": -15,\n\t\"rcommaaccent\\u0000ncommaaccent\": -15,\n\t\"rcommaaccent\\u0000ntilde\": -15,\n\t\"rcommaaccent\\u0000o\": -18,\n\t\"rcommaaccent\\u0000oacute\": -18,\n\t\"rcommaaccent\\u0000ocircumflex\": -18,\n\t\"rcommaaccent\\u0000odieresis\": -18,\n\t\"rcommaaccent\\u0000ograve\": -18,\n\t\"rcommaaccent\\u0000ohungarumlaut\": -18,\n\t\"rcommaaccent\\u0000omacron\": -18,\n\t\"rcommaaccent\\u0000oslash\": -18,\n\t\"rcommaaccent\\u0000otilde\": -18,\n\t\"rcommaaccent\\u0000p\": -10,\n\t\"rcommaaccent\\u0000period\": -100,\n\t\"rcommaaccent\\u0000q\": -18,\n\t\"rcommaaccent\\u0000v\": -10,\n\t\"space\\u0000A\": -55,\n\t\"space\\u0000Aacute\": -55,\n\t\"space\\u0000Abreve\": -55,\n\t\"space\\u0000Acircumflex\": -55,\n\t\"space\\u0000Adieresis\": -55,\n\t\"space\\u0000Agrave\": -55,\n\t\"space\\u0000Amacron\": -55,\n\t\"space\\u0000Aogonek\": -55,\n\t\"space\\u0000Aring\": -55,\n\t\"space\\u0000Atilde\": -55,\n\t\"space\\u0000T\": -30,\n\t\"space\\u0000Tcaron\": -30,\n\t\"space\\u0000Tcommaaccent\": -30,\n\t\"space\\u0000V\": -45,\n\t\"space\\u0000W\": -30,\n\t\"space\\u0000Y\": -55,\n\t\"space\\u0000Yacute\": -55,\n\t\"space\\u0000Ydieresis\": -55,\n\t\"v\\u0000a\": -10,\n\t\"v\\u0000aacute\": -10,\n\t\"v\\u0000abreve\": -10,\n\t\"v\\u0000acircumflex\": -10,\n\t\"v\\u0000adieresis\": -10,\n\t\"v\\u0000agrave\": -10,\n\t\"v\\u0000amacron\": -10,\n\t\"v\\u0000aogonek\": -10,\n\t\"v\\u0000aring\": -10,\n\t\"v\\u0000atilde\": -10,\n\t\"v\\u0000comma\": -55,\n\t\"v\\u0000e\": -10,\n\t\"v\\u0000eacute\": -10,\n\t\"v\\u0000ecaron\": -10,\n\t\"v\\u0000ecircumflex\": -10,\n\t\"v\\u0000edieresis\": -10,\n\t\"v\\u0000edotaccent\": -10,\n\t\"v\\u0000egrave\": -10,\n\t\"v\\u0000emacron\": -10,\n\t\"v\\u0000eogonek\": -10,\n\t\"v\\u0000o\": -10,\n\t\"v\\u0000oacute\": -10,\n\t\"v\\u0000ocircumflex\": -10,\n\t\"v\\u0000odieresis\": -10,\n\t\"v\\u0000ograve\": -10,\n\t\"v\\u0000ohungarumlaut\": -10,\n\t\"v\\u0000omacron\": -10,\n\t\"v\\u0000oslash\": -10,\n\t\"v\\u0000otilde\": -10,\n\t\"v\\u0000period\": -70,\n\t\"w\\u0000comma\": -55,\n\t\"w\\u0000o\": -10,\n\t\"w\\u0000oacute\": -10,\n\t\"w\\u0000ocircumflex\": -10,\n\t\"w\\u0000odieresis\": -10,\n\t\"w\\u0000ograve\": -10,\n\t\"w\\u0000ohungarumlaut\": -10,\n\t\"w\\u0000omacron\": -10,\n\t\"w\\u0000oslash\": -10,\n\t\"w\\u0000otilde\": -10,\n\t\"w\\u0000period\": -70,\n\t\"y\\u0000comma\": -55,\n\t\"y\\u0000e\": -10,\n\t\"y\\u0000eacute\": -10,\n\t\"y\\u0000ecaron\": -10,\n\t\"y\\u0000ecircumflex\": -10,\n\t\"y\\u0000edieresis\": -10,\n\t\"y\\u0000edotaccent\": -10,\n\t\"y\\u0000egrave\": -10,\n\t\"y\\u0000emacron\": -10,\n\t\"y\\u0000eogonek\": -10,\n\t\"y\\u0000o\": -25,\n\t\"y\\u0000oacute\": -25,\n\t\"y\\u0000ocircumflex\": -25,\n\t\"y\\u0000odieresis\": -25,\n\t\"y\\u0000ograve\": -25,\n\t\"y\\u0000ohungarumlaut\": -25,\n\t\"y\\u0000omacron\": -25,\n\t\"y\\u0000oslash\": -25,\n\t\"y\\u0000otilde\": -25,\n\t\"y\\u0000period\": -70,\n\t\"yacute\\u0000comma\": -55,\n\t\"yacute\\u0000e\": -10,\n\t\"yacute\\u0000eacute\": -10,\n\t\"yacute\\u0000ecaron\": -10,\n\t\"yacute\\u0000ecircumflex\": -10,\n\t\"yacute\\u0000edieresis\": -10,\n\t\"yacute\\u0000edotaccent\": -10,\n\t\"yacute\\u0000egrave\": -10,\n\t\"yacute\\u0000emacron\": -10,\n\t\"yacute\\u0000eogonek\": -10,\n\t\"yacute\\u0000o\": -25,\n\t\"yacute\\u0000oacute\": -25,\n\t\"yacute\\u0000ocircumflex\": -25,\n\t\"yacute\\u0000odieresis\": -25,\n\t\"yacute\\u0000ograve\": -25,\n\t\"yacute\\u0000ohungarumlaut\": -25,\n\t\"yacute\\u0000omacron\": -25,\n\t\"yacute\\u0000oslash\": -25,\n\t\"yacute\\u0000otilde\": -25,\n\t\"yacute\\u0000period\": -70,\n\t\"ydieresis\\u0000comma\": -55,\n\t\"ydieresis\\u0000e\": -10,\n\t\"ydieresis\\u0000eacute\": -10,\n\t\"ydieresis\\u0000ecaron\": -10,\n\t\"ydieresis\\u0000ecircumflex\": -10,\n\t\"ydieresis\\u0000edieresis\": -10,\n\t\"ydieresis\\u0000edotaccent\": -10,\n\t\"ydieresis\\u0000egrave\": -10,\n\t\"ydieresis\\u0000emacron\": -10,\n\t\"ydieresis\\u0000eogonek\": -10,\n\t\"ydieresis\\u0000o\": -25,\n\t\"ydieresis\\u0000oacute\": -25,\n\t\"ydieresis\\u0000ocircumflex\": -25,\n\t\"ydieresis\\u0000odieresis\": -25,\n\t\"ydieresis\\u0000ograve\": -25,\n\t\"ydieresis\\u0000ohungarumlaut\": -25,\n\t\"ydieresis\\u0000omacron\": -25,\n\t\"ydieresis\\u0000oslash\": -25,\n\t\"ydieresis\\u0000otilde\": -25,\n\t\"ydieresis\\u0000period\": -70\n};\nvar TimesBold = {\n\tattributes: attributes$1,\n\tglyphWidths: glyphWidths$1,\n\tkernPairs: kernPairs$1\n};\n\nvar attributes = {\n\tComment: [\n\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\"Creation Date: Thu May 1 12:56:55 1997\",\n\t\t\"UniqueID 43067\",\n\t\t\"VMusage 47727 58752\"\n\t],\n\tFontName: \"Times-Italic\",\n\tFullName: \"Times Italic\",\n\tFamilyName: \"Times\",\n\tWeight: \"Medium\",\n\tItalicAngle: \"-15.5\",\n\tIsFixedPitch: \"false\",\n\tCharacterSet: \"ExtendedRoman\",\n\tFontBBox: \"-169 -217 1010 883 \",\n\tUnderlinePosition: \"-100\",\n\tUnderlineThickness: \"50\",\n\tVersion: \"002.000\",\n\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\tEncodingScheme: \"AdobeStandardEncoding\",\n\tCapHeight: \"653\",\n\tXHeight: \"441\",\n\tAscender: \"683\",\n\tDescender: \"-217\",\n\tStdHW: \"32\",\n\tStdVW: \"76\"\n};\nvar glyphWidths = {\n\tspace: 250,\n\texclam: 333,\n\tquotedbl: 420,\n\tnumbersign: 500,\n\tdollar: 500,\n\tpercent: 833,\n\tampersand: 778,\n\tquoteright: 333,\n\tparenleft: 333,\n\tparenright: 333,\n\tasterisk: 500,\n\tplus: 675,\n\tcomma: 250,\n\thyphen: 333,\n\tperiod: 250,\n\tslash: 278,\n\tzero: 500,\n\tone: 500,\n\ttwo: 500,\n\tthree: 500,\n\tfour: 500,\n\tfive: 500,\n\tsix: 500,\n\tseven: 500,\n\teight: 500,\n\tnine: 500,\n\tcolon: 333,\n\tsemicolon: 333,\n\tless: 675,\n\tequal: 675,\n\tgreater: 675,\n\tquestion: 500,\n\tat: 920,\n\tA: 611,\n\tB: 611,\n\tC: 667,\n\tD: 722,\n\tE: 611,\n\tF: 611,\n\tG: 722,\n\tH: 722,\n\tI: 333,\n\tJ: 444,\n\tK: 667,\n\tL: 556,\n\tM: 833,\n\tN: 667,\n\tO: 722,\n\tP: 611,\n\tQ: 722,\n\tR: 611,\n\tS: 500,\n\tT: 556,\n\tU: 722,\n\tV: 611,\n\tW: 833,\n\tX: 611,\n\tY: 556,\n\tZ: 556,\n\tbracketleft: 389,\n\tbackslash: 278,\n\tbracketright: 389,\n\tasciicircum: 422,\n\tunderscore: 500,\n\tquoteleft: 333,\n\ta: 500,\n\tb: 500,\n\tc: 444,\n\td: 500,\n\te: 444,\n\tf: 278,\n\tg: 500,\n\th: 500,\n\ti: 278,\n\tj: 278,\n\tk: 444,\n\tl: 278,\n\tm: 722,\n\tn: 500,\n\to: 500,\n\tp: 500,\n\tq: 500,\n\tr: 389,\n\ts: 389,\n\tt: 278,\n\tu: 500,\n\tv: 444,\n\tw: 667,\n\tx: 444,\n\ty: 444,\n\tz: 389,\n\tbraceleft: 400,\n\tbar: 275,\n\tbraceright: 400,\n\tasciitilde: 541,\n\texclamdown: 389,\n\tcent: 500,\n\tsterling: 500,\n\tfraction: 167,\n\tyen: 500,\n\tflorin: 500,\n\tsection: 500,\n\tcurrency: 500,\n\tquotesingle: 214,\n\tquotedblleft: 556,\n\tguillemotleft: 500,\n\tguilsinglleft: 333,\n\tguilsinglright: 333,\n\tfi: 500,\n\tfl: 500,\n\tendash: 500,\n\tdagger: 500,\n\tdaggerdbl: 500,\n\tperiodcentered: 250,\n\tparagraph: 523,\n\tbullet: 350,\n\tquotesinglbase: 333,\n\tquotedblbase: 556,\n\tquotedblright: 556,\n\tguillemotright: 500,\n\tellipsis: 889,\n\tperthousand: 1000,\n\tquestiondown: 500,\n\tgrave: 333,\n\tacute: 333,\n\tcircumflex: 333,\n\ttilde: 333,\n\tmacron: 333,\n\tbreve: 333,\n\tdotaccent: 333,\n\tdieresis: 333,\n\tring: 333,\n\tcedilla: 333,\n\thungarumlaut: 333,\n\togonek: 333,\n\tcaron: 333,\n\temdash: 889,\n\tAE: 889,\n\tordfeminine: 276,\n\tLslash: 556,\n\tOslash: 722,\n\tOE: 944,\n\tordmasculine: 310,\n\tae: 667,\n\tdotlessi: 278,\n\tlslash: 278,\n\toslash: 500,\n\toe: 667,\n\tgermandbls: 500,\n\tIdieresis: 333,\n\teacute: 444,\n\tabreve: 500,\n\tuhungarumlaut: 500,\n\tecaron: 444,\n\tYdieresis: 556,\n\tdivide: 675,\n\tYacute: 556,\n\tAcircumflex: 611,\n\taacute: 500,\n\tUcircumflex: 722,\n\tyacute: 444,\n\tscommaaccent: 389,\n\tecircumflex: 444,\n\tUring: 722,\n\tUdieresis: 722,\n\taogonek: 500,\n\tUacute: 722,\n\tuogonek: 500,\n\tEdieresis: 611,\n\tDcroat: 722,\n\tcommaaccent: 250,\n\tcopyright: 760,\n\tEmacron: 611,\n\tccaron: 444,\n\taring: 500,\n\tNcommaaccent: 667,\n\tlacute: 278,\n\tagrave: 500,\n\tTcommaaccent: 556,\n\tCacute: 667,\n\tatilde: 500,\n\tEdotaccent: 611,\n\tscaron: 389,\n\tscedilla: 389,\n\tiacute: 278,\n\tlozenge: 471,\n\tRcaron: 611,\n\tGcommaaccent: 722,\n\tucircumflex: 500,\n\tacircumflex: 500,\n\tAmacron: 611,\n\trcaron: 389,\n\tccedilla: 444,\n\tZdotaccent: 556,\n\tThorn: 611,\n\tOmacron: 722,\n\tRacute: 611,\n\tSacute: 500,\n\tdcaron: 544,\n\tUmacron: 722,\n\turing: 500,\n\tthreesuperior: 300,\n\tOgrave: 722,\n\tAgrave: 611,\n\tAbreve: 611,\n\tmultiply: 675,\n\tuacute: 500,\n\tTcaron: 556,\n\tpartialdiff: 476,\n\tydieresis: 444,\n\tNacute: 667,\n\ticircumflex: 278,\n\tEcircumflex: 611,\n\tadieresis: 500,\n\tedieresis: 444,\n\tcacute: 444,\n\tnacute: 500,\n\tumacron: 500,\n\tNcaron: 667,\n\tIacute: 333,\n\tplusminus: 675,\n\tbrokenbar: 275,\n\tregistered: 760,\n\tGbreve: 722,\n\tIdotaccent: 333,\n\tsummation: 600,\n\tEgrave: 611,\n\tracute: 389,\n\tomacron: 500,\n\tZacute: 556,\n\tZcaron: 556,\n\tgreaterequal: 549,\n\tEth: 722,\n\tCcedilla: 667,\n\tlcommaaccent: 278,\n\ttcaron: 300,\n\teogonek: 444,\n\tUogonek: 722,\n\tAacute: 611,\n\tAdieresis: 611,\n\tegrave: 444,\n\tzacute: 389,\n\tiogonek: 278,\n\tOacute: 722,\n\toacute: 500,\n\tamacron: 500,\n\tsacute: 389,\n\tidieresis: 278,\n\tOcircumflex: 722,\n\tUgrave: 722,\n\tDelta: 612,\n\tthorn: 500,\n\ttwosuperior: 300,\n\tOdieresis: 722,\n\tmu: 500,\n\tigrave: 278,\n\tohungarumlaut: 500,\n\tEogonek: 611,\n\tdcroat: 500,\n\tthreequarters: 750,\n\tScedilla: 500,\n\tlcaron: 300,\n\tKcommaaccent: 667,\n\tLacute: 556,\n\ttrademark: 980,\n\tedotaccent: 444,\n\tIgrave: 333,\n\tImacron: 333,\n\tLcaron: 611,\n\tonehalf: 750,\n\tlessequal: 549,\n\tocircumflex: 500,\n\tntilde: 500,\n\tUhungarumlaut: 722,\n\tEacute: 611,\n\temacron: 444,\n\tgbreve: 500,\n\tonequarter: 750,\n\tScaron: 500,\n\tScommaaccent: 500,\n\tOhungarumlaut: 722,\n\tdegree: 400,\n\tograve: 500,\n\tCcaron: 667,\n\tugrave: 500,\n\tradical: 453,\n\tDcaron: 722,\n\trcommaaccent: 389,\n\tNtilde: 667,\n\totilde: 500,\n\tRcommaaccent: 611,\n\tLcommaaccent: 556,\n\tAtilde: 611,\n\tAogonek: 611,\n\tAring: 611,\n\tOtilde: 722,\n\tzdotaccent: 389,\n\tEcaron: 611,\n\tIogonek: 333,\n\tkcommaaccent: 444,\n\tminus: 675,\n\tIcircumflex: 333,\n\tncaron: 500,\n\ttcommaaccent: 278,\n\tlogicalnot: 675,\n\todieresis: 500,\n\tudieresis: 500,\n\tnotequal: 549,\n\tgcommaaccent: 500,\n\teth: 500,\n\tzcaron: 389,\n\tncommaaccent: 500,\n\tonesuperior: 300,\n\timacron: 278,\n\tEuro: 500\n};\nvar kernPairs = {\n\t\"A\\u0000C\": -30,\n\t\"A\\u0000Cacute\": -30,\n\t\"A\\u0000Ccaron\": -30,\n\t\"A\\u0000Ccedilla\": -30,\n\t\"A\\u0000G\": -35,\n\t\"A\\u0000Gbreve\": -35,\n\t\"A\\u0000Gcommaaccent\": -35,\n\t\"A\\u0000O\": -40,\n\t\"A\\u0000Oacute\": -40,\n\t\"A\\u0000Ocircumflex\": -40,\n\t\"A\\u0000Odieresis\": -40,\n\t\"A\\u0000Ograve\": -40,\n\t\"A\\u0000Ohungarumlaut\": -40,\n\t\"A\\u0000Omacron\": -40,\n\t\"A\\u0000Oslash\": -40,\n\t\"A\\u0000Otilde\": -40,\n\t\"A\\u0000Q\": -40,\n\t\"A\\u0000T\": -37,\n\t\"A\\u0000Tcaron\": -37,\n\t\"A\\u0000Tcommaaccent\": -37,\n\t\"A\\u0000U\": -50,\n\t\"A\\u0000Uacute\": -50,\n\t\"A\\u0000Ucircumflex\": -50,\n\t\"A\\u0000Udieresis\": -50,\n\t\"A\\u0000Ugrave\": -50,\n\t\"A\\u0000Uhungarumlaut\": -50,\n\t\"A\\u0000Umacron\": -50,\n\t\"A\\u0000Uogonek\": -50,\n\t\"A\\u0000Uring\": -50,\n\t\"A\\u0000V\": -105,\n\t\"A\\u0000W\": -95,\n\t\"A\\u0000Y\": -55,\n\t\"A\\u0000Yacute\": -55,\n\t\"A\\u0000Ydieresis\": -55,\n\t\"A\\u0000quoteright\": -37,\n\t\"A\\u0000u\": -20,\n\t\"A\\u0000uacute\": -20,\n\t\"A\\u0000ucircumflex\": -20,\n\t\"A\\u0000udieresis\": -20,\n\t\"A\\u0000ugrave\": -20,\n\t\"A\\u0000uhungarumlaut\": -20,\n\t\"A\\u0000umacron\": -20,\n\t\"A\\u0000uogonek\": -20,\n\t\"A\\u0000uring\": -20,\n\t\"A\\u0000v\": -55,\n\t\"A\\u0000w\": -55,\n\t\"A\\u0000y\": -55,\n\t\"A\\u0000yacute\": -55,\n\t\"A\\u0000ydieresis\": -55,\n\t\"Aacute\\u0000C\": -30,\n\t\"Aacute\\u0000Cacute\": -30,\n\t\"Aacute\\u0000Ccaron\": -30,\n\t\"Aacute\\u0000Ccedilla\": -30,\n\t\"Aacute\\u0000G\": -35,\n\t\"Aacute\\u0000Gbreve\": -35,\n\t\"Aacute\\u0000Gcommaaccent\": -35,\n\t\"Aacute\\u0000O\": -40,\n\t\"Aacute\\u0000Oacute\": -40,\n\t\"Aacute\\u0000Ocircumflex\": -40,\n\t\"Aacute\\u0000Odieresis\": -40,\n\t\"Aacute\\u0000Ograve\": -40,\n\t\"Aacute\\u0000Ohungarumlaut\": -40,\n\t\"Aacute\\u0000Omacron\": -40,\n\t\"Aacute\\u0000Oslash\": -40,\n\t\"Aacute\\u0000Otilde\": -40,\n\t\"Aacute\\u0000Q\": -40,\n\t\"Aacute\\u0000T\": -37,\n\t\"Aacute\\u0000Tcaron\": -37,\n\t\"Aacute\\u0000Tcommaaccent\": -37,\n\t\"Aacute\\u0000U\": -50,\n\t\"Aacute\\u0000Uacute\": -50,\n\t\"Aacute\\u0000Ucircumflex\": -50,\n\t\"Aacute\\u0000Udieresis\": -50,\n\t\"Aacute\\u0000Ugrave\": -50,\n\t\"Aacute\\u0000Uhungarumlaut\": -50,\n\t\"Aacute\\u0000Umacron\": -50,\n\t\"Aacute\\u0000Uogonek\": -50,\n\t\"Aacute\\u0000Uring\": -50,\n\t\"Aacute\\u0000V\": -105,\n\t\"Aacute\\u0000W\": -95,\n\t\"Aacute\\u0000Y\": -55,\n\t\"Aacute\\u0000Yacute\": -55,\n\t\"Aacute\\u0000Ydieresis\": -55,\n\t\"Aacute\\u0000quoteright\": -37,\n\t\"Aacute\\u0000u\": -20,\n\t\"Aacute\\u0000uacute\": -20,\n\t\"Aacute\\u0000ucircumflex\": -20,\n\t\"Aacute\\u0000udieresis\": -20,\n\t\"Aacute\\u0000ugrave\": -20,\n\t\"Aacute\\u0000uhungarumlaut\": -20,\n\t\"Aacute\\u0000umacron\": -20,\n\t\"Aacute\\u0000uogonek\": -20,\n\t\"Aacute\\u0000uring\": -20,\n\t\"Aacute\\u0000v\": -55,\n\t\"Aacute\\u0000w\": -55,\n\t\"Aacute\\u0000y\": -55,\n\t\"Aacute\\u0000yacute\": -55,\n\t\"Aacute\\u0000ydieresis\": -55,\n\t\"Abreve\\u0000C\": -30,\n\t\"Abreve\\u0000Cacute\": -30,\n\t\"Abreve\\u0000Ccaron\": -30,\n\t\"Abreve\\u0000Ccedilla\": -30,\n\t\"Abreve\\u0000G\": -35,\n\t\"Abreve\\u0000Gbreve\": -35,\n\t\"Abreve\\u0000Gcommaaccent\": -35,\n\t\"Abreve\\u0000O\": -40,\n\t\"Abreve\\u0000Oacute\": -40,\n\t\"Abreve\\u0000Ocircumflex\": -40,\n\t\"Abreve\\u0000Odieresis\": -40,\n\t\"Abreve\\u0000Ograve\": -40,\n\t\"Abreve\\u0000Ohungarumlaut\": -40,\n\t\"Abreve\\u0000Omacron\": -40,\n\t\"Abreve\\u0000Oslash\": -40,\n\t\"Abreve\\u0000Otilde\": -40,\n\t\"Abreve\\u0000Q\": -40,\n\t\"Abreve\\u0000T\": -37,\n\t\"Abreve\\u0000Tcaron\": -37,\n\t\"Abreve\\u0000Tcommaaccent\": -37,\n\t\"Abreve\\u0000U\": -50,\n\t\"Abreve\\u0000Uacute\": -50,\n\t\"Abreve\\u0000Ucircumflex\": -50,\n\t\"Abreve\\u0000Udieresis\": -50,\n\t\"Abreve\\u0000Ugrave\": -50,\n\t\"Abreve\\u0000Uhungarumlaut\": -50,\n\t\"Abreve\\u0000Umacron\": -50,\n\t\"Abreve\\u0000Uogonek\": -50,\n\t\"Abreve\\u0000Uring\": -50,\n\t\"Abreve\\u0000V\": -105,\n\t\"Abreve\\u0000W\": -95,\n\t\"Abreve\\u0000Y\": -55,\n\t\"Abreve\\u0000Yacute\": -55,\n\t\"Abreve\\u0000Ydieresis\": -55,\n\t\"Abreve\\u0000quoteright\": -37,\n\t\"Abreve\\u0000u\": -20,\n\t\"Abreve\\u0000uacute\": -20,\n\t\"Abreve\\u0000ucircumflex\": -20,\n\t\"Abreve\\u0000udieresis\": -20,\n\t\"Abreve\\u0000ugrave\": -20,\n\t\"Abreve\\u0000uhungarumlaut\": -20,\n\t\"Abreve\\u0000umacron\": -20,\n\t\"Abreve\\u0000uogonek\": -20,\n\t\"Abreve\\u0000uring\": -20,\n\t\"Abreve\\u0000v\": -55,\n\t\"Abreve\\u0000w\": -55,\n\t\"Abreve\\u0000y\": -55,\n\t\"Abreve\\u0000yacute\": -55,\n\t\"Abreve\\u0000ydieresis\": -55,\n\t\"Acircumflex\\u0000C\": -30,\n\t\"Acircumflex\\u0000Cacute\": -30,\n\t\"Acircumflex\\u0000Ccaron\": -30,\n\t\"Acircumflex\\u0000Ccedilla\": -30,\n\t\"Acircumflex\\u0000G\": -35,\n\t\"Acircumflex\\u0000Gbreve\": -35,\n\t\"Acircumflex\\u0000Gcommaaccent\": -35,\n\t\"Acircumflex\\u0000O\": -40,\n\t\"Acircumflex\\u0000Oacute\": -40,\n\t\"Acircumflex\\u0000Ocircumflex\": -40,\n\t\"Acircumflex\\u0000Odieresis\": -40,\n\t\"Acircumflex\\u0000Ograve\": -40,\n\t\"Acircumflex\\u0000Ohungarumlaut\": -40,\n\t\"Acircumflex\\u0000Omacron\": -40,\n\t\"Acircumflex\\u0000Oslash\": -40,\n\t\"Acircumflex\\u0000Otilde\": -40,\n\t\"Acircumflex\\u0000Q\": -40,\n\t\"Acircumflex\\u0000T\": -37,\n\t\"Acircumflex\\u0000Tcaron\": -37,\n\t\"Acircumflex\\u0000Tcommaaccent\": -37,\n\t\"Acircumflex\\u0000U\": -50,\n\t\"Acircumflex\\u0000Uacute\": -50,\n\t\"Acircumflex\\u0000Ucircumflex\": -50,\n\t\"Acircumflex\\u0000Udieresis\": -50,\n\t\"Acircumflex\\u0000Ugrave\": -50,\n\t\"Acircumflex\\u0000Uhungarumlaut\": -50,\n\t\"Acircumflex\\u0000Umacron\": -50,\n\t\"Acircumflex\\u0000Uogonek\": -50,\n\t\"Acircumflex\\u0000Uring\": -50,\n\t\"Acircumflex\\u0000V\": -105,\n\t\"Acircumflex\\u0000W\": -95,\n\t\"Acircumflex\\u0000Y\": -55,\n\t\"Acircumflex\\u0000Yacute\": -55,\n\t\"Acircumflex\\u0000Ydieresis\": -55,\n\t\"Acircumflex\\u0000quoteright\": -37,\n\t\"Acircumflex\\u0000u\": -20,\n\t\"Acircumflex\\u0000uacute\": -20,\n\t\"Acircumflex\\u0000ucircumflex\": -20,\n\t\"Acircumflex\\u0000udieresis\": -20,\n\t\"Acircumflex\\u0000ugrave\": -20,\n\t\"Acircumflex\\u0000uhungarumlaut\": -20,\n\t\"Acircumflex\\u0000umacron\": -20,\n\t\"Acircumflex\\u0000uogonek\": -20,\n\t\"Acircumflex\\u0000uring\": -20,\n\t\"Acircumflex\\u0000v\": -55,\n\t\"Acircumflex\\u0000w\": -55,\n\t\"Acircumflex\\u0000y\": -55,\n\t\"Acircumflex\\u0000yacute\": -55,\n\t\"Acircumflex\\u0000ydieresis\": -55,\n\t\"Adieresis\\u0000C\": -30,\n\t\"Adieresis\\u0000Cacute\": -30,\n\t\"Adieresis\\u0000Ccaron\": -30,\n\t\"Adieresis\\u0000Ccedilla\": -30,\n\t\"Adieresis\\u0000G\": -35,\n\t\"Adieresis\\u0000Gbreve\": -35,\n\t\"Adieresis\\u0000Gcommaaccent\": -35,\n\t\"Adieresis\\u0000O\": -40,\n\t\"Adieresis\\u0000Oacute\": -40,\n\t\"Adieresis\\u0000Ocircumflex\": -40,\n\t\"Adieresis\\u0000Odieresis\": -40,\n\t\"Adieresis\\u0000Ograve\": -40,\n\t\"Adieresis\\u0000Ohungarumlaut\": -40,\n\t\"Adieresis\\u0000Omacron\": -40,\n\t\"Adieresis\\u0000Oslash\": -40,\n\t\"Adieresis\\u0000Otilde\": -40,\n\t\"Adieresis\\u0000Q\": -40,\n\t\"Adieresis\\u0000T\": -37,\n\t\"Adieresis\\u0000Tcaron\": -37,\n\t\"Adieresis\\u0000Tcommaaccent\": -37,\n\t\"Adieresis\\u0000U\": -50,\n\t\"Adieresis\\u0000Uacute\": -50,\n\t\"Adieresis\\u0000Ucircumflex\": -50,\n\t\"Adieresis\\u0000Udieresis\": -50,\n\t\"Adieresis\\u0000Ugrave\": -50,\n\t\"Adieresis\\u0000Uhungarumlaut\": -50,\n\t\"Adieresis\\u0000Umacron\": -50,\n\t\"Adieresis\\u0000Uogonek\": -50,\n\t\"Adieresis\\u0000Uring\": -50,\n\t\"Adieresis\\u0000V\": -105,\n\t\"Adieresis\\u0000W\": -95,\n\t\"Adieresis\\u0000Y\": -55,\n\t\"Adieresis\\u0000Yacute\": -55,\n\t\"Adieresis\\u0000Ydieresis\": -55,\n\t\"Adieresis\\u0000quoteright\": -37,\n\t\"Adieresis\\u0000u\": -20,\n\t\"Adieresis\\u0000uacute\": -20,\n\t\"Adieresis\\u0000ucircumflex\": -20,\n\t\"Adieresis\\u0000udieresis\": -20,\n\t\"Adieresis\\u0000ugrave\": -20,\n\t\"Adieresis\\u0000uhungarumlaut\": -20,\n\t\"Adieresis\\u0000umacron\": -20,\n\t\"Adieresis\\u0000uogonek\": -20,\n\t\"Adieresis\\u0000uring\": -20,\n\t\"Adieresis\\u0000v\": -55,\n\t\"Adieresis\\u0000w\": -55,\n\t\"Adieresis\\u0000y\": -55,\n\t\"Adieresis\\u0000yacute\": -55,\n\t\"Adieresis\\u0000ydieresis\": -55,\n\t\"Agrave\\u0000C\": -30,\n\t\"Agrave\\u0000Cacute\": -30,\n\t\"Agrave\\u0000Ccaron\": -30,\n\t\"Agrave\\u0000Ccedilla\": -30,\n\t\"Agrave\\u0000G\": -35,\n\t\"Agrave\\u0000Gbreve\": -35,\n\t\"Agrave\\u0000Gcommaaccent\": -35,\n\t\"Agrave\\u0000O\": -40,\n\t\"Agrave\\u0000Oacute\": -40,\n\t\"Agrave\\u0000Ocircumflex\": -40,\n\t\"Agrave\\u0000Odieresis\": -40,\n\t\"Agrave\\u0000Ograve\": -40,\n\t\"Agrave\\u0000Ohungarumlaut\": -40,\n\t\"Agrave\\u0000Omacron\": -40,\n\t\"Agrave\\u0000Oslash\": -40,\n\t\"Agrave\\u0000Otilde\": -40,\n\t\"Agrave\\u0000Q\": -40,\n\t\"Agrave\\u0000T\": -37,\n\t\"Agrave\\u0000Tcaron\": -37,\n\t\"Agrave\\u0000Tcommaaccent\": -37,\n\t\"Agrave\\u0000U\": -50,\n\t\"Agrave\\u0000Uacute\": -50,\n\t\"Agrave\\u0000Ucircumflex\": -50,\n\t\"Agrave\\u0000Udieresis\": -50,\n\t\"Agrave\\u0000Ugrave\": -50,\n\t\"Agrave\\u0000Uhungarumlaut\": -50,\n\t\"Agrave\\u0000Umacron\": -50,\n\t\"Agrave\\u0000Uogonek\": -50,\n\t\"Agrave\\u0000Uring\": -50,\n\t\"Agrave\\u0000V\": -105,\n\t\"Agrave\\u0000W\": -95,\n\t\"Agrave\\u0000Y\": -55,\n\t\"Agrave\\u0000Yacute\": -55,\n\t\"Agrave\\u0000Ydieresis\": -55,\n\t\"Agrave\\u0000quoteright\": -37,\n\t\"Agrave\\u0000u\": -20,\n\t\"Agrave\\u0000uacute\": -20,\n\t\"Agrave\\u0000ucircumflex\": -20,\n\t\"Agrave\\u0000udieresis\": -20,\n\t\"Agrave\\u0000ugrave\": -20,\n\t\"Agrave\\u0000uhungarumlaut\": -20,\n\t\"Agrave\\u0000umacron\": -20,\n\t\"Agrave\\u0000uogonek\": -20,\n\t\"Agrave\\u0000uring\": -20,\n\t\"Agrave\\u0000v\": -55,\n\t\"Agrave\\u0000w\": -55,\n\t\"Agrave\\u0000y\": -55,\n\t\"Agrave\\u0000yacute\": -55,\n\t\"Agrave\\u0000ydieresis\": -55,\n\t\"Amacron\\u0000C\": -30,\n\t\"Amacron\\u0000Cacute\": -30,\n\t\"Amacron\\u0000Ccaron\": -30,\n\t\"Amacron\\u0000Ccedilla\": -30,\n\t\"Amacron\\u0000G\": -35,\n\t\"Amacron\\u0000Gbreve\": -35,\n\t\"Amacron\\u0000Gcommaaccent\": -35,\n\t\"Amacron\\u0000O\": -40,\n\t\"Amacron\\u0000Oacute\": -40,\n\t\"Amacron\\u0000Ocircumflex\": -40,\n\t\"Amacron\\u0000Odieresis\": -40,\n\t\"Amacron\\u0000Ograve\": -40,\n\t\"Amacron\\u0000Ohungarumlaut\": -40,\n\t\"Amacron\\u0000Omacron\": -40,\n\t\"Amacron\\u0000Oslash\": -40,\n\t\"Amacron\\u0000Otilde\": -40,\n\t\"Amacron\\u0000Q\": -40,\n\t\"Amacron\\u0000T\": -37,\n\t\"Amacron\\u0000Tcaron\": -37,\n\t\"Amacron\\u0000Tcommaaccent\": -37,\n\t\"Amacron\\u0000U\": -50,\n\t\"Amacron\\u0000Uacute\": -50,\n\t\"Amacron\\u0000Ucircumflex\": -50,\n\t\"Amacron\\u0000Udieresis\": -50,\n\t\"Amacron\\u0000Ugrave\": -50,\n\t\"Amacron\\u0000Uhungarumlaut\": -50,\n\t\"Amacron\\u0000Umacron\": -50,\n\t\"Amacron\\u0000Uogonek\": -50,\n\t\"Amacron\\u0000Uring\": -50,\n\t\"Amacron\\u0000V\": -105,\n\t\"Amacron\\u0000W\": -95,\n\t\"Amacron\\u0000Y\": -55,\n\t\"Amacron\\u0000Yacute\": -55,\n\t\"Amacron\\u0000Ydieresis\": -55,\n\t\"Amacron\\u0000quoteright\": -37,\n\t\"Amacron\\u0000u\": -20,\n\t\"Amacron\\u0000uacute\": -20,\n\t\"Amacron\\u0000ucircumflex\": -20,\n\t\"Amacron\\u0000udieresis\": -20,\n\t\"Amacron\\u0000ugrave\": -20,\n\t\"Amacron\\u0000uhungarumlaut\": -20,\n\t\"Amacron\\u0000umacron\": -20,\n\t\"Amacron\\u0000uogonek\": -20,\n\t\"Amacron\\u0000uring\": -20,\n\t\"Amacron\\u0000v\": -55,\n\t\"Amacron\\u0000w\": -55,\n\t\"Amacron\\u0000y\": -55,\n\t\"Amacron\\u0000yacute\": -55,\n\t\"Amacron\\u0000ydieresis\": -55,\n\t\"Aogonek\\u0000C\": -30,\n\t\"Aogonek\\u0000Cacute\": -30,\n\t\"Aogonek\\u0000Ccaron\": -30,\n\t\"Aogonek\\u0000Ccedilla\": -30,\n\t\"Aogonek\\u0000G\": -35,\n\t\"Aogonek\\u0000Gbreve\": -35,\n\t\"Aogonek\\u0000Gcommaaccent\": -35,\n\t\"Aogonek\\u0000O\": -40,\n\t\"Aogonek\\u0000Oacute\": -40,\n\t\"Aogonek\\u0000Ocircumflex\": -40,\n\t\"Aogonek\\u0000Odieresis\": -40,\n\t\"Aogonek\\u0000Ograve\": -40,\n\t\"Aogonek\\u0000Ohungarumlaut\": -40,\n\t\"Aogonek\\u0000Omacron\": -40,\n\t\"Aogonek\\u0000Oslash\": -40,\n\t\"Aogonek\\u0000Otilde\": -40,\n\t\"Aogonek\\u0000Q\": -40,\n\t\"Aogonek\\u0000T\": -37,\n\t\"Aogonek\\u0000Tcaron\": -37,\n\t\"Aogonek\\u0000Tcommaaccent\": -37,\n\t\"Aogonek\\u0000U\": -50,\n\t\"Aogonek\\u0000Uacute\": -50,\n\t\"Aogonek\\u0000Ucircumflex\": -50,\n\t\"Aogonek\\u0000Udieresis\": -50,\n\t\"Aogonek\\u0000Ugrave\": -50,\n\t\"Aogonek\\u0000Uhungarumlaut\": -50,\n\t\"Aogonek\\u0000Umacron\": -50,\n\t\"Aogonek\\u0000Uogonek\": -50,\n\t\"Aogonek\\u0000Uring\": -50,\n\t\"Aogonek\\u0000V\": -105,\n\t\"Aogonek\\u0000W\": -95,\n\t\"Aogonek\\u0000Y\": -55,\n\t\"Aogonek\\u0000Yacute\": -55,\n\t\"Aogonek\\u0000Ydieresis\": -55,\n\t\"Aogonek\\u0000quoteright\": -37,\n\t\"Aogonek\\u0000u\": -20,\n\t\"Aogonek\\u0000uacute\": -20,\n\t\"Aogonek\\u0000ucircumflex\": -20,\n\t\"Aogonek\\u0000udieresis\": -20,\n\t\"Aogonek\\u0000ugrave\": -20,\n\t\"Aogonek\\u0000uhungarumlaut\": -20,\n\t\"Aogonek\\u0000umacron\": -20,\n\t\"Aogonek\\u0000uogonek\": -20,\n\t\"Aogonek\\u0000uring\": -20,\n\t\"Aogonek\\u0000v\": -55,\n\t\"Aogonek\\u0000w\": -55,\n\t\"Aogonek\\u0000y\": -55,\n\t\"Aogonek\\u0000yacute\": -55,\n\t\"Aogonek\\u0000ydieresis\": -55,\n\t\"Aring\\u0000C\": -30,\n\t\"Aring\\u0000Cacute\": -30,\n\t\"Aring\\u0000Ccaron\": -30,\n\t\"Aring\\u0000Ccedilla\": -30,\n\t\"Aring\\u0000G\": -35,\n\t\"Aring\\u0000Gbreve\": -35,\n\t\"Aring\\u0000Gcommaaccent\": -35,\n\t\"Aring\\u0000O\": -40,\n\t\"Aring\\u0000Oacute\": -40,\n\t\"Aring\\u0000Ocircumflex\": -40,\n\t\"Aring\\u0000Odieresis\": -40,\n\t\"Aring\\u0000Ograve\": -40,\n\t\"Aring\\u0000Ohungarumlaut\": -40,\n\t\"Aring\\u0000Omacron\": -40,\n\t\"Aring\\u0000Oslash\": -40,\n\t\"Aring\\u0000Otilde\": -40,\n\t\"Aring\\u0000Q\": -40,\n\t\"Aring\\u0000T\": -37,\n\t\"Aring\\u0000Tcaron\": -37,\n\t\"Aring\\u0000Tcommaaccent\": -37,\n\t\"Aring\\u0000U\": -50,\n\t\"Aring\\u0000Uacute\": -50,\n\t\"Aring\\u0000Ucircumflex\": -50,\n\t\"Aring\\u0000Udieresis\": -50,\n\t\"Aring\\u0000Ugrave\": -50,\n\t\"Aring\\u0000Uhungarumlaut\": -50,\n\t\"Aring\\u0000Umacron\": -50,\n\t\"Aring\\u0000Uogonek\": -50,\n\t\"Aring\\u0000Uring\": -50,\n\t\"Aring\\u0000V\": -105,\n\t\"Aring\\u0000W\": -95,\n\t\"Aring\\u0000Y\": -55,\n\t\"Aring\\u0000Yacute\": -55,\n\t\"Aring\\u0000Ydieresis\": -55,\n\t\"Aring\\u0000quoteright\": -37,\n\t\"Aring\\u0000u\": -20,\n\t\"Aring\\u0000uacute\": -20,\n\t\"Aring\\u0000ucircumflex\": -20,\n\t\"Aring\\u0000udieresis\": -20,\n\t\"Aring\\u0000ugrave\": -20,\n\t\"Aring\\u0000uhungarumlaut\": -20,\n\t\"Aring\\u0000umacron\": -20,\n\t\"Aring\\u0000uogonek\": -20,\n\t\"Aring\\u0000uring\": -20,\n\t\"Aring\\u0000v\": -55,\n\t\"Aring\\u0000w\": -55,\n\t\"Aring\\u0000y\": -55,\n\t\"Aring\\u0000yacute\": -55,\n\t\"Aring\\u0000ydieresis\": -55,\n\t\"Atilde\\u0000C\": -30,\n\t\"Atilde\\u0000Cacute\": -30,\n\t\"Atilde\\u0000Ccaron\": -30,\n\t\"Atilde\\u0000Ccedilla\": -30,\n\t\"Atilde\\u0000G\": -35,\n\t\"Atilde\\u0000Gbreve\": -35,\n\t\"Atilde\\u0000Gcommaaccent\": -35,\n\t\"Atilde\\u0000O\": -40,\n\t\"Atilde\\u0000Oacute\": -40,\n\t\"Atilde\\u0000Ocircumflex\": -40,\n\t\"Atilde\\u0000Odieresis\": -40,\n\t\"Atilde\\u0000Ograve\": -40,\n\t\"Atilde\\u0000Ohungarumlaut\": -40,\n\t\"Atilde\\u0000Omacron\": -40,\n\t\"Atilde\\u0000Oslash\": -40,\n\t\"Atilde\\u0000Otilde\": -40,\n\t\"Atilde\\u0000Q\": -40,\n\t\"Atilde\\u0000T\": -37,\n\t\"Atilde\\u0000Tcaron\": -37,\n\t\"Atilde\\u0000Tcommaaccent\": -37,\n\t\"Atilde\\u0000U\": -50,\n\t\"Atilde\\u0000Uacute\": -50,\n\t\"Atilde\\u0000Ucircumflex\": -50,\n\t\"Atilde\\u0000Udieresis\": -50,\n\t\"Atilde\\u0000Ugrave\": -50,\n\t\"Atilde\\u0000Uhungarumlaut\": -50,\n\t\"Atilde\\u0000Umacron\": -50,\n\t\"Atilde\\u0000Uogonek\": -50,\n\t\"Atilde\\u0000Uring\": -50,\n\t\"Atilde\\u0000V\": -105,\n\t\"Atilde\\u0000W\": -95,\n\t\"Atilde\\u0000Y\": -55,\n\t\"Atilde\\u0000Yacute\": -55,\n\t\"Atilde\\u0000Ydieresis\": -55,\n\t\"Atilde\\u0000quoteright\": -37,\n\t\"Atilde\\u0000u\": -20,\n\t\"Atilde\\u0000uacute\": -20,\n\t\"Atilde\\u0000ucircumflex\": -20,\n\t\"Atilde\\u0000udieresis\": -20,\n\t\"Atilde\\u0000ugrave\": -20,\n\t\"Atilde\\u0000uhungarumlaut\": -20,\n\t\"Atilde\\u0000umacron\": -20,\n\t\"Atilde\\u0000uogonek\": -20,\n\t\"Atilde\\u0000uring\": -20,\n\t\"Atilde\\u0000v\": -55,\n\t\"Atilde\\u0000w\": -55,\n\t\"Atilde\\u0000y\": -55,\n\t\"Atilde\\u0000yacute\": -55,\n\t\"Atilde\\u0000ydieresis\": -55,\n\t\"B\\u0000A\": -25,\n\t\"B\\u0000Aacute\": -25,\n\t\"B\\u0000Abreve\": -25,\n\t\"B\\u0000Acircumflex\": -25,\n\t\"B\\u0000Adieresis\": -25,\n\t\"B\\u0000Agrave\": -25,\n\t\"B\\u0000Amacron\": -25,\n\t\"B\\u0000Aogonek\": -25,\n\t\"B\\u0000Aring\": -25,\n\t\"B\\u0000Atilde\": -25,\n\t\"B\\u0000U\": -10,\n\t\"B\\u0000Uacute\": -10,\n\t\"B\\u0000Ucircumflex\": -10,\n\t\"B\\u0000Udieresis\": -10,\n\t\"B\\u0000Ugrave\": -10,\n\t\"B\\u0000Uhungarumlaut\": -10,\n\t\"B\\u0000Umacron\": -10,\n\t\"B\\u0000Uogonek\": -10,\n\t\"B\\u0000Uring\": -10,\n\t\"D\\u0000A\": -35,\n\t\"D\\u0000Aacute\": -35,\n\t\"D\\u0000Abreve\": -35,\n\t\"D\\u0000Acircumflex\": -35,\n\t\"D\\u0000Adieresis\": -35,\n\t\"D\\u0000Agrave\": -35,\n\t\"D\\u0000Amacron\": -35,\n\t\"D\\u0000Aogonek\": -35,\n\t\"D\\u0000Aring\": -35,\n\t\"D\\u0000Atilde\": -35,\n\t\"D\\u0000V\": -40,\n\t\"D\\u0000W\": -40,\n\t\"D\\u0000Y\": -40,\n\t\"D\\u0000Yacute\": -40,\n\t\"D\\u0000Ydieresis\": -40,\n\t\"Dcaron\\u0000A\": -35,\n\t\"Dcaron\\u0000Aacute\": -35,\n\t\"Dcaron\\u0000Abreve\": -35,\n\t\"Dcaron\\u0000Acircumflex\": -35,\n\t\"Dcaron\\u0000Adieresis\": -35,\n\t\"Dcaron\\u0000Agrave\": -35,\n\t\"Dcaron\\u0000Amacron\": -35,\n\t\"Dcaron\\u0000Aogonek\": -35,\n\t\"Dcaron\\u0000Aring\": -35,\n\t\"Dcaron\\u0000Atilde\": -35,\n\t\"Dcaron\\u0000V\": -40,\n\t\"Dcaron\\u0000W\": -40,\n\t\"Dcaron\\u0000Y\": -40,\n\t\"Dcaron\\u0000Yacute\": -40,\n\t\"Dcaron\\u0000Ydieresis\": -40,\n\t\"Dcroat\\u0000A\": -35,\n\t\"Dcroat\\u0000Aacute\": -35,\n\t\"Dcroat\\u0000Abreve\": -35,\n\t\"Dcroat\\u0000Acircumflex\": -35,\n\t\"Dcroat\\u0000Adieresis\": -35,\n\t\"Dcroat\\u0000Agrave\": -35,\n\t\"Dcroat\\u0000Amacron\": -35,\n\t\"Dcroat\\u0000Aogonek\": -35,\n\t\"Dcroat\\u0000Aring\": -35,\n\t\"Dcroat\\u0000Atilde\": -35,\n\t\"Dcroat\\u0000V\": -40,\n\t\"Dcroat\\u0000W\": -40,\n\t\"Dcroat\\u0000Y\": -40,\n\t\"Dcroat\\u0000Yacute\": -40,\n\t\"Dcroat\\u0000Ydieresis\": -40,\n\t\"F\\u0000A\": -115,\n\t\"F\\u0000Aacute\": -115,\n\t\"F\\u0000Abreve\": -115,\n\t\"F\\u0000Acircumflex\": -115,\n\t\"F\\u0000Adieresis\": -115,\n\t\"F\\u0000Agrave\": -115,\n\t\"F\\u0000Amacron\": -115,\n\t\"F\\u0000Aogonek\": -115,\n\t\"F\\u0000Aring\": -115,\n\t\"F\\u0000Atilde\": -115,\n\t\"F\\u0000a\": -75,\n\t\"F\\u0000aacute\": -75,\n\t\"F\\u0000abreve\": -75,\n\t\"F\\u0000acircumflex\": -75,\n\t\"F\\u0000adieresis\": -75,\n\t\"F\\u0000agrave\": -75,\n\t\"F\\u0000amacron\": -75,\n\t\"F\\u0000aogonek\": -75,\n\t\"F\\u0000aring\": -75,\n\t\"F\\u0000atilde\": -75,\n\t\"F\\u0000comma\": -135,\n\t\"F\\u0000e\": -75,\n\t\"F\\u0000eacute\": -75,\n\t\"F\\u0000ecaron\": -75,\n\t\"F\\u0000ecircumflex\": -75,\n\t\"F\\u0000edieresis\": -75,\n\t\"F\\u0000edotaccent\": -75,\n\t\"F\\u0000egrave\": -75,\n\t\"F\\u0000emacron\": -75,\n\t\"F\\u0000eogonek\": -75,\n\t\"F\\u0000i\": -45,\n\t\"F\\u0000iacute\": -45,\n\t\"F\\u0000icircumflex\": -45,\n\t\"F\\u0000idieresis\": -45,\n\t\"F\\u0000igrave\": -45,\n\t\"F\\u0000imacron\": -45,\n\t\"F\\u0000iogonek\": -45,\n\t\"F\\u0000o\": -105,\n\t\"F\\u0000oacute\": -105,\n\t\"F\\u0000ocircumflex\": -105,\n\t\"F\\u0000odieresis\": -105,\n\t\"F\\u0000ograve\": -105,\n\t\"F\\u0000ohungarumlaut\": -105,\n\t\"F\\u0000omacron\": -105,\n\t\"F\\u0000oslash\": -105,\n\t\"F\\u0000otilde\": -105,\n\t\"F\\u0000period\": -135,\n\t\"F\\u0000r\": -55,\n\t\"F\\u0000racute\": -55,\n\t\"F\\u0000rcaron\": -55,\n\t\"F\\u0000rcommaaccent\": -55,\n\t\"J\\u0000A\": -40,\n\t\"J\\u0000Aacute\": -40,\n\t\"J\\u0000Abreve\": -40,\n\t\"J\\u0000Acircumflex\": -40,\n\t\"J\\u0000Adieresis\": -40,\n\t\"J\\u0000Agrave\": -40,\n\t\"J\\u0000Amacron\": -40,\n\t\"J\\u0000Aogonek\": -40,\n\t\"J\\u0000Aring\": -40,\n\t\"J\\u0000Atilde\": -40,\n\t\"J\\u0000a\": -35,\n\t\"J\\u0000aacute\": -35,\n\t\"J\\u0000abreve\": -35,\n\t\"J\\u0000acircumflex\": -35,\n\t\"J\\u0000adieresis\": -35,\n\t\"J\\u0000agrave\": -35,\n\t\"J\\u0000amacron\": -35,\n\t\"J\\u0000aogonek\": -35,\n\t\"J\\u0000aring\": -35,\n\t\"J\\u0000atilde\": -35,\n\t\"J\\u0000comma\": -25,\n\t\"J\\u0000e\": -25,\n\t\"J\\u0000eacute\": -25,\n\t\"J\\u0000ecaron\": -25,\n\t\"J\\u0000ecircumflex\": -25,\n\t\"J\\u0000edieresis\": -25,\n\t\"J\\u0000edotaccent\": -25,\n\t\"J\\u0000egrave\": -25,\n\t\"J\\u0000emacron\": -25,\n\t\"J\\u0000eogonek\": -25,\n\t\"J\\u0000o\": -25,\n\t\"J\\u0000oacute\": -25,\n\t\"J\\u0000ocircumflex\": -25,\n\t\"J\\u0000odieresis\": -25,\n\t\"J\\u0000ograve\": -25,\n\t\"J\\u0000ohungarumlaut\": -25,\n\t\"J\\u0000omacron\": -25,\n\t\"J\\u0000oslash\": -25,\n\t\"J\\u0000otilde\": -25,\n\t\"J\\u0000period\": -25,\n\t\"J\\u0000u\": -35,\n\t\"J\\u0000uacute\": -35,\n\t\"J\\u0000ucircumflex\": -35,\n\t\"J\\u0000udieresis\": -35,\n\t\"J\\u0000ugrave\": -35,\n\t\"J\\u0000uhungarumlaut\": -35,\n\t\"J\\u0000umacron\": -35,\n\t\"J\\u0000uogonek\": -35,\n\t\"J\\u0000uring\": -35,\n\t\"K\\u0000O\": -50,\n\t\"K\\u0000Oacute\": -50,\n\t\"K\\u0000Ocircumflex\": -50,\n\t\"K\\u0000Odieresis\": -50,\n\t\"K\\u0000Ograve\": -50,\n\t\"K\\u0000Ohungarumlaut\": -50,\n\t\"K\\u0000Omacron\": -50,\n\t\"K\\u0000Oslash\": -50,\n\t\"K\\u0000Otilde\": -50,\n\t\"K\\u0000e\": -35,\n\t\"K\\u0000eacute\": -35,\n\t\"K\\u0000ecaron\": -35,\n\t\"K\\u0000ecircumflex\": -35,\n\t\"K\\u0000edieresis\": -35,\n\t\"K\\u0000edotaccent\": -35,\n\t\"K\\u0000egrave\": -35,\n\t\"K\\u0000emacron\": -35,\n\t\"K\\u0000eogonek\": -35,\n\t\"K\\u0000o\": -40,\n\t\"K\\u0000oacute\": -40,\n\t\"K\\u0000ocircumflex\": -40,\n\t\"K\\u0000odieresis\": -40,\n\t\"K\\u0000ograve\": -40,\n\t\"K\\u0000ohungarumlaut\": -40,\n\t\"K\\u0000omacron\": -40,\n\t\"K\\u0000oslash\": -40,\n\t\"K\\u0000otilde\": -40,\n\t\"K\\u0000u\": -40,\n\t\"K\\u0000uacute\": -40,\n\t\"K\\u0000ucircumflex\": -40,\n\t\"K\\u0000udieresis\": -40,\n\t\"K\\u0000ugrave\": -40,\n\t\"K\\u0000uhungarumlaut\": -40,\n\t\"K\\u0000umacron\": -40,\n\t\"K\\u0000uogonek\": -40,\n\t\"K\\u0000uring\": -40,\n\t\"K\\u0000y\": -40,\n\t\"K\\u0000yacute\": -40,\n\t\"K\\u0000ydieresis\": -40,\n\t\"Kcommaaccent\\u0000O\": -50,\n\t\"Kcommaaccent\\u0000Oacute\": -50,\n\t\"Kcommaaccent\\u0000Ocircumflex\": -50,\n\t\"Kcommaaccent\\u0000Odieresis\": -50,\n\t\"Kcommaaccent\\u0000Ograve\": -50,\n\t\"Kcommaaccent\\u0000Ohungarumlaut\": -50,\n\t\"Kcommaaccent\\u0000Omacron\": -50,\n\t\"Kcommaaccent\\u0000Oslash\": -50,\n\t\"Kcommaaccent\\u0000Otilde\": -50,\n\t\"Kcommaaccent\\u0000e\": -35,\n\t\"Kcommaaccent\\u0000eacute\": -35,\n\t\"Kcommaaccent\\u0000ecaron\": -35,\n\t\"Kcommaaccent\\u0000ecircumflex\": -35,\n\t\"Kcommaaccent\\u0000edieresis\": -35,\n\t\"Kcommaaccent\\u0000edotaccent\": -35,\n\t\"Kcommaaccent\\u0000egrave\": -35,\n\t\"Kcommaaccent\\u0000emacron\": -35,\n\t\"Kcommaaccent\\u0000eogonek\": -35,\n\t\"Kcommaaccent\\u0000o\": -40,\n\t\"Kcommaaccent\\u0000oacute\": -40,\n\t\"Kcommaaccent\\u0000ocircumflex\": -40,\n\t\"Kcommaaccent\\u0000odieresis\": -40,\n\t\"Kcommaaccent\\u0000ograve\": -40,\n\t\"Kcommaaccent\\u0000ohungarumlaut\": -40,\n\t\"Kcommaaccent\\u0000omacron\": -40,\n\t\"Kcommaaccent\\u0000oslash\": -40,\n\t\"Kcommaaccent\\u0000otilde\": -40,\n\t\"Kcommaaccent\\u0000u\": -40,\n\t\"Kcommaaccent\\u0000uacute\": -40,\n\t\"Kcommaaccent\\u0000ucircumflex\": -40,\n\t\"Kcommaaccent\\u0000udieresis\": -40,\n\t\"Kcommaaccent\\u0000ugrave\": -40,\n\t\"Kcommaaccent\\u0000uhungarumlaut\": -40,\n\t\"Kcommaaccent\\u0000umacron\": -40,\n\t\"Kcommaaccent\\u0000uogonek\": -40,\n\t\"Kcommaaccent\\u0000uring\": -40,\n\t\"Kcommaaccent\\u0000y\": -40,\n\t\"Kcommaaccent\\u0000yacute\": -40,\n\t\"Kcommaaccent\\u0000ydieresis\": -40,\n\t\"L\\u0000T\": -20,\n\t\"L\\u0000Tcaron\": -20,\n\t\"L\\u0000Tcommaaccent\": -20,\n\t\"L\\u0000V\": -55,\n\t\"L\\u0000W\": -55,\n\t\"L\\u0000Y\": -20,\n\t\"L\\u0000Yacute\": -20,\n\t\"L\\u0000Ydieresis\": -20,\n\t\"L\\u0000quoteright\": -37,\n\t\"L\\u0000y\": -30,\n\t\"L\\u0000yacute\": -30,\n\t\"L\\u0000ydieresis\": -30,\n\t\"Lacute\\u0000T\": -20,\n\t\"Lacute\\u0000Tcaron\": -20,\n\t\"Lacute\\u0000Tcommaaccent\": -20,\n\t\"Lacute\\u0000V\": -55,\n\t\"Lacute\\u0000W\": -55,\n\t\"Lacute\\u0000Y\": -20,\n\t\"Lacute\\u0000Yacute\": -20,\n\t\"Lacute\\u0000Ydieresis\": -20,\n\t\"Lacute\\u0000quoteright\": -37,\n\t\"Lacute\\u0000y\": -30,\n\t\"Lacute\\u0000yacute\": -30,\n\t\"Lacute\\u0000ydieresis\": -30,\n\t\"Lcommaaccent\\u0000T\": -20,\n\t\"Lcommaaccent\\u0000Tcaron\": -20,\n\t\"Lcommaaccent\\u0000Tcommaaccent\": -20,\n\t\"Lcommaaccent\\u0000V\": -55,\n\t\"Lcommaaccent\\u0000W\": -55,\n\t\"Lcommaaccent\\u0000Y\": -20,\n\t\"Lcommaaccent\\u0000Yacute\": -20,\n\t\"Lcommaaccent\\u0000Ydieresis\": -20,\n\t\"Lcommaaccent\\u0000quoteright\": -37,\n\t\"Lcommaaccent\\u0000y\": -30,\n\t\"Lcommaaccent\\u0000yacute\": -30,\n\t\"Lcommaaccent\\u0000ydieresis\": -30,\n\t\"Lslash\\u0000T\": -20,\n\t\"Lslash\\u0000Tcaron\": -20,\n\t\"Lslash\\u0000Tcommaaccent\": -20,\n\t\"Lslash\\u0000V\": -55,\n\t\"Lslash\\u0000W\": -55,\n\t\"Lslash\\u0000Y\": -20,\n\t\"Lslash\\u0000Yacute\": -20,\n\t\"Lslash\\u0000Ydieresis\": -20,\n\t\"Lslash\\u0000quoteright\": -37,\n\t\"Lslash\\u0000y\": -30,\n\t\"Lslash\\u0000yacute\": -30,\n\t\"Lslash\\u0000ydieresis\": -30,\n\t\"N\\u0000A\": -27,\n\t\"N\\u0000Aacute\": -27,\n\t\"N\\u0000Abreve\": -27,\n\t\"N\\u0000Acircumflex\": -27,\n\t\"N\\u0000Adieresis\": -27,\n\t\"N\\u0000Agrave\": -27,\n\t\"N\\u0000Amacron\": -27,\n\t\"N\\u0000Aogonek\": -27,\n\t\"N\\u0000Aring\": -27,\n\t\"N\\u0000Atilde\": -27,\n\t\"Nacute\\u0000A\": -27,\n\t\"Nacute\\u0000Aacute\": -27,\n\t\"Nacute\\u0000Abreve\": -27,\n\t\"Nacute\\u0000Acircumflex\": -27,\n\t\"Nacute\\u0000Adieresis\": -27,\n\t\"Nacute\\u0000Agrave\": -27,\n\t\"Nacute\\u0000Amacron\": -27,\n\t\"Nacute\\u0000Aogonek\": -27,\n\t\"Nacute\\u0000Aring\": -27,\n\t\"Nacute\\u0000Atilde\": -27,\n\t\"Ncaron\\u0000A\": -27,\n\t\"Ncaron\\u0000Aacute\": -27,\n\t\"Ncaron\\u0000Abreve\": -27,\n\t\"Ncaron\\u0000Acircumflex\": -27,\n\t\"Ncaron\\u0000Adieresis\": -27,\n\t\"Ncaron\\u0000Agrave\": -27,\n\t\"Ncaron\\u0000Amacron\": -27,\n\t\"Ncaron\\u0000Aogonek\": -27,\n\t\"Ncaron\\u0000Aring\": -27,\n\t\"Ncaron\\u0000Atilde\": -27,\n\t\"Ncommaaccent\\u0000A\": -27,\n\t\"Ncommaaccent\\u0000Aacute\": -27,\n\t\"Ncommaaccent\\u0000Abreve\": -27,\n\t\"Ncommaaccent\\u0000Acircumflex\": -27,\n\t\"Ncommaaccent\\u0000Adieresis\": -27,\n\t\"Ncommaaccent\\u0000Agrave\": -27,\n\t\"Ncommaaccent\\u0000Amacron\": -27,\n\t\"Ncommaaccent\\u0000Aogonek\": -27,\n\t\"Ncommaaccent\\u0000Aring\": -27,\n\t\"Ncommaaccent\\u0000Atilde\": -27,\n\t\"Ntilde\\u0000A\": -27,\n\t\"Ntilde\\u0000Aacute\": -27,\n\t\"Ntilde\\u0000Abreve\": -27,\n\t\"Ntilde\\u0000Acircumflex\": -27,\n\t\"Ntilde\\u0000Adieresis\": -27,\n\t\"Ntilde\\u0000Agrave\": -27,\n\t\"Ntilde\\u0000Amacron\": -27,\n\t\"Ntilde\\u0000Aogonek\": -27,\n\t\"Ntilde\\u0000Aring\": -27,\n\t\"Ntilde\\u0000Atilde\": -27,\n\t\"O\\u0000A\": -55,\n\t\"O\\u0000Aacute\": -55,\n\t\"O\\u0000Abreve\": -55,\n\t\"O\\u0000Acircumflex\": -55,\n\t\"O\\u0000Adieresis\": -55,\n\t\"O\\u0000Agrave\": -55,\n\t\"O\\u0000Amacron\": -55,\n\t\"O\\u0000Aogonek\": -55,\n\t\"O\\u0000Aring\": -55,\n\t\"O\\u0000Atilde\": -55,\n\t\"O\\u0000T\": -40,\n\t\"O\\u0000Tcaron\": -40,\n\t\"O\\u0000Tcommaaccent\": -40,\n\t\"O\\u0000V\": -50,\n\t\"O\\u0000W\": -50,\n\t\"O\\u0000X\": -40,\n\t\"O\\u0000Y\": -50,\n\t\"O\\u0000Yacute\": -50,\n\t\"O\\u0000Ydieresis\": -50,\n\t\"Oacute\\u0000A\": -55,\n\t\"Oacute\\u0000Aacute\": -55,\n\t\"Oacute\\u0000Abreve\": -55,\n\t\"Oacute\\u0000Acircumflex\": -55,\n\t\"Oacute\\u0000Adieresis\": -55,\n\t\"Oacute\\u0000Agrave\": -55,\n\t\"Oacute\\u0000Amacron\": -55,\n\t\"Oacute\\u0000Aogonek\": -55,\n\t\"Oacute\\u0000Aring\": -55,\n\t\"Oacute\\u0000Atilde\": -55,\n\t\"Oacute\\u0000T\": -40,\n\t\"Oacute\\u0000Tcaron\": -40,\n\t\"Oacute\\u0000Tcommaaccent\": -40,\n\t\"Oacute\\u0000V\": -50,\n\t\"Oacute\\u0000W\": -50,\n\t\"Oacute\\u0000X\": -40,\n\t\"Oacute\\u0000Y\": -50,\n\t\"Oacute\\u0000Yacute\": -50,\n\t\"Oacute\\u0000Ydieresis\": -50,\n\t\"Ocircumflex\\u0000A\": -55,\n\t\"Ocircumflex\\u0000Aacute\": -55,\n\t\"Ocircumflex\\u0000Abreve\": -55,\n\t\"Ocircumflex\\u0000Acircumflex\": -55,\n\t\"Ocircumflex\\u0000Adieresis\": -55,\n\t\"Ocircumflex\\u0000Agrave\": -55,\n\t\"Ocircumflex\\u0000Amacron\": -55,\n\t\"Ocircumflex\\u0000Aogonek\": -55,\n\t\"Ocircumflex\\u0000Aring\": -55,\n\t\"Ocircumflex\\u0000Atilde\": -55,\n\t\"Ocircumflex\\u0000T\": -40,\n\t\"Ocircumflex\\u0000Tcaron\": -40,\n\t\"Ocircumflex\\u0000Tcommaaccent\": -40,\n\t\"Ocircumflex\\u0000V\": -50,\n\t\"Ocircumflex\\u0000W\": -50,\n\t\"Ocircumflex\\u0000X\": -40,\n\t\"Ocircumflex\\u0000Y\": -50,\n\t\"Ocircumflex\\u0000Yacute\": -50,\n\t\"Ocircumflex\\u0000Ydieresis\": -50,\n\t\"Odieresis\\u0000A\": -55,\n\t\"Odieresis\\u0000Aacute\": -55,\n\t\"Odieresis\\u0000Abreve\": -55,\n\t\"Odieresis\\u0000Acircumflex\": -55,\n\t\"Odieresis\\u0000Adieresis\": -55,\n\t\"Odieresis\\u0000Agrave\": -55,\n\t\"Odieresis\\u0000Amacron\": -55,\n\t\"Odieresis\\u0000Aogonek\": -55,\n\t\"Odieresis\\u0000Aring\": -55,\n\t\"Odieresis\\u0000Atilde\": -55,\n\t\"Odieresis\\u0000T\": -40,\n\t\"Odieresis\\u0000Tcaron\": -40,\n\t\"Odieresis\\u0000Tcommaaccent\": -40,\n\t\"Odieresis\\u0000V\": -50,\n\t\"Odieresis\\u0000W\": -50,\n\t\"Odieresis\\u0000X\": -40,\n\t\"Odieresis\\u0000Y\": -50,\n\t\"Odieresis\\u0000Yacute\": -50,\n\t\"Odieresis\\u0000Ydieresis\": -50,\n\t\"Ograve\\u0000A\": -55,\n\t\"Ograve\\u0000Aacute\": -55,\n\t\"Ograve\\u0000Abreve\": -55,\n\t\"Ograve\\u0000Acircumflex\": -55,\n\t\"Ograve\\u0000Adieresis\": -55,\n\t\"Ograve\\u0000Agrave\": -55,\n\t\"Ograve\\u0000Amacron\": -55,\n\t\"Ograve\\u0000Aogonek\": -55,\n\t\"Ograve\\u0000Aring\": -55,\n\t\"Ograve\\u0000Atilde\": -55,\n\t\"Ograve\\u0000T\": -40,\n\t\"Ograve\\u0000Tcaron\": -40,\n\t\"Ograve\\u0000Tcommaaccent\": -40,\n\t\"Ograve\\u0000V\": -50,\n\t\"Ograve\\u0000W\": -50,\n\t\"Ograve\\u0000X\": -40,\n\t\"Ograve\\u0000Y\": -50,\n\t\"Ograve\\u0000Yacute\": -50,\n\t\"Ograve\\u0000Ydieresis\": -50,\n\t\"Ohungarumlaut\\u0000A\": -55,\n\t\"Ohungarumlaut\\u0000Aacute\": -55,\n\t\"Ohungarumlaut\\u0000Abreve\": -55,\n\t\"Ohungarumlaut\\u0000Acircumflex\": -55,\n\t\"Ohungarumlaut\\u0000Adieresis\": -55,\n\t\"Ohungarumlaut\\u0000Agrave\": -55,\n\t\"Ohungarumlaut\\u0000Amacron\": -55,\n\t\"Ohungarumlaut\\u0000Aogonek\": -55,\n\t\"Ohungarumlaut\\u0000Aring\": -55,\n\t\"Ohungarumlaut\\u0000Atilde\": -55,\n\t\"Ohungarumlaut\\u0000T\": -40,\n\t\"Ohungarumlaut\\u0000Tcaron\": -40,\n\t\"Ohungarumlaut\\u0000Tcommaaccent\": -40,\n\t\"Ohungarumlaut\\u0000V\": -50,\n\t\"Ohungarumlaut\\u0000W\": -50,\n\t\"Ohungarumlaut\\u0000X\": -40,\n\t\"Ohungarumlaut\\u0000Y\": -50,\n\t\"Ohungarumlaut\\u0000Yacute\": -50,\n\t\"Ohungarumlaut\\u0000Ydieresis\": -50,\n\t\"Omacron\\u0000A\": -55,\n\t\"Omacron\\u0000Aacute\": -55,\n\t\"Omacron\\u0000Abreve\": -55,\n\t\"Omacron\\u0000Acircumflex\": -55,\n\t\"Omacron\\u0000Adieresis\": -55,\n\t\"Omacron\\u0000Agrave\": -55,\n\t\"Omacron\\u0000Amacron\": -55,\n\t\"Omacron\\u0000Aogonek\": -55,\n\t\"Omacron\\u0000Aring\": -55,\n\t\"Omacron\\u0000Atilde\": -55,\n\t\"Omacron\\u0000T\": -40,\n\t\"Omacron\\u0000Tcaron\": -40,\n\t\"Omacron\\u0000Tcommaaccent\": -40,\n\t\"Omacron\\u0000V\": -50,\n\t\"Omacron\\u0000W\": -50,\n\t\"Omacron\\u0000X\": -40,\n\t\"Omacron\\u0000Y\": -50,\n\t\"Omacron\\u0000Yacute\": -50,\n\t\"Omacron\\u0000Ydieresis\": -50,\n\t\"Oslash\\u0000A\": -55,\n\t\"Oslash\\u0000Aacute\": -55,\n\t\"Oslash\\u0000Abreve\": -55,\n\t\"Oslash\\u0000Acircumflex\": -55,\n\t\"Oslash\\u0000Adieresis\": -55,\n\t\"Oslash\\u0000Agrave\": -55,\n\t\"Oslash\\u0000Amacron\": -55,\n\t\"Oslash\\u0000Aogonek\": -55,\n\t\"Oslash\\u0000Aring\": -55,\n\t\"Oslash\\u0000Atilde\": -55,\n\t\"Oslash\\u0000T\": -40,\n\t\"Oslash\\u0000Tcaron\": -40,\n\t\"Oslash\\u0000Tcommaaccent\": -40,\n\t\"Oslash\\u0000V\": -50,\n\t\"Oslash\\u0000W\": -50,\n\t\"Oslash\\u0000X\": -40,\n\t\"Oslash\\u0000Y\": -50,\n\t\"Oslash\\u0000Yacute\": -50,\n\t\"Oslash\\u0000Ydieresis\": -50,\n\t\"Otilde\\u0000A\": -55,\n\t\"Otilde\\u0000Aacute\": -55,\n\t\"Otilde\\u0000Abreve\": -55,\n\t\"Otilde\\u0000Acircumflex\": -55,\n\t\"Otilde\\u0000Adieresis\": -55,\n\t\"Otilde\\u0000Agrave\": -55,\n\t\"Otilde\\u0000Amacron\": -55,\n\t\"Otilde\\u0000Aogonek\": -55,\n\t\"Otilde\\u0000Aring\": -55,\n\t\"Otilde\\u0000Atilde\": -55,\n\t\"Otilde\\u0000T\": -40,\n\t\"Otilde\\u0000Tcaron\": -40,\n\t\"Otilde\\u0000Tcommaaccent\": -40,\n\t\"Otilde\\u0000V\": -50,\n\t\"Otilde\\u0000W\": -50,\n\t\"Otilde\\u0000X\": -40,\n\t\"Otilde\\u0000Y\": -50,\n\t\"Otilde\\u0000Yacute\": -50,\n\t\"Otilde\\u0000Ydieresis\": -50,\n\t\"P\\u0000A\": -90,\n\t\"P\\u0000Aacute\": -90,\n\t\"P\\u0000Abreve\": -90,\n\t\"P\\u0000Acircumflex\": -90,\n\t\"P\\u0000Adieresis\": -90,\n\t\"P\\u0000Agrave\": -90,\n\t\"P\\u0000Amacron\": -90,\n\t\"P\\u0000Aogonek\": -90,\n\t\"P\\u0000Aring\": -90,\n\t\"P\\u0000Atilde\": -90,\n\t\"P\\u0000a\": -80,\n\t\"P\\u0000aacute\": -80,\n\t\"P\\u0000abreve\": -80,\n\t\"P\\u0000acircumflex\": -80,\n\t\"P\\u0000adieresis\": -80,\n\t\"P\\u0000agrave\": -80,\n\t\"P\\u0000amacron\": -80,\n\t\"P\\u0000aogonek\": -80,\n\t\"P\\u0000aring\": -80,\n\t\"P\\u0000atilde\": -80,\n\t\"P\\u0000comma\": -135,\n\t\"P\\u0000e\": -80,\n\t\"P\\u0000eacute\": -80,\n\t\"P\\u0000ecaron\": -80,\n\t\"P\\u0000ecircumflex\": -80,\n\t\"P\\u0000edieresis\": -80,\n\t\"P\\u0000edotaccent\": -80,\n\t\"P\\u0000egrave\": -80,\n\t\"P\\u0000emacron\": -80,\n\t\"P\\u0000eogonek\": -80,\n\t\"P\\u0000o\": -80,\n\t\"P\\u0000oacute\": -80,\n\t\"P\\u0000ocircumflex\": -80,\n\t\"P\\u0000odieresis\": -80,\n\t\"P\\u0000ograve\": -80,\n\t\"P\\u0000ohungarumlaut\": -80,\n\t\"P\\u0000omacron\": -80,\n\t\"P\\u0000oslash\": -80,\n\t\"P\\u0000otilde\": -80,\n\t\"P\\u0000period\": -135,\n\t\"Q\\u0000U\": -10,\n\t\"Q\\u0000Uacute\": -10,\n\t\"Q\\u0000Ucircumflex\": -10,\n\t\"Q\\u0000Udieresis\": -10,\n\t\"Q\\u0000Ugrave\": -10,\n\t\"Q\\u0000Uhungarumlaut\": -10,\n\t\"Q\\u0000Umacron\": -10,\n\t\"Q\\u0000Uogonek\": -10,\n\t\"Q\\u0000Uring\": -10,\n\t\"R\\u0000O\": -40,\n\t\"R\\u0000Oacute\": -40,\n\t\"R\\u0000Ocircumflex\": -40,\n\t\"R\\u0000Odieresis\": -40,\n\t\"R\\u0000Ograve\": -40,\n\t\"R\\u0000Ohungarumlaut\": -40,\n\t\"R\\u0000Omacron\": -40,\n\t\"R\\u0000Oslash\": -40,\n\t\"R\\u0000Otilde\": -40,\n\t\"R\\u0000U\": -40,\n\t\"R\\u0000Uacute\": -40,\n\t\"R\\u0000Ucircumflex\": -40,\n\t\"R\\u0000Udieresis\": -40,\n\t\"R\\u0000Ugrave\": -40,\n\t\"R\\u0000Uhungarumlaut\": -40,\n\t\"R\\u0000Umacron\": -40,\n\t\"R\\u0000Uogonek\": -40,\n\t\"R\\u0000Uring\": -40,\n\t\"R\\u0000V\": -18,\n\t\"R\\u0000W\": -18,\n\t\"R\\u0000Y\": -18,\n\t\"R\\u0000Yacute\": -18,\n\t\"R\\u0000Ydieresis\": -18,\n\t\"Racute\\u0000O\": -40,\n\t\"Racute\\u0000Oacute\": -40,\n\t\"Racute\\u0000Ocircumflex\": -40,\n\t\"Racute\\u0000Odieresis\": -40,\n\t\"Racute\\u0000Ograve\": -40,\n\t\"Racute\\u0000Ohungarumlaut\": -40,\n\t\"Racute\\u0000Omacron\": -40,\n\t\"Racute\\u0000Oslash\": -40,\n\t\"Racute\\u0000Otilde\": -40,\n\t\"Racute\\u0000U\": -40,\n\t\"Racute\\u0000Uacute\": -40,\n\t\"Racute\\u0000Ucircumflex\": -40,\n\t\"Racute\\u0000Udieresis\": -40,\n\t\"Racute\\u0000Ugrave\": -40,\n\t\"Racute\\u0000Uhungarumlaut\": -40,\n\t\"Racute\\u0000Umacron\": -40,\n\t\"Racute\\u0000Uogonek\": -40,\n\t\"Racute\\u0000Uring\": -40,\n\t\"Racute\\u0000V\": -18,\n\t\"Racute\\u0000W\": -18,\n\t\"Racute\\u0000Y\": -18,\n\t\"Racute\\u0000Yacute\": -18,\n\t\"Racute\\u0000Ydieresis\": -18,\n\t\"Rcaron\\u0000O\": -40,\n\t\"Rcaron\\u0000Oacute\": -40,\n\t\"Rcaron\\u0000Ocircumflex\": -40,\n\t\"Rcaron\\u0000Odieresis\": -40,\n\t\"Rcaron\\u0000Ograve\": -40,\n\t\"Rcaron\\u0000Ohungarumlaut\": -40,\n\t\"Rcaron\\u0000Omacron\": -40,\n\t\"Rcaron\\u0000Oslash\": -40,\n\t\"Rcaron\\u0000Otilde\": -40,\n\t\"Rcaron\\u0000U\": -40,\n\t\"Rcaron\\u0000Uacute\": -40,\n\t\"Rcaron\\u0000Ucircumflex\": -40,\n\t\"Rcaron\\u0000Udieresis\": -40,\n\t\"Rcaron\\u0000Ugrave\": -40,\n\t\"Rcaron\\u0000Uhungarumlaut\": -40,\n\t\"Rcaron\\u0000Umacron\": -40,\n\t\"Rcaron\\u0000Uogonek\": -40,\n\t\"Rcaron\\u0000Uring\": -40,\n\t\"Rcaron\\u0000V\": -18,\n\t\"Rcaron\\u0000W\": -18,\n\t\"Rcaron\\u0000Y\": -18,\n\t\"Rcaron\\u0000Yacute\": -18,\n\t\"Rcaron\\u0000Ydieresis\": -18,\n\t\"Rcommaaccent\\u0000O\": -40,\n\t\"Rcommaaccent\\u0000Oacute\": -40,\n\t\"Rcommaaccent\\u0000Ocircumflex\": -40,\n\t\"Rcommaaccent\\u0000Odieresis\": -40,\n\t\"Rcommaaccent\\u0000Ograve\": -40,\n\t\"Rcommaaccent\\u0000Ohungarumlaut\": -40,\n\t\"Rcommaaccent\\u0000Omacron\": -40,\n\t\"Rcommaaccent\\u0000Oslash\": -40,\n\t\"Rcommaaccent\\u0000Otilde\": -40,\n\t\"Rcommaaccent\\u0000U\": -40,\n\t\"Rcommaaccent\\u0000Uacute\": -40,\n\t\"Rcommaaccent\\u0000Ucircumflex\": -40,\n\t\"Rcommaaccent\\u0000Udieresis\": -40,\n\t\"Rcommaaccent\\u0000Ugrave\": -40,\n\t\"Rcommaaccent\\u0000Uhungarumlaut\": -40,\n\t\"Rcommaaccent\\u0000Umacron\": -40,\n\t\"Rcommaaccent\\u0000Uogonek\": -40,\n\t\"Rcommaaccent\\u0000Uring\": -40,\n\t\"Rcommaaccent\\u0000V\": -18,\n\t\"Rcommaaccent\\u0000W\": -18,\n\t\"Rcommaaccent\\u0000Y\": -18,\n\t\"Rcommaaccent\\u0000Yacute\": -18,\n\t\"Rcommaaccent\\u0000Ydieresis\": -18,\n\t\"T\\u0000A\": -50,\n\t\"T\\u0000Aacute\": -50,\n\t\"T\\u0000Abreve\": -50,\n\t\"T\\u0000Acircumflex\": -50,\n\t\"T\\u0000Adieresis\": -50,\n\t\"T\\u0000Agrave\": -50,\n\t\"T\\u0000Amacron\": -50,\n\t\"T\\u0000Aogonek\": -50,\n\t\"T\\u0000Aring\": -50,\n\t\"T\\u0000Atilde\": -50,\n\t\"T\\u0000O\": -18,\n\t\"T\\u0000Oacute\": -18,\n\t\"T\\u0000Ocircumflex\": -18,\n\t\"T\\u0000Odieresis\": -18,\n\t\"T\\u0000Ograve\": -18,\n\t\"T\\u0000Ohungarumlaut\": -18,\n\t\"T\\u0000Omacron\": -18,\n\t\"T\\u0000Oslash\": -18,\n\t\"T\\u0000Otilde\": -18,\n\t\"T\\u0000a\": -92,\n\t\"T\\u0000aacute\": -92,\n\t\"T\\u0000abreve\": -92,\n\t\"T\\u0000acircumflex\": -92,\n\t\"T\\u0000adieresis\": -92,\n\t\"T\\u0000agrave\": -92,\n\t\"T\\u0000amacron\": -92,\n\t\"T\\u0000aogonek\": -92,\n\t\"T\\u0000aring\": -92,\n\t\"T\\u0000atilde\": -92,\n\t\"T\\u0000colon\": -55,\n\t\"T\\u0000comma\": -74,\n\t\"T\\u0000e\": -92,\n\t\"T\\u0000eacute\": -92,\n\t\"T\\u0000ecaron\": -92,\n\t\"T\\u0000ecircumflex\": -52,\n\t\"T\\u0000edieresis\": -52,\n\t\"T\\u0000edotaccent\": -92,\n\t\"T\\u0000egrave\": -52,\n\t\"T\\u0000emacron\": -52,\n\t\"T\\u0000eogonek\": -92,\n\t\"T\\u0000hyphen\": -74,\n\t\"T\\u0000i\": -55,\n\t\"T\\u0000iacute\": -55,\n\t\"T\\u0000iogonek\": -55,\n\t\"T\\u0000o\": -92,\n\t\"T\\u0000oacute\": -92,\n\t\"T\\u0000ocircumflex\": -92,\n\t\"T\\u0000odieresis\": -92,\n\t\"T\\u0000ograve\": -92,\n\t\"T\\u0000ohungarumlaut\": -92,\n\t\"T\\u0000omacron\": -92,\n\t\"T\\u0000oslash\": -92,\n\t\"T\\u0000otilde\": -92,\n\t\"T\\u0000period\": -74,\n\t\"T\\u0000r\": -55,\n\t\"T\\u0000racute\": -55,\n\t\"T\\u0000rcaron\": -55,\n\t\"T\\u0000rcommaaccent\": -55,\n\t\"T\\u0000semicolon\": -65,\n\t\"T\\u0000u\": -55,\n\t\"T\\u0000uacute\": -55,\n\t\"T\\u0000ucircumflex\": -55,\n\t\"T\\u0000udieresis\": -55,\n\t\"T\\u0000ugrave\": -55,\n\t\"T\\u0000uhungarumlaut\": -55,\n\t\"T\\u0000umacron\": -55,\n\t\"T\\u0000uogonek\": -55,\n\t\"T\\u0000uring\": -55,\n\t\"T\\u0000w\": -74,\n\t\"T\\u0000y\": -74,\n\t\"T\\u0000yacute\": -74,\n\t\"T\\u0000ydieresis\": -34,\n\t\"Tcaron\\u0000A\": -50,\n\t\"Tcaron\\u0000Aacute\": -50,\n\t\"Tcaron\\u0000Abreve\": -50,\n\t\"Tcaron\\u0000Acircumflex\": -50,\n\t\"Tcaron\\u0000Adieresis\": -50,\n\t\"Tcaron\\u0000Agrave\": -50,\n\t\"Tcaron\\u0000Amacron\": -50,\n\t\"Tcaron\\u0000Aogonek\": -50,\n\t\"Tcaron\\u0000Aring\": -50,\n\t\"Tcaron\\u0000Atilde\": -50,\n\t\"Tcaron\\u0000O\": -18,\n\t\"Tcaron\\u0000Oacute\": -18,\n\t\"Tcaron\\u0000Ocircumflex\": -18,\n\t\"Tcaron\\u0000Odieresis\": -18,\n\t\"Tcaron\\u0000Ograve\": -18,\n\t\"Tcaron\\u0000Ohungarumlaut\": -18,\n\t\"Tcaron\\u0000Omacron\": -18,\n\t\"Tcaron\\u0000Oslash\": -18,\n\t\"Tcaron\\u0000Otilde\": -18,\n\t\"Tcaron\\u0000a\": -92,\n\t\"Tcaron\\u0000aacute\": -92,\n\t\"Tcaron\\u0000abreve\": -92,\n\t\"Tcaron\\u0000acircumflex\": -92,\n\t\"Tcaron\\u0000adieresis\": -92,\n\t\"Tcaron\\u0000agrave\": -92,\n\t\"Tcaron\\u0000amacron\": -92,\n\t\"Tcaron\\u0000aogonek\": -92,\n\t\"Tcaron\\u0000aring\": -92,\n\t\"Tcaron\\u0000atilde\": -92,\n\t\"Tcaron\\u0000colon\": -55,\n\t\"Tcaron\\u0000comma\": -74,\n\t\"Tcaron\\u0000e\": -92,\n\t\"Tcaron\\u0000eacute\": -92,\n\t\"Tcaron\\u0000ecaron\": -92,\n\t\"Tcaron\\u0000ecircumflex\": -52,\n\t\"Tcaron\\u0000edieresis\": -52,\n\t\"Tcaron\\u0000edotaccent\": -92,\n\t\"Tcaron\\u0000egrave\": -52,\n\t\"Tcaron\\u0000emacron\": -52,\n\t\"Tcaron\\u0000eogonek\": -92,\n\t\"Tcaron\\u0000hyphen\": -74,\n\t\"Tcaron\\u0000i\": -55,\n\t\"Tcaron\\u0000iacute\": -55,\n\t\"Tcaron\\u0000iogonek\": -55,\n\t\"Tcaron\\u0000o\": -92,\n\t\"Tcaron\\u0000oacute\": -92,\n\t\"Tcaron\\u0000ocircumflex\": -92,\n\t\"Tcaron\\u0000odieresis\": -92,\n\t\"Tcaron\\u0000ograve\": -92,\n\t\"Tcaron\\u0000ohungarumlaut\": -92,\n\t\"Tcaron\\u0000omacron\": -92,\n\t\"Tcaron\\u0000oslash\": -92,\n\t\"Tcaron\\u0000otilde\": -92,\n\t\"Tcaron\\u0000period\": -74,\n\t\"Tcaron\\u0000r\": -55,\n\t\"Tcaron\\u0000racute\": -55,\n\t\"Tcaron\\u0000rcaron\": -55,\n\t\"Tcaron\\u0000rcommaaccent\": -55,\n\t\"Tcaron\\u0000semicolon\": -65,\n\t\"Tcaron\\u0000u\": -55,\n\t\"Tcaron\\u0000uacute\": -55,\n\t\"Tcaron\\u0000ucircumflex\": -55,\n\t\"Tcaron\\u0000udieresis\": -55,\n\t\"Tcaron\\u0000ugrave\": -55,\n\t\"Tcaron\\u0000uhungarumlaut\": -55,\n\t\"Tcaron\\u0000umacron\": -55,\n\t\"Tcaron\\u0000uogonek\": -55,\n\t\"Tcaron\\u0000uring\": -55,\n\t\"Tcaron\\u0000w\": -74,\n\t\"Tcaron\\u0000y\": -74,\n\t\"Tcaron\\u0000yacute\": -74,\n\t\"Tcaron\\u0000ydieresis\": -34,\n\t\"Tcommaaccent\\u0000A\": -50,\n\t\"Tcommaaccent\\u0000Aacute\": -50,\n\t\"Tcommaaccent\\u0000Abreve\": -50,\n\t\"Tcommaaccent\\u0000Acircumflex\": -50,\n\t\"Tcommaaccent\\u0000Adieresis\": -50,\n\t\"Tcommaaccent\\u0000Agrave\": -50,\n\t\"Tcommaaccent\\u0000Amacron\": -50,\n\t\"Tcommaaccent\\u0000Aogonek\": -50,\n\t\"Tcommaaccent\\u0000Aring\": -50,\n\t\"Tcommaaccent\\u0000Atilde\": -50,\n\t\"Tcommaaccent\\u0000O\": -18,\n\t\"Tcommaaccent\\u0000Oacute\": -18,\n\t\"Tcommaaccent\\u0000Ocircumflex\": -18,\n\t\"Tcommaaccent\\u0000Odieresis\": -18,\n\t\"Tcommaaccent\\u0000Ograve\": -18,\n\t\"Tcommaaccent\\u0000Ohungarumlaut\": -18,\n\t\"Tcommaaccent\\u0000Omacron\": -18,\n\t\"Tcommaaccent\\u0000Oslash\": -18,\n\t\"Tcommaaccent\\u0000Otilde\": -18,\n\t\"Tcommaaccent\\u0000a\": -92,\n\t\"Tcommaaccent\\u0000aacute\": -92,\n\t\"Tcommaaccent\\u0000abreve\": -92,\n\t\"Tcommaaccent\\u0000acircumflex\": -92,\n\t\"Tcommaaccent\\u0000adieresis\": -92,\n\t\"Tcommaaccent\\u0000agrave\": -92,\n\t\"Tcommaaccent\\u0000amacron\": -92,\n\t\"Tcommaaccent\\u0000aogonek\": -92,\n\t\"Tcommaaccent\\u0000aring\": -92,\n\t\"Tcommaaccent\\u0000atilde\": -92,\n\t\"Tcommaaccent\\u0000colon\": -55,\n\t\"Tcommaaccent\\u0000comma\": -74,\n\t\"Tcommaaccent\\u0000e\": -92,\n\t\"Tcommaaccent\\u0000eacute\": -92,\n\t\"Tcommaaccent\\u0000ecaron\": -92,\n\t\"Tcommaaccent\\u0000ecircumflex\": -52,\n\t\"Tcommaaccent\\u0000edieresis\": -52,\n\t\"Tcommaaccent\\u0000edotaccent\": -92,\n\t\"Tcommaaccent\\u0000egrave\": -52,\n\t\"Tcommaaccent\\u0000emacron\": -52,\n\t\"Tcommaaccent\\u0000eogonek\": -92,\n\t\"Tcommaaccent\\u0000hyphen\": -74,\n\t\"Tcommaaccent\\u0000i\": -55,\n\t\"Tcommaaccent\\u0000iacute\": -55,\n\t\"Tcommaaccent\\u0000iogonek\": -55,\n\t\"Tcommaaccent\\u0000o\": -92,\n\t\"Tcommaaccent\\u0000oacute\": -92,\n\t\"Tcommaaccent\\u0000ocircumflex\": -92,\n\t\"Tcommaaccent\\u0000odieresis\": -92,\n\t\"Tcommaaccent\\u0000ograve\": -92,\n\t\"Tcommaaccent\\u0000ohungarumlaut\": -92,\n\t\"Tcommaaccent\\u0000omacron\": -92,\n\t\"Tcommaaccent\\u0000oslash\": -92,\n\t\"Tcommaaccent\\u0000otilde\": -92,\n\t\"Tcommaaccent\\u0000period\": -74,\n\t\"Tcommaaccent\\u0000r\": -55,\n\t\"Tcommaaccent\\u0000racute\": -55,\n\t\"Tcommaaccent\\u0000rcaron\": -55,\n\t\"Tcommaaccent\\u0000rcommaaccent\": -55,\n\t\"Tcommaaccent\\u0000semicolon\": -65,\n\t\"Tcommaaccent\\u0000u\": -55,\n\t\"Tcommaaccent\\u0000uacute\": -55,\n\t\"Tcommaaccent\\u0000ucircumflex\": -55,\n\t\"Tcommaaccent\\u0000udieresis\": -55,\n\t\"Tcommaaccent\\u0000ugrave\": -55,\n\t\"Tcommaaccent\\u0000uhungarumlaut\": -55,\n\t\"Tcommaaccent\\u0000umacron\": -55,\n\t\"Tcommaaccent\\u0000uogonek\": -55,\n\t\"Tcommaaccent\\u0000uring\": -55,\n\t\"Tcommaaccent\\u0000w\": -74,\n\t\"Tcommaaccent\\u0000y\": -74,\n\t\"Tcommaaccent\\u0000yacute\": -74,\n\t\"Tcommaaccent\\u0000ydieresis\": -34,\n\t\"U\\u0000A\": -40,\n\t\"U\\u0000Aacute\": -40,\n\t\"U\\u0000Abreve\": -40,\n\t\"U\\u0000Acircumflex\": -40,\n\t\"U\\u0000Adieresis\": -40,\n\t\"U\\u0000Agrave\": -40,\n\t\"U\\u0000Amacron\": -40,\n\t\"U\\u0000Aogonek\": -40,\n\t\"U\\u0000Aring\": -40,\n\t\"U\\u0000Atilde\": -40,\n\t\"U\\u0000comma\": -25,\n\t\"U\\u0000period\": -25,\n\t\"Uacute\\u0000A\": -40,\n\t\"Uacute\\u0000Aacute\": -40,\n\t\"Uacute\\u0000Abreve\": -40,\n\t\"Uacute\\u0000Acircumflex\": -40,\n\t\"Uacute\\u0000Adieresis\": -40,\n\t\"Uacute\\u0000Agrave\": -40,\n\t\"Uacute\\u0000Amacron\": -40,\n\t\"Uacute\\u0000Aogonek\": -40,\n\t\"Uacute\\u0000Aring\": -40,\n\t\"Uacute\\u0000Atilde\": -40,\n\t\"Uacute\\u0000comma\": -25,\n\t\"Uacute\\u0000period\": -25,\n\t\"Ucircumflex\\u0000A\": -40,\n\t\"Ucircumflex\\u0000Aacute\": -40,\n\t\"Ucircumflex\\u0000Abreve\": -40,\n\t\"Ucircumflex\\u0000Acircumflex\": -40,\n\t\"Ucircumflex\\u0000Adieresis\": -40,\n\t\"Ucircumflex\\u0000Agrave\": -40,\n\t\"Ucircumflex\\u0000Amacron\": -40,\n\t\"Ucircumflex\\u0000Aogonek\": -40,\n\t\"Ucircumflex\\u0000Aring\": -40,\n\t\"Ucircumflex\\u0000Atilde\": -40,\n\t\"Ucircumflex\\u0000comma\": -25,\n\t\"Ucircumflex\\u0000period\": -25,\n\t\"Udieresis\\u0000A\": -40,\n\t\"Udieresis\\u0000Aacute\": -40,\n\t\"Udieresis\\u0000Abreve\": -40,\n\t\"Udieresis\\u0000Acircumflex\": -40,\n\t\"Udieresis\\u0000Adieresis\": -40,\n\t\"Udieresis\\u0000Agrave\": -40,\n\t\"Udieresis\\u0000Amacron\": -40,\n\t\"Udieresis\\u0000Aogonek\": -40,\n\t\"Udieresis\\u0000Aring\": -40,\n\t\"Udieresis\\u0000Atilde\": -40,\n\t\"Udieresis\\u0000comma\": -25,\n\t\"Udieresis\\u0000period\": -25,\n\t\"Ugrave\\u0000A\": -40,\n\t\"Ugrave\\u0000Aacute\": -40,\n\t\"Ugrave\\u0000Abreve\": -40,\n\t\"Ugrave\\u0000Acircumflex\": -40,\n\t\"Ugrave\\u0000Adieresis\": -40,\n\t\"Ugrave\\u0000Agrave\": -40,\n\t\"Ugrave\\u0000Amacron\": -40,\n\t\"Ugrave\\u0000Aogonek\": -40,\n\t\"Ugrave\\u0000Aring\": -40,\n\t\"Ugrave\\u0000Atilde\": -40,\n\t\"Ugrave\\u0000comma\": -25,\n\t\"Ugrave\\u0000period\": -25,\n\t\"Uhungarumlaut\\u0000A\": -40,\n\t\"Uhungarumlaut\\u0000Aacute\": -40,\n\t\"Uhungarumlaut\\u0000Abreve\": -40,\n\t\"Uhungarumlaut\\u0000Acircumflex\": -40,\n\t\"Uhungarumlaut\\u0000Adieresis\": -40,\n\t\"Uhungarumlaut\\u0000Agrave\": -40,\n\t\"Uhungarumlaut\\u0000Amacron\": -40,\n\t\"Uhungarumlaut\\u0000Aogonek\": -40,\n\t\"Uhungarumlaut\\u0000Aring\": -40,\n\t\"Uhungarumlaut\\u0000Atilde\": -40,\n\t\"Uhungarumlaut\\u0000comma\": -25,\n\t\"Uhungarumlaut\\u0000period\": -25,\n\t\"Umacron\\u0000A\": -40,\n\t\"Umacron\\u0000Aacute\": -40,\n\t\"Umacron\\u0000Abreve\": -40,\n\t\"Umacron\\u0000Acircumflex\": -40,\n\t\"Umacron\\u0000Adieresis\": -40,\n\t\"Umacron\\u0000Agrave\": -40,\n\t\"Umacron\\u0000Amacron\": -40,\n\t\"Umacron\\u0000Aogonek\": -40,\n\t\"Umacron\\u0000Aring\": -40,\n\t\"Umacron\\u0000Atilde\": -40,\n\t\"Umacron\\u0000comma\": -25,\n\t\"Umacron\\u0000period\": -25,\n\t\"Uogonek\\u0000A\": -40,\n\t\"Uogonek\\u0000Aacute\": -40,\n\t\"Uogonek\\u0000Abreve\": -40,\n\t\"Uogonek\\u0000Acircumflex\": -40,\n\t\"Uogonek\\u0000Adieresis\": -40,\n\t\"Uogonek\\u0000Agrave\": -40,\n\t\"Uogonek\\u0000Amacron\": -40,\n\t\"Uogonek\\u0000Aogonek\": -40,\n\t\"Uogonek\\u0000Aring\": -40,\n\t\"Uogonek\\u0000Atilde\": -40,\n\t\"Uogonek\\u0000comma\": -25,\n\t\"Uogonek\\u0000period\": -25,\n\t\"Uring\\u0000A\": -40,\n\t\"Uring\\u0000Aacute\": -40,\n\t\"Uring\\u0000Abreve\": -40,\n\t\"Uring\\u0000Acircumflex\": -40,\n\t\"Uring\\u0000Adieresis\": -40,\n\t\"Uring\\u0000Agrave\": -40,\n\t\"Uring\\u0000Amacron\": -40,\n\t\"Uring\\u0000Aogonek\": -40,\n\t\"Uring\\u0000Aring\": -40,\n\t\"Uring\\u0000Atilde\": -40,\n\t\"Uring\\u0000comma\": -25,\n\t\"Uring\\u0000period\": -25,\n\t\"V\\u0000A\": -60,\n\t\"V\\u0000Aacute\": -60,\n\t\"V\\u0000Abreve\": -60,\n\t\"V\\u0000Acircumflex\": -60,\n\t\"V\\u0000Adieresis\": -60,\n\t\"V\\u0000Agrave\": -60,\n\t\"V\\u0000Amacron\": -60,\n\t\"V\\u0000Aogonek\": -60,\n\t\"V\\u0000Aring\": -60,\n\t\"V\\u0000Atilde\": -60,\n\t\"V\\u0000O\": -30,\n\t\"V\\u0000Oacute\": -30,\n\t\"V\\u0000Ocircumflex\": -30,\n\t\"V\\u0000Odieresis\": -30,\n\t\"V\\u0000Ograve\": -30,\n\t\"V\\u0000Ohungarumlaut\": -30,\n\t\"V\\u0000Omacron\": -30,\n\t\"V\\u0000Oslash\": -30,\n\t\"V\\u0000Otilde\": -30,\n\t\"V\\u0000a\": -111,\n\t\"V\\u0000aacute\": -111,\n\t\"V\\u0000abreve\": -111,\n\t\"V\\u0000acircumflex\": -111,\n\t\"V\\u0000adieresis\": -111,\n\t\"V\\u0000agrave\": -111,\n\t\"V\\u0000amacron\": -111,\n\t\"V\\u0000aogonek\": -111,\n\t\"V\\u0000aring\": -111,\n\t\"V\\u0000atilde\": -111,\n\t\"V\\u0000colon\": -65,\n\t\"V\\u0000comma\": -129,\n\t\"V\\u0000e\": -111,\n\t\"V\\u0000eacute\": -111,\n\t\"V\\u0000ecaron\": -111,\n\t\"V\\u0000ecircumflex\": -111,\n\t\"V\\u0000edieresis\": -71,\n\t\"V\\u0000edotaccent\": -111,\n\t\"V\\u0000egrave\": -71,\n\t\"V\\u0000emacron\": -71,\n\t\"V\\u0000eogonek\": -111,\n\t\"V\\u0000hyphen\": -55,\n\t\"V\\u0000i\": -74,\n\t\"V\\u0000iacute\": -74,\n\t\"V\\u0000icircumflex\": -34,\n\t\"V\\u0000idieresis\": -34,\n\t\"V\\u0000igrave\": -34,\n\t\"V\\u0000imacron\": -34,\n\t\"V\\u0000iogonek\": -74,\n\t\"V\\u0000o\": -111,\n\t\"V\\u0000oacute\": -111,\n\t\"V\\u0000ocircumflex\": -111,\n\t\"V\\u0000odieresis\": -111,\n\t\"V\\u0000ograve\": -111,\n\t\"V\\u0000ohungarumlaut\": -111,\n\t\"V\\u0000omacron\": -111,\n\t\"V\\u0000oslash\": -111,\n\t\"V\\u0000otilde\": -111,\n\t\"V\\u0000period\": -129,\n\t\"V\\u0000semicolon\": -74,\n\t\"V\\u0000u\": -74,\n\t\"V\\u0000uacute\": -74,\n\t\"V\\u0000ucircumflex\": -74,\n\t\"V\\u0000udieresis\": -74,\n\t\"V\\u0000ugrave\": -74,\n\t\"V\\u0000uhungarumlaut\": -74,\n\t\"V\\u0000umacron\": -74,\n\t\"V\\u0000uogonek\": -74,\n\t\"V\\u0000uring\": -74,\n\t\"W\\u0000A\": -60,\n\t\"W\\u0000Aacute\": -60,\n\t\"W\\u0000Abreve\": -60,\n\t\"W\\u0000Acircumflex\": -60,\n\t\"W\\u0000Adieresis\": -60,\n\t\"W\\u0000Agrave\": -60,\n\t\"W\\u0000Amacron\": -60,\n\t\"W\\u0000Aogonek\": -60,\n\t\"W\\u0000Aring\": -60,\n\t\"W\\u0000Atilde\": -60,\n\t\"W\\u0000O\": -25,\n\t\"W\\u0000Oacute\": -25,\n\t\"W\\u0000Ocircumflex\": -25,\n\t\"W\\u0000Odieresis\": -25,\n\t\"W\\u0000Ograve\": -25,\n\t\"W\\u0000Ohungarumlaut\": -25,\n\t\"W\\u0000Omacron\": -25,\n\t\"W\\u0000Oslash\": -25,\n\t\"W\\u0000Otilde\": -25,\n\t\"W\\u0000a\": -92,\n\t\"W\\u0000aacute\": -92,\n\t\"W\\u0000abreve\": -92,\n\t\"W\\u0000acircumflex\": -92,\n\t\"W\\u0000adieresis\": -92,\n\t\"W\\u0000agrave\": -92,\n\t\"W\\u0000amacron\": -92,\n\t\"W\\u0000aogonek\": -92,\n\t\"W\\u0000aring\": -92,\n\t\"W\\u0000atilde\": -92,\n\t\"W\\u0000colon\": -65,\n\t\"W\\u0000comma\": -92,\n\t\"W\\u0000e\": -92,\n\t\"W\\u0000eacute\": -92,\n\t\"W\\u0000ecaron\": -92,\n\t\"W\\u0000ecircumflex\": -92,\n\t\"W\\u0000edieresis\": -52,\n\t\"W\\u0000edotaccent\": -92,\n\t\"W\\u0000egrave\": -52,\n\t\"W\\u0000emacron\": -52,\n\t\"W\\u0000eogonek\": -92,\n\t\"W\\u0000hyphen\": -37,\n\t\"W\\u0000i\": -55,\n\t\"W\\u0000iacute\": -55,\n\t\"W\\u0000iogonek\": -55,\n\t\"W\\u0000o\": -92,\n\t\"W\\u0000oacute\": -92,\n\t\"W\\u0000ocircumflex\": -92,\n\t\"W\\u0000odieresis\": -92,\n\t\"W\\u0000ograve\": -92,\n\t\"W\\u0000ohungarumlaut\": -92,\n\t\"W\\u0000omacron\": -92,\n\t\"W\\u0000oslash\": -92,\n\t\"W\\u0000otilde\": -92,\n\t\"W\\u0000period\": -92,\n\t\"W\\u0000semicolon\": -65,\n\t\"W\\u0000u\": -55,\n\t\"W\\u0000uacute\": -55,\n\t\"W\\u0000ucircumflex\": -55,\n\t\"W\\u0000udieresis\": -55,\n\t\"W\\u0000ugrave\": -55,\n\t\"W\\u0000uhungarumlaut\": -55,\n\t\"W\\u0000umacron\": -55,\n\t\"W\\u0000uogonek\": -55,\n\t\"W\\u0000uring\": -55,\n\t\"W\\u0000y\": -70,\n\t\"W\\u0000yacute\": -70,\n\t\"W\\u0000ydieresis\": -70,\n\t\"Y\\u0000A\": -50,\n\t\"Y\\u0000Aacute\": -50,\n\t\"Y\\u0000Abreve\": -50,\n\t\"Y\\u0000Acircumflex\": -50,\n\t\"Y\\u0000Adieresis\": -50,\n\t\"Y\\u0000Agrave\": -50,\n\t\"Y\\u0000Amacron\": -50,\n\t\"Y\\u0000Aogonek\": -50,\n\t\"Y\\u0000Aring\": -50,\n\t\"Y\\u0000Atilde\": -50,\n\t\"Y\\u0000O\": -15,\n\t\"Y\\u0000Oacute\": -15,\n\t\"Y\\u0000Ocircumflex\": -15,\n\t\"Y\\u0000Odieresis\": -15,\n\t\"Y\\u0000Ograve\": -15,\n\t\"Y\\u0000Ohungarumlaut\": -15,\n\t\"Y\\u0000Omacron\": -15,\n\t\"Y\\u0000Oslash\": -15,\n\t\"Y\\u0000Otilde\": -15,\n\t\"Y\\u0000a\": -92,\n\t\"Y\\u0000aacute\": -92,\n\t\"Y\\u0000abreve\": -92,\n\t\"Y\\u0000acircumflex\": -92,\n\t\"Y\\u0000adieresis\": -92,\n\t\"Y\\u0000agrave\": -92,\n\t\"Y\\u0000amacron\": -92,\n\t\"Y\\u0000aogonek\": -92,\n\t\"Y\\u0000aring\": -92,\n\t\"Y\\u0000atilde\": -92,\n\t\"Y\\u0000colon\": -65,\n\t\"Y\\u0000comma\": -92,\n\t\"Y\\u0000e\": -92,\n\t\"Y\\u0000eacute\": -92,\n\t\"Y\\u0000ecaron\": -92,\n\t\"Y\\u0000ecircumflex\": -92,\n\t\"Y\\u0000edieresis\": -52,\n\t\"Y\\u0000edotaccent\": -92,\n\t\"Y\\u0000egrave\": -52,\n\t\"Y\\u0000emacron\": -52,\n\t\"Y\\u0000eogonek\": -92,\n\t\"Y\\u0000hyphen\": -74,\n\t\"Y\\u0000i\": -74,\n\t\"Y\\u0000iacute\": -74,\n\t\"Y\\u0000icircumflex\": -34,\n\t\"Y\\u0000idieresis\": -34,\n\t\"Y\\u0000igrave\": -34,\n\t\"Y\\u0000imacron\": -34,\n\t\"Y\\u0000iogonek\": -74,\n\t\"Y\\u0000o\": -92,\n\t\"Y\\u0000oacute\": -92,\n\t\"Y\\u0000ocircumflex\": -92,\n\t\"Y\\u0000odieresis\": -92,\n\t\"Y\\u0000ograve\": -92,\n\t\"Y\\u0000ohungarumlaut\": -92,\n\t\"Y\\u0000omacron\": -92,\n\t\"Y\\u0000oslash\": -92,\n\t\"Y\\u0000otilde\": -92,\n\t\"Y\\u0000period\": -92,\n\t\"Y\\u0000semicolon\": -65,\n\t\"Y\\u0000u\": -92,\n\t\"Y\\u0000uacute\": -92,\n\t\"Y\\u0000ucircumflex\": -92,\n\t\"Y\\u0000udieresis\": -92,\n\t\"Y\\u0000ugrave\": -92,\n\t\"Y\\u0000uhungarumlaut\": -92,\n\t\"Y\\u0000umacron\": -92,\n\t\"Y\\u0000uogonek\": -92,\n\t\"Y\\u0000uring\": -92,\n\t\"Yacute\\u0000A\": -50,\n\t\"Yacute\\u0000Aacute\": -50,\n\t\"Yacute\\u0000Abreve\": -50,\n\t\"Yacute\\u0000Acircumflex\": -50,\n\t\"Yacute\\u0000Adieresis\": -50,\n\t\"Yacute\\u0000Agrave\": -50,\n\t\"Yacute\\u0000Amacron\": -50,\n\t\"Yacute\\u0000Aogonek\": -50,\n\t\"Yacute\\u0000Aring\": -50,\n\t\"Yacute\\u0000Atilde\": -50,\n\t\"Yacute\\u0000O\": -15,\n\t\"Yacute\\u0000Oacute\": -15,\n\t\"Yacute\\u0000Ocircumflex\": -15,\n\t\"Yacute\\u0000Odieresis\": -15,\n\t\"Yacute\\u0000Ograve\": -15,\n\t\"Yacute\\u0000Ohungarumlaut\": -15,\n\t\"Yacute\\u0000Omacron\": -15,\n\t\"Yacute\\u0000Oslash\": -15,\n\t\"Yacute\\u0000Otilde\": -15,\n\t\"Yacute\\u0000a\": -92,\n\t\"Yacute\\u0000aacute\": -92,\n\t\"Yacute\\u0000abreve\": -92,\n\t\"Yacute\\u0000acircumflex\": -92,\n\t\"Yacute\\u0000adieresis\": -92,\n\t\"Yacute\\u0000agrave\": -92,\n\t\"Yacute\\u0000amacron\": -92,\n\t\"Yacute\\u0000aogonek\": -92,\n\t\"Yacute\\u0000aring\": -92,\n\t\"Yacute\\u0000atilde\": -92,\n\t\"Yacute\\u0000colon\": -65,\n\t\"Yacute\\u0000comma\": -92,\n\t\"Yacute\\u0000e\": -92,\n\t\"Yacute\\u0000eacute\": -92,\n\t\"Yacute\\u0000ecaron\": -92,\n\t\"Yacute\\u0000ecircumflex\": -92,\n\t\"Yacute\\u0000edieresis\": -52,\n\t\"Yacute\\u0000edotaccent\": -92,\n\t\"Yacute\\u0000egrave\": -52,\n\t\"Yacute\\u0000emacron\": -52,\n\t\"Yacute\\u0000eogonek\": -92,\n\t\"Yacute\\u0000hyphen\": -74,\n\t\"Yacute\\u0000i\": -74,\n\t\"Yacute\\u0000iacute\": -74,\n\t\"Yacute\\u0000icircumflex\": -34,\n\t\"Yacute\\u0000idieresis\": -34,\n\t\"Yacute\\u0000igrave\": -34,\n\t\"Yacute\\u0000imacron\": -34,\n\t\"Yacute\\u0000iogonek\": -74,\n\t\"Yacute\\u0000o\": -92,\n\t\"Yacute\\u0000oacute\": -92,\n\t\"Yacute\\u0000ocircumflex\": -92,\n\t\"Yacute\\u0000odieresis\": -92,\n\t\"Yacute\\u0000ograve\": -92,\n\t\"Yacute\\u0000ohungarumlaut\": -92,\n\t\"Yacute\\u0000omacron\": -92,\n\t\"Yacute\\u0000oslash\": -92,\n\t\"Yacute\\u0000otilde\": -92,\n\t\"Yacute\\u0000period\": -92,\n\t\"Yacute\\u0000semicolon\": -65,\n\t\"Yacute\\u0000u\": -92,\n\t\"Yacute\\u0000uacute\": -92,\n\t\"Yacute\\u0000ucircumflex\": -92,\n\t\"Yacute\\u0000udieresis\": -92,\n\t\"Yacute\\u0000ugrave\": -92,\n\t\"Yacute\\u0000uhungarumlaut\": -92,\n\t\"Yacute\\u0000umacron\": -92,\n\t\"Yacute\\u0000uogonek\": -92,\n\t\"Yacute\\u0000uring\": -92,\n\t\"Ydieresis\\u0000A\": -50,\n\t\"Ydieresis\\u0000Aacute\": -50,\n\t\"Ydieresis\\u0000Abreve\": -50,\n\t\"Ydieresis\\u0000Acircumflex\": -50,\n\t\"Ydieresis\\u0000Adieresis\": -50,\n\t\"Ydieresis\\u0000Agrave\": -50,\n\t\"Ydieresis\\u0000Amacron\": -50,\n\t\"Ydieresis\\u0000Aogonek\": -50,\n\t\"Ydieresis\\u0000Aring\": -50,\n\t\"Ydieresis\\u0000Atilde\": -50,\n\t\"Ydieresis\\u0000O\": -15,\n\t\"Ydieresis\\u0000Oacute\": -15,\n\t\"Ydieresis\\u0000Ocircumflex\": -15,\n\t\"Ydieresis\\u0000Odieresis\": -15,\n\t\"Ydieresis\\u0000Ograve\": -15,\n\t\"Ydieresis\\u0000Ohungarumlaut\": -15,\n\t\"Ydieresis\\u0000Omacron\": -15,\n\t\"Ydieresis\\u0000Oslash\": -15,\n\t\"Ydieresis\\u0000Otilde\": -15,\n\t\"Ydieresis\\u0000a\": -92,\n\t\"Ydieresis\\u0000aacute\": -92,\n\t\"Ydieresis\\u0000abreve\": -92,\n\t\"Ydieresis\\u0000acircumflex\": -92,\n\t\"Ydieresis\\u0000adieresis\": -92,\n\t\"Ydieresis\\u0000agrave\": -92,\n\t\"Ydieresis\\u0000amacron\": -92,\n\t\"Ydieresis\\u0000aogonek\": -92,\n\t\"Ydieresis\\u0000aring\": -92,\n\t\"Ydieresis\\u0000atilde\": -92,\n\t\"Ydieresis\\u0000colon\": -65,\n\t\"Ydieresis\\u0000comma\": -92,\n\t\"Ydieresis\\u0000e\": -92,\n\t\"Ydieresis\\u0000eacute\": -92,\n\t\"Ydieresis\\u0000ecaron\": -92,\n\t\"Ydieresis\\u0000ecircumflex\": -92,\n\t\"Ydieresis\\u0000edieresis\": -52,\n\t\"Ydieresis\\u0000edotaccent\": -92,\n\t\"Ydieresis\\u0000egrave\": -52,\n\t\"Ydieresis\\u0000emacron\": -52,\n\t\"Ydieresis\\u0000eogonek\": -92,\n\t\"Ydieresis\\u0000hyphen\": -74,\n\t\"Ydieresis\\u0000i\": -74,\n\t\"Ydieresis\\u0000iacute\": -74,\n\t\"Ydieresis\\u0000icircumflex\": -34,\n\t\"Ydieresis\\u0000idieresis\": -34,\n\t\"Ydieresis\\u0000igrave\": -34,\n\t\"Ydieresis\\u0000imacron\": -34,\n\t\"Ydieresis\\u0000iogonek\": -74,\n\t\"Ydieresis\\u0000o\": -92,\n\t\"Ydieresis\\u0000oacute\": -92,\n\t\"Ydieresis\\u0000ocircumflex\": -92,\n\t\"Ydieresis\\u0000odieresis\": -92,\n\t\"Ydieresis\\u0000ograve\": -92,\n\t\"Ydieresis\\u0000ohungarumlaut\": -92,\n\t\"Ydieresis\\u0000omacron\": -92,\n\t\"Ydieresis\\u0000oslash\": -92,\n\t\"Ydieresis\\u0000otilde\": -92,\n\t\"Ydieresis\\u0000period\": -92,\n\t\"Ydieresis\\u0000semicolon\": -65,\n\t\"Ydieresis\\u0000u\": -92,\n\t\"Ydieresis\\u0000uacute\": -92,\n\t\"Ydieresis\\u0000ucircumflex\": -92,\n\t\"Ydieresis\\u0000udieresis\": -92,\n\t\"Ydieresis\\u0000ugrave\": -92,\n\t\"Ydieresis\\u0000uhungarumlaut\": -92,\n\t\"Ydieresis\\u0000umacron\": -92,\n\t\"Ydieresis\\u0000uogonek\": -92,\n\t\"Ydieresis\\u0000uring\": -92,\n\t\"a\\u0000g\": -10,\n\t\"a\\u0000gbreve\": -10,\n\t\"a\\u0000gcommaaccent\": -10,\n\t\"aacute\\u0000g\": -10,\n\t\"aacute\\u0000gbreve\": -10,\n\t\"aacute\\u0000gcommaaccent\": -10,\n\t\"abreve\\u0000g\": -10,\n\t\"abreve\\u0000gbreve\": -10,\n\t\"abreve\\u0000gcommaaccent\": -10,\n\t\"acircumflex\\u0000g\": -10,\n\t\"acircumflex\\u0000gbreve\": -10,\n\t\"acircumflex\\u0000gcommaaccent\": -10,\n\t\"adieresis\\u0000g\": -10,\n\t\"adieresis\\u0000gbreve\": -10,\n\t\"adieresis\\u0000gcommaaccent\": -10,\n\t\"agrave\\u0000g\": -10,\n\t\"agrave\\u0000gbreve\": -10,\n\t\"agrave\\u0000gcommaaccent\": -10,\n\t\"amacron\\u0000g\": -10,\n\t\"amacron\\u0000gbreve\": -10,\n\t\"amacron\\u0000gcommaaccent\": -10,\n\t\"aogonek\\u0000g\": -10,\n\t\"aogonek\\u0000gbreve\": -10,\n\t\"aogonek\\u0000gcommaaccent\": -10,\n\t\"aring\\u0000g\": -10,\n\t\"aring\\u0000gbreve\": -10,\n\t\"aring\\u0000gcommaaccent\": -10,\n\t\"atilde\\u0000g\": -10,\n\t\"atilde\\u0000gbreve\": -10,\n\t\"atilde\\u0000gcommaaccent\": -10,\n\t\"b\\u0000period\": -40,\n\t\"b\\u0000u\": -20,\n\t\"b\\u0000uacute\": -20,\n\t\"b\\u0000ucircumflex\": -20,\n\t\"b\\u0000udieresis\": -20,\n\t\"b\\u0000ugrave\": -20,\n\t\"b\\u0000uhungarumlaut\": -20,\n\t\"b\\u0000umacron\": -20,\n\t\"b\\u0000uogonek\": -20,\n\t\"b\\u0000uring\": -20,\n\t\"c\\u0000h\": -15,\n\t\"c\\u0000k\": -20,\n\t\"c\\u0000kcommaaccent\": -20,\n\t\"cacute\\u0000h\": -15,\n\t\"cacute\\u0000k\": -20,\n\t\"cacute\\u0000kcommaaccent\": -20,\n\t\"ccaron\\u0000h\": -15,\n\t\"ccaron\\u0000k\": -20,\n\t\"ccaron\\u0000kcommaaccent\": -20,\n\t\"ccedilla\\u0000h\": -15,\n\t\"ccedilla\\u0000k\": -20,\n\t\"ccedilla\\u0000kcommaaccent\": -20,\n\t\"comma\\u0000quotedblright\": -140,\n\t\"comma\\u0000quoteright\": -140,\n\t\"e\\u0000comma\": -10,\n\t\"e\\u0000g\": -40,\n\t\"e\\u0000gbreve\": -40,\n\t\"e\\u0000gcommaaccent\": -40,\n\t\"e\\u0000period\": -15,\n\t\"e\\u0000v\": -15,\n\t\"e\\u0000w\": -15,\n\t\"e\\u0000x\": -20,\n\t\"e\\u0000y\": -30,\n\t\"e\\u0000yacute\": -30,\n\t\"e\\u0000ydieresis\": -30,\n\t\"eacute\\u0000comma\": -10,\n\t\"eacute\\u0000g\": -40,\n\t\"eacute\\u0000gbreve\": -40,\n\t\"eacute\\u0000gcommaaccent\": -40,\n\t\"eacute\\u0000period\": -15,\n\t\"eacute\\u0000v\": -15,\n\t\"eacute\\u0000w\": -15,\n\t\"eacute\\u0000x\": -20,\n\t\"eacute\\u0000y\": -30,\n\t\"eacute\\u0000yacute\": -30,\n\t\"eacute\\u0000ydieresis\": -30,\n\t\"ecaron\\u0000comma\": -10,\n\t\"ecaron\\u0000g\": -40,\n\t\"ecaron\\u0000gbreve\": -40,\n\t\"ecaron\\u0000gcommaaccent\": -40,\n\t\"ecaron\\u0000period\": -15,\n\t\"ecaron\\u0000v\": -15,\n\t\"ecaron\\u0000w\": -15,\n\t\"ecaron\\u0000x\": -20,\n\t\"ecaron\\u0000y\": -30,\n\t\"ecaron\\u0000yacute\": -30,\n\t\"ecaron\\u0000ydieresis\": -30,\n\t\"ecircumflex\\u0000comma\": -10,\n\t\"ecircumflex\\u0000g\": -40,\n\t\"ecircumflex\\u0000gbreve\": -40,\n\t\"ecircumflex\\u0000gcommaaccent\": -40,\n\t\"ecircumflex\\u0000period\": -15,\n\t\"ecircumflex\\u0000v\": -15,\n\t\"ecircumflex\\u0000w\": -15,\n\t\"ecircumflex\\u0000x\": -20,\n\t\"ecircumflex\\u0000y\": -30,\n\t\"ecircumflex\\u0000yacute\": -30,\n\t\"ecircumflex\\u0000ydieresis\": -30,\n\t\"edieresis\\u0000comma\": -10,\n\t\"edieresis\\u0000g\": -40,\n\t\"edieresis\\u0000gbreve\": -40,\n\t\"edieresis\\u0000gcommaaccent\": -40,\n\t\"edieresis\\u0000period\": -15,\n\t\"edieresis\\u0000v\": -15,\n\t\"edieresis\\u0000w\": -15,\n\t\"edieresis\\u0000x\": -20,\n\t\"edieresis\\u0000y\": -30,\n\t\"edieresis\\u0000yacute\": -30,\n\t\"edieresis\\u0000ydieresis\": -30,\n\t\"edotaccent\\u0000comma\": -10,\n\t\"edotaccent\\u0000g\": -40,\n\t\"edotaccent\\u0000gbreve\": -40,\n\t\"edotaccent\\u0000gcommaaccent\": -40,\n\t\"edotaccent\\u0000period\": -15,\n\t\"edotaccent\\u0000v\": -15,\n\t\"edotaccent\\u0000w\": -15,\n\t\"edotaccent\\u0000x\": -20,\n\t\"edotaccent\\u0000y\": -30,\n\t\"edotaccent\\u0000yacute\": -30,\n\t\"edotaccent\\u0000ydieresis\": -30,\n\t\"egrave\\u0000comma\": -10,\n\t\"egrave\\u0000g\": -40,\n\t\"egrave\\u0000gbreve\": -40,\n\t\"egrave\\u0000gcommaaccent\": -40,\n\t\"egrave\\u0000period\": -15,\n\t\"egrave\\u0000v\": -15,\n\t\"egrave\\u0000w\": -15,\n\t\"egrave\\u0000x\": -20,\n\t\"egrave\\u0000y\": -30,\n\t\"egrave\\u0000yacute\": -30,\n\t\"egrave\\u0000ydieresis\": -30,\n\t\"emacron\\u0000comma\": -10,\n\t\"emacron\\u0000g\": -40,\n\t\"emacron\\u0000gbreve\": -40,\n\t\"emacron\\u0000gcommaaccent\": -40,\n\t\"emacron\\u0000period\": -15,\n\t\"emacron\\u0000v\": -15,\n\t\"emacron\\u0000w\": -15,\n\t\"emacron\\u0000x\": -20,\n\t\"emacron\\u0000y\": -30,\n\t\"emacron\\u0000yacute\": -30,\n\t\"emacron\\u0000ydieresis\": -30,\n\t\"eogonek\\u0000comma\": -10,\n\t\"eogonek\\u0000g\": -40,\n\t\"eogonek\\u0000gbreve\": -40,\n\t\"eogonek\\u0000gcommaaccent\": -40,\n\t\"eogonek\\u0000period\": -15,\n\t\"eogonek\\u0000v\": -15,\n\t\"eogonek\\u0000w\": -15,\n\t\"eogonek\\u0000x\": -20,\n\t\"eogonek\\u0000y\": -30,\n\t\"eogonek\\u0000yacute\": -30,\n\t\"eogonek\\u0000ydieresis\": -30,\n\t\"f\\u0000comma\": -10,\n\t\"f\\u0000dotlessi\": -60,\n\t\"f\\u0000f\": -18,\n\t\"f\\u0000i\": -20,\n\t\"f\\u0000iogonek\": -20,\n\t\"f\\u0000period\": -15,\n\t\"f\\u0000quoteright\": 92,\n\t\"g\\u0000comma\": -10,\n\t\"g\\u0000e\": -10,\n\t\"g\\u0000eacute\": -10,\n\t\"g\\u0000ecaron\": -10,\n\t\"g\\u0000ecircumflex\": -10,\n\t\"g\\u0000edieresis\": -10,\n\t\"g\\u0000edotaccent\": -10,\n\t\"g\\u0000egrave\": -10,\n\t\"g\\u0000emacron\": -10,\n\t\"g\\u0000eogonek\": -10,\n\t\"g\\u0000g\": -10,\n\t\"g\\u0000gbreve\": -10,\n\t\"g\\u0000gcommaaccent\": -10,\n\t\"g\\u0000period\": -15,\n\t\"gbreve\\u0000comma\": -10,\n\t\"gbreve\\u0000e\": -10,\n\t\"gbreve\\u0000eacute\": -10,\n\t\"gbreve\\u0000ecaron\": -10,\n\t\"gbreve\\u0000ecircumflex\": -10,\n\t\"gbreve\\u0000edieresis\": -10,\n\t\"gbreve\\u0000edotaccent\": -10,\n\t\"gbreve\\u0000egrave\": -10,\n\t\"gbreve\\u0000emacron\": -10,\n\t\"gbreve\\u0000eogonek\": -10,\n\t\"gbreve\\u0000g\": -10,\n\t\"gbreve\\u0000gbreve\": -10,\n\t\"gbreve\\u0000gcommaaccent\": -10,\n\t\"gbreve\\u0000period\": -15,\n\t\"gcommaaccent\\u0000comma\": -10,\n\t\"gcommaaccent\\u0000e\": -10,\n\t\"gcommaaccent\\u0000eacute\": -10,\n\t\"gcommaaccent\\u0000ecaron\": -10,\n\t\"gcommaaccent\\u0000ecircumflex\": -10,\n\t\"gcommaaccent\\u0000edieresis\": -10,\n\t\"gcommaaccent\\u0000edotaccent\": -10,\n\t\"gcommaaccent\\u0000egrave\": -10,\n\t\"gcommaaccent\\u0000emacron\": -10,\n\t\"gcommaaccent\\u0000eogonek\": -10,\n\t\"gcommaaccent\\u0000g\": -10,\n\t\"gcommaaccent\\u0000gbreve\": -10,\n\t\"gcommaaccent\\u0000gcommaaccent\": -10,\n\t\"gcommaaccent\\u0000period\": -15,\n\t\"k\\u0000e\": -10,\n\t\"k\\u0000eacute\": -10,\n\t\"k\\u0000ecaron\": -10,\n\t\"k\\u0000ecircumflex\": -10,\n\t\"k\\u0000edieresis\": -10,\n\t\"k\\u0000edotaccent\": -10,\n\t\"k\\u0000egrave\": -10,\n\t\"k\\u0000emacron\": -10,\n\t\"k\\u0000eogonek\": -10,\n\t\"k\\u0000o\": -10,\n\t\"k\\u0000oacute\": -10,\n\t\"k\\u0000ocircumflex\": -10,\n\t\"k\\u0000odieresis\": -10,\n\t\"k\\u0000ograve\": -10,\n\t\"k\\u0000ohungarumlaut\": -10,\n\t\"k\\u0000omacron\": -10,\n\t\"k\\u0000oslash\": -10,\n\t\"k\\u0000otilde\": -10,\n\t\"k\\u0000y\": -10,\n\t\"k\\u0000yacute\": -10,\n\t\"k\\u0000ydieresis\": -10,\n\t\"kcommaaccent\\u0000e\": -10,\n\t\"kcommaaccent\\u0000eacute\": -10,\n\t\"kcommaaccent\\u0000ecaron\": -10,\n\t\"kcommaaccent\\u0000ecircumflex\": -10,\n\t\"kcommaaccent\\u0000edieresis\": -10,\n\t\"kcommaaccent\\u0000edotaccent\": -10,\n\t\"kcommaaccent\\u0000egrave\": -10,\n\t\"kcommaaccent\\u0000emacron\": -10,\n\t\"kcommaaccent\\u0000eogonek\": -10,\n\t\"kcommaaccent\\u0000o\": -10,\n\t\"kcommaaccent\\u0000oacute\": -10,\n\t\"kcommaaccent\\u0000ocircumflex\": -10,\n\t\"kcommaaccent\\u0000odieresis\": -10,\n\t\"kcommaaccent\\u0000ograve\": -10,\n\t\"kcommaaccent\\u0000ohungarumlaut\": -10,\n\t\"kcommaaccent\\u0000omacron\": -10,\n\t\"kcommaaccent\\u0000oslash\": -10,\n\t\"kcommaaccent\\u0000otilde\": -10,\n\t\"kcommaaccent\\u0000y\": -10,\n\t\"kcommaaccent\\u0000yacute\": -10,\n\t\"kcommaaccent\\u0000ydieresis\": -10,\n\t\"n\\u0000v\": -40,\n\t\"nacute\\u0000v\": -40,\n\t\"ncaron\\u0000v\": -40,\n\t\"ncommaaccent\\u0000v\": -40,\n\t\"ntilde\\u0000v\": -40,\n\t\"o\\u0000g\": -10,\n\t\"o\\u0000gbreve\": -10,\n\t\"o\\u0000gcommaaccent\": -10,\n\t\"o\\u0000v\": -10,\n\t\"oacute\\u0000g\": -10,\n\t\"oacute\\u0000gbreve\": -10,\n\t\"oacute\\u0000gcommaaccent\": -10,\n\t\"oacute\\u0000v\": -10,\n\t\"ocircumflex\\u0000g\": -10,\n\t\"ocircumflex\\u0000gbreve\": -10,\n\t\"ocircumflex\\u0000gcommaaccent\": -10,\n\t\"ocircumflex\\u0000v\": -10,\n\t\"odieresis\\u0000g\": -10,\n\t\"odieresis\\u0000gbreve\": -10,\n\t\"odieresis\\u0000gcommaaccent\": -10,\n\t\"odieresis\\u0000v\": -10,\n\t\"ograve\\u0000g\": -10,\n\t\"ograve\\u0000gbreve\": -10,\n\t\"ograve\\u0000gcommaaccent\": -10,\n\t\"ograve\\u0000v\": -10,\n\t\"ohungarumlaut\\u0000g\": -10,\n\t\"ohungarumlaut\\u0000gbreve\": -10,\n\t\"ohungarumlaut\\u0000gcommaaccent\": -10,\n\t\"ohungarumlaut\\u0000v\": -10,\n\t\"omacron\\u0000g\": -10,\n\t\"omacron\\u0000gbreve\": -10,\n\t\"omacron\\u0000gcommaaccent\": -10,\n\t\"omacron\\u0000v\": -10,\n\t\"oslash\\u0000g\": -10,\n\t\"oslash\\u0000gbreve\": -10,\n\t\"oslash\\u0000gcommaaccent\": -10,\n\t\"oslash\\u0000v\": -10,\n\t\"otilde\\u0000g\": -10,\n\t\"otilde\\u0000gbreve\": -10,\n\t\"otilde\\u0000gcommaaccent\": -10,\n\t\"otilde\\u0000v\": -10,\n\t\"period\\u0000quotedblright\": -140,\n\t\"period\\u0000quoteright\": -140,\n\t\"quoteleft\\u0000quoteleft\": -111,\n\t\"quoteright\\u0000d\": -25,\n\t\"quoteright\\u0000dcroat\": -25,\n\t\"quoteright\\u0000quoteright\": -111,\n\t\"quoteright\\u0000r\": -25,\n\t\"quoteright\\u0000racute\": -25,\n\t\"quoteright\\u0000rcaron\": -25,\n\t\"quoteright\\u0000rcommaaccent\": -25,\n\t\"quoteright\\u0000s\": -40,\n\t\"quoteright\\u0000sacute\": -40,\n\t\"quoteright\\u0000scaron\": -40,\n\t\"quoteright\\u0000scedilla\": -40,\n\t\"quoteright\\u0000scommaaccent\": -40,\n\t\"quoteright\\u0000space\": -111,\n\t\"quoteright\\u0000t\": -30,\n\t\"quoteright\\u0000tcommaaccent\": -30,\n\t\"quoteright\\u0000v\": -10,\n\t\"r\\u0000a\": -15,\n\t\"r\\u0000aacute\": -15,\n\t\"r\\u0000abreve\": -15,\n\t\"r\\u0000acircumflex\": -15,\n\t\"r\\u0000adieresis\": -15,\n\t\"r\\u0000agrave\": -15,\n\t\"r\\u0000amacron\": -15,\n\t\"r\\u0000aogonek\": -15,\n\t\"r\\u0000aring\": -15,\n\t\"r\\u0000atilde\": -15,\n\t\"r\\u0000c\": -37,\n\t\"r\\u0000cacute\": -37,\n\t\"r\\u0000ccaron\": -37,\n\t\"r\\u0000ccedilla\": -37,\n\t\"r\\u0000comma\": -111,\n\t\"r\\u0000d\": -37,\n\t\"r\\u0000dcroat\": -37,\n\t\"r\\u0000e\": -37,\n\t\"r\\u0000eacute\": -37,\n\t\"r\\u0000ecaron\": -37,\n\t\"r\\u0000ecircumflex\": -37,\n\t\"r\\u0000edieresis\": -37,\n\t\"r\\u0000edotaccent\": -37,\n\t\"r\\u0000egrave\": -37,\n\t\"r\\u0000emacron\": -37,\n\t\"r\\u0000eogonek\": -37,\n\t\"r\\u0000g\": -37,\n\t\"r\\u0000gbreve\": -37,\n\t\"r\\u0000gcommaaccent\": -37,\n\t\"r\\u0000hyphen\": -20,\n\t\"r\\u0000o\": -45,\n\t\"r\\u0000oacute\": -45,\n\t\"r\\u0000ocircumflex\": -45,\n\t\"r\\u0000odieresis\": -45,\n\t\"r\\u0000ograve\": -45,\n\t\"r\\u0000ohungarumlaut\": -45,\n\t\"r\\u0000omacron\": -45,\n\t\"r\\u0000oslash\": -45,\n\t\"r\\u0000otilde\": -45,\n\t\"r\\u0000period\": -111,\n\t\"r\\u0000q\": -37,\n\t\"r\\u0000s\": -10,\n\t\"r\\u0000sacute\": -10,\n\t\"r\\u0000scaron\": -10,\n\t\"r\\u0000scedilla\": -10,\n\t\"r\\u0000scommaaccent\": -10,\n\t\"racute\\u0000a\": -15,\n\t\"racute\\u0000aacute\": -15,\n\t\"racute\\u0000abreve\": -15,\n\t\"racute\\u0000acircumflex\": -15,\n\t\"racute\\u0000adieresis\": -15,\n\t\"racute\\u0000agrave\": -15,\n\t\"racute\\u0000amacron\": -15,\n\t\"racute\\u0000aogonek\": -15,\n\t\"racute\\u0000aring\": -15,\n\t\"racute\\u0000atilde\": -15,\n\t\"racute\\u0000c\": -37,\n\t\"racute\\u0000cacute\": -37,\n\t\"racute\\u0000ccaron\": -37,\n\t\"racute\\u0000ccedilla\": -37,\n\t\"racute\\u0000comma\": -111,\n\t\"racute\\u0000d\": -37,\n\t\"racute\\u0000dcroat\": -37,\n\t\"racute\\u0000e\": -37,\n\t\"racute\\u0000eacute\": -37,\n\t\"racute\\u0000ecaron\": -37,\n\t\"racute\\u0000ecircumflex\": -37,\n\t\"racute\\u0000edieresis\": -37,\n\t\"racute\\u0000edotaccent\": -37,\n\t\"racute\\u0000egrave\": -37,\n\t\"racute\\u0000emacron\": -37,\n\t\"racute\\u0000eogonek\": -37,\n\t\"racute\\u0000g\": -37,\n\t\"racute\\u0000gbreve\": -37,\n\t\"racute\\u0000gcommaaccent\": -37,\n\t\"racute\\u0000hyphen\": -20,\n\t\"racute\\u0000o\": -45,\n\t\"racute\\u0000oacute\": -45,\n\t\"racute\\u0000ocircumflex\": -45,\n\t\"racute\\u0000odieresis\": -45,\n\t\"racute\\u0000ograve\": -45,\n\t\"racute\\u0000ohungarumlaut\": -45,\n\t\"racute\\u0000omacron\": -45,\n\t\"racute\\u0000oslash\": -45,\n\t\"racute\\u0000otilde\": -45,\n\t\"racute\\u0000period\": -111,\n\t\"racute\\u0000q\": -37,\n\t\"racute\\u0000s\": -10,\n\t\"racute\\u0000sacute\": -10,\n\t\"racute\\u0000scaron\": -10,\n\t\"racute\\u0000scedilla\": -10,\n\t\"racute\\u0000scommaaccent\": -10,\n\t\"rcaron\\u0000a\": -15,\n\t\"rcaron\\u0000aacute\": -15,\n\t\"rcaron\\u0000abreve\": -15,\n\t\"rcaron\\u0000acircumflex\": -15,\n\t\"rcaron\\u0000adieresis\": -15,\n\t\"rcaron\\u0000agrave\": -15,\n\t\"rcaron\\u0000amacron\": -15,\n\t\"rcaron\\u0000aogonek\": -15,\n\t\"rcaron\\u0000aring\": -15,\n\t\"rcaron\\u0000atilde\": -15,\n\t\"rcaron\\u0000c\": -37,\n\t\"rcaron\\u0000cacute\": -37,\n\t\"rcaron\\u0000ccaron\": -37,\n\t\"rcaron\\u0000ccedilla\": -37,\n\t\"rcaron\\u0000comma\": -111,\n\t\"rcaron\\u0000d\": -37,\n\t\"rcaron\\u0000dcroat\": -37,\n\t\"rcaron\\u0000e\": -37,\n\t\"rcaron\\u0000eacute\": -37,\n\t\"rcaron\\u0000ecaron\": -37,\n\t\"rcaron\\u0000ecircumflex\": -37,\n\t\"rcaron\\u0000edieresis\": -37,\n\t\"rcaron\\u0000edotaccent\": -37,\n\t\"rcaron\\u0000egrave\": -37,\n\t\"rcaron\\u0000emacron\": -37,\n\t\"rcaron\\u0000eogonek\": -37,\n\t\"rcaron\\u0000g\": -37,\n\t\"rcaron\\u0000gbreve\": -37,\n\t\"rcaron\\u0000gcommaaccent\": -37,\n\t\"rcaron\\u0000hyphen\": -20,\n\t\"rcaron\\u0000o\": -45,\n\t\"rcaron\\u0000oacute\": -45,\n\t\"rcaron\\u0000ocircumflex\": -45,\n\t\"rcaron\\u0000odieresis\": -45,\n\t\"rcaron\\u0000ograve\": -45,\n\t\"rcaron\\u0000ohungarumlaut\": -45,\n\t\"rcaron\\u0000omacron\": -45,\n\t\"rcaron\\u0000oslash\": -45,\n\t\"rcaron\\u0000otilde\": -45,\n\t\"rcaron\\u0000period\": -111,\n\t\"rcaron\\u0000q\": -37,\n\t\"rcaron\\u0000s\": -10,\n\t\"rcaron\\u0000sacute\": -10,\n\t\"rcaron\\u0000scaron\": -10,\n\t\"rcaron\\u0000scedilla\": -10,\n\t\"rcaron\\u0000scommaaccent\": -10,\n\t\"rcommaaccent\\u0000a\": -15,\n\t\"rcommaaccent\\u0000aacute\": -15,\n\t\"rcommaaccent\\u0000abreve\": -15,\n\t\"rcommaaccent\\u0000acircumflex\": -15,\n\t\"rcommaaccent\\u0000adieresis\": -15,\n\t\"rcommaaccent\\u0000agrave\": -15,\n\t\"rcommaaccent\\u0000amacron\": -15,\n\t\"rcommaaccent\\u0000aogonek\": -15,\n\t\"rcommaaccent\\u0000aring\": -15,\n\t\"rcommaaccent\\u0000atilde\": -15,\n\t\"rcommaaccent\\u0000c\": -37,\n\t\"rcommaaccent\\u0000cacute\": -37,\n\t\"rcommaaccent\\u0000ccaron\": -37,\n\t\"rcommaaccent\\u0000ccedilla\": -37,\n\t\"rcommaaccent\\u0000comma\": -111,\n\t\"rcommaaccent\\u0000d\": -37,\n\t\"rcommaaccent\\u0000dcroat\": -37,\n\t\"rcommaaccent\\u0000e\": -37,\n\t\"rcommaaccent\\u0000eacute\": -37,\n\t\"rcommaaccent\\u0000ecaron\": -37,\n\t\"rcommaaccent\\u0000ecircumflex\": -37,\n\t\"rcommaaccent\\u0000edieresis\": -37,\n\t\"rcommaaccent\\u0000edotaccent\": -37,\n\t\"rcommaaccent\\u0000egrave\": -37,\n\t\"rcommaaccent\\u0000emacron\": -37,\n\t\"rcommaaccent\\u0000eogonek\": -37,\n\t\"rcommaaccent\\u0000g\": -37,\n\t\"rcommaaccent\\u0000gbreve\": -37,\n\t\"rcommaaccent\\u0000gcommaaccent\": -37,\n\t\"rcommaaccent\\u0000hyphen\": -20,\n\t\"rcommaaccent\\u0000o\": -45,\n\t\"rcommaaccent\\u0000oacute\": -45,\n\t\"rcommaaccent\\u0000ocircumflex\": -45,\n\t\"rcommaaccent\\u0000odieresis\": -45,\n\t\"rcommaaccent\\u0000ograve\": -45,\n\t\"rcommaaccent\\u0000ohungarumlaut\": -45,\n\t\"rcommaaccent\\u0000omacron\": -45,\n\t\"rcommaaccent\\u0000oslash\": -45,\n\t\"rcommaaccent\\u0000otilde\": -45,\n\t\"rcommaaccent\\u0000period\": -111,\n\t\"rcommaaccent\\u0000q\": -37,\n\t\"rcommaaccent\\u0000s\": -10,\n\t\"rcommaaccent\\u0000sacute\": -10,\n\t\"rcommaaccent\\u0000scaron\": -10,\n\t\"rcommaaccent\\u0000scedilla\": -10,\n\t\"rcommaaccent\\u0000scommaaccent\": -10,\n\t\"space\\u0000A\": -18,\n\t\"space\\u0000Aacute\": -18,\n\t\"space\\u0000Abreve\": -18,\n\t\"space\\u0000Acircumflex\": -18,\n\t\"space\\u0000Adieresis\": -18,\n\t\"space\\u0000Agrave\": -18,\n\t\"space\\u0000Amacron\": -18,\n\t\"space\\u0000Aogonek\": -18,\n\t\"space\\u0000Aring\": -18,\n\t\"space\\u0000Atilde\": -18,\n\t\"space\\u0000T\": -18,\n\t\"space\\u0000Tcaron\": -18,\n\t\"space\\u0000Tcommaaccent\": -18,\n\t\"space\\u0000V\": -35,\n\t\"space\\u0000W\": -40,\n\t\"space\\u0000Y\": -75,\n\t\"space\\u0000Yacute\": -75,\n\t\"space\\u0000Ydieresis\": -75,\n\t\"v\\u0000comma\": -74,\n\t\"v\\u0000period\": -74,\n\t\"w\\u0000comma\": -74,\n\t\"w\\u0000period\": -74,\n\t\"y\\u0000comma\": -55,\n\t\"y\\u0000period\": -55,\n\t\"yacute\\u0000comma\": -55,\n\t\"yacute\\u0000period\": -55,\n\t\"ydieresis\\u0000comma\": -55,\n\t\"ydieresis\\u0000period\": -55\n};\nvar TimesItalic = {\n\tattributes: attributes,\n\tglyphWidths: glyphWidths,\n\tkernPairs: kernPairs\n};\n\nvar STANDARD_FONTS = {\n Courier: Courier,\n 'Courier-Bold': CourierBold,\n 'Courier-Oblique': CourierOblique,\n Helvetica: Helvetica,\n 'Helvetica-Bold': HelveticaBold,\n 'Helvetica-Oblique': HelveticaOblique,\n 'Times-Roman': TimesRoman,\n 'Times-Bold': TimesBold,\n 'Times-Italic': 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 = AFMFont.fromJson(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 number = PDFObject.number;\nvar Text = {\n initText: function initText() {\n this._line = this._line.bind(this); // Current coordinates\n\n this.x = 0;\n this.y = 0;\n return this._lineGap = 0;\n },\n _text: function _text(text, x, y, options, lineCallback) {\n var _this = this;\n\n options = this._initOptions(x, y, options); // Convert text to a string\n\n text = text == null ? '' : \"\" + text; // if the wordSpacing option is specified, remove multiple consecutive spaces\n\n if (options.wordSpacing) {\n text = text.replace(/\\s{2,}/g, ' ');\n }\n\n var addStructure = function addStructure() {\n if (options.structParent) {\n options.structParent.add(_this.struct(options.structType || 'P', [_this.markStructureContent(options.structType || 'P')]));\n }\n };\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split('\\n')), _step; !(_step = _iterator()).done;) {\n var line = _step.value;\n addStructure();\n lineCallback(line, options);\n }\n\n return this;\n },\n text: function text(_text2, x, y, options) {\n return this._text(_text2, x, y, options, this._line);\n },\n widthOfString: function widthOfString(string, options) {\n if (options === void 0) {\n options = {};\n }\n\n return this._font.widthOfString(string, this._fontSize, options.features) + (options.characterSpacing || 0) * (string.length - 1);\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 } // clone options object\n\n\n var result = Object.assign({}, options); // extend options with previous values for continued text\n\n if (this._textOptions) {\n for (var key in this._textOptions) {\n var val = this._textOptions[key];\n\n if (key !== 'continued') {\n if (result[key] === undefined) {\n result[key] = val;\n }\n }\n }\n } // Update the current position\n\n\n if (x != null) {\n this.x = x;\n }\n\n if (y != null) {\n this.y = y;\n } // wrap to margins if no x or y position passed\n\n\n if (result.lineBreak !== false) {\n if (result.width == null) {\n result.width = this.page.width - this.x - this.page.margins.right;\n }\n\n result.width = Math.max(result.width, 0);\n }\n\n if (!result.columns) {\n result.columns = 0;\n }\n\n if (result.columnGap == null) {\n result.columnGap = 18;\n } // 1/4 inch\n\n\n return result;\n },\n _line: function _line(text, options) {\n if (options === void 0) {\n options = {};\n }\n\n this._fragment(text, this.x, this.y, options);\n\n return this.x += this.widthOfString(text);\n },\n _fragment: function _fragment(text, x, y, options) {\n text = (\"\" + text).replace(/\\n/g, '');\n if (text.length === 0) return;\n\n var _this$_font$encode = this._font.encode(text, options.features),\n encoded = _this$_font$encode[0],\n positions = _this$_font$encode[1];\n\n var dy = this._font.ascender / 1000 * this._fontSize;\n\n this._glyphs(encoded, positions, x, y + dy, options);\n },\n _glyphs: function _glyphs(encoded, positions, x, y, options) {\n var _this2 = this;\n\n var commands = [];\n var scale = this._fontSize / 1000;\n var i;\n var last = 0;\n var hadOffset = false;\n this.save(); // flip coordinate system\n\n this.transform(1, 0, 0, -1, 0, this.page.height);\n y = this.page.height - y; // 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 } // begin the text object\n\n\n this.addContent('BT'); // text position\n\n this.addContent(\"1 0 0 1 \" + number(x) + \" \" + number(y) + \" Tm\"); // font and font size\n\n this.addContent(\"/\" + this._font.id + \" \" + 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 } // Adds a segment of text to the TJ command buffer\n\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 + \"> \" + 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 _this2.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 \" + number(x + pos.xOffset * scale) + \" \" + 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 \" + number(x) + \" \" + 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","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\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","const INITIAL_STATE = 1;\nconst 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 */\nexport default class StateMachine {\n constructor(dfa) {\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 match(str) {\n let self = this;\n return {\n *[Symbol.iterator]() {\n let state = INITIAL_STATE;\n let startRun = null;\n let lastAccepting = null;\n let lastState = null;\n\n for (let p = 0; p < str.length; p++) {\n let c = str[p];\n\n lastState = state;\n state = self.stateTable[state][c];\n\n if (state === FAIL_STATE) {\n // yield the last match if any\n if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {\n yield [startRun, lastAccepting, self.tags[lastState]];\n }\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\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\n // yield the last match if any\n if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {\n yield [startRun, lastAccepting, self.tags[state]];\n }\n }\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 apply(str, actions) {\n for (let [start, end, tags] of this.match(str)) {\n for (let tag of tags) {\n if (typeof actions[tag] === 'function') {\n actions[tag](start, end, str.slice(start, end + 1));\n }\n }\n }\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(\"./enc-base64url\"), 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\", \"./enc-base64url\", \"./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}));","'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","export default function _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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\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\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\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 (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(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$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(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$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); 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 _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, 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 (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = '_zero';\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(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$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(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$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(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$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); 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 _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(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$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); 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 _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\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 _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\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 _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\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 clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\n\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\n\nvar parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\n\nmodule.exports = function parseuri(str) {\n var src = str,\n b = str.indexOf('['),\n e = str.indexOf(']');\n\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n\n var m = re.exec(str || ''),\n uri = {},\n i = 14;\n\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n\n return uri;\n};\n\nfunction pathNames(obj, path) {\n var regx = /\\/{2,9}/g,\n names = path.replace(regx, \"/\").split(\"/\");\n\n if (path.substr(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.length - 1, 1) == '/') {\n names.splice(names.length - 1, 1);\n }\n\n return names;\n}\n\nfunction queryKey(uri, query) {\n var data = {};\n\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n\n return data;\n}\n","function _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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\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\nmodule.exports = _unsupportedIterableToArray;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Manager = void 0;\nconst eio = require(\"engine.io-client\");\nconst socket_1 = require(\"./socket\");\nconst parser = require(\"socket.io-parser\");\nconst on_1 = require(\"./on\");\nconst Backoff = require(\"backo2\");\nconst typed_events_1 = require(\"./typed-events\");\nconst debug = require(\"debug\")(\"socket.io-client:manager\");\nclass Manager extends typed_events_1.StrictEventEmitter {\n constructor(uri, opts) {\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor(opts.randomizationFactor || 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n debug(\"readyState %s\", this._readyState);\n if (~this._readyState.indexOf(\"open\"))\n return this;\n debug(\"opening %s\", this.uri);\n this.engine = eio(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on_1.on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on_1.on(socket, \"error\", (err) => {\n debug(\"error\");\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n debug(\"connect attempt will timeout after %d\", timeout);\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = setTimeout(() => {\n debug(\"connect attempt timed out after %d\", timeout);\n openSubDestroy();\n socket.close();\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n debug(\"open\");\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on_1.on(socket, \"ping\", this.onping.bind(this)), on_1.on(socket, \"data\", this.ondata.bind(this)), on_1.on(socket, \"error\", this.onerror.bind(this)), on_1.on(socket, \"close\", this.onclose.bind(this)), on_1.on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n this.decoder.add(data);\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n this.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n debug(\"error\", err);\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new socket_1.Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n debug(\"socket %s is still active, skipping close\", nsp);\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n debug(\"writing packet %j\", packet);\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n debug(\"cleanup\");\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n debug(\"disconnect\");\n this.skipReconnect = true;\n this._reconnecting = false;\n if (\"opening\" === this._readyState) {\n // `onclose` will not fire because\n // an open event never happened\n this.cleanup();\n }\n this.backoff.reset();\n this._readyState = \"closed\";\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason) {\n debug(\"onclose\");\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n debug(\"reconnect failed\");\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n debug(\"will wait %dms before reconnect attempt\", delay);\n this._reconnecting = true;\n const timer = setTimeout(() => {\n if (self.skipReconnect)\n return;\n debug(\"attempting reconnect\");\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n debug(\"reconnect attempt error\");\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n debug(\"reconnect success\");\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\nexports.Manager = Manager;\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","const XMLHttpRequest = require(\"../../contrib/xmlhttprequest-ssl/XMLHttpRequest\");\nconst XHR = require(\"./polling-xhr\");\nconst JSONP = require(\"./polling-jsonp\");\nconst websocket = require(\"./websocket\");\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling(opts) {\n let xhr;\n let xd = false;\n let xs = false;\n const jsonp = false !== opts.jsonp;\n\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n xd = opts.hostname !== location.hostname || port !== opts.port;\n xs = opts.secure !== isSSL;\n }\n\n opts.xdomain = xd;\n opts.xscheme = xs;\n xhr = new XMLHttpRequest(opts);\n\n if (\"open\" in xhr && !opts.forceJSONP) {\n return new XHR(opts);\n } else {\n if (!jsonp) throw new Error(\"JSONP disabled\");\n return new JSONP(opts);\n }\n}\n","// browser shim for xmlhttprequest module\n\nconst hasCORS = require(\"has-cors\");\nconst globalThis = require(\"./globalThis\");\n\nmodule.exports = function(opts) {\n const xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n const xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n const enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) {}\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if (\"undefined\" !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) {}\n\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\n \"Microsoft.XMLHTTP\"\n );\n } catch (e) {}\n }\n};\n","const Transport = require(\"../transport\");\nconst parseqs = require(\"parseqs\");\nconst parser = require(\"engine.io-parser\");\nconst yeast = require(\"yeast\");\n\nconst debug = require(\"debug\")(\"engine.io-client:polling\");\n\nclass Polling extends Transport {\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n const self = this;\n\n this.readyState = \"pausing\";\n\n function pause() {\n debug(\"paused\");\n self.readyState = \"paused\";\n onPause();\n }\n\n if (this.polling || !this.writable) {\n let total = 0;\n\n if (this.polling) {\n debug(\"we are currently polling - waiting to pause\");\n total++;\n this.once(\"pollComplete\", function() {\n debug(\"pre-pause polling complete\");\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug(\"we are currently writing - waiting to pause\");\n total++;\n this.once(\"drain\", function() {\n debug(\"pre-pause writing complete\");\n --total || pause();\n });\n }\n } else {\n pause();\n }\n }\n\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n debug(\"polling\");\n this.polling = true;\n this.doPoll();\n this.emit(\"poll\");\n }\n\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const self = this;\n debug(\"polling got data %s\", data);\n const callback = function(packet, index, total) {\n // if its the first message we consider the transport open\n if (\"opening\" === self.readyState && packet.type === \"open\") {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType).forEach(callback);\n\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit(\"pollComplete\");\n\n if (\"open\" === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n }\n\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const self = this;\n\n function close() {\n debug(\"writing close packet\");\n self.write([{ type: \"close\" }]);\n }\n\n if (\"open\" === this.readyState) {\n debug(\"transport open - closing\");\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug(\"transport not open - deferring close\");\n this.once(\"open\", close);\n }\n }\n\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n\n parser.encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emit(\"drain\");\n });\n });\n }\n\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (\n this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))\n ) {\n port = \":\" + this.opts.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = \"?\" + query;\n }\n\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (\n schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n query\n );\n }\n}\n\nmodule.exports = Polling;\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\n\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\n\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\n\nmodule.exports = {\n PACKET_TYPES,\n PACKET_TYPES_REVERSE,\n ERROR_PACKET\n};\n","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n , length = 64\n , map = {}\n , seed = 0\n , i = 0\n , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n var encoded = '';\n\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n\n return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n var decoded = 0;\n\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n\n return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n var now = encode(+new Date());\n\n if (now !== prev) return seed = 0, prev = now;\n return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n","module.exports.pick = (obj, ...attr) => {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Socket = void 0;\nconst socket_io_parser_1 = require(\"socket.io-parser\");\nconst on_1 = require(\"./on\");\nconst typed_events_1 = require(\"./typed-events\");\nconst debug = require(\"debug\")(\"socket.io-client:socket\");\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\nclass Socket extends typed_events_1.StrictEventEmitter {\n /**\n * `Socket` constructor.\n *\n * @public\n */\n constructor(io, nsp, opts) {\n super();\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n this.flags = {};\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on_1.on(io, \"open\", this.onopen.bind(this)),\n on_1.on(io, \"packet\", this.onpacket.bind(this)),\n on_1.on(io, \"error\", this.onerror.bind(this)),\n on_1.on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @public\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for connect()\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * @return self\n * @public\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @return self\n * @public\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: socket_io_parser_1.PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n debug(\"emitting packet with ack id %d\", this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n debug(\"discard packet as the transport is not currently writable\");\n }\n else if (this.connected) {\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n debug(\"transport is open - connecting\");\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: socket_io_parser_1.PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: socket_io_parser_1.PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @private\n */\n onclose(reason) {\n debug(\"close (%s)\", reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emitReserved(\"disconnect\", reason);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case socket_io_parser_1.PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case socket_io_parser_1.PacketType.EVENT:\n this.onevent(packet);\n break;\n case socket_io_parser_1.PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case socket_io_parser_1.PacketType.ACK:\n this.onack(packet);\n break;\n case socket_io_parser_1.PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case socket_io_parser_1.PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case socket_io_parser_1.PacketType.CONNECT_ERROR:\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n debug(\"emitting event %j\", args);\n if (null != packet.id) {\n debug(\"attaching ack callback to event\");\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n debug(\"sending ack %j\", args);\n self.packet({\n type: socket_io_parser_1.PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n debug(\"calling ack %s with %j\", packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n debug(\"bad ack %s\", packet.id);\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n debug(\"socket connected with id %s\", id);\n this.id = id;\n this.connected = true;\n this.disconnected = false;\n this.emitReserved(\"connect\");\n this.emitBuffered();\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => this.packet(packet));\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n debug(\"server disconnect (%s)\", this.nsp);\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually.\n *\n * @return self\n * @public\n */\n disconnect() {\n if (this.connected) {\n debug(\"performing disconnect (%s)\", this.nsp);\n this.packet({ type: socket_io_parser_1.PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for disconnect()\n *\n * @return self\n * @public\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n * @public\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @returns self\n * @public\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @param listener\n * @public\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @param listener\n * @public\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @param listener\n * @public\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n *\n * @public\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n}\nexports.Socket = Socket;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasBinary = exports.isBinary = void 0;\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nfunction isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexports.isBinary = isBinary;\nfunction hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\nexports.hasBinary = hasBinary;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.on = void 0;\nfunction on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\nexports.on = on;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StrictEventEmitter = void 0;\nconst Emitter = require(\"component-emitter\");\n/**\n * Strictly typed version of an `EventEmitter`. A `TypedEventEmitter` takes type\n * parameters for mappings of event names to event data types, and strictly\n * types method calls to the `EventEmitter` according to these event maps.\n *\n * @typeParam ListenEvents - `EventsMap` of user-defined events that can be\n * listened to with `on` or `once`\n * @typeParam EmitEvents - `EventsMap` of user-defined events that can be\n * emitted with `emit`\n * @typeParam ReservedEvents - `EventsMap` of reserved events, that can be\n * emitted by socket.io with `emitReserved`, and can be listened to with\n * `listen`.\n */\nclass StrictEventEmitter extends Emitter {\n /**\n * Adds the `listener` function as an event listener for `ev`.\n *\n * @param ev Name of the event\n * @param listener Callback function\n */\n on(ev, listener) {\n super.on(ev, listener);\n return this;\n }\n /**\n * Adds a one-time `listener` function as an event listener for `ev`.\n *\n * @param ev Name of the event\n * @param listener Callback function\n */\n once(ev, listener) {\n super.once(ev, listener);\n return this;\n }\n /**\n * Emits an event.\n *\n * @param ev Name of the event\n * @param args Values to send to listeners of this event\n */\n emit(ev, ...args) {\n super.emit(ev, ...args);\n return this;\n }\n /**\n * Emits a reserved event.\n *\n * This method is `protected`, so that only a class extending\n * `StrictEventEmitter` can emit its own reserved events.\n *\n * @param ev Reserved event name\n * @param args Arguments to emit along with the event\n */\n emitReserved(ev, ...args) {\n super.emit(ev, ...args);\n return this;\n }\n /**\n * Returns the listeners listening to an event.\n *\n * @param event Event name\n * @returns Array of listeners subscribed to `event`\n */\n listeners(event) {\n return super.listeners(event);\n }\n}\nexports.StrictEventEmitter = StrictEventEmitter;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBoundPosition = getBoundPosition;\nexports.snapToGrid = snapToGrid;\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.getControlPosition = getControlPosition;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\n\nvar _shims = require(\"./shims\");\n\nvar _domFns = require(\"./domFns\");\n\nfunction getBoundPosition(draggable\n/*: Draggable*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: [number, number]*/\n{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y]; // Clone new bounds\n\n var bounds = draggable.props.bounds;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n var node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n var ownerDocument = node.ownerDocument;\n var ownerWindow = ownerDocument.defaultView;\n var boundNode;\n\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n\n var nodeStyle = ownerWindow.getComputedStyle(node);\n var boundNodeStyle = ownerWindow.getComputedStyle(boundNode); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNode) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNode) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n } // Keep x and y below right and bottom limits...\n\n\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.\n\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\n\nfunction snapToGrid(grid\n/*: [number, number]*/\n, pendingX\n/*: number*/\n, pendingY\n/*: number*/\n)\n/*: [number, number]*/\n{\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nfunction canDragX(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nfunction canDragY(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n} // Get {x, y} positions from event.\n\n\nfunction getControlPosition(e\n/*: MouseTouchEvent*/\n, touchIdentifier\n/*: ?number*/\n, draggableCore\n/*: DraggableCore*/\n)\n/*: ?ControlPosition*/\n{\n var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n\n var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.\n\n var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n} // Create an data object exposed by 's events\n\n\nfunction createCoreData(draggable\n/*: DraggableCore*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: DraggableData*/\n{\n var state = draggable.state;\n var isStart = !(0, _shims.isNum)(state.lastX);\n var node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x: x,\n y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: node,\n deltaX: x - state.lastX,\n deltaY: y - state.lastY,\n lastX: state.lastX,\n lastY: state.lastY,\n x: x,\n y: y\n };\n }\n} // Create an data exposed by 's events\n\n\nfunction createDraggableData(draggable\n/*: Draggable*/\n, coreData\n/*: DraggableData*/\n)\n/*: DraggableData*/\n{\n var scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n} // A lot faster than stringify/parse\n\n\nfunction cloneBounds(bounds\n/*: Bounds*/\n)\n/*: Bounds*/\n{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable\n/*: Draggable | DraggableCore*/\n)\n/*: HTMLElement*/\n{\n var node = draggable.findDOMNode();\n\n if (!node) {\n throw new Error(': Unmounted during event!');\n } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n\n\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n\n/*eslint no-console:0*/\nfunction log() {\n var _console;\n\n if (undefined) (_console = console).log.apply(_console, arguments);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// 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 pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\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);\n\n // 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 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // 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 var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // 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 var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // 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 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;\n\n // 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 this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // 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 this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\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\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\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.\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 if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\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 if (er) {\n stream.emit('error', 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) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\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 }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\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\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\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 return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\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 }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // 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 if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || 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);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\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\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\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;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // 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 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 = true;\n n = 0;\n } else {\n state.length -= n;\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;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\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.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\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.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\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.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\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 case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\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 }\n\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 var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\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\n cleanedUp = true;\n\n // 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 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\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', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\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 = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\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\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\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, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\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 if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\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.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\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\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\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 if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\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 () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\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.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\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.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\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 if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\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 if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\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 return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\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 && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\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 if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\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.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\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// 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\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\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\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // 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 this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\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};\n\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.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\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 if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\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.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\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 var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\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","// 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 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","'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\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 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 = global.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\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 implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\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 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","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\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 = true;\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","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","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var 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 id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\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","// 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","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"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\nexports.__esModule = true;\nexports.default = void 0;\n\nvar renderGlyphs = function renderGlyphs(ctx, glyphs, positions, x, y, options) {\n if (options === void 0) {\n options = {};\n }\n\n var scale = 1000 / ctx._fontSize;\n var unitsPerEm = ctx._font.font.unitsPerEm || 1000;\n var advanceWidthScale = 1000 / unitsPerEm; // Glyph encoding and positioning\n\n var encodedGlyphs = ctx._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 ctx._glyphs(encodedGlyphs, encodedPositions, x, y, options);\n};\n\nvar _default = renderGlyphs;\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 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 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 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 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 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 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 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 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\n// TODO: Implement using only matrices to support skew and even more operations than css.\nvar applySingleTransformation = function applySingleTransformation(ctx, transform, origin) {\n var operation = transform.operation,\n value = transform.value;\n\n switch (operation) {\n case 'scale':\n {\n var scaleX = value[0],\n scaleY = value[1];\n ctx.scale(scaleX, scaleY, {\n origin: origin\n });\n break;\n }\n\n case 'rotate':\n {\n var angle = value[0];\n ctx.rotate(angle, {\n origin: origin\n });\n break;\n }\n\n case 'translate':\n {\n var x = value[0],\n y = value[1];\n ctx.translate(x, y, {\n origin: origin\n });\n break;\n }\n\n case 'matrix':\n {\n ctx.transform.apply(ctx, value);\n break;\n }\n\n default:\n {\n console.error(\"Transform operation: '\" + operation + \"' doesn't supported\");\n }\n }\n};\n\nvar applyTransformations = function applyTransformations(ctx, node) {\n var _node$style, _node$props;\n\n if (!node.origin) return node;\n var origin = [node.origin.left, node.origin.top];\n var operations = ((_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.transform) || ((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.transform) || [];\n operations.forEach(function (operation) {\n applySingleTransformation(ctx, operation, origin);\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 _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 _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _colorString = _interopRequireDefault(require(\"color-string\"));\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 _default = parseColor;\nexports.default = _default;","/* 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*\\.)?\\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*[\\.]?\\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","'use strict';\n\nvar objectAssign = require('object-assign');\n\n// compare and isBuffer 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 */\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 if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\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\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. 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;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. 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 fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 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 } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\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])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\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;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\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// 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",";(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 () {\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}));","\"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.processTransform = exports.transformColor = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _expand = _interopRequireDefault(require(\"./expand\"));\n\nvar _flatten = _interopRequireDefault(require(\"./flatten\"));\n\nvar _transform = _interopRequireDefault(require(\"./transform\"));\n\nvar _mediaQueries = _interopRequireDefault(require(\"./mediaQueries\"));\n\nvar _colors = _interopRequireDefault(require(\"./transform/colors\"));\n\nexports.transformColor = _colors.default;\n\nvar _transform2 = _interopRequireDefault(require(\"./transform/transform\"));\n\nexports.processTransform = _transform2.default;\n\n/**\n * Resolves styles\n *\n * @param {Object} container\n * @param {Object} style object\n * @returns {Object} resolved style object\n */\nvar resolveStyles = function resolveStyles(container, style) {\n return R.compose((0, _transform.default)(container), _expand.default, (0, _mediaQueries.default)(container), _flatten.default)(style);\n}; // Utils exported for SVG processing\n\n\nvar _default = R.curryN(2, resolveStyles);\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 BOX_MODEL_REGEX = /-?\\d+(\\.\\d+)?(px|in|mm|cm|pt|%|vw|vh|px)?/g;\nvar matchBoxModelValue = R.match(BOX_MODEL_REGEX);\n\nvar expandBoxModel = function expandBoxModel(model) {\n return function (key, value) {\n var _ref;\n\n if (value === 'auto') return _ref = {}, _ref[model + \"Top\"] = 'auto', _ref[model + \"Right\"] = 'auto', _ref[model + \"Bottom\"] = 'auto', _ref[model + \"Left\"] = 'auto', _ref;\n var match = matchBoxModelValue(\"\" + value);\n\n if (match) {\n var _ref4;\n\n var top = match[0];\n var right = match[1] || match[0];\n var bottom = match[2] || match[0];\n var left = match[3] || match[1] || match[0];\n\n if (key.match(/Horizontal$/)) {\n var _ref2;\n\n return _ref2 = {}, _ref2[model + \"Right\"] = right, _ref2[model + \"Left\"] = left, _ref2;\n }\n\n if (key.match(/Vertical$/)) {\n var _ref3;\n\n return _ref3 = {}, _ref3[model + \"Top\"] = top, _ref3[model + \"Bottom\"] = bottom, _ref3;\n }\n\n return _ref4 = {}, _ref4[model + \"Top\"] = top, _ref4[model + \"Right\"] = right, _ref4[model + \"Bottom\"] = bottom, _ref4[model + \"Left\"] = left, _ref4;\n }\n\n return value;\n };\n};\n\nvar _default = expandBoxModel;\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 isNotArray = R.complement(R.is(Array));\nvar castArray = R.when(isNotArray, function (v) {\n return [v];\n});\n/**\n * Remove nil values from array\n *\n * @param {Array} array\n * @returns {Array} array without nils\n */\n\nvar compact = R.filter(Boolean);\n/**\n * Checks if value is array\n *\n * @param {any} value\n * @returns {Boolean} is value an array\n */\n\nvar isArray = R.is(Array);\n/**\n * Merges style objects array\n *\n * @param {Array} style objects array\n * @returns {Object} merged style object\n */\n\nvar mergeStyles = function mergeStyles(styles) {\n return styles.reduce(function (acc, style) {\n var s = isArray(style) ? flatten(style) : style;\n Object.keys(s).forEach(function (key) {\n if (s[key] !== null && s[key] !== undefined) {\n acc[key] = s[key];\n }\n });\n return acc;\n }, {});\n};\n/**\n * Flattens an array of style objects, into one aggregated style object.\n *\n * @param {Array} style objects array\n * @returns {Object} flatted style object\n */\n\n\nvar flatten = R.compose(mergeStyles, compact, castArray);\nvar _default = flatten;\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 _hslToHex = _interopRequireDefault(require(\"hsl-to-hex\"));\n\nvar _colorString = _interopRequireDefault(require(\"color-string\"));\n\nvar isRgb = R.test(/rgb/g);\nvar isRgba = R.test(/rgba/g);\nvar isHsl = R.test(/hsl/g);\nvar isHsla = R.test(/hsla/g);\n/**\n * Transform rgb color to hexa\n *\n * @param {String} styles value\n * @returns {Object} transformed value\n */\n\nvar parseRgb = R.compose(_colorString.default.to.hex, _colorString.default.get.rgb);\n/**\n * Transform Hsl color to hexa\n *\n * @param {String} styles value\n * @returns {Object} transformed value\n */\n\nvar parseHsl = R.compose(R.toUpper, R.apply(_hslToHex.default), R.map(Math.round), _colorString.default.get.hsl);\n/**\n * Transform given color to hexa\n *\n * @param {String} styles value\n * @returns {Object} transformed value\n */\n\nvar transformColor = function transformColor(value) {\n return R.cond([[isRgba, parseRgb], [isRgb, parseRgb], [isHsla, parseHsl], [isHsl, parseHsl], [R.T, R.always(value)]])(value);\n};\n\nvar _default = transformColor;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar parse = function parse(transformString) {\n var transforms = transformString.trim().split(/\\) |\\)/); // Handle \"initial\", \"inherit\", \"unset\".\n\n if (transforms.length === 1) {\n return [[transforms[0], true]];\n }\n\n var parsed = [];\n\n for (var i = 0; i < transforms.length; i += 1) {\n var transform = transforms[i];\n\n if (transform) {\n var _transform$split = transform.split('('),\n name = _transform$split[0],\n rawValue = _transform$split[1];\n\n var splitChar = rawValue.indexOf(',') >= 0 ? ',' : ' ';\n var value = rawValue.split(splitChar).map(function (val) {\n return val.trim();\n });\n parsed.push({\n operation: name,\n value: value\n });\n }\n }\n\n return parsed;\n};\n\nvar normalizeTransformOperation = function normalizeTransformOperation(_ref) {\n var operation = _ref.operation,\n value = _ref.value;\n\n switch (operation) {\n case 'scale':\n {\n var _value$map = value.map(function (num) {\n return Number.parseFloat(num);\n }),\n scaleX = _value$map[0],\n _value$map$ = _value$map[1],\n scaleY = _value$map$ === void 0 ? scaleX : _value$map$;\n\n return {\n operation: 'scale',\n value: [scaleX, scaleY]\n };\n }\n\n case 'scaleX':\n {\n return {\n operation: 'scale',\n value: [Number.parseFloat(value), 1]\n };\n }\n\n case 'scaleY':\n {\n return {\n operation: 'scale',\n value: [1, Number.parseFloat(value)]\n };\n }\n\n case 'rotate':\n {\n var unitsRegexp = /(-?\\d*\\.?\\d*)(\\w*)?/i;\n\n var _unitsRegexp$exec = unitsRegexp.exec(value),\n angle = _unitsRegexp$exec[1],\n unit = _unitsRegexp$exec[2];\n\n var number = Number.parseFloat(angle);\n return {\n operation: 'rotate',\n value: [unit === 'rad' ? number * 180 / Math.PI : number]\n };\n }\n\n case 'translate':\n {\n return {\n operation: 'translate',\n value: value.map(function (num) {\n return Number.parseFloat(num);\n })\n };\n }\n\n case 'translateX':\n {\n return {\n operation: 'translate',\n value: [Number.parseFloat(value), 0]\n };\n }\n\n case 'translateY':\n {\n return {\n operation: 'translate',\n value: [0, Number.parseFloat(value)]\n };\n }\n\n default:\n {\n return {\n operation: operation,\n value: value.map(function (num) {\n return Number.parseFloat(num);\n })\n };\n }\n }\n};\n\nvar normalize = function normalize(operations) {\n return operations.map(function (operation) {\n return normalizeTransformOperation(operation);\n });\n};\n\nvar processTransform = function processTransform(value) {\n if (typeof value !== 'string') return value;\n return normalize(parse(value));\n};\n\nvar _default = processTransform;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar offsetKeyword = function offsetKeyword(value) {\n switch (value) {\n case 'top':\n case 'left':\n return '0%';\n\n case 'right':\n case 'bottom':\n return '100%';\n\n case 'center':\n return '50%';\n\n default:\n return null;\n }\n};\n\nvar _default = offsetKeyword;\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} attributed 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 _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Create attributed string from text fragments\n *\n * @param {Array} fragments\n * @return {Object} attributed string\n */\nvar fromFragments = function fromFragments(fragments) {\n var offset = 0;\n var getRuns = R.map(function (fragment) {\n var run = {\n start: offset,\n end: offset + fragment.string.length,\n attributes: fragment.attributes || {}\n };\n offset += fragment.string.length;\n return run;\n });\n return R.applySpec({\n runs: getRuns,\n string: R.o(R.join(''), R.pluck('string'))\n })(fragments);\n};\n\nvar _default = fromFragments;\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 _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 _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 * 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 _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 _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\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 _reduce = _interopRequireDefault(require(\"./reduce\"));\n\nvar _height = _interopRequireDefault(require(\"../run/height\"));\n\n/**\n * Returns attributed string height\n *\n * @param {Object} attributed string\n * @return {number} height\n */\nvar height = (0, _reduce.default)(R.max, _height.default);\nvar _default = height;\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 _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 _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 end value\n *\n * @param {Object} glyph string\n * @return {number} end\n */\nvar end = R.ifElse(R.pathEq(['runs', 'length'], 0), R.always(0), R.compose(R.prop('end'), R.last, R.prop('runs')));\nvar _default = end;\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 _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 _dropLast = _interopRequireDefault(require(\"../run/dropLast\"));\n\n/**\n * Drop last glyph\n *\n * @param {Object} attributed string\n * @return {Object} attributed string with new glyph\n */\nvar dropLast = function dropLast(string) {\n return R.evolve({\n string: R.dropLast(1),\n runs: R.adjust(-1, _dropLast.default)\n })(string);\n};\n\nvar _default = dropLast;\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\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 _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 _filter = _interopRequireDefault(require(\"../run/filter\"));\n\nvar _advanceWidthBetween = _interopRequireDefault(require(\"../run/advanceWidthBetween\"));\n\n/**\n * Advance width between start and end\n * Does not consider ligature splitting for the moment.\n * Check performance impact on supporting this\n *\n * @param {number} start offset\n * @param {number} end offset\n * @param {Object} attributedString\n * @return {number} advance width\n */\nvar advanceWidthBetween = function advanceWidthBetween(start, end, string) {\n return R.compose(R.sum, R.map((0, _advanceWidthBetween.default)(start, end)), (0, _filter.default)(start, end), R.propOr([], 'runs'))(string);\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 _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 _length = _interopRequireDefault(require(\"../run/length\"));\n\nvar _advanceWidth = _interopRequireDefault(require(\"../run/advanceWidth\"));\n\nvar _indexAtOffset = _interopRequireDefault(require(\"../run/indexAtOffset\"));\n\n/**\n * Get string index at offset\n *\n * @param {Object} attributed string\n * @param {number} offset\n * @return {number} string index at offset N\n */\nvar indexAtOffset = function indexAtOffset(offset, string) {\n var index = 0;\n var counter = 0;\n var runs = R.propOr([], 'runs', string);\n\n for (var i = 0; i < runs.length; i += 1) {\n var run = runs[i];\n var advanceWidth = (0, _advanceWidth.default)(run);\n\n if (counter + advanceWidth > 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 _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\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 _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\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\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 _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\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 !font || !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 i = 0; i < runs.length; i += 1) {\n var run = runs[i];\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 var chars = string.slice(run.start, run.end);\n\n for (var j = 0; j < chars.length; j += 1) {\n var char = chars[j];\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 var fontSize = getFontSize(run); // If anything that would impact res has changed, update it\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\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\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\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;","import PNG from '@react-pdf/png-js';\n\nPNG.isValid = function(data) {\n try {\n return !!new PNG(data);\n } catch (e) {\n return false;\n }\n};\n\nexport default PNG;\n","// Extracted from https://github.com/devongovett/pdfkit/blob/master/lib/image/jpeg.coffee\n\nconst MARKERS = [\n 0xffc0,\n 0xffc1,\n 0xffc2,\n 0xffc3,\n 0xffc5,\n 0xffc6,\n 0xffc7,\n 0xffc8,\n 0xffc9,\n 0xffca,\n 0xffcb,\n 0xffcc,\n 0xffcd,\n 0xffce,\n 0xffcf,\n];\n\nclass JPEG {\n data = null;\n\n width = null;\n\n height = null;\n\n constructor(data) {\n this.data = data;\n\n if (data.readUInt16BE(0) !== 0xffd8) {\n throw new Error('SOI not found in JPEG');\n }\n\n let marker;\n let pos = 2;\n\n while (pos < data.length) {\n marker = data.readUInt16BE(pos);\n pos += 2;\n if (MARKERS.includes(marker)) {\n break;\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\n pos += 2;\n this.width = data.readUInt16BE(pos);\n }\n}\n\nJPEG.isValid = data => {\n if (!data || !Buffer.isBuffer(data) || data.readUInt16BE(0) !== 0xffd8) {\n return false;\n }\n\n let marker;\n let pos = 2;\n\n while (pos < data.length) {\n marker = data.readUInt16BE(pos);\n pos += 2;\n if (MARKERS.includes(marker)) {\n break;\n }\n pos += data.readUInt16BE(pos);\n }\n\n if (!MARKERS.includes(marker)) {\n return false;\n }\n\n return true;\n};\n\nexport default JPEG;\n","const createCache = ({ limit = 100 } = {}) => {\n let cache = {};\n let keys = [];\n\n return {\n get: key => cache[key],\n set: (key, value) => {\n keys.push(key);\n if (keys.length > limit) {\n delete cache[keys.shift()];\n }\n cache[key] = value;\n },\n reset: () => {\n cache = {};\n keys = [];\n },\n length: () => keys.length,\n };\n};\n\nexport default createCache;\n","import fs from 'fs';\nimport url from 'url';\nimport path from 'path';\nimport fetch from 'cross-fetch';\n\nimport PNG from './png';\nimport JPEG from './jpeg';\nimport createCache from './cache';\n\nexport const IMAGE_CACHE = createCache({ limit: 30 });\n\nconst getAbsoluteLocalPath = src => {\n if (BROWSER) {\n throw new Error('Cannot check local paths in client-side environment');\n }\n\n const { protocol, auth, host, port, hostname, path: pathname } = url.parse(\n src,\n );\n const absolutePath = path.resolve(pathname);\n if ((protocol && protocol !== 'file:') || auth || host || port || hostname) {\n return undefined;\n }\n return absolutePath;\n};\n\nconst fetchLocalFile = src =>\n new Promise((resolve, reject) => {\n try {\n if (BROWSER) {\n reject(new Error('Cannot fetch local file in this environemnt'));\n return;\n }\n const absolutePath = getAbsoluteLocalPath(src);\n if (!absolutePath) {\n reject(new Error(`Cannot fetch non-local path: ${src}`));\n return;\n }\n fs.readFile(absolutePath, (err, data) =>\n err ? reject(err) : resolve(data),\n );\n } catch (err) {\n reject(err);\n }\n });\n\nconst fetchRemoteFile = async (uri, options) => {\n const response = await fetch(uri, options);\n\n const buffer = await (response.buffer\n ? response.buffer()\n : response.arrayBuffer());\n\n return buffer.constructor.name === 'Buffer' ? buffer : Buffer.from(buffer);\n};\n\nconst isValidFormat = format => {\n const lower = format.toLowerCase();\n return lower === 'jpg' || lower === 'jpeg' || lower === 'png';\n};\n\nconst guessFormat = buffer => {\n let format;\n\n if (JPEG.isValid(buffer)) {\n format = 'jpg';\n } else if (PNG.isValid(buffer)) {\n format = 'png';\n }\n\n return format;\n};\n\nconst isCompatibleBase64 = ({ uri }) =>\n /^data:image\\/[a-zA-Z]*;base64,[^\"]*/g.test(uri);\n\nfunction getImage(body, extension) {\n switch (extension.toLowerCase()) {\n case 'jpg':\n case 'jpeg':\n return new JPEG(body);\n case 'png':\n return new PNG(body);\n default:\n return null;\n }\n}\n\nconst resolveBase64Image = ({ uri }) => {\n const match = /^data:image\\/([a-zA-Z]*);base64,([^\"]*)/g.exec(uri);\n const format = match[1];\n const data = match[2];\n\n if (!isValidFormat(format)) {\n throw new Error(`Base64 image invalid format: ${format}`);\n }\n\n return new Promise(resolve => {\n return resolve(getImage(Buffer.from(data, 'base64'), format));\n });\n};\n\nconst resolveImageFromData = src => {\n if (src.data && src.format) {\n return new Promise(resolve => resolve(getImage(src.data, src.format)));\n }\n\n throw new Error(`Invalid data given for local file: ${JSON.stringify(src)}`);\n};\n\nconst resolveBufferImage = buffer => {\n const format = guessFormat(buffer);\n\n if (format) {\n return new Promise(resolve => resolve(getImage(buffer, format)));\n }\n\n return Promise.resolve();\n};\n\nconst getImageFormat = body => {\n const isPng =\n body[0] === 137 &&\n body[1] === 80 &&\n body[2] === 78 &&\n body[3] === 71 &&\n body[4] === 13 &&\n body[5] === 10 &&\n body[6] === 26 &&\n body[7] === 10;\n\n const isJpg = body[0] === 255 && body[1] === 216 && body[2] === 255;\n\n let extension = '';\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\nconst resolveImageFromUrl = async src => {\n const { uri, body, headers, method = 'GET' } = src;\n\n const data =\n !BROWSER && getAbsoluteLocalPath(uri)\n ? await fetchLocalFile(uri)\n : await fetchRemoteFile(uri, { body, headers, method });\n\n const extension = getImageFormat(data);\n\n return getImage(data, extension);\n};\n\nconst resolveImage = (src, { cache = true } = {}) => {\n const 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 let image;\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\nexport default resolveImage;\n","\"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 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 _default = getWrap;\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\n/* eslint-disable no-param-reassign */\nvar isType = R.propEq('type');\nvar isSvg = isType(P.Svg);\nvar isText = isType(P.Text);\nvar isNotSvg = R.complement(isSvg);\nvar isNotText = R.complement(isText);\n\nvar shouldIterate = function shouldIterate(node) {\n return isNotSvg(node) && isNotText(node);\n};\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 if (shouldLayoutText(node)) {\n var width = node.box.width - (node.box.paddingRight + node.box.paddingLeft);\n var height = node.box.height - (node.box.paddingTop + node.box.paddingBottom);\n node.lines = (0, _layoutText.default)(node, width, height, fontStore);\n }\n\n if (shouldIterate(node)) {\n var mapChild = function mapChild(child) {\n return resolveTextLayout(child, fontStore);\n };\n\n return R.evolve({\n children: R.map(mapChild)\n })(node);\n }\n\n return node;\n};\n\nvar _default = resolveTextLayout;\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\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 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')); // Merge style values\n\nvar mergeValues = function mergeValues(styleName, value, inheritedValue) {\n switch (styleName) {\n case 'textDecoration':\n {\n // merge not none and not false textDecoration values to one rule\n return [inheritedValue, value].filter(function (v) {\n return v && v !== 'none';\n }).join(' ');\n }\n\n default:\n return value;\n }\n}; // Merge inherited and node styles\n\n\nvar merge = function merge(inheritedStyles, style) {\n var mergedStyles = (0, _extends2.default)({}, inheritedStyles);\n Object.entries(style).forEach(function (_ref) {\n var styleName = _ref[0],\n value = _ref[1];\n mergedStyles[styleName] = mergeValues(styleName, value, inheritedStyles[styleName]);\n });\n return mergedStyles;\n};\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\n\nvar mergeStyles = function mergeStyles(inheritedStyles) {\n return R.evolve({\n style: function style(_style) {\n return merge(inheritedStyles, _style);\n }\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 _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 var value = isPage(node) ? node.box.height : node.style.height;\n return (0, _setDimension.setHeight)(value);\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\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;","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n 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}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Socket = exports.io = exports.Manager = exports.protocol = void 0;\nconst url_1 = require(\"./url\");\nconst manager_1 = require(\"./manager\");\nconst socket_1 = require(\"./socket\");\nObject.defineProperty(exports, \"Socket\", { enumerable: true, get: function () { return socket_1.Socket; } });\nconst debug = require(\"debug\")(\"socket.io-client\");\n/**\n * Module exports.\n */\nmodule.exports = exports = lookup;\n/**\n * Managers cache.\n */\nconst cache = (exports.managers = {});\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url_1.url(uri, opts.path);\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n debug(\"ignoring socket cache for %s\", source);\n io = new manager_1.Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n debug(\"new io instance for %s\", source);\n cache[id] = new manager_1.Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\nexports.io = lookup;\n/**\n * Protocol version.\n *\n * @public\n */\nvar socket_io_parser_1 = require(\"socket.io-parser\");\nObject.defineProperty(exports, \"protocol\", { enumerable: true, get: function () { return socket_io_parser_1.protocol; } });\n/**\n * `connect`.\n *\n * @param {String} uri\n * @public\n */\nexports.connect = lookup;\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nvar manager_2 = require(\"./manager\");\nObject.defineProperty(exports, \"Manager\", { enumerable: true, get: function () { return manager_2.Manager; } });\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","(function (global) {\n 'use strict';\n\n var util = newUtil();\n var inliner = newInliner();\n var fontFaces = newFontFaces();\n var images = newImages();\n\n // Default impl options\n var defaultOptions = {\n // Default is to fail on error, no placeholder\n imagePlaceholder: undefined,\n // Default cache bust is false, it will use the cache\n cacheBust: false\n };\n\n var domtoimage = {\n toSvg: toSvg,\n toPng: toPng,\n toJpeg: toJpeg,\n toBlob: toBlob,\n toPixelData: toPixelData,\n impl: {\n fontFaces: fontFaces,\n images: images,\n util: util,\n inliner: inliner,\n options: {}\n }\n };\n\n if (typeof module !== 'undefined')\n module.exports = domtoimage;\n else\n global.domtoimage = domtoimage;\n\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options\n * @param {Function} options.filter - Should return true if passed node should be included in the output\n * (excluding node means excluding it's children as well). Not called on the root node.\n * @param {String} options.bgcolor - color for the background, any valid CSS color value.\n * @param {Number} options.width - width to be applied to node before rendering.\n * @param {Number} options.height - height to be applied to node before rendering.\n * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.\n * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),\n defaults to 1.0.\n * @param {String} options.imagePlaceholder - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch\n * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url\n * @return {Promise} - A promise that is fulfilled with a SVG image data URL\n * */\n function toSvg(node, options) {\n options = options || {};\n copyOptions(options);\n return Promise.resolve(node)\n .then(function (node) {\n return cloneNode(node, options.filter, true);\n })\n .then(embedFonts)\n .then(inlineImages)\n .then(applyOptions)\n .then(function (clone) {\n return makeSvgDataUri(clone,\n options.width || util.width(node),\n options.height || util.height(node)\n );\n });\n\n function applyOptions(clone) {\n if (options.bgcolor) clone.style.backgroundColor = options.bgcolor;\n\n if (options.width) clone.style.width = options.width + 'px';\n if (options.height) clone.style.height = options.height + 'px';\n\n if (options.style)\n Object.keys(options.style).forEach(function (property) {\n clone.style[property] = options.style[property];\n });\n\n return clone;\n }\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.\n * */\n function toPixelData(node, options) {\n return draw(node, options || {})\n .then(function (canvas) {\n return canvas.getContext('2d').getImageData(\n 0,\n 0,\n util.width(node),\n util.height(node)\n ).data;\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a PNG image data URL\n * */\n function toPng(node, options) {\n return draw(node, options || {})\n .then(function (canvas) {\n return canvas.toDataURL();\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a JPEG image data URL\n * */\n function toJpeg(node, options) {\n options = options || {};\n return draw(node, options)\n .then(function (canvas) {\n return canvas.toDataURL('image/jpeg', options.quality || 1.0);\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a PNG image blob\n * */\n function toBlob(node, options) {\n return draw(node, options || {})\n .then(util.canvasToBlob);\n }\n\n function copyOptions(options) {\n // Copy options to impl options for use in impl\n if(typeof(options.imagePlaceholder) === 'undefined') {\n domtoimage.impl.options.imagePlaceholder = defaultOptions.imagePlaceholder;\n } else {\n domtoimage.impl.options.imagePlaceholder = options.imagePlaceholder;\n }\n\n if(typeof(options.cacheBust) === 'undefined') {\n domtoimage.impl.options.cacheBust = defaultOptions.cacheBust;\n } else {\n domtoimage.impl.options.cacheBust = options.cacheBust;\n }\n }\n\n function draw(domNode, options) {\n return toSvg(domNode, options)\n .then(util.makeImage)\n .then(util.delay(100))\n .then(function (image) {\n var canvas = newCanvas(domNode);\n canvas.getContext('2d').drawImage(image, 0, 0);\n return canvas;\n });\n\n function newCanvas(domNode) {\n var canvas = document.createElement('canvas');\n canvas.width = options.width || util.width(domNode);\n canvas.height = options.height || util.height(domNode);\n\n if (options.bgcolor) {\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = options.bgcolor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n\n return canvas;\n }\n }\n\n function cloneNode(node, filter, root) {\n if (!root && filter && !filter(node)) return Promise.resolve();\n\n return Promise.resolve(node)\n .then(makeNodeCopy)\n .then(function (clone) {\n return cloneChildren(node, clone, filter);\n })\n .then(function (clone) {\n return processClone(node, clone);\n });\n\n function makeNodeCopy(node) {\n if (node instanceof HTMLCanvasElement) return util.makeImage(node.toDataURL());\n return node.cloneNode(false);\n }\n\n function cloneChildren(original, clone, filter) {\n var children = original.childNodes;\n if (children.length === 0) return Promise.resolve(clone);\n\n return cloneChildrenInOrder(clone, util.asArray(children), filter)\n .then(function () {\n return clone;\n });\n\n function cloneChildrenInOrder(parent, children, filter) {\n var done = Promise.resolve();\n children.forEach(function (child) {\n done = done\n .then(function () {\n return cloneNode(child, filter);\n })\n .then(function (childClone) {\n if (childClone) parent.appendChild(childClone);\n });\n });\n return done;\n }\n }\n\n function processClone(original, clone) {\n if (!(clone instanceof Element)) return clone;\n\n return Promise.resolve()\n .then(cloneStyle)\n .then(clonePseudoElements)\n .then(copyUserInput)\n .then(fixSvg)\n .then(function () {\n return clone;\n });\n\n function cloneStyle() {\n copyStyle(window.getComputedStyle(original), clone.style);\n\n function copyStyle(source, target) {\n if (source.cssText) target.cssText = source.cssText;\n else copyProperties(source, target);\n\n function copyProperties(source, target) {\n util.asArray(source).forEach(function (name) {\n target.setProperty(\n name,\n source.getPropertyValue(name),\n source.getPropertyPriority(name)\n );\n });\n }\n }\n }\n\n function clonePseudoElements() {\n [':before', ':after'].forEach(function (element) {\n clonePseudoElement(element);\n });\n\n function clonePseudoElement(element) {\n var style = window.getComputedStyle(original, element);\n var content = style.getPropertyValue('content');\n\n if (content === '' || content === 'none') return;\n\n var className = util.uid();\n clone.className = clone.className + ' ' + className;\n var styleElement = document.createElement('style');\n styleElement.appendChild(formatPseudoElementStyle(className, element, style));\n clone.appendChild(styleElement);\n\n function formatPseudoElementStyle(className, element, style) {\n var selector = '.' + className + ':' + element;\n var cssText = style.cssText ? formatCssText(style) : formatCssProperties(style);\n return document.createTextNode(selector + '{' + cssText + '}');\n\n function formatCssText(style) {\n var content = style.getPropertyValue('content');\n return style.cssText + ' content: ' + content + ';';\n }\n\n function formatCssProperties(style) {\n\n return util.asArray(style)\n .map(formatProperty)\n .join('; ') + ';';\n\n function formatProperty(name) {\n return name + ': ' +\n style.getPropertyValue(name) +\n (style.getPropertyPriority(name) ? ' !important' : '');\n }\n }\n }\n }\n }\n\n function copyUserInput() {\n if (original instanceof HTMLTextAreaElement) clone.innerHTML = original.value;\n if (original instanceof HTMLInputElement) clone.setAttribute(\"value\", original.value);\n }\n\n function fixSvg() {\n if (!(clone instanceof SVGElement)) return;\n clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (!(clone instanceof SVGRectElement)) return;\n ['width', 'height'].forEach(function (attribute) {\n var value = clone.getAttribute(attribute);\n if (!value) return;\n\n clone.style.setProperty(attribute, value);\n });\n }\n }\n }\n\n function embedFonts(node) {\n return fontFaces.resolveAll()\n .then(function (cssText) {\n var styleNode = document.createElement('style');\n node.appendChild(styleNode);\n styleNode.appendChild(document.createTextNode(cssText));\n return node;\n });\n }\n\n function inlineImages(node) {\n return images.inlineAll(node)\n .then(function () {\n return node;\n });\n }\n\n function makeSvgDataUri(node, width, height) {\n return Promise.resolve(node)\n .then(function (node) {\n node.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');\n return new XMLSerializer().serializeToString(node);\n })\n .then(util.escapeXhtml)\n .then(function (xhtml) {\n return '' + xhtml + '';\n })\n .then(function (foreignObject) {\n return '' +\n foreignObject + '';\n })\n .then(function (svg) {\n return 'data:image/svg+xml;charset=utf-8,' + svg;\n });\n }\n\n function newUtil() {\n return {\n escape: escape,\n parseExtension: parseExtension,\n mimeType: mimeType,\n dataAsUrl: dataAsUrl,\n isDataUrl: isDataUrl,\n canvasToBlob: canvasToBlob,\n resolveUrl: resolveUrl,\n getAndEncode: getAndEncode,\n uid: uid(),\n delay: delay,\n asArray: asArray,\n escapeXhtml: escapeXhtml,\n makeImage: makeImage,\n width: width,\n height: height\n };\n\n function mimes() {\n /*\n * Only WOFF and EOT mime types for fonts are 'real'\n * see http://www.iana.org/assignments/media-types/media-types.xhtml\n */\n var WOFF = 'application/font-woff';\n var JPEG = 'image/jpeg';\n\n return {\n 'woff': WOFF,\n 'woff2': WOFF,\n 'ttf': 'application/font-truetype',\n 'eot': 'application/vnd.ms-fontobject',\n 'png': 'image/png',\n 'jpg': JPEG,\n 'jpeg': JPEG,\n 'gif': 'image/gif',\n 'tiff': 'image/tiff',\n 'svg': 'image/svg+xml'\n };\n }\n\n function parseExtension(url) {\n var match = /\\.([^\\.\\/]*?)$/g.exec(url);\n if (match) return match[1];\n else return '';\n }\n\n function mimeType(url) {\n var extension = parseExtension(url).toLowerCase();\n return mimes()[extension] || '';\n }\n\n function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n }\n\n function toBlob(canvas) {\n return new Promise(function (resolve) {\n var binaryString = window.atob(canvas.toDataURL().split(',')[1]);\n var length = binaryString.length;\n var binaryArray = new Uint8Array(length);\n\n for (var i = 0; i < length; i++)\n binaryArray[i] = binaryString.charCodeAt(i);\n\n resolve(new Blob([binaryArray], {\n type: 'image/png'\n }));\n });\n }\n\n function canvasToBlob(canvas) {\n if (canvas.toBlob)\n return new Promise(function (resolve) {\n canvas.toBlob(resolve);\n });\n\n return toBlob(canvas);\n }\n\n function resolveUrl(url, baseUrl) {\n var doc = document.implementation.createHTMLDocument();\n var base = doc.createElement('base');\n doc.head.appendChild(base);\n var a = doc.createElement('a');\n doc.body.appendChild(a);\n base.href = baseUrl;\n a.href = url;\n return a.href;\n }\n\n function uid() {\n var index = 0;\n\n return function () {\n return 'u' + fourRandomChars() + index++;\n\n function fourRandomChars() {\n /* see http://stackoverflow.com/a/6248722/2519373 */\n return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);\n }\n };\n }\n\n function makeImage(uri) {\n return new Promise(function (resolve, reject) {\n var image = new Image();\n image.onload = function () {\n resolve(image);\n };\n image.onerror = reject;\n image.src = uri;\n });\n }\n\n function getAndEncode(url) {\n var TIMEOUT = 30000;\n if(domtoimage.impl.options.cacheBust) {\n // Cache bypass so we dont have CORS issues with cached images\n // Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n url += ((/\\?/).test(url) ? \"&\" : \"?\") + (new Date()).getTime();\n }\n\n return new Promise(function (resolve) {\n var request = new XMLHttpRequest();\n\n request.onreadystatechange = done;\n request.ontimeout = timeout;\n request.responseType = 'blob';\n request.timeout = TIMEOUT;\n request.open('GET', url, true);\n request.send();\n\n var placeholder;\n if(domtoimage.impl.options.imagePlaceholder) {\n var split = domtoimage.impl.options.imagePlaceholder.split(/,/);\n if(split && split[1]) {\n placeholder = split[1];\n }\n }\n\n function done() {\n if (request.readyState !== 4) return;\n\n if (request.status !== 200) {\n if(placeholder) {\n resolve(placeholder);\n } else {\n fail('cannot fetch resource: ' + url + ', status: ' + request.status);\n }\n\n return;\n }\n\n var encoder = new FileReader();\n encoder.onloadend = function () {\n var content = encoder.result.split(/,/)[1];\n resolve(content);\n };\n encoder.readAsDataURL(request.response);\n }\n\n function timeout() {\n if(placeholder) {\n resolve(placeholder);\n } else {\n fail('timeout of ' + TIMEOUT + 'ms occured while fetching resource: ' + url);\n }\n }\n\n function fail(message) {\n console.error(message);\n resolve('');\n }\n });\n }\n\n function dataAsUrl(content, type) {\n return 'data:' + type + ';base64,' + content;\n }\n\n function escape(string) {\n return string.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n function delay(ms) {\n return function (arg) {\n return new Promise(function (resolve) {\n setTimeout(function () {\n resolve(arg);\n }, ms);\n });\n };\n }\n\n function asArray(arrayLike) {\n var array = [];\n var length = arrayLike.length;\n for (var i = 0; i < length; i++) array.push(arrayLike[i]);\n return array;\n }\n\n function escapeXhtml(string) {\n return string.replace(/#/g, '%23').replace(/\\n/g, '%0A');\n }\n\n function width(node) {\n var leftBorder = px(node, 'border-left-width');\n var rightBorder = px(node, 'border-right-width');\n return node.scrollWidth + leftBorder + rightBorder;\n }\n\n function height(node) {\n var topBorder = px(node, 'border-top-width');\n var bottomBorder = px(node, 'border-bottom-width');\n return node.scrollHeight + topBorder + bottomBorder;\n }\n\n function px(node, styleProperty) {\n var value = window.getComputedStyle(node).getPropertyValue(styleProperty);\n return parseFloat(value.replace('px', ''));\n }\n }\n\n function newInliner() {\n var URL_REGEX = /url\\(['\"]?([^'\"]+?)['\"]?\\)/g;\n\n return {\n inlineAll: inlineAll,\n shouldProcess: shouldProcess,\n impl: {\n readUrls: readUrls,\n inline: inline\n }\n };\n\n function shouldProcess(string) {\n return string.search(URL_REGEX) !== -1;\n }\n\n function readUrls(string) {\n var result = [];\n var match;\n while ((match = URL_REGEX.exec(string)) !== null) {\n result.push(match[1]);\n }\n return result.filter(function (url) {\n return !util.isDataUrl(url);\n });\n }\n\n function inline(string, url, baseUrl, get) {\n return Promise.resolve(url)\n .then(function (url) {\n return baseUrl ? util.resolveUrl(url, baseUrl) : url;\n })\n .then(get || util.getAndEncode)\n .then(function (data) {\n return util.dataAsUrl(data, util.mimeType(url));\n })\n .then(function (dataUrl) {\n return string.replace(urlAsRegex(url), '$1' + dataUrl + '$3');\n });\n\n function urlAsRegex(url) {\n return new RegExp('(url\\\\([\\'\"]?)(' + util.escape(url) + ')([\\'\"]?\\\\))', 'g');\n }\n }\n\n function inlineAll(string, baseUrl, get) {\n if (nothingToInline()) return Promise.resolve(string);\n\n return Promise.resolve(string)\n .then(readUrls)\n .then(function (urls) {\n var done = Promise.resolve(string);\n urls.forEach(function (url) {\n done = done.then(function (string) {\n return inline(string, url, baseUrl, get);\n });\n });\n return done;\n });\n\n function nothingToInline() {\n return !shouldProcess(string);\n }\n }\n }\n\n function newFontFaces() {\n return {\n resolveAll: resolveAll,\n impl: {\n readAll: readAll\n }\n };\n\n function resolveAll() {\n return readAll(document)\n .then(function (webFonts) {\n return Promise.all(\n webFonts.map(function (webFont) {\n return webFont.resolve();\n })\n );\n })\n .then(function (cssStrings) {\n return cssStrings.join('\\n');\n });\n }\n\n function readAll() {\n return Promise.resolve(util.asArray(document.styleSheets))\n .then(getCssRules)\n .then(selectWebFontRules)\n .then(function (rules) {\n return rules.map(newWebFont);\n });\n\n function selectWebFontRules(cssRules) {\n return cssRules\n .filter(function (rule) {\n return rule.type === CSSRule.FONT_FACE_RULE;\n })\n .filter(function (rule) {\n return inliner.shouldProcess(rule.style.getPropertyValue('src'));\n });\n }\n\n function getCssRules(styleSheets) {\n var cssRules = [];\n styleSheets.forEach(function (sheet) {\n try {\n util.asArray(sheet.cssRules || []).forEach(cssRules.push.bind(cssRules));\n } catch (e) {\n console.log('Error while reading CSS rules from ' + sheet.href, e.toString());\n }\n });\n return cssRules;\n }\n\n function newWebFont(webFontRule) {\n return {\n resolve: function resolve() {\n var baseUrl = (webFontRule.parentStyleSheet || {}).href;\n return inliner.inlineAll(webFontRule.cssText, baseUrl);\n },\n src: function () {\n return webFontRule.style.getPropertyValue('src');\n }\n };\n }\n }\n }\n\n function newImages() {\n return {\n inlineAll: inlineAll,\n impl: {\n newImage: newImage\n }\n };\n\n function newImage(element) {\n return {\n inline: inline\n };\n\n function inline(get) {\n if (util.isDataUrl(element.src)) return Promise.resolve();\n\n return Promise.resolve(element.src)\n .then(get || util.getAndEncode)\n .then(function (data) {\n return util.dataAsUrl(data, util.mimeType(element.src));\n })\n .then(function (dataUrl) {\n return new Promise(function (resolve, reject) {\n element.onload = resolve;\n element.onerror = reject;\n element.src = dataUrl;\n });\n });\n }\n }\n\n function inlineAll(node) {\n if (!(node instanceof Element)) return Promise.resolve(node);\n\n return inlineBackground(node)\n .then(function () {\n if (node instanceof HTMLImageElement)\n return newImage(node).inline();\n else\n return Promise.all(\n util.asArray(node.childNodes).map(function (child) {\n return inlineAll(child);\n })\n );\n });\n\n function inlineBackground(node) {\n var background = node.style.getPropertyValue('background');\n\n if (!background) return Promise.resolve(node);\n\n return inliner.inlineAll(background)\n .then(function (inlined) {\n node.style.setProperty(\n 'background',\n inlined,\n node.style.getPropertyPriority('background')\n );\n })\n .then(function () {\n return node;\n });\n }\n }\n }\n})(this);\n","\"use strict\";\n\nvar _require = require('./Draggable'),\n Draggable = _require.default,\n DraggableCore = _require.DraggableCore; // Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\n\n\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","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","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","/* eslint-disable max-classes-per-file */\n\nimport isUrl from 'is-url';\nimport fetch from 'cross-fetch';\nimport fontkit from '@react-pdf/fontkit';\n\nconst 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\nconst fetchFont = async (src, options) => {\n const response = await fetch(src, options);\n\n const buffer = await (response.buffer\n ? response.buffer()\n : response.arrayBuffer());\n\n return buffer.constructor.name === 'Buffer' ? buffer : Buffer.from(buffer);\n};\n\nconst isDataUrl = dataUrl => {\n const header = dataUrl.split(',')[0];\n const hasDataPrefix = header.substring(0, 5) === 'data:';\n const hasBase64Prefix = header.split(';')[1] === 'base64';\n\n return hasDataPrefix && hasBase64Prefix;\n};\n\nconst resolveFontWeight = value => {\n return typeof value === 'string' ? FONT_WEIGHTS[value] : value;\n};\n\nconst sortByFontWeight = (a, b) => a.fontWeight - b.fontWeight;\n\nclass FontSource {\n constructor(src, fontFamily, fontStyle, fontWeight, options) {\n this.src = src;\n this.fontFamily = fontFamily;\n this.fontStyle = fontStyle || 'normal';\n this.fontWeight = fontWeight || 400;\n\n this.data = null;\n this.loading = false;\n this.options = options;\n }\n\n async load() {\n this.loading = true;\n\n const { postscriptName } = this.options;\n\n if (isDataUrl(this.src)) {\n this.data = fontkit.create(\n Buffer.from(this.src.split(',')[1], 'base64'),\n postscriptName,\n );\n } else if (BROWSER || isUrl(this.src)) {\n const { headers, body, method = 'GET' } = this.options;\n const data = await fetchFont(this.src, { method, body, headers });\n this.data = fontkit.create(data, postscriptName);\n } else {\n this.data = await new Promise((resolve, reject) =>\n fontkit.open(this.src, postscriptName, (err, data) =>\n err ? reject(err) : resolve(data),\n ),\n );\n }\n\n this.loading = false;\n }\n}\n\nclass Font {\n static create(family) {\n return new Font(family);\n }\n\n constructor(family) {\n this.family = family;\n this.sources = [];\n }\n\n register({ src, fontWeight, fontStyle, ...options }) {\n const numericFontWeight = resolveFontWeight(fontWeight);\n\n this.sources.push(\n new FontSource(src, this.family, fontStyle, numericFontWeight, options),\n );\n }\n\n resolve(descriptor) {\n const { fontWeight = 400, fontStyle = 'normal' } = descriptor;\n const styleSources = this.sources.filter(s => s.fontStyle === fontStyle);\n\n // Weight resolution. https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Fallback_weights\n const exactFit = styleSources.find(s => s.fontWeight === fontWeight);\n\n if (exactFit) return exactFit;\n\n let res;\n\n if (fontWeight >= 400 && fontWeight <= 500) {\n const leftOffset = styleSources.filter(s => s.fontWeight <= fontWeight);\n const rightOffset = styleSources.filter(s => s.fontWeight > 500);\n const fit = styleSources.filter(\n s => s.fontWeight >= fontWeight && s.fontWeight < 500,\n );\n\n res = fit[0] || leftOffset[leftOffset.length - 1] || rightOffset[0];\n }\n\n const lt = styleSources\n .filter(s => s.fontWeight < fontWeight)\n .sort(sortByFontWeight);\n const gt = styleSources\n .filter(s => 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(\n `Could not resolve font for ${this.family}, fontWeight ${fontWeight}`,\n );\n }\n\n return res;\n }\n}\n\nexport default Font;\n","export default [\n 'Courier',\n 'Courier-Bold',\n 'Courier-Oblique',\n 'Helvetica',\n 'Helvetica-Bold',\n 'Helvetica-Oblique',\n 'Times-Roman',\n 'Times-Bold',\n 'Times-Italic',\n];\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _renderNode = _interopRequireDefault(require(\"./primitives/renderNode\"));\n\nvar _addMetadata = _interopRequireDefault(require(\"./operations/addMetadata\"));\n\nvar renderDocument = function renderDocument(ctx) {\n return function (doc) {\n var pages = doc.children || [];\n pages.forEach((0, _renderNode.default)(ctx));\n };\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar TAU = Math.PI * 2;\n\nvar mapToEllipse = function mapToEllipse(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x,\n y = _ref.y;\n\n x *= rx;\n y *= ry;\n\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n\n return {\n x: xp + centerx,\n y: yp + centery\n };\n};\n\nvar approxUnitArc = function approxUnitArc(ang1, ang2) {\n // If 90 degree circular arc, use a constant\n // as derived from http://spencermortensen.com/articles/bezier-circle\n var a = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);\n\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n};\n\nvar vectorAngle = function vectorAngle(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n\n var dot = ux * vx + uy * vy;\n\n if (dot > 1) {\n dot = 1;\n }\n\n if (dot < -1) {\n dot = -1;\n }\n\n return sign * Math.acos(dot);\n};\n\nvar getArcCenter = function getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n\n if (radicant < 0) {\n radicant = 0;\n }\n\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n\n return [centerx, centery, ang1, ang2];\n};\n\nvar arcToBezier = function arcToBezier(_ref2) {\n var px = _ref2.px,\n py = _ref2.py,\n cx = _ref2.cx,\n cy = _ref2.cy,\n rx = _ref2.rx,\n ry = _ref2.ry,\n _ref2$xAxisRotation = _ref2.xAxisRotation,\n xAxisRotation = _ref2$xAxisRotation === undefined ? 0 : _ref2$xAxisRotation,\n _ref2$largeArcFlag = _ref2.largeArcFlag,\n largeArcFlag = _ref2$largeArcFlag === undefined ? 0 : _ref2$largeArcFlag,\n _ref2$sweepFlag = _ref2.sweepFlag,\n sweepFlag = _ref2$sweepFlag === undefined ? 0 : _ref2$sweepFlag;\n\n var curves = [];\n\n if (rx === 0 || ry === 0) {\n return [];\n }\n\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp),\n _getArcCenter2 = _slicedToArray(_getArcCenter, 4),\n centerx = _getArcCenter2[0],\n centery = _getArcCenter2[1],\n ang1 = _getArcCenter2[2],\n ang2 = _getArcCenter2[3];\n\n // If 'ang2' == 90.0000000001, then `ratio` will evaluate to\n // 1.0000000001. This causes `segments` to be greater than one, which is an\n // unecessary split, and adds extra points to the bezier curve. To alleviate\n // this issue, we round to 1.0 when the ratio is close to 1.0.\n\n\n var ratio = Math.abs(ang2) / (TAU / 4);\n if (Math.abs(1.0 - ratio) < 0.0000001) {\n ratio = 1.0;\n }\n\n var segments = Math.max(Math.ceil(ratio), 1);\n\n ang2 /= segments;\n\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n\n return curves.map(function (curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery),\n x1 = _mapToEllipse.x,\n y1 = _mapToEllipse.y;\n\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery),\n x2 = _mapToEllipse2.x,\n y2 = _mapToEllipse2.y;\n\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery),\n x = _mapToEllipse3.x,\n y = _mapToEllipse3.y;\n\n return { x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y };\n });\n};\n\nexports.default = arcToBezier;\nmodule.exports = exports.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\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-reconciler.production.min.js');\n} else {\n module.exports = require('./cjs/react-reconciler.development.js');\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useControlledState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n var _React$useState = React.useState(function () {\n if (value !== undefined) {\n return value;\n }\n\n if (defaultValue !== undefined) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerValue = _React$useState2[0],\n setInnerValue = _React$useState2[1];\n\n var mergedValue = value !== undefined ? value : innerValue;\n\n if (postState) {\n mergedValue = postState(mergedValue);\n }\n\n function triggerChange(newValue) {\n setInnerValue(newValue);\n\n if (mergedValue !== newValue && onChange) {\n onChange(newValue, mergedValue);\n }\n } // Effect of reset value to `undefined`\n\n\n var firstRenderRef = React.useRef(true);\n React.useEffect(function () {\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n return;\n }\n\n if (value === undefined) {\n setInnerValue(value);\n }\n }, [value]);\n return [mergedValue, triggerChange];\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = name + '=' + value;\n\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n\n case 'lax':\n str += '; SameSite=Lax';\n break;\n\n case 'strict':\n str += '; SameSite=Strict';\n break;\n\n case 'none':\n str += '; SameSite=None';\n break;\n\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n};\n\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = name + '=';\n var ca = document.cookie.split(';');\n\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var search = window.location.search;\n\n if (!window.location.search && window.location.hash && window.location.hash.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n\n var query = search.substring(1);\n var params = query.split('&');\n\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\n\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n\n return hasLocalStorageSupport;\n};\n\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\n\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n\n return hasSessionStorageSupport;\n};\n\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.href.match(/(?:http[s]*\\:\\/\\/)*(.*?)\\.(?=[^\\/]*\\..{2,5})/gi);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromSubdomainIndex === 'number') {\n found = language[options.lookupFromSubdomainIndex].replace('http://', '').replace('https://', '').replace('.', '');\n } else {\n found = language[0].replace('http://', '').replace('https://', '').replace('.', '');\n }\n }\n }\n\n return found;\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'] //cookieMinutes: 10,\n //cookieDomain: 'myDomain'\n\n };\n}\n\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Browser);\n\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults()); // backwards compatibility\n\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n\n return Browser;\n}();\n\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","export var IconsManifest = [\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n }\n]","import React from 'react';\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React from 'react';\nimport { IconContext, DefaultContext } from './iconContext';\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function (conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function AiFillAccountBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM648.3 426.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V752c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z\"}}]})(props);\n};\nexport function AiFillAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 244c176.18 0 319 142.82 319 319v233a32 32 0 0 1-32 32H225a32 32 0 0 1-32-32V563c0-176.18 142.82-319 319-319zM484 68h56a8 8 0 0 1 8 8v96a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8V76a8 8 0 0 1 8-8zM177.25 191.66a8 8 0 0 1 11.32 0l67.88 67.88a8 8 0 0 1 0 11.31l-39.6 39.6a8 8 0 0 1-11.31 0l-67.88-67.88a8 8 0 0 1 0-11.31l39.6-39.6zm669.6 0l39.6 39.6a8 8 0 0 1 0 11.3l-67.88 67.9a8 8 0 0 1-11.32 0l-39.6-39.6a8 8 0 0 1 0-11.32l67.89-67.88a8 8 0 0 1 11.31 0zM192 892h640a32 32 0 0 1 32 32v24a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-24a32 32 0 0 1 32-32zm148-317v253h64V575h-64z\"}}]})(props);\n};\nexport function AiFillAlipayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z\"}}]})(props);\n};\nexport function AiFillAlipaySquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm29.4 663.2S703 689.4 598.7 639.5C528.8 725.2 438.6 777.3 345 777.3c-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9 114.3 38.2 140.2 40.2 140.2 40.2v122.3z\"}}]})(props);\n};\nexport function AiFillAliwangwang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-325.2 79c0 20.4-16.6 37.1-37.1 37.1-20.4 0-37.1-16.7-37.1-37.1v-55.1c0-20.4 16.6-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1zm175.2 0c0 20.4-16.6 37.1-37.1 37.1S644 476.8 644 456.4v-55.1c0-20.4 16.7-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1z\"}}]})(props);\n};\nexport function AiFillAmazonCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm35.8 262.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9 4.7-12.2 11.8-23.9 21.4-35 9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7z\"}}]})(props);\n};\nexport function AiFillAmazonSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM547.8 326.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9s11.8-23.9 21.4-35c9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7zM485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4z\"}}]})(props);\n};\nexport function AiFillAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z\"}}]})(props);\n};\nexport function AiFillApi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 68.9-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2z\"}}]})(props);\n};\nexport function AiFillApple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-105.1-305c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z\"}}]})(props);\n};\nexport function AiFillAppstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zM464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z\"}}]})(props);\n};\nexport function AiFillAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm330-170c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z\"}}]})(props);\n};\nexport function AiFillBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z\"}}]})(props);\n};\nexport function AiFillBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374z\"}}]})(props);\n};\nexport function AiFillBehanceCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420.3 470.3c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1a50.5 50.5 0 0 0 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm86.5 286.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7z\"}}]})(props);\n};\nexport function AiFillBehanceSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z\"}}]})(props);\n};\nexport function AiFillBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M816 768h-24V428c0-141.1-104.3-257.8-240-277.2V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.8C336.3 170.2 232 286.9 232 428v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48z\"}}]})(props);\n};\nexport function AiFillBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM668 345.9L621.5 312 572 347.4V124h96v221.9z\"}}]})(props);\n};\nexport function AiFillBoxPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H448v432h344c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-728 80v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h152V296H232c-4.4 0-8 3.6-8 8z\"}}]})(props);\n};\nexport function AiFillBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiFillBuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM612 746H412V546h200v200zm268-268H680V278h200v200z\"}}]})(props);\n};\nexport function AiFillBulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M348 676.1C250 619.4 184 513.4 184 392c0-181.1 146.9-328 328-328s328 146.9 328 328c0 121.4-66 227.4-164 284.1V792c0 17.7-14.3 32-32 32H380c-17.7 0-32-14.3-32-32V676.1zM392 888h240c4.4 0 8 3.6 8 8v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32v-32c0-4.4 3.6-8 8-8z\"}}]})(props);\n};\nexport function AiFillCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM440.2 765h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zm7.8-382c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48zm328 369c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-104c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-265c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48z\"}}]})(props);\n};\nexport function AiFillCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 880c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V460H112v420zm768-696H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v176h800V216c0-17.7-14.3-32-32-32z\"}}]})(props);\n};\nexport function AiFillCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 260H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 260H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V340c0-44.2-35.8-80-80-80zM512 716c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160zm-96-160a96 96 0 1 0 192 0 96 96 0 1 0-192 0z\"}}]})(props);\n};\nexport function AiFillCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM220 418l72.7-199.9.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220z\"}}]})(props);\n};\nexport function AiFillCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\"}}]})(props);\n};\nexport function AiFillCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z\"}}]})(props);\n};\nexport function AiFillCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\"}}]})(props);\n};\nexport function AiFillCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\"}}]})(props);\n};\nexport function AiFillCarryOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM694.5 432.7L481.9 725.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z\"}}]})(props);\n};\nexport function AiFillCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\"}}]})(props);\n};\nexport function AiFillCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM695.5 365.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L308.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H689c6.5 0 10.3 7.4 6.5 12.7z\"}}]})(props);\n};\nexport function AiFillChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M371.8 512c0 77.5 62.7 140.2 140.2 140.2S652.2 589.5 652.2 512 589.5 371.8 512 371.8 371.8 434.4 371.8 512zM900 362.4l-234.3 12.1c63.6 74.3 64.6 181.5 11.1 263.7l-188 289.2c78 4.2 158.4-12.9 231.2-55.2 180-104 253-322.1 180-509.8zM320.3 591.9L163.8 284.1A415.35 415.35 0 0 0 96 512c0 208 152.3 380.3 351.4 410.8l106.9-209.4c-96.6 18.2-189.9-34.8-234-121.5zm218.5-285.5l344.4 18.1C848 254.7 792.6 194 719.8 151.7 653.9 113.6 581.5 95.5 510.5 96c-122.5.5-242.2 55.2-322.1 154.5l128.2 196.9c32-91.9 124.8-146.7 222.2-141z\"}}]})(props);\n};\nexport function AiFillCiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-63.6 656c-103 0-162.4-68.6-162.4-182.6v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-4-46.1-37.6-77.6-87-77.6-61.1 0-95.6 45.4-95.6 126.9v49.3c0 80.3 34.5 125.1 95.6 125.1 49.3 0 82.8-29.5 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z\"}}]})(props);\n};\nexport function AiFillClockCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm176.5 585.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z\"}}]})(props);\n};\nexport function AiFillCloseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 0 1-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\"}}]})(props);\n};\nexport function AiFillCloseSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM676.1 657.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9z\"}}]})(props);\n};\nexport function AiFillCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3z\"}}]})(props);\n};\nexport function AiFillCodeSandboxCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm243.7 589.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zM307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zm203.9-151.8L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8zm20 352l97.3-56.2v-94.1l87-49.5V418.5L531.8 525z\"}}]})(props);\n};\nexport function AiFillCodeSandboxSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM755.7 653.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zm-223.9 83.7l97.3-56.2v-94.1l87-49.5V418.5L531.8 525zm-20-352L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8z\"}}]})(props);\n};\nexport function AiFillCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM513.1 518.1l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3zM716 673c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8h185c4.1 0 7.5 3.6 7.5 8v48z\"}}]})(props);\n};\nexport function AiFillCodepenCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z\"}}]})(props);\n};\nexport function AiFillCodepenSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M723.1 428L535.9 303.4v111.3l103.6 69.1zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zm23.9 154.2v111.3L723.1 597l-83.6-55.8zm-151.4-69.1L300.9 597l187.2 124.6V610.3l-103.6-69.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-90 485c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-47.8-44.6v-79.8l-59.8 39.9zm-460.4-79.8v79.8l59.8-39.9zm206.3-57.9V303.4L300.9 428l83.6 55.8z\"}}]})(props);\n};\nexport function AiFillCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM327.3 702.4c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2l98.7-225.5 132.1 132.1-225.5 98.7zm375.1-375.1l-98.7 225.5-132.1-132.1L697.1 322c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z\"}}]})(props);\n};\nexport function AiFillContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM661 736h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.6-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H363a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112 61.5 0 111.4 50.1 111.4 112 0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zM512 474c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52c28.5 0 51.7-23.3 51.7-52s-23.2-52-51.7-52z\"}}]})(props);\n};\nexport function AiFillContainer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v529c0-.6.4-1 1-1h219.3l5.2 24.7C397.6 708.5 450.8 752 512 752s114.4-43.5 126.4-103.3l5.2-24.7H863c.6 0 1 .4 1 1V96c0-17.7-14.3-32-32-32zM712 493c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm0-160c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm151 354H694.1c-11.6 32.8-32 62.3-59.1 84.7-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H161c-.6 0-1-.4-1-1v242c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V686c0 .6-.4 1-1 1z\"}}]})(props);\n};\nexport function AiFillControl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM404 683v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99zm279.6-143.9c.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1zM616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM403.4 566.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5z\"}}]})(props);\n};\nexport function AiFillCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM382 896h-.2L232 746.2v-.2h150v150z\"}}]})(props);\n};\nexport function AiFillCopyrightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm5.4 670c-110 0-173.4-73.2-173.4-194.9v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.6-3.2-8-7.4-4-49.5-40-83.4-93-83.4-65.3 0-102.1 48.5-102.1 135.5v52.6c0 85.7 36.9 133.6 102.1 133.6 52.8 0 88.7-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4z\"}}]})(props);\n};\nexport function AiFillCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v160h896V192c0-17.7-14.3-32-32-32zM64 832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V440H64v392zm579-184c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72z\"}}]})(props);\n};\nexport function AiFillCrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zM512 734.2c-62.1 0-112.6-50.5-112.6-112.6S449.9 509 512 509s112.6 50.5 112.6 112.6S574.1 734.2 512 734.2zm0-160.9c-26.6 0-48.2 21.6-48.2 48.3 0 26.6 21.6 48.3 48.2 48.3s48.2-21.6 48.2-48.3c0-26.6-21.6-48.3-48.2-48.3z\"}}]})(props);\n};\nexport function AiFillCustomerService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384z\"}}]})(props);\n};\nexport function AiFillDashboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM482 232c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.5l-31.1 31.1a8.03 8.03 0 0 1-11.3 0L261.7 352a8.03 8.03 0 0 1 0-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.6l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.1 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 0 1-11.3 0zM846 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44z\"}}]})(props);\n};\nexport function AiFillDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM288 232c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm128-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm128-168c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z\"}}]})(props);\n};\nexport function AiFillDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-200 0H360v-72h304v72z\"}}]})(props);\n};\nexport function AiFillDiff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z\"}}]})(props);\n};\nexport function AiFillDingtalkCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm227 385.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z\"}}]})(props);\n};\nexport function AiFillDingtalkSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM739 449.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z\"}}]})(props);\n};\nexport function AiFillDislike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z\"}}]})(props);\n};\nexport function AiFillDollarCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm22.3 665.2l.2 31.7c0 4.4-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4C401.3 723 359.5 672.4 355 617.4c-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.7 29.8 55.4 74.1 61.3V533.9l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-72.9 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.9 46.9 125.9 109.2.5 4.7-3.2 8.8-8 8.8h-44.9c-4 0-7.4-3-7.9-6.9-4-29.2-27.4-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 108.9 116.4 0 75.3-56 117.3-134.3 124.1zM426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-36.9 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.8-.6-5.6-1.3-8.8-2.2V677c42.6-3.8 72-27.2 72-66.4 0-30.7-15.9-50.7-63.2-65.1z\"}}]})(props);\n};\nexport function AiFillDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm184.5 353.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z\"}}]})(props);\n};\nexport function AiFillDownSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM696.5 412.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z\"}}]})(props);\n};\nexport function AiFillDribbbleCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M675.1 328.3a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6zm47.7-11.9c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 736c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm53.1-346.2c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm30.6 82.5c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4z\"}}]})(props);\n};\nexport function AiFillDribbbleSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z\"}}]})(props);\n};\nexport function AiFillDropboxCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M663.8 455.5zm-151.5-93.8l-151.8 93.8 151.8 93.9 151.5-93.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm151.2 595.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1z\"}}]})(props);\n};\nexport function AiFillDropboxSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM663.2 659.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1zM512.3 361.7l-151.8 93.8 151.8 93.9 151.5-93.9zm151.5 93.8z\"}}]})(props);\n};\nexport function AiFillEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9z\"}}]})(props);\n};\nexport function AiFillEnvironment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 327c-29.9 0-58 11.6-79.2 32.8A111.6 111.6 0 0 0 400 439c0 29.9 11.7 58 32.8 79.2A111.6 111.6 0 0 0 512 551c29.9 0 58-11.7 79.2-32.8C612.4 497 624 468.9 624 439c0-29.9-11.6-58-32.8-79.2S541.9 327 512 327zm342.6-37.9a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z\"}}]})(props);\n};\nexport function AiFillEuroCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm63.5 375.8c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8h-136c-.3 4.4-.3 9.1-.3 13.8v36h136.2c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H444.9c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.2 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.3 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.8.3-12.8H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.7c19.7-94.2 92-149.9 198.6-149.9 20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346h.1c0 5.1-4.6 8.8-9.6 7.8-14.7-2.9-31.8-4.4-51.7-4.4-65.4 0-110.4 33.5-127.6 90.4h128.4z\"}}]})(props);\n};\nexport function AiFillExclamationCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}}]})(props);\n};\nexport function AiFillExperiment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.9 636.3l42.6 26.6c.1.1.3.2.4.3l12.7 8 .3.3a186.9 186.9 0 0 0 94.1 25.1c44.9 0 87.2-15.7 121-43.8a256.27 256.27 0 0 1 164.9-59.9c52.3 0 102.2 15.7 144.6 44.5l7.9 5-111.6-289V179.8h63.5c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8H264.7c-4.4 0-8 3.6-8 8v51.9c0 4.4 3.6 8 8 8h63.5v173.6L218.9 636.3zm333-203.1c22 0 39.9 17.9 39.9 39.9S573.9 513 551.9 513 512 495.1 512 473.1s17.9-39.9 39.9-39.9zM878 825.1l-29.9-77.4-85.7-53.5-.1.1c-.7-.5-1.5-1-2.2-1.5l-8.1-5-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-53 0-103.5-16.1-146.2-45.6l-28.9-18.1L146 825.1c-2.8 7.4-4.3 15.2-4.3 23 0 35.2 28.6 63.8 63.8 63.8h612.9c7.9 0 15.7-1.5 23-4.3a63.6 63.6 0 0 0 36.6-82.5z\"}}]})(props);\n};\nexport function AiFillEyeInvisible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[{\"tag\":\"clipPath\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M124-288l388-672 388 672H124z\",\"clipRule\":\"evenodd\"}}]}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M508 624a112 112 0 0 0 112-112c0-3.28-.15-6.53-.43-9.74L498.26 623.57c3.21.28 6.45.43 9.74.43zm370.72-458.44L836 122.88a8 8 0 0 0-11.31 0L715.37 232.23Q624.91 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.7 119.43 136.55 191.45L112.56 835a8 8 0 0 0 0 11.31L155.25 889a8 8 0 0 0 11.31 0l712.16-712.12a8 8 0 0 0 0-11.32zM332 512a176 176 0 0 1 258.88-155.28l-48.62 48.62a112.08 112.08 0 0 0-140.92 140.92l-48.62 48.62A175.09 175.09 0 0 1 332 512z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M942.2 486.2Q889.4 375 816.51 304.85L672.37 449A176.08 176.08 0 0 1 445 676.37L322.74 798.63Q407.82 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z\"}}]})(props);\n};\nexport function AiFillEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396 512a112 112 0 1 0 224 0 112 112 0 1 0-224 0zm546.2-25.8C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM508 688c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z\"}}]})(props);\n};\nexport function AiFillFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-92.4 233.5h-63.9c-50.1 0-59.8 23.8-59.8 58.8v77.1h119.6l-15.6 120.7h-104V912H539.2V602.2H434.9V481.4h104.3v-89c0-103.3 63.1-159.6 155.3-159.6 44.2 0 82.1 3.3 93.2 4.8v107.9z\"}}]})(props);\n};\nexport function AiFillFastBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z\"}}]})(props);\n};\nexport function AiFillFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z\"}}]})(props);\n};\nexport function AiFillFileAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 580H372a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h108v108a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V644h108a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H544V472a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v108zm374.6-291.3c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z\"}}]})(props);\n};\nexport function AiFillFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM575.34 477.84l-61.22 102.3L452.3 477.8a12 12 0 0 0-10.27-5.79h-38.44a12 12 0 0 0-6.4 1.85 12 12 0 0 0-3.75 16.56l82.34 130.42-83.45 132.78a12 12 0 0 0-1.84 6.39 12 12 0 0 0 12 12h34.46a12 12 0 0 0 10.21-5.7l62.7-101.47 62.3 101.45a12 12 0 0 0 10.23 5.72h37.48a12 12 0 0 0 6.48-1.9 12 12 0 0 0 3.62-16.58l-83.83-130.55 85.3-132.47a12 12 0 0 0 1.9-6.5 12 12 0 0 0-12-12h-35.7a12 12 0 0 0-10.29 5.84z\"}}]})(props);\n};\nexport function AiFillFileExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 784a40 40 0 1 0 0-80 40 40 0 0 0 0 80zm32-152V448a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v184a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8z\"}}]})(props);\n};\nexport function AiFillFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM400 402c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8 8 0 0 1 12.6 0l136.5 174c4.3 5.2.5 12.9-6.1 12.9zm-94-370V137.8L790.2 326H602z\"}}]})(props);\n};\nexport function AiFillFileMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM426.13 600.93l59.11 132.97a16 16 0 0 0 14.62 9.5h24.06a16 16 0 0 0 14.63-9.51l59.1-133.35V758a16 16 0 0 0 16.01 16H641a16 16 0 0 0 16-16V486a16 16 0 0 0-16-16h-34.75a16 16 0 0 0-14.67 9.62L512.1 662.2l-79.48-182.59a16 16 0 0 0-14.67-9.61H383a16 16 0 0 0-16 16v272a16 16 0 0 0 16 16h27.13a16 16 0 0 0 16-16V600.93z\"}}]})(props);\n};\nexport function AiFillFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM633.22 637.26c-15.18-.5-31.32.67-49.65 2.96-24.3-14.99-40.66-35.58-52.28-65.83l1.07-4.38 1.24-5.18c4.3-18.13 6.61-31.36 7.3-44.7.52-10.07-.04-19.36-1.83-27.97-3.3-18.59-16.45-29.46-33.02-30.13-15.45-.63-29.65 8-33.28 21.37-5.91 21.62-2.45 50.07 10.08 98.59-15.96 38.05-37.05 82.66-51.2 107.54-18.89 9.74-33.6 18.6-45.96 28.42-16.3 12.97-26.48 26.3-29.28 40.3-1.36 6.49.69 14.97 5.36 21.92 5.3 7.88 13.28 13 22.85 13.74 24.15 1.87 53.83-23.03 86.6-79.26 3.29-1.1 6.77-2.26 11.02-3.7l11.9-4.02c7.53-2.54 12.99-4.36 18.39-6.11 23.4-7.62 41.1-12.43 57.2-15.17 27.98 14.98 60.32 24.8 82.1 24.8 17.98 0 30.13-9.32 34.52-23.99 3.85-12.88.8-27.82-7.48-36.08-8.56-8.41-24.3-12.43-45.65-13.12zM385.23 765.68v-.36l.13-.34a54.86 54.86 0 0 1 5.6-10.76c4.28-6.58 10.17-13.5 17.47-20.87 3.92-3.95 8-7.8 12.79-12.12 1.07-.96 7.91-7.05 9.19-8.25l11.17-10.4-8.12 12.93c-12.32 19.64-23.46 33.78-33 43-3.51 3.4-6.6 5.9-9.1 7.51a16.43 16.43 0 0 1-2.61 1.42c-.41.17-.77.27-1.13.3a2.2 2.2 0 0 1-1.12-.15 2.07 2.07 0 0 1-1.27-1.91zM511.17 547.4l-2.26 4-1.4-4.38c-3.1-9.83-5.38-24.64-6.01-38-.72-15.2.49-24.32 5.29-24.32 6.74 0 9.83 10.8 10.07 27.05.22 14.28-2.03 29.14-5.7 35.65zm-5.81 58.46l1.53-4.05 2.09 3.8c11.69 21.24 26.86 38.96 43.54 51.31l3.6 2.66-4.39.9c-16.33 3.38-31.54 8.46-52.34 16.85 2.17-.88-21.62 8.86-27.64 11.17l-5.25 2.01 2.8-4.88c12.35-21.5 23.76-47.32 36.05-79.77zm157.62 76.26c-7.86 3.1-24.78.33-54.57-12.39l-7.56-3.22 8.2-.6c23.3-1.73 39.8-.45 49.42 3.07 4.1 1.5 6.83 3.39 8.04 5.55a4.64 4.64 0 0 1-1.36 6.31 6.7 6.7 0 0 1-2.17 1.28z\"}}]})(props);\n};\nexport function AiFillFilePpt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM468.53 760v-91.54h59.27c60.57 0 100.2-39.65 100.2-98.12 0-58.22-39.58-98.34-99.98-98.34H424a12 12 0 0 0-12 12v276a12 12 0 0 0 12 12h32.53a12 12 0 0 0 12-12zm0-139.33h34.9c47.82 0 67.19-12.93 67.19-50.33 0-32.05-18.12-50.12-49.87-50.12h-52.22v100.45z\"}}]})(props);\n};\nexport function AiFillFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM320 482a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h384a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320zm0 136a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h184a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320z\"}}]})(props);\n};\nexport function AiFillFileUnknown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm110 227a32 32 0 1 0 0-64 32 32 0 0 0 0 64z\"}}]})(props);\n};\nexport function AiFillFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 566.1l52.81 197a12 12 0 0 0 11.6 8.9h31.77a12 12 0 0 0 11.6-8.88l74.37-276a12 12 0 0 0 .4-3.12 12 12 0 0 0-12-12h-35.57a12 12 0 0 0-11.7 9.31l-45.78 199.1-49.76-199.32A12 12 0 0 0 528.1 472h-32.2a12 12 0 0 0-11.64 9.1L434.6 680.01 388.5 481.3a12 12 0 0 0-11.68-9.29h-35.39a12 12 0 0 0-3.11.41 12 12 0 0 0-8.47 14.7l74.17 276A12 12 0 0 0 415.6 772h31.99a12 12 0 0 0 11.59-8.9l52.81-197z\"}}]})(props);\n};\nexport function AiFillFileZip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM296 136v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm0 64v160h128V584H296zm48 48h32v64h-32v-64z\"}}]})(props);\n};\nexport function AiFillFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z\"}}]})(props);\n};\nexport function AiFillFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\"}}]})(props);\n};\nexport function AiFillFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9z\"}}]})(props);\n};\nexport function AiFillFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32z\"}}]})(props);\n};\nexport function AiFillFolderAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM632 577c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.2 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.8 0 7 3.2 7 7.1V528h84.5c4.1 0 7.5 3.2 7.5 7v42z\"}}]})(props);\n};\nexport function AiFillFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zm-180 0H238c-13 0-24.8 7.9-29.7 20L136 643.2V256h188.5l119.6 114.4H748V444z\"}}]})(props);\n};\nexport function AiFillFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32z\"}}]})(props);\n};\nexport function AiFillFormatPainter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683558243\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M840 192h-56v-72c0-13.3-10.7-24-24-24H168c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h592c13.3 0 24-10.7 24-24V256h32v200H465c-22.1 0-40 17.9-40 40v136h-44c-4.4 0-8 3.6-8 8v228c0 1.1 0.2 2.2 0.6 3.1-0.4 1.6-0.6 3.2-0.6 4.9 0 46.4 37.6 84 84 84s84-37.6 84-84c0-1.7-0.2-3.3-0.6-4.9 0.4-1 0.6-2 0.6-3.1V640c0-4.4-3.6-8-8-8h-44V520h351c22.1 0 40-17.9 40-40V232c0-22.1-17.9-40-40-40z\"}}]})(props);\n};\nexport function AiFillForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z\"}}]})(props);\n};\nexport function AiFillFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}}]})(props);\n};\nexport function AiFillFund (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-92.3 194.4l-297 297.2a8.03 8.03 0 0 1-11.3 0L410.9 541.1 238.4 713.7a8.03 8.03 0 0 1-11.3 0l-36.8-36.8a8.03 8.03 0 0 1 0-11.3l214.9-215c3.1-3.1 8.2-3.1 11.3 0L531 565l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.2 3 3.2 8.1.1 11.2z\"}}]})(props);\n};\nexport function AiFillFunnelPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.7 586h350.6l84.9-148H251.8zm543.4-432H143.9c-24.5 0-39.8 26.7-27.5 48L215 374h594l98.7-172c12.2-21.3-3.1-48-27.6-48zM349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V650H349v188z\"}}]})(props);\n};\nexport function AiFillGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 894c0 17.7 14.3 32 32 32h286V550H160v344zm386 32h286c17.7 0 32-14.3 32-32V550H546v376zm334-616H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v140h366V310h68v172h366V342c0-17.7-14.3-32-32-32zm-402-4h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm138 0h-70v-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70z\"}}]})(props);\n};\nexport function AiFillGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z\"}}]})(props);\n};\nexport function AiFillGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z\"}}]})(props);\n};\nexport function AiFillGold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiFillGolden (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiFillGoogleCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm167 633.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9C281.5 589 272 551.6 272 512s9.5-77 26.1-110.1c40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z\"}}]})(props);\n};\nexport function AiFillGooglePlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm36.5 558.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z\"}}]})(props);\n};\nexport function AiFillGooglePlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM548.5 622.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z\"}}]})(props);\n};\nexport function AiFillGoogleSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM679 697.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9A245.02 245.02 0 0 1 272 512c0-39.6 9.5-77 26.1-110.1 40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z\"}}]})(props);\n};\nexport function AiFillHdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM456 216c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm576-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm96-152c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48z\"}}]})(props);\n};\nexport function AiFillHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9z\"}}]})(props);\n};\nexport function AiFillHighlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2z\"}}]})(props);\n};\nexport function AiFillHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M946.5 505L534.6 93.4a31.93 31.93 0 0 0-45.2 0L77.5 505c-12 12-18.8 28.3-18.8 45.3 0 35.3 28.7 64 64 64h43.4V908c0 17.7 14.3 32 32 32H448V716h112v224h265.9c17.7 0 32-14.3 32-32V614.3h43.4c17 0 33.3-6.7 45.3-18.8 24.9-25 24.9-65.5-.1-90.5z\"}}]})(props);\n};\nexport function AiFillHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194z\"}}]})(props);\n};\nexport function AiFillHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M145.2 96l66 746.6L512 928l299.6-85.4L878.9 96H145.2zm595 177.1l-4.8 47.2-1.7 19.5H382.3l8.2 94.2h335.1l-3.3 24.3-21.2 242.2-1.7 16.2-187 51.6v.3h-1.2l-.3.1v-.1h-.1l-188.6-52L310.8 572h91.1l6.5 73.2 102.4 27.7h.4l102-27.6 11.4-118.6H510.9v-.1H306l-22.8-253.5-1.7-24.3h460.3l-1.6 24.3z\"}}]})(props);\n};\nexport function AiFillIdcard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M373 411c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52 51.7-23.3 51.7-52-23.2-52-51.7-52zm555-251H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM608 420c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm-86 253h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zm278.9-53H615.1c-3.9 0-7.1-3.6-7.1-8v-48c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48h.1c0 4.4-3.2 8-7.1 8z\"}}]})(props);\n};\nexport function AiFillIeCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M693.6 284.4c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm253.9 492.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z\"}}]})(props);\n};\nexport function AiFillIeSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM765.9 556.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zm-72.3-272.5c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z\"}}]})(props);\n};\nexport function AiFillInfoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}}]})(props);\n};\nexport function AiFillInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 378.7c-73.4 0-133.3 59.9-133.3 133.3S438.6 645.3 512 645.3 645.3 585.4 645.3 512 585.4 378.7 512 378.7zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zM512 717.1c-113.5 0-205.1-91.6-205.1-205.1S398.5 306.9 512 306.9 717.1 398.5 717.1 512 625.5 717.1 512 717.1zm213.5-370.7c-26.5 0-47.9-21.4-47.9-47.9s21.4-47.9 47.9-47.9 47.9 21.4 47.9 47.9a47.84 47.84 0 0 1-47.9 47.9z\"}}]})(props);\n};\nexport function AiFillInsurance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M519.9 358.8h97.9v41.6h-97.9zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM411.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm296.5-49.2l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a5.9 5.9 0 0 1-8.9-1.4L430 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5z\"}}]})(props);\n};\nexport function AiFillInteraction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z\"}}]})(props);\n};\nexport function AiFillLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 912h496c17.7 0 32-14.3 32-32V340H384v572zm496-800H384v164h528V144c0-17.7-14.3-32-32-32zm-768 32v736c0 17.7 14.3 32 32 32h176V112H144c-17.7 0-32 14.3-32 32z\"}}]})(props);\n};\nexport function AiFillLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm104 316.9c0 10.2-4.9 19.9-13.2 25.9L457.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178a8 8 0 0 1 12.7 6.5v46.8z\"}}]})(props);\n};\nexport function AiFillLeftSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM624 380.9c0 10.2-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.8z\"}}]})(props);\n};\nexport function AiFillLike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z\"}}]})(props);\n};\nexport function AiFillLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM349.3 793.7H230.6V411.9h118.7v381.8zm-59.3-434a68.8 68.8 0 1 1 68.8-68.8c-.1 38-30.9 68.8-68.8 68.8zm503.7 434H675.1V608c0-44.3-.8-101.2-61.7-101.2-61.7 0-71.2 48.2-71.2 98v188.9H423.7V411.9h113.8v52.2h1.6c15.8-30 54.5-61.7 112.3-61.7 120.2 0 142.3 79.1 142.3 181.9v209.4z\"}}]})(props);\n};\nexport function AiFillLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z\"}}]})(props);\n};\nexport function AiFillMacCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569747879816\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M624 672c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48h-48v48zM720 352c0-26.5-21.5-48-48-48s-48 21.5-48 48v48h48c26.5 0 48-21.5 48-48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M928 64H96c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM672 560c61.9 0 112 50.1 112 112s-50.1 112-112 112-112-50.1-112-112v-48h-96v48c0 61.9-50.1 112-112 112s-112-50.1-112-112 50.1-112 112-112h48v-96h-48c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112v48h96v-48c0-61.9 50.1-112 112-112s112 50.1 112 112-50.1 112-112 112h-48v96h48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 464h96v96h-96zM352 304c-26.5 0-48 21.5-48 48s21.5 48 48 48h48v-48c0-26.5-21.5-48-48-48zM304 672c0 26.5 21.5 48 48 48s48-21.5 48-48v-48h-48c-26.5 0-48 21.5-48 48z\"}}]})(props);\n};\nexport function AiFillMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-80.8 108.9L531.7 514.4c-7.8 6.1-18.7 6.1-26.5 0L189.6 268.9A7.2 7.2 0 0 1 194 256h648.8a7.2 7.2 0 0 1 4.4 12.9z\"}}]})(props);\n};\nexport function AiFillMedicineBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48zm4-372H360v-72h304v72z\"}}]})(props);\n};\nexport function AiFillMediumCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm256 253.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z\"}}]})(props);\n};\nexport function AiFillMediumSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM768 317.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z\"}}]})(props);\n};\nexport function AiFillMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}}]})(props);\n};\nexport function AiFillMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M924.3 338.4a447.57 447.57 0 0 0-96.1-143.3 443.09 443.09 0 0 0-143-96.3A443.91 443.91 0 0 0 512 64h-2c-60.5.3-119 12.3-174.1 35.9a444.08 444.08 0 0 0-141.7 96.5 445 445 0 0 0-95 142.8A449.89 449.89 0 0 0 65 514.1c.3 69.4 16.9 138.3 47.9 199.9v152c0 25.4 20.6 46 45.9 46h151.8a447.72 447.72 0 0 0 199.5 48h2.1c59.8 0 117.7-11.6 172.3-34.3A443.2 443.2 0 0 0 827 830.5c41.2-40.9 73.6-88.7 96.3-142 23.5-55.2 35.5-113.9 35.8-174.5.2-60.9-11.6-120-34.8-175.6zM312.4 560c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.4 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48z\"}}]})(props);\n};\nexport function AiFillMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z\"}}]})(props);\n};\nexport function AiFillMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z\"}}]})(props);\n};\nexport function AiFillMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}}]})(props);\n};\nexport function AiFillMoneyCollect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M911.5 699.7a8 8 0 0 0-10.3-4.8L840 717.2V179c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V762c0 3.3 2.1 6.3 5.3 7.5L501 909.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zm-243.8-377L564 514.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V703c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 322.8c-2.1-3.8-.7-8.7 3.2-10.8 1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 484.2h3.3L599 315.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8z\"}}]})(props);\n};\nexport function AiFillNotification (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.6c-3.7 11.6-5.6 23.9-5.6 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1z\"}}]})(props);\n};\nexport function AiFillPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z\"}}]})(props);\n};\nexport function AiFillPayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm166.6 246.8L567.5 515.6h62c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V603h82c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V717c0 4.4-3.6 8-8 8h-54.3c-4.4 0-8-3.6-8-8v-68.1h-81.7c-4.4 0-8-3.6-8-8V611c0-4.4 3.6-8 8-8h81.7v-41.5h-81.7c-4.4 0-8-3.6-8-8v-29.9c0-4.4 3.6-8 8-8h61.4L345.4 310.8a8.07 8.07 0 0 1 7-11.9h60.7c3 0 5.8 1.7 7.1 4.4l90.6 180h3.4l90.6-180a8 8 0 0 1 7.1-4.4h59.5c4.4 0 8 3.6 8 8 .2 1.4-.2 2.7-.8 3.9z\"}}]})(props);\n};\nexport function AiFillPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M885.6 230.2L779.1 123.8a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L549.8 238.4a80.83 80.83 0 0 0-23.8 57.3c0 21.7 8.5 42.1 23.8 57.4l83.8 83.8A393.82 393.82 0 0 1 553.1 553 395.34 395.34 0 0 1 437 633.8L353.2 550a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L123.8 664.5a80.89 80.89 0 0 0-23.8 57.4c0 21.7 8.5 42.1 23.8 57.4l106.3 106.3c24.4 24.5 58.1 38.4 92.7 38.4 7.3 0 14.3-.6 21.2-1.8 134.8-22.2 268.5-93.9 376.4-201.7C828.2 612.8 899.8 479.2 922.3 344c6.8-41.3-6.9-83.8-36.7-113.8z\"}}]})(props);\n};\nexport function AiFillPicture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM338 304c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm513.9 437.1a8.11 8.11 0 0 1-5.2 1.9H177.2c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2l170.3-202c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l99.4 118 158.1-187.5c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l229.6 271.6c2.6 3.3 2.2 8.4-1.2 11.2z\"}}]})(props);\n};\nexport function AiFillPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M863.1 518.5H505.5V160.9c0-4.4-3.6-8-8-8h-26a398.57 398.57 0 0 0-282.5 117 397.47 397.47 0 0 0-85.6 127C82.6 446.2 72 498.5 72 552.5S82.6 658.7 103.4 708c20.1 47.5 48.9 90.3 85.6 127 36.7 36.7 79.4 65.5 127 85.6a396.64 396.64 0 0 0 155.6 31.5 398.57 398.57 0 0 0 282.5-117c36.7-36.7 65.5-79.4 85.6-127a396.64 396.64 0 0 0 31.5-155.6v-26c-.1-4.4-3.7-8-8.1-8zM951 463l-2.6-28.2c-8.5-92-49.3-178.8-115.1-244.3A398.5 398.5 0 0 0 588.4 75.6L560.1 73c-4.7-.4-8.7 3.2-8.7 7.9v383.7c0 4.4 3.6 8 8 8l383.6-1c4.7-.1 8.4-4 8-8.6z\"}}]})(props);\n};\nexport function AiFillPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm144.1 454.9L437.7 677.8a8.02 8.02 0 0 1-12.7-6.5V353.7a8 8 0 0 1 12.7-6.5L656.1 506a7.9 7.9 0 0 1 0 12.9z\"}}]})(props);\n};\nexport function AiFillPlaySquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM641.7 520.8L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6z\"}}]})(props);\n};\nexport function AiFillPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z\"}}]})(props);\n};\nexport function AiFillPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z\"}}]})(props);\n};\nexport function AiFillPoundCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm146 658c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8V722z\"}}]})(props);\n};\nexport function AiFillPrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M732 120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v148h440V120zm120 212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM664 844H360V568h304v276zm164-360c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z\"}}]})(props);\n};\nexport function AiFillProfile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM380 696c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm304 272c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48z\"}}]})(props);\n};\nexport function AiFillProject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM368 744c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464zm192-280c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184zm192 72c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256z\"}}]})(props);\n};\nexport function AiFillPropertySafety (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM648.3 332.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z\"}}]})(props);\n};\nexport function AiFillPushpin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z\"}}]})(props);\n};\nexport function AiFillQqCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm210.5 612.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z\"}}]})(props);\n};\nexport function AiFillQqSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM722.5 676.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z\"}}]})(props);\n};\nexport function AiFillQuestionCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z\"}}]})(props);\n};\nexport function AiFillRead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM404 553.5c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm416 140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45z\"}}]})(props);\n};\nexport function AiFillReconciliation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M676 623c-18.8 0-34 15.2-34 34s15.2 34 34 34 34-15.2 34-34-15.2-34-34-34zm204-455H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zM448 848H176V616h272v232zm0-296H176v-88h272v88zm20-272v-48h72v-56h64v56h72v48H468zm180 168v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8zm28 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-245c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v96zm-92 61c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z\"}}]})(props);\n};\nexport function AiFillRedEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM647 470.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4v25.1c0 4.6-3.8 8.4-8.4 8.4h-63.3v28.6h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.6-3.6 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4l-87.5-161c-2.2-4.1-.7-9.1 3.4-11.4 1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.9 141.8 71.9-141.9a8.5 8.5 0 0 1 7.5-4.6h47.8c4.6 0 8.4 3.8 8.4 8.4-.1 1.5-.5 2.9-1.1 4.1zM512.6 323L289 148h446L512.6 323z\"}}]})(props);\n};\nexport function AiFillRedditCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm245 477.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zm-171.3 83c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm72 108a36 36 0 1 0 72 0 36 36 0 1 0-72 0z\"}}]})(props);\n};\nexport function AiFillRedditSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm289.7 184.9c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM757 541.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zM584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM368 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0z\"}}]})(props);\n};\nexport function AiFillRest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zM508 704c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zM291 256l22.4-76h397.2l22.4 76H291zm137 304a80 80 0 1 0 160 0 80 80 0 1 0-160 0z\"}}]})(props);\n};\nexport function AiFillRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm154.7 454.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z\"}}]})(props);\n};\nexport function AiFillRightSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM658.7 518.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z\"}}]})(props);\n};\nexport function AiFillRobot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569682613478\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM300 328c0-33.1 26.9-60 60-60s60 26.9 60 60-26.9 60-60 60-60-26.9-60-60z m372 248c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-60c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v60z m-8-188c-33.1 0-60-26.9-60-60s26.9-60 60-60 60 26.9 60 60-26.9 60-60 60zM799 864H225c-13.8 0-25 14.3-25 32v56c0 4.4 2.8 8 6.2 8h611.5c3.4 0 6.2-3.6 6.2-8v-56c0.1-17.7-11.1-32-24.9-32z\"}}]})(props);\n};\nexport function AiFillRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zM512 352a48.01 48.01 0 0 1 0 96 48.01 48.01 0 0 1 0-96zm116.1 432.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5z\"}}]})(props);\n};\nexport function AiFillSafetyCertificate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM694.5 340.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z\"}}]})(props);\n};\nexport function AiFillSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M893.3 293.3L730.7 130.7c-12-12-28.3-18.7-45.3-18.7H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 176h256v112H384V176zm128 554c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zm0-224c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80z\"}}]})(props);\n};\nexport function AiFillSchedule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.5-91.3l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.2c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.5 12.9 6.6l52.8 73.1 103.7-143.7c3-4.2 7.8-6.6 12.9-6.6H792c6.5.1 10.3 7.5 6.5 12.8z\"}}]})(props);\n};\nexport function AiFillSecurityScan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM626.8 554c-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0 56.3 56.3 56.3 147.5 0 203.8zm-158.54-45.27a80.1 80.1 0 1 0 113.27-113.28 80.1 80.1 0 1 0-113.27 113.28z\"}}]})(props);\n};\nexport function AiFillSetting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.5 390.6c-29.9 0-57.9 11.6-79.1 32.8-21.1 21.2-32.8 49.2-32.8 79.1 0 29.9 11.7 57.9 32.8 79.1 21.2 21.1 49.2 32.8 79.1 32.8 29.9 0 57.9-11.7 79.1-32.8 21.1-21.2 32.8-49.2 32.8-79.1 0-29.9-11.7-57.9-32.8-79.1a110.96 110.96 0 0 0-79.1-32.8zm412.3 235.5l-65.4-55.9c3.1-19 4.7-38.4 4.7-57.7s-1.6-38.8-4.7-57.7l65.4-55.9a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a442.5 442.5 0 0 0-79.6-137.7l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.2 28.9c-30-24.6-63.4-44-99.6-57.5l-15.7-84.9a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52-9.4-106.8-9.4-158.8 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.3a353.44 353.44 0 0 0-98.9 57.3l-81.8-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a445.93 445.93 0 0 0-79.6 137.7l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.2 56.5c-3.1 18.8-4.6 38-4.6 57 0 19.2 1.5 38.4 4.6 57l-66 56.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.3 44.8 96.8 79.6 137.7l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.8-29.1c29.8 24.5 63 43.9 98.9 57.3l15.8 85.3a32.05 32.05 0 0 0 25.8 25.7l2.7.5a448.27 448.27 0 0 0 158.8 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c4.3-12.4.6-26.3-9.5-35zm-412.3 52.2c-97.1 0-175.8-78.7-175.8-175.8s78.7-175.8 175.8-175.8 175.8 78.7 175.8 175.8-78.7 175.8-175.8 175.8z\"}}]})(props);\n};\nexport function AiFillShop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h274V736h128v176h274c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zm-72 568H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm0-568.1H214v-88h596v88z\"}}]})(props);\n};\nexport function AiFillShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-208 0H400v-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16z\"}}]})(props);\n};\nexport function AiFillSignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569682885975\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M584 352H440c-17.7 0-32 14.3-32 32v544c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32zM892 64H748c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM276 640H132c-17.7 0-32 14.3-32 32v256c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V672c0-17.7-14.3-32-32-32z\"}}]})(props);\n};\nexport function AiFillSketchCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M582.3 625.6l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zm-274.7 36L512 684.5l114.4-225.2zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm286.7 380.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-190.5-20.9L512 326.1l-96.2 97.2zM420.3 301.1l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8zm-222.4 7.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3z\"}}]})(props);\n};\nexport function AiFillSketchSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608.2 423.3L512 326.1l-96.2 97.2zm-25.9 202.3l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-81.3 332.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-401.1 15.1L512 684.5l114.4-225.2zm-16.3-151.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3zm126.5-158.2l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8z\"}}]})(props);\n};\nexport function AiFillSkin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44z\"}}]})(props);\n};\nexport function AiFillSkype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-370 162.9c-134.2 0-194.2-66-194.2-115.4 0-25.4 18.7-43.1 44.5-43.1 57.4 0 42.6 82.5 149.7 82.5 54.9 0 85.2-29.8 85.2-60.3 0-18.3-9-38.7-45.2-47.6l-119.4-29.8c-96.1-24.1-113.6-76.1-113.6-124.9 0-101.4 95.5-139.5 185.2-139.5 82.6 0 180 45.7 180 106.5 0 26.1-22.6 41.2-48.4 41.2-49 0-40-67.8-138.7-67.8-49 0-76.1 22.2-76.1 53.9s38.7 41.8 72.3 49.5l88.4 19.6c96.8 21.6 121.3 78.1 121.3 131.3 0 82.3-63.3 143.9-191 143.9z\"}}]})(props);\n};\nexport function AiFillSlackCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4-13.3 0-26.1-5.3-35.6-14.8-9.4-9.5-14.7-22.3-14.7-35.6 0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4 13.3 0 26.1 5.3 35.6 14.8s14.7 22.3 14.7 35.6v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm83.7-50.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM579.3 765c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8S529 593.6 529 580.2c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z\"}}]})(props);\n};\nexport function AiFillSlackSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4-13.3 0-26.1-5.3-35.6-14.8-9.4-9.5-14.7-22.3-14.7-35.6 0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4 13.3 0 26.1 5.3 35.6 14.8s14.7 22.3 14.7 35.6v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8-9.4-9.5-14.7-22.3-14.7-35.6 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z\"}}]})(props);\n};\nexport function AiFillSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-584-72h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm292 180h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiFillSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}}]})(props);\n};\nexport function AiFillSnippets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 486H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z\"}}]})(props);\n};\nexport function AiFillSound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zm174 132H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1z\"}}]})(props);\n};\nexport function AiFillStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z\"}}]})(props);\n};\nexport function AiFillStepBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8\"}}]})(props);\n};\nexport function AiFillStepForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8\"}}]})(props);\n};\nexport function AiFillStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z\"}}]})(props);\n};\nexport function AiFillSwitcher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zM596 606c0 4.4-3.6 8-8 8H308c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h280c4.4 0 8 3.6 8 8v48zm284-494H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z\"}}]})(props);\n};\nexport function AiFillTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}}]})(props);\n};\nexport function AiFillTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM699 387c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"}}]})(props);\n};\nexport function AiFillTags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm122.7-533.4c18.7-18.7 49.1-18.7 67.9 0 18.7 18.7 18.7 49.1 0 67.9-18.7 18.7-49.1 18.7-67.9 0-18.7-18.7-18.7-49.1 0-67.9zm283.8 282.9l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z\"}}]})(props);\n};\nexport function AiFillTaobaoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z\"}}]})(props);\n};\nexport function AiFillTaobaoSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z\"}}]})(props);\n};\nexport function AiFillThunderbolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7z\"}}]})(props);\n};\nexport function AiFillTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M865.3 244.7c-.3-.3-61.1 59.8-182.1 180.6l-84.9-84.9 180.9-180.9c-95.2-57.3-217.5-42.6-296.8 36.7A244.42 244.42 0 0 0 419 432l1.8 6.7-283.5 283.4c-6.2 6.2-6.2 16.4 0 22.6l141.4 141.4c6.2 6.2 16.4 6.2 22.6 0l283.3-283.3 6.7 1.8c83.7 22.3 173.6-.9 236-63.3 79.4-79.3 94.1-201.6 38-296.6z\"}}]})(props);\n};\nexport function AiFillTrademarkCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm164.7 660.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H378c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7zM523.9 357h-83.4v148H522c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z\"}}]})(props);\n};\nexport function AiFillTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.6 630.2 359 721.8 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.8 758.4 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6c-37.1-11.9-64-46.7-64-87.6V232h64v207.6zM840 352c0 41-26.9 75.8-64 87.6V232h64v120z\"}}]})(props);\n};\nexport function AiFillTwitterCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm215.3 337.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z\"}}]})(props);\n};\nexport function AiFillTwitterSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM727.3 401.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z\"}}]})(props);\n};\nexport function AiFillUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0z\"}}]})(props);\n};\nexport function AiFillUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm178 555h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z\"}}]})(props);\n};\nexport function AiFillUpSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM690 624h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z\"}}]})(props);\n};\nexport function AiFillUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm352 120V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-72 0H336V184h352v248zM568 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiFillVideoCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM328 352c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48zm560 273l-104-59.8V458.9L888 399v226z\"}}]})(props);\n};\nexport function AiFillWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 464H528V448h320v128zm-268-64a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiFillWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}}]})(props);\n};\nexport function AiFillWechat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z\"}}]})(props);\n};\nexport function AiFillWeiboCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z\"}}]})(props);\n};\nexport function AiFillWeiboSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z\"}}]})(props);\n};\nexport function AiFillWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M523.8 191.4v288.9h382V128.1zm0 642.2l382 62.2v-352h-382zM120.1 480.2H443V201.9l-322.9 53.5zm0 290.4L443 823.2V543.8H120.1z\"}}]})(props);\n};\nexport function AiFillYahoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M937.3 231H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7zm-77.4 450.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm225.2 225.2h-65.3L458.9 559.8v65.3h84.4v56.3H318.2v-56.3h84.4v-65.3L242.9 399.9h-37v-56.3h168.5v56.3h-37l93.4 93.5 28.1-28.1V400h168.8v56.2z\"}}]})(props);\n};\nexport function AiFillYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M941.3 296.1a112.3 112.3 0 0 0-79.2-79.3C792.2 198 512 198 512 198s-280.2 0-350.1 18.7A112.12 112.12 0 0 0 82.7 296C64 366 64 512 64 512s0 146 18.7 215.9c10.3 38.6 40.7 69 79.2 79.3C231.8 826 512 826 512 826s280.2 0 350.1-18.8c38.6-10.3 68.9-40.7 79.2-79.3C960 658 960 512 960 512s0-146-18.7-215.9zM423 646V378l232 133-232 135z\"}}]})(props);\n};\nexport function AiFillYuque (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.9-8.1-195-3-195-3s87.4 55.6 52.4 154.7c-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6z\"}}]})(props);\n};\nexport function AiFillZhihuCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-90.7 477.8l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24-18.1 71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7H421.3zm346.5 167h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z\"}}]})(props);\n};\nexport function AiFillZhihuSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM432.3 592.8l71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7h-110l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24.1-18.1zm335.5 116h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z\"}}]})(props);\n};\nexport function AiOutlineAccountBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z\"}}]})(props);\n};\nexport function AiOutlineAim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683657482\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M952 474H829.8C812.5 327.6 696.4 211.5 550 194.2V72c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v122.2C327.6 211.5 211.5 327.6 194.2 474H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h122.2C211.5 696.4 327.6 812.5 474 829.8V952c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V829.8C696.4 812.5 812.5 696.4 829.8 550H952c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM512 756c-134.8 0-244-109.2-244-244s109.2-244 244-244 244 109.2 244 244-109.2 244-244 244z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 392c-32.1 0-62.1 12.4-84.8 35.2-22.7 22.7-35.2 52.7-35.2 84.8s12.5 62.1 35.2 84.8C449.9 619.4 480 632 512 632s62.1-12.5 84.8-35.2C619.4 574.1 632 544 632 512s-12.5-62.1-35.2-84.8C574.1 404.4 544.1 392 512 392z\"}}]})(props);\n};\nexport function AiOutlineAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineAlibaba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M602.9 669.8c-37.2 2.6-33.6-17.3-11.5-46.2 50.4-67.2 143.7-158.5 147.9-225.2 5.8-86.6-81.3-113.4-171-113.4-62.4 1.6-127 18.9-171 34.6-151.6 53.5-246.6 137.5-306.9 232-62.4 93.4-43 183.2 91.8 185.8 101.8-4.2 170.5-32.5 239.7-68.2.5 0-192.5 55.1-263.9 14.7-7.9-4.2-15.7-10-17.8-26.2 0-33.1 54.6-67.7 86.6-78.7v-56.7c64.5 22.6 140.6 16.3 205.7-32 2.1 5.8 4.2 13.1 3.7 21h11c2.6-22.6-12.6-44.6-37.8-46.2 7.3 5.8 12.6 10.5 15.2 14.7l-1 1-.5.5c-83.9 58.8-165.3 31.5-173.1 29.9l46.7-45.7-13.1-33.1c92.9-32.5 169.5-56.2 296.9-78.7l-28.5-23 14.7-8.9c75.5 21 126.4 36.7 123.8 76.6-1 6.8-3.7 14.7-7.9 23.1C660.1 466.1 594 538 567.2 569c-17.3 20.5-34.6 39.4-46.7 58.3-13.6 19.4-20.5 37.3-21 53.5 2.6 131.8 391.4-61.9 468-112.9-111.7 47.8-232.9 93.5-364.6 101.9zm85-302.9c2.8 5.2 4.1 11.6 4.1 19.1-.1-6.8-1.4-13.3-4.1-19.1z\"}}]})(props);\n};\nexport function AiOutlineAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm496 424c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496zm144 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 424h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm784 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M904 158H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 424H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 212H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineAlipayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z\"}}]})(props);\n};\nexport function AiOutlineAlipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M789 610.3c-38.7-12.9-90.7-32.7-148.5-53.6 34.8-60.3 62.5-129 80.7-203.6H530.5v-68.6h233.6v-38.3H530.5V132h-95.4c-16.7 0-16.7 16.5-16.7 16.5v97.8H182.2v38.3h236.3v68.6H223.4v38.3h378.4a667.18 667.18 0 0 1-54.5 132.9c-122.8-40.4-253.8-73.2-336.1-53-52.6 13-86.5 36.1-106.5 60.3-91.4 111-25.9 279.6 167.2 279.6C386 811.2 496 747.6 581.2 643 708.3 704 960 808.7 960 808.7V659.4s-31.6-2.5-171-49.1zM253.9 746.6c-150.5 0-195-118.3-120.6-183.1 24.8-21.9 70.2-32.6 94.4-35 89.4-8.8 172.2 25.2 269.9 72.8-68.8 89.5-156.3 145.3-243.7 145.3z\"}}]})(props);\n};\nexport function AiOutlineAliwangwang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10.1 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-66.4 266.5a307.08 307.08 0 0 1-65.9 98c-28.4 28.5-61.3 50.7-97.7 65.9h-.1c-38 16-78.3 24.2-119.9 24.2a306.51 306.51 0 0 1-217.5-90.2c-28.4-28.5-50.6-61.4-65.8-97.8v-.1c-16-37.8-24.1-78.2-24.1-119.9 0-55.4 14.8-109.7 42.8-157l13.2-22.1-9.5-23.9L206 192c14.9.6 35.9 2.1 59.7 5.6 43.8 6.5 82.5 17.5 114.9 32.6l19 8.9 19.9-6.8c31.5-10.8 64.8-16.2 98.9-16.2a306.51 306.51 0 0 1 217.5 90.2c28.4 28.5 50.6 61.4 65.8 97.8l.1.1.1.1c16 37.6 24.1 78 24.2 119.8-.1 41.7-8.3 82-24.3 119.8zM681.1 364.2c-20.4 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.6 37.1 37.1 37.1s37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1zm-175.2 0c-20.5 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.7 37.1 37.1 37.1 20.5 0 37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1z\"}}]})(props);\n};\nexport function AiOutlineAliyun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M959.2 383.9c-.3-82.1-66.9-148.6-149.1-148.6H575.9l21.6 85.2 201 43.7a42.58 42.58 0 0 1 32.9 39.7c.1.5.1 216.1 0 216.6a42.58 42.58 0 0 1-32.9 39.7l-201 43.7-21.6 85.3h234.2c82.1 0 148.8-66.5 149.1-148.6V383.9zM225.5 660.4a42.58 42.58 0 0 1-32.9-39.7c-.1-.6-.1-216.1 0-216.6.8-19.4 14.6-35.5 32.9-39.7l201-43.7 21.6-85.2H213.8c-82.1 0-148.8 66.4-149.1 148.6V641c.3 82.1 67 148.6 149.1 148.6H448l-21.6-85.3-200.9-43.9zm200.9-158.8h171v21.3h-171z\"}}]})(props);\n};\nexport function AiOutlineAmazon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M825 768.9c-3.3-.9-7.3-.4-11.9 1.3-61.6 28.2-121.5 48.3-179.7 60.2C507.7 856 385.2 842.6 266 790.3c-33.1-14.6-79.1-39.2-138-74a9.36 9.36 0 0 0-5.3-2c-2-.1-3.7.1-5.3.9-1.6.8-2.8 1.8-3.7 3.1-.9 1.3-1.1 3.1-.4 5.4.6 2.2 2.1 4.7 4.6 7.4 10.4 12.2 23.3 25.2 38.6 39s35.6 29.4 60.9 46.8c25.3 17.4 51.8 32.9 79.3 46.4 27.6 13.5 59.6 24.9 96.1 34.1s73 13.8 109.4 13.8c36.2 0 71.4-3.7 105.5-10.9 34.2-7.3 63-15.9 86.5-25.9 23.4-9.9 45-21 64.8-33 19.8-12 34.4-22.2 43.9-30.3 9.5-8.2 16.3-14.6 20.2-19.4 4.6-5.7 6.9-10.6 6.9-14.9.1-4.5-1.7-7.1-5-7.9zM527.4 348.1c-15.2 1.3-33.5 4.1-55 8.3-21.5 4.1-41.4 9.3-59.8 15.4s-37.2 14.6-56.3 25.4c-19.2 10.8-35.5 23.2-49 37s-24.5 31.1-33.1 52c-8.6 20.8-12.9 43.7-12.9 68.7 0 27.1 4.7 51.2 14.3 72.5 9.5 21.3 22.2 38 38.2 50.4 15.9 12.4 34 22.1 54 29.2 20 7.1 41.2 10.3 63.2 9.4 22-.9 43.5-4.3 64.4-10.3 20.8-5.9 40.4-15.4 58.6-28.3 18.2-12.9 33.1-28.2 44.8-45.7 4.3 6.6 8.1 11.5 11.5 14.7l8.7 8.9c5.8 5.9 14.7 14.6 26.7 26.1 11.9 11.5 24.1 22.7 36.3 33.7l104.4-99.9-6-4.9c-4.3-3.3-9.4-8-15.2-14.3-5.8-6.2-11.6-13.1-17.2-20.5-5.7-7.4-10.6-16.1-14.7-25.9-4.1-9.8-6.2-19.3-6.2-28.5V258.7c0-10.1-1.9-21-5.7-32.8-3.9-11.7-10.7-24.5-20.7-38.3-10-13.8-22.4-26.2-37.2-37-14.9-10.8-34.7-20-59.6-27.4-24.8-7.4-52.6-11.1-83.2-11.1-31.3 0-60.4 3.7-87.6 10.9-27.1 7.3-50.3 17-69.7 29.2-19.3 12.2-35.9 26.3-49.7 42.4-13.8 16.1-24.1 32.9-30.8 50.4-6.7 17.5-10.1 35.2-10.1 53.1L408 310c5.5-16.4 12.9-30.6 22-42.8 9.2-12.2 17.9-21 25.8-26.5 8-5.5 16.6-9.9 25.7-13.2 9.2-3.3 15.4-5 18.6-5.4 3.2-.3 5.7-.4 7.6-.4 26.7 0 45.2 7.9 55.6 23.6 6.5 9.5 9.7 23.9 9.7 43.3v56.6c-15.2.6-30.4 1.6-45.6 2.9zM573.1 500c0 16.6-2.2 31.7-6.5 45-9.2 29.1-26.7 47.4-52.4 54.8-22.4 6.6-43.7 3.3-63.9-9.8-21.5-14-32.2-33.8-32.2-59.3 0-19.9 5-36.9 15-51.1 10-14.1 23.3-24.7 40-31.7s33-12 49-14.9c15.9-3 33-4.8 51-5.4V500zm335.2 218.9c-4.3-5.4-15.9-8.9-34.9-10.7-19-1.8-35.5-1.7-49.7.4-15.3 1.8-31.1 6.2-47.3 13.4-16.3 7.1-23.4 13.1-21.6 17.8l.7 1.3.9.7 1.4.2h4.6c.8 0 1.8-.1 3.2-.2 1.4-.1 2.7-.3 3.9-.4 1.2-.1 2.9-.3 5.1-.4 2.1-.1 4.1-.4 6-.7.3 0 3.7-.3 10.3-.9 6.6-.6 11.4-1 14.3-1.3 2.9-.3 7.8-.6 14.5-.9 6.7-.3 12.1-.3 16.1 0 4 .3 8.5.7 13.6 1.1 5.1.4 9.2 1.3 12.4 2.7 3.2 1.3 5.6 3 7.1 5.1 5.2 6.6 4.2 21.2-3 43.9s-14 40.8-20.4 54.2c-2.8 5.7-2.8 9.2 0 10.7s6.7.1 11.9-4c15.6-12.2 28.6-30.6 39.1-55.3 6.1-14.6 10.5-29.8 13.1-45.7 2.4-15.9 2-26.2-1.3-31z\"}}]})(props);\n};\nexport function AiOutlineAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448.3 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32-13.4 32-31.9.1-18.4-13.4-31.9-32-31.9zm393.9 96.4c-13.8-13.8-32.7-21.5-53.2-21.5-3.9 0-7.4.4-10.7 1v-1h-3.6c-5.5-30.6-18.6-60.5-38.1-87.4-18.7-25.7-43-47.9-70.8-64.9l25.1-35.8v-3.3c0-.8.4-2.3.7-3.8.6-2.4 1.4-5.5 1.4-8.9 0-18.5-13.5-31.9-32-31.9-9.8 0-19.5 5.7-25.9 15.4l-29.3 42.1c-30-9.8-62.4-15-93.8-15-31.3 0-63.7 5.2-93.8 15L389 79.4c-6.6-9.6-16.1-15.4-26-15.4-18.6 0-32 13.4-32 31.9 0 6.2 2.5 12.8 6.7 17.4l22.6 32.3c-28.7 17-53.5 39.4-72.2 65.1-19.4 26.9-32 56.8-36.7 87.4h-5.5v1c-3.2-.6-6.7-1-10.7-1-20.3 0-39.2 7.5-53.1 21.3-13.8 13.8-21.5 32.6-21.5 53v235c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 3.9 0 7.4-.4 10.7-1v93.5c0 29.2 23.9 53.1 53.2 53.1H331v58.3c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-58.2H544v58.1c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.4 0 39.2-7.5 53.1-21.6 13.8-13.8 21.5-32.6 21.5-53v-58.2h31.9c29.3 0 53.2-23.8 53.2-53.1v-91.4c3.2.6 6.7 1 10.7 1 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-235c-.1-20.3-7.6-39-21.4-52.9zM246 609.6c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zm131.1-396.8c37.5-27.3 85.3-42.3 135-42.3s97.5 15.1 135 42.5c32.4 23.7 54.2 54.2 62.7 87.5H314.4c8.5-33.4 30.5-64 62.7-87.7zm39.3 674.7c-.6 5.6-4.4 8.7-10.5 8.7-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1zm202.3 8.7c-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1c-.6 5.6-4.3 8.7-10.5 8.7zm95.8-132.6H309.9V364h404.6v399.6zm85.2-154c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zM576.1 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32.1-13.4 32.1-32-.1-18.6-13.4-31.8-32.1-31.8z\"}}]})(props);\n};\nexport function AiOutlineAntCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.9 738c-3.1 0-6.1-.5-8.8-1.5l4.4 30.7h26.3l-15.5-29.9c-2.1.5-4.2.7-6.4.7zm421-291.2c-12.6 0-24.8 1.5-36.5 4.2-21.4-38.4-62.3-64.3-109.3-64.3-6.9 0-13.6.6-20.2 1.6-35.4-77.4-113.4-131.1-203.9-131.1-112.3 0-205.3 82.6-221.6 190.4C127.3 455.5 64 523.8 64 607c0 88.4 71.6 160.1 160 160.2h50l13.2-27.6c-26.2-8.3-43.3-29-39.1-48.8 4.6-21.6 32.8-33.9 63.1-27.5 22.9 4.9 40.4 19.1 45.5 35.1a26.1 26.1 0 0 1 22.1-12.4h.2c-.8-3.2-1.2-6.5-1.2-9.9 0-20.1 14.8-36.7 34.1-39.6v-25.4c0-4.4 3.6-8 8-8s8 3.6 8 8v26.3c4.6 1.2 8.8 3.2 12.6 5.8l19.5-21.4c3-3.3 8-3.5 11.3-.5 3.3 3 3.5 8 .5 11.3l-20 22-.2.2a40 40 0 0 1-46.9 59.2c-.4 5.6-2.6 10.7-6 14.8l20 38.4H804v-.1c86.5-2.2 156-73 156-160.1 0-88.5-71.7-160.2-160.1-160.2zM338.2 737.2l-4.3 30h24.4l-5.9-41.5c-3.5 4.6-8.3 8.5-14.2 11.5zM797.5 305a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-65.7 61.3a24 24 0 1 0 48 0 24 24 0 1 0-48 0zM303.4 742.9l-11.6 24.3h26l3.5-24.7c-5.7.8-11.7 1-17.9.4z\"}}]})(props);\n};\nexport function AiOutlineAntDesign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M716.3 313.8c19-18.9 19-49.7 0-68.6l-69.9-69.9.1.1c-18.5-18.5-50.3-50.3-95.3-95.2-21.2-20.7-55.5-20.5-76.5.5L80.9 474.2a53.84 53.84 0 0 0 0 76.4L474.6 944a54.14 54.14 0 0 0 76.5 0l165.1-165c19-18.9 19-49.7 0-68.6a48.7 48.7 0 0 0-68.7 0l-125 125.2c-5.2 5.2-13.3 5.2-18.5 0L189.5 521.4c-5.2-5.2-5.2-13.3 0-18.5l314.4-314.2c.4-.4.9-.7 1.3-1.1 5.2-4.1 12.4-3.7 17.2 1.1l125.2 125.1c19 19 49.8 19 68.7 0zM408.6 514.4a106.3 106.2 0 1 0 212.6 0 106.3 106.2 0 1 0-212.6 0zm536.2-38.6L821.9 353.5c-19-18.9-49.8-18.9-68.7.1a48.4 48.4 0 0 0 0 68.6l83 82.9c5.2 5.2 5.2 13.3 0 18.5l-81.8 81.7a48.4 48.4 0 0 0 0 68.6 48.7 48.7 0 0 0 68.7 0l121.8-121.7a53.93 53.93 0 0 0-.1-76.4z\"}}]})(props);\n};\nexport function AiOutlineApartment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M908 640H804V488c0-4.4-3.6-8-8-8H548v-96h108c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h108v96H228c-4.4 0-8 3.6-8 8v152H116c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16H292v-88h440v88H620c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16zm-564 76v168H176V716h168zm84-408V140h168v168H428zm420 576H680V716h168v168z\"}}]})(props);\n};\nexport function AiOutlineApi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 0 1-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z\"}}]})(props);\n};\nexport function AiOutlineApple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-10.6 267c-14.3 19.9-28.7 35.6-41.9 45.7-10.5 8-18.6 11.4-24 11.6-9-.1-17.7-2.3-34.7-8.8-1.2-.5-2.5-1-4.2-1.6l-4.4-1.7c-17.4-6.7-27.8-10.3-41.1-13.8-18.6-4.8-37.1-7.4-56.9-7.4-20.2 0-39.2 2.5-58.1 7.2-13.9 3.5-25.6 7.4-42.7 13.8-.7.3-8.1 3.1-10.2 3.9-3.5 1.3-6.2 2.3-8.7 3.2-10.4 3.6-17 5.1-22.9 5.2-.7 0-1.3-.1-1.8-.2-1.1-.2-2.5-.6-4.1-1.3-4.5-1.8-9.9-5.1-16-9.8-14-10.9-29.4-28-45.1-49.9-27.5-38.6-53.5-89.8-66-125.7-15.4-44.8-23-87.7-23-128.6 0-60.2 17.8-106 48.4-137.1 26.3-26.6 61.7-41.5 97.8-42.3 5.9.1 14.5 1.5 25.4 4.5 8.6 2.3 18 5.4 30.7 9.9 3.8 1.4 16.9 6.1 18.5 6.7 7.7 2.8 13.5 4.8 19.2 6.6 18.2 5.8 32.3 9 47.6 9 15.5 0 28.8-3.3 47.7-9.8 7.1-2.4 32.9-12 37.5-13.6 25.6-9.1 44.5-14 60.8-15.2 4.8-.4 9.1-.4 13.2-.1 22.7 1.8 42.1 6.3 58.6 13.8-37.6 43.4-57 96.5-56.9 158.4-.3 14.7.9 31.7 5.1 51.8 6.4 30.5 18.6 60.7 37.9 89 14.7 21.5 32.9 40.9 54.7 57.8-11.5 23.7-25.6 48.2-40.4 68.8zm-94.5-572c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z\"}}]})(props);\n};\nexport function AiOutlineAppstoreAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683928793\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H212V212h200v200zM864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H612V212h200v200zM864 544H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z m-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineAppstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z\"}}]})(props);\n};\nexport function AiOutlineAreaChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 0 0-11.3 0l-189 189.6a7.87 7.87 0 0 0-2.3 5.6V720c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0 0 48.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z\"}}]})(props);\n};\nexport function AiOutlineArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 0 0 0 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 0 0 0-48.4z\"}}]})(props);\n};\nexport function AiOutlineArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M868 545.5L536.1 163a31.96 31.96 0 0 0-48.3 0L156 545.5a7.97 7.97 0 0 0 6 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z\"}}]})(props);\n};\nexport function AiOutlineArrowsAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L863.9 169a7.9 7.9 0 0 0-8.9-8.9zM416.6 562.3a8.03 8.03 0 0 0-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z\"}}]})(props);\n};\nexport function AiOutlineAudioMuted (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569682811064\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M682 455V311l-76 76v68c-0.1 50.7-42 92.1-94 92-19.1 0.1-36.8-5.4-52-15l-54 55c29.1 22.4 65.9 36 106 36 93.8 0 170-75.1 170-168z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M833 446h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254-63 0-120.7-23-165-61l-54 54c48.9 43.2 110.8 72.3 179 81v102H326c-13.9 0-24.9 14.3-25 32v36c0.1 4.4 2.9 8 6 8h408c3.2 0 6-3.6 6-8v-36c0-17.7-11-32-25-32H547V782c165.3-17.9 294-157.9 294-328 0-4.4-3.6-8-8-8zM846.1 68.3l-43.5-41.9c-3.1-3-8.1-3-11.2 0.1l-129 129C634.3 101.2 577 64 511 64c-93.9 0-170 75.3-170 168v224c0 6.7 0.4 13.3 1.2 19.8l-68 68c-10.5-27.9-16.3-58.2-16.2-89.8-0.2-4.4-3.8-8-8-8h-60c-4.4 0-8 3.6-8 8 0 53 12.5 103 34.6 147.4l-137 137c-3.1 3.1-3.1 8.2 0 11.3l42.7 42.7c3.1 3.1 8.2 3.1 11.3 0L846.2 79.8l0.1-0.1c3.1-3.2 3-8.3-0.2-11.4zM417 401V232c0-50.6 41.9-92 94-92 46 0 84.1 32.3 92.3 74.7L417 401z\"}}]})(props);\n};\nexport function AiOutlineAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z\"}}]})(props);\n};\nexport function AiOutlineAudit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z\"}}]})(props);\n};\nexport function AiOutlineBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z\"}}]})(props);\n};\nexport function AiOutlineBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z\"}}]})(props);\n};\nexport function AiOutlineBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineBarcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 160H72c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm833 0h-48c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zM200 736h112c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm321 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm126 0h178c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H647c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-255 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-79 64H201c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm257 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm256 0H648c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h178c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-385 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineBars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z\"}}]})(props);\n};\nexport function AiOutlineBehanceSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z\"}}]})(props);\n};\nexport function AiOutlineBehance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M634 294.3h199.5v48.4H634zM434.1 485.8c44.1-21.1 67.2-53.2 67.2-102.8 0-98.1-73-121.9-157.3-121.9H112v492.4h238.5c89.4 0 173.3-43 173.3-143 0-61.8-29.2-107.5-89.7-124.7zM220.2 345.1h101.5c39.1 0 74.2 10.9 74.2 56.3 0 41.8-27.3 58.6-66 58.6H220.2V345.1zm115.5 324.8H220.1V534.3H338c47.6 0 77.7 19.9 77.7 70.3 0 49.6-35.9 65.3-80 65.3zm575.8-89.5c0-105.5-61.7-193.4-173.3-193.4-108.5 0-182.3 81.7-182.3 188.8 0 111 69.9 187.2 182.3 187.2 85.1 0 140.2-38.3 166.7-120h-86.3c-9.4 30.5-47.6 46.5-77.3 46.5-57.4 0-87.4-33.6-87.4-90.7h256.9c.3-5.9.7-12.1.7-18.4zM653.9 537c3.1-46.9 34.4-76.2 81.2-76.2 49.2 0 73.8 28.9 78.1 76.2H653.9z\"}}]})(props);\n};\nexport function AiOutlineBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z\"}}]})(props);\n};\nexport function AiOutlineBgColors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 0 0-12.8 0l-48 48a9.11 9.11 0 0 0 0 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineBlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z\"}}]})(props);\n};\nexport function AiOutlineBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z\"}}]})(props);\n};\nexport function AiOutlineBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z\"}}]})(props);\n};\nexport function AiOutlineBorderBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 808H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-720-94h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-498h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm166 166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm222-72h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388 426h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineBorderHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M540 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineBorderInner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 476H548V144h-72v332H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v332h72V548h324c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-426h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 260h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineBorderLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM540 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineBorderOuter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM484 366h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM302 548h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm364 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-182 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 182h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineBorderRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineBorderTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 144H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332-498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineBorderVerticle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 476H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM152 382h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 642h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineBorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineBorderlessTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683537953\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M117 368h231v64H117zM676 368h241v64H676zM412 368h200v64H412zM412 592h200v64H412zM676 592h241v64H676zM117 592h231v64H117zM412 432V179h-64v666h64V592zM676 368V179h-64v666h64V432z\"}}]})(props);\n};\nexport function AiOutlineBoxPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM296 368h88v288h-88V368zm432 288H448V368h280v288z\"}}]})(props);\n};\nexport function AiOutlineBranches (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0 0 34.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm408-491a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}}]})(props);\n};\nexport function AiOutlineBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2c41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3C317.7 752 308 716.8 308 680V412h408v268z\"}}]})(props);\n};\nexport function AiOutlineBuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zm-504 68h200v200H412V278zm-68 468H144V546h200v200zm268 0H412V546h200v200zm268-268H680V278h200v200z\"}}]})(props);\n};\nexport function AiOutlineBulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z\"}}]})(props);\n};\nexport function AiOutlineCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 0h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm-195.7-81l61.2-74.9c4.3-5.2.7-13.1-5.9-13.1H388c-2.3 0-4.5 1-5.9 2.9l-34 41.6-34-41.6a7.85 7.85 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.5-1 5.9-2.9l35.5-43.5 35.5 43.5c1.5 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 5.9-13.1L383.5 675zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-36 732H180V180h664v664z\"}}]})(props);\n};\nexport function AiOutlineCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\"}}]})(props);\n};\nexport function AiOutlineCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456zM512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"}}]})(props);\n};\nexport function AiOutlineCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380 704h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8zm340-123a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm239-167.6L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM840 517v237H184V517l15.6-43h624.8l15.6 43zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\"}}]})(props);\n};\nexport function AiOutlineCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z\"}}]})(props);\n};\nexport function AiOutlineCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\"}}]})(props);\n};\nexport function AiOutlineCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\"}}]})(props);\n};\nexport function AiOutlineCarryOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z\"}}]})(props);\n};\nexport function AiOutlineCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiOutlineCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.1 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7H642c-10.2 0-19.9 4.9-25.9 13.3L459 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H315c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\"}}]})(props);\n};\nexport function AiOutlineChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 512.3v-.3c0-229.8-186.2-416-416-416S96 282.2 96 512v.4c0 229.8 186.2 416 416 416s416-186.2 416-416v-.3.2zm-6.7-74.6l.6 3.3-.6-3.3zM676.7 638.2c53.5-82.2 52.5-189.4-11.1-263.7l162.4-8.4c20.5 44.4 32 93.8 32 145.9 0 185.2-144.6 336.6-327.1 347.4l143.8-221.2zM512 652.3c-77.5 0-140.2-62.7-140.2-140.2 0-77.7 62.7-140.2 140.2-140.2S652.2 434.5 652.2 512 589.5 652.3 512 652.3zm369.2-331.7l-3-5.7 3 5.7zM512 164c121.3 0 228.2 62.1 290.4 156.2l-263.6-13.9c-97.5-5.7-190.2 49.2-222.3 141.1L227.8 311c63.1-88.9 166.9-147 284.2-147zM102.5 585.8c26 145 127.1 264 261.6 315.1C229.6 850 128.5 731 102.5 585.8zM164 512c0-55.9 13.2-108.7 36.6-155.5l119.7 235.4c44.1 86.7 137.4 139.7 234 121.6l-74 145.1C302.9 842.5 164 693.5 164 512zm324.7 415.4c4 .2 8 .4 12 .5-4-.2-8-.3-12-.5z\"}}]})(props);\n};\nexport function AiOutlineCiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z\"}}]})(props);\n};\nexport function AiOutlineCi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z\"}}]})(props);\n};\nexport function AiOutlineClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683368540\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6c-0.3 1.5-0.4 3-0.4 4.4 0 14.4 11.6 26 26 26h723c1.5 0 3-0.1 4.4-0.4 14.2-2.4 23.7-15.9 21.2-30zM204 390h272V182h72v208h272v104H204V390z m468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z\"}}]})(props);\n};\nexport function AiOutlineClockCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\"}}]})(props);\n};\nexport function AiOutlineCloseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiOutlineCloseSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M354 671h58.9c4.7 0 9.2-2.1 12.3-5.7L512 561.8l86.8 103.5c3 3.6 7.5 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.4-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.7 0-9.2 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3-3.6-7.5-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\"}}]})(props);\n};\nexport function AiOutlineCloudDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z\"}}]})(props);\n};\nexport function AiOutlineCloudServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M704 446H320c-4.4 0-8 3.6-8 8v402c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8V454c0-4.4-3.6-8-8-8zm-328 64h272v117H376V510zm272 290H376V683h272v117z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M424 748a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm0-178a32 32 0 1 0 64 0 32 32 0 1 0-64 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z\"}}]})(props);\n};\nexport function AiOutlineCloudSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M376.9 656.4c1.8-33.5 15.7-64.7 39.5-88.6 25.4-25.5 60-39.8 96-39.8 36.2 0 70.3 14.1 96 39.8 1.4 1.4 2.7 2.8 4.1 4.3l-25 19.6a8 8 0 0 0 3 14.1l98.2 24c5 1.2 9.9-2.6 9.9-7.7l.5-101.3c0-6.7-7.6-10.5-12.9-6.3L663 532.7c-36.6-42-90.4-68.6-150.5-68.6-107.4 0-195 85.1-199.4 191.7-.2 4.5 3.4 8.3 8 8.3H369c4.2-.1 7.7-3.4 7.9-7.7zM703 664h-47.9c-4.2 0-7.7 3.3-8 7.6-1.8 33.5-15.7 64.7-39.5 88.6-25.4 25.5-60 39.8-96 39.8-36.2 0-70.3-14.1-96-39.8-1.4-1.4-2.7-2.8-4.1-4.3l25-19.6a8 8 0 0 0-3-14.1l-98.2-24c-5-1.2-9.9 2.6-9.9 7.7l-.4 101.4c0 6.7 7.6 10.5 12.9 6.3l23.2-18.2c36.6 42 90.4 68.6 150.5 68.6 107.4 0 195-85.1 199.4-191.7.2-4.5-3.4-8.3-8-8.3z\"}}]})(props);\n};\nexport function AiOutlineCloudUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M518.3 459a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z\"}}]})(props);\n};\nexport function AiOutlineCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z\"}}]})(props);\n};\nexport function AiOutlineCluster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineCodeSandbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z\"}}]})(props);\n};\nexport function AiOutlineCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineCodepenCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z\"}}]})(props);\n};\nexport function AiOutlineCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M911.7 385.3l-.3-1.5c-.2-1-.3-1.9-.6-2.9-.2-.6-.4-1.1-.5-1.7-.3-.8-.5-1.7-.9-2.5-.2-.6-.5-1.1-.8-1.7-.4-.8-.8-1.5-1.2-2.3-.3-.5-.6-1.1-1-1.6-.8-1.2-1.7-2.4-2.6-3.6-.5-.6-1.1-1.3-1.7-1.9-.4-.5-.9-.9-1.4-1.3-.6-.6-1.3-1.1-1.9-1.6-.5-.4-1-.8-1.6-1.2-.2-.1-.4-.3-.6-.4L531.1 117.8a34.3 34.3 0 0 0-38.1 0L127.3 361.3c-.2.1-.4.3-.6.4-.5.4-1 .8-1.6 1.2-.7.5-1.3 1.1-1.9 1.6-.5.4-.9.9-1.4 1.3-.6.6-1.2 1.2-1.7 1.9-1 1.1-1.8 2.3-2.6 3.6-.3.5-.7 1-1 1.6-.4.7-.8 1.5-1.2 2.3-.3.5-.5 1.1-.8 1.7-.3.8-.6 1.7-.9 2.5-.2.6-.4 1.1-.5 1.7-.2.9-.4 1.9-.6 2.9l-.3 1.5c-.2 1.5-.3 3-.3 4.5v243.5c0 1.5.1 3 .3 4.5l.3 1.5.6 2.9c.2.6.3 1.1.5 1.7.3.9.6 1.7.9 2.5.2.6.5 1.1.8 1.7.4.8.7 1.5 1.2 2.3.3.5.6 1.1 1 1.6.5.7.9 1.4 1.5 2.1l1.2 1.5c.5.6 1.1 1.3 1.7 1.9.4.5.9.9 1.4 1.3.6.6 1.3 1.1 1.9 1.6.5.4 1 .8 1.6 1.2.2.1.4.3.6.4L493 905.7c5.6 3.8 12.3 5.8 19.1 5.8 6.6 0 13.3-1.9 19.1-5.8l365.6-243.5c.2-.1.4-.3.6-.4.5-.4 1-.8 1.6-1.2.7-.5 1.3-1.1 1.9-1.6.5-.4.9-.9 1.4-1.3.6-.6 1.2-1.2 1.7-1.9l1.2-1.5 1.5-2.1c.3-.5.7-1 1-1.6.4-.8.8-1.5 1.2-2.3.3-.5.5-1.1.8-1.7.3-.8.6-1.7.9-2.5.2-.5.4-1.1.5-1.7.3-.9.4-1.9.6-2.9l.3-1.5c.2-1.5.3-3 .3-4.5V389.8c-.3-1.5-.4-3-.6-4.5zM546.4 210.5l269.4 179.4-120.3 80.4-149-99.6V210.5zm-68.8 0v160.2l-149 99.6-120.3-80.4 269.3-179.4zM180.7 454.1l86 57.5-86 57.5v-115zm296.9 358.5L208.3 633.2l120.3-80.4 149 99.6v160.2zM512 592.8l-121.6-81.2L512 430.3l121.6 81.2L512 592.8zm34.4 219.8V652.4l149-99.6 120.3 80.4-269.3 179.4zM843.3 569l-86-57.5 86-57.5v115z\"}}]})(props);\n};\nexport function AiOutlineCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm613 144H768c0-39.8-32.2-72-72-72H200c-39.8 0-72 32.2-72 72v248c0 3.4.2 6.7.7 9.9-.5 7-.7 14-.7 21.1 0 176.7 143.3 320 320 320 160.1 0 292.7-117.5 316.3-271H888c39.8 0 72-32.2 72-72V497c0-39.8-32.2-72-72-72zM696 681h-1.1c.7 7.6 1.1 15.2 1.1 23 0 137-111 248-248 248S200 841 200 704c0-7.8.4-15.4 1.1-23H200V425h496v256zm192-8H776V497h112v176zM613 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm-170 0c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36z\"}}]})(props);\n};\nexport function AiOutlineColumnHeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z\"}}]})(props);\n};\nexport function AiOutlineColumnWidth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z\"}}]})(props);\n};\nexport function AiOutlineComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569682881658\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M573 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40zM293 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M894 345c-48.1-66-115.3-110.1-189-130v0.1c-17.1-19-36.4-36.5-58-52.1-163.7-119-393.5-82.7-513 81-96.3 133-92.2 311.9 6 439l0.8 132.6c0 3.2 0.5 6.4 1.5 9.4 5.3 16.9 23.3 26.2 40.1 20.9L309 806c33.5 11.9 68.1 18.7 102.5 20.6l-0.5 0.4c89.1 64.9 205.9 84.4 313 49l127.1 41.4c3.2 1 6.5 1.6 9.9 1.6 17.7 0 32-14.3 32-32V753c88.1-119.6 90.4-284.9 1-408zM323 735l-12-5-99 31-1-104-8-9c-84.6-103.2-90.2-251.9-11-361 96.4-132.2 281.2-161.4 413-66 132.2 96.1 161.5 280.6 66 412-80.1 109.9-223.5 150.5-348 102z m505-17l-8 10 1 104-98-33-12 5c-56 20.8-115.7 22.5-171 7l-0.2-0.1C613.7 788.2 680.7 742.2 729 676c76.4-105.3 88.8-237.6 44.4-350.4l0.6 0.4c23 16.5 44.1 37.1 62 62 72.6 99.6 68.5 235.2-8 330z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M433 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z\"}}]})(props);\n};\nexport function AiOutlineCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm198.4-588.1a32 32 0 0 0-24.5.5L414.9 415 296.4 686c-3.6 8.2-3.6 17.5 0 25.7 3.4 7.8 9.7 13.9 17.7 17 3.8 1.5 7.7 2.2 11.7 2.2 4.4 0 8.7-.9 12.8-2.7l271-118.6 118.5-271a32.06 32.06 0 0 0-17.7-42.7zM576.8 534.4l26.2 26.2-42.4 42.4-26.2-26.2L380 644.4 447.5 490 422 464.4l42.4-42.4 25.5 25.5L644.4 380l-67.6 154.4zM464.4 422L422 464.4l25.5 25.6 86.9 86.8 26.2 26.2 42.4-42.4-26.2-26.2-86.8-86.9z\"}}]})(props);\n};\nexport function AiOutlineCompress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683667781\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M326 664H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V696c0-17.7-14.3-32-32-32zM342 88h-48c-8.8 0-16 7.2-16 16v176H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V104c0-8.8-7.2-16-16-16zM920 664H698c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V744h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zM920 280H746V104c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16z\"}}]})(props);\n};\nexport function AiOutlineConsoleSql (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683650778\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M301.3 496.7c-23.8 0-40.2-10.5-41.6-26.9H205c0.9 43.4 36.9 70.3 93.9 70.3 59.1 0 95-28.4 95-75.5 0-35.8-20-55.9-64.5-64.5l-29.1-5.6c-23.8-4.7-33.8-11.9-33.8-24.2 0-15 13.3-24.5 33.4-24.5 20.1 0 35.3 11.1 36.6 27h53c-0.9-41.7-37.5-70.3-90.3-70.3-54.4 0-89.7 28.9-89.7 73 0 35.5 21.2 58 62.5 65.8l29.7 5.9c25.8 5.2 35.6 11.9 35.6 24.4 0.1 14.7-14.5 25.1-36 25.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32z m-40 488H136V212h752v416z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M828.5 486.7h-95.8V308.5h-57.4V534h153.2zM529.9 540.1c14.1 0 27.2-2 39.1-5.8l13.3 20.3h53.3L607.9 511c21.1-20 33-51.1 33-89.8 0-73.3-43.3-118.8-110.9-118.8s-111.2 45.3-111.2 118.8c-0.1 73.7 43 118.9 111.1 118.9z m0-190c31.6 0 52.7 27.7 52.7 71.1 0 16.7-3.6 30.6-10 40.5l-5.2-6.9h-48.8L542 491c-3.9 0.9-8 1.4-12.2 1.4-31.7 0-52.8-27.5-52.8-71.2 0.1-43.6 21.2-71.1 52.9-71.1z\"}}]})(props);\n};\nexport function AiOutlineContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M594.3 601.5a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1 8 8 0 0 0 8 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52zm416-354H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z\"}}]})(props);\n};\nexport function AiOutlineContainer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineControl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8s0 .1.1.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8 0 0 0 .1-.1.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7zM620 539v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8v.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8v.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7z\"}}]})(props);\n};\nexport function AiOutlineCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\"}}]})(props);\n};\nexport function AiOutlineCopyrightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z\"}}]})(props);\n};\nexport function AiOutlineCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z\"}}]})(props);\n};\nexport function AiOutlineCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineCrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z\"}}]})(props);\n};\nexport function AiOutlineCustomerService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z\"}}]})(props);\n};\nexport function AiOutlineDash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 476h160v72H112zm320 0h160v72H432zm320 0h160v72H752z\"}}]})(props);\n};\nexport function AiOutlineDashboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 0 1 140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineDeleteColumn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683386799\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M651.1 641.9c-1.4-1.2-3.2-1.9-5.1-1.9h-54.7c-2.4 0-4.6 1.1-6.1 2.9L512 730.7l-73.1-87.8c-1.5-1.8-3.8-2.9-6.1-2.9H378c-1.9 0-3.7 0.7-5.1 1.9-3.4 2.8-3.9 7.9-1 11.3L474.2 776 371.8 898.9c-2.8 3.4-2.4 8.4 1 11.3 1.4 1.2 3.2 1.9 5.1 1.9h54.7c2.4 0 4.6-1.1 6.1-2.9l73.1-87.8 73.1 87.8c1.5 1.8 3.8 2.9 6.1 2.9h55c1.9 0 3.7-0.7 5.1-1.9 3.4-2.8 3.9-7.9 1-11.3L549.8 776l102.4-122.9c2.8-3.4 2.3-8.4-1.1-11.2zM472 544h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8zM350 386H184V136c0-3.3-2.7-6-6-6h-60c-3.3 0-6 2.7-6 6v292c0 16.6 13.4 30 30 30h208c3.3 0 6-2.7 6-6v-60c0-3.3-2.7-6-6-6zM906 130h-60c-3.3 0-6 2.7-6 6v250H674c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6h208c16.6 0 30-13.4 30-30V136c0-3.3-2.7-6-6-6z\"}}]})(props);\n};\nexport function AiOutlineDeleteRow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683582196\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M819.8 512l102.4-122.9c2.8-3.4 2.4-8.4-1-11.3-1.4-1.2-3.2-1.9-5.1-1.9h-54.7c-2.4 0-4.6 1.1-6.1 2.9L782 466.7l-73.1-87.8c-1.5-1.8-3.8-2.9-6.1-2.9H648c-1.9 0-3.7 0.7-5.1 1.9-3.4 2.8-3.9 7.9-1 11.3L744.2 512 641.8 634.9c-2.8 3.4-2.4 8.4 1 11.3 1.4 1.2 3.2 1.9 5.1 1.9h54.7c2.4 0 4.6-1.1 6.1-2.9l73.1-87.8 73.1 87.8c1.5 1.8 3.8 2.9 6.1 2.9h55c1.9 0 3.7-0.7 5.1-1.9 3.4-2.8 3.9-7.9 1-11.3L819.8 512zM536 464H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h416c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zM452 668h-60c-3.3 0-6 2.7-6 6v166H136c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6h292c16.6 0 30-13.4 30-30V674c0-3.3-2.7-6-6-6zM136 184h250v166c0 3.3 2.7 6 6 6h60c3.3 0 6-2.7 6-6V142c0-16.6-13.4-30-30-30H136c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6z\"}}]})(props);\n};\nexport function AiOutlineDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z\"}}]})(props);\n};\nexport function AiOutlineDeliveredProcedure (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683642448\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M632 698.3l141.9-112c4.1-3.2 4.1-9.4 0-12.6L632 461.7c-5.3-4.2-13-0.4-13 6.3v76H295c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v76c0 6.7 7.8 10.4 13 6.3zM893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v278c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V422c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-83.5c0-17-6.7-33.2-18.7-45.2zM640 288H384V184h256v104zM904 724h-56c-4.4 0-8 3.6-8 8v108H184V732c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v148c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V732c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineDeploymentUnit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888.3 693.2c-42.5-24.6-94.3-18-129.2 12.8l-53-30.7V523.6c0-15.7-8.4-30.3-22-38.1l-136-78.3v-67.1c44.2-15 76-56.8 76-106.1 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 49.3 31.8 91.1 76 106.1v67.1l-136 78.3c-13.6 7.8-22 22.4-22 38.1v151.6l-53 30.7c-34.9-30.8-86.8-37.4-129.2-12.8-53.5 31-71.7 99.4-41 152.9 30.8 53.5 98.9 71.9 152.2 41 42.5-24.6 62.7-73 53.6-118.8l48.7-28.3 140.6 81c6.8 3.9 14.4 5.9 22 5.9s15.2-2 22-5.9L674.5 740l48.7 28.3c-9.1 45.7 11.2 94.2 53.6 118.8 53.3 30.9 121.5 12.6 152.2-41 30.8-53.6 12.6-122-40.7-152.9zm-673 138.4a47.6 47.6 0 0 1-65.2-17.6c-13.2-22.9-5.4-52.3 17.5-65.5a47.6 47.6 0 0 1 65.2 17.6c13.2 22.9 5.4 52.3-17.5 65.5zM522 463.8zM464 234a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm170 446.2l-122 70.3-122-70.3V539.8l122-70.3 122 70.3v140.4zm239.9 133.9c-13.2 22.9-42.4 30.8-65.2 17.6-22.8-13.2-30.7-42.6-17.5-65.5s42.4-30.8 65.2-17.6c22.9 13.2 30.7 42.5 17.5 65.5z\"}}]})(props);\n};\nexport function AiOutlineDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z\"}}]})(props);\n};\nexport function AiOutlineDiff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7zm-7.1-502.6c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888zm190.2-581.4L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z\"}}]})(props);\n};\nexport function AiOutlineDingding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z\"}}]})(props);\n};\nexport function AiOutlineDingtalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z\"}}]})(props);\n};\nexport function AiOutlineDisconnect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832.6 191.4c-84.6-84.6-221.5-84.6-306 0l-96.9 96.9 51 51 96.9-96.9c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204l-96.9 96.9 51.1 51.1 96.9-96.9c84.4-84.6 84.4-221.5-.1-306.1zM446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l96.9-96.9-51.1-51.1-96.9 96.9c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l96.9-96.9-51-51-96.8 97zM260.3 209.4a8.03 8.03 0 0 0-11.3 0L209.4 249a8.03 8.03 0 0 0 0 11.3l554.4 554.4c3.1 3.1 8.2 3.1 11.3 0l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3L260.3 209.4z\"}}]})(props);\n};\nexport function AiOutlineDislike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z\"}}]})(props);\n};\nexport function AiOutlineDollarCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z\"}}]})(props);\n};\nexport function AiOutlineDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z\"}}]})(props);\n};\nexport function AiOutlineDotChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm118-224a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm158 228a96 96 0 1 0 192 0 96 96 0 1 0-192 0zm148-314a56 56 0 1 0 112 0 56 56 0 1 0-112 0z\"}}]})(props);\n};\nexport function AiOutlineDoubleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 0 0 0 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 0 0 0 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\"}}]})(props);\n};\nexport function AiOutlineDoubleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 0 0 188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 0 0 492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\"}}]})(props);\n};\nexport function AiOutlineDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiOutlineDownSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.8-5.3 0-12.7-6.5-12.7H643c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\"}}]})(props);\n};\nexport function AiOutlineDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.7 661a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineDrag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M909.3 506.3L781.7 405.6a7.23 7.23 0 0 0-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 0 0-11.3 0L405.6 242.3a7.23 7.23 0 0 0 5.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 0 0 .1-11.4z\"}}]})(props);\n};\nexport function AiOutlineDribbbleSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z\"}}]})(props);\n};\nexport function AiOutlineDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 96C282.6 96 96 282.6 96 512s186.6 416 416 416 416-186.6 416-416S741.4 96 512 96zm275.1 191.8c49.5 60.5 79.5 137.5 80.2 221.4-11.7-2.5-129.2-26.3-247.4-11.4-2.5-6.1-5-12.2-7.6-18.3-7.4-17.3-15.3-34.6-23.6-51.5C720 374.3 779.6 298 787.1 287.8zM512 157.2c90.3 0 172.8 33.9 235.5 89.5-6.4 9.1-59.9 81-186.2 128.4-58.2-107-122.7-194.8-132.6-208 27.3-6.6 55.2-9.9 83.3-9.9zM360.9 191c9.4 12.8 72.9 100.9 131.7 205.5C326.4 440.6 180 440 164.1 439.8c23.1-110.3 97.4-201.9 196.8-248.8zM156.7 512.5c0-3.6.1-7.3.2-10.9 15.5.3 187.7 2.5 365.2-50.6 10.2 19.9 19.9 40.1 28.8 60.3-4.7 1.3-9.4 2.7-14 4.2C353.6 574.9 256.1 736.4 248 750.1c-56.7-63-91.3-146.3-91.3-237.6zM512 867.8c-82.2 0-157.9-28-218.1-75 6.4-13.1 78.3-152 278.7-221.9l2.3-.8c49.9 129.6 70.5 238.3 75.8 269.5A350.46 350.46 0 0 1 512 867.8zm198.5-60.7c-3.6-21.6-22.5-125.6-69-253.3C752.9 536 850.7 565.2 862.8 569c-15.8 98.8-72.5 184.2-152.3 238.1z\"}}]})(props);\n};\nexport function AiOutlineDropbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 556.9l264.2 173.5L512.5 577 246.8 412.7zm896-290.3zm0 0L696.8 95 512.5 248.5l265.2 164.2L512.5 577l184.3 153.4L960 558.8 777.7 412.7zM513 609.8L328.2 763.3l-79.4-51.5v57.8L513 928l263.7-158.4v-57.8l-78.9 51.5zM328.2 95L64 265.1l182.8 147.6 265.7-164.2zM64 556.9z\"}}]})(props);\n};\nexport function AiOutlineEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\"}}]})(props);\n};\nexport function AiOutlineEllipsis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 511a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0z\"}}]})(props);\n};\nexport function AiOutlineEnter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineEnvironment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1zm0-617.2c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8C612.4 381 624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z\"}}]})(props);\n};\nexport function AiOutlineEuroCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z\"}}]})(props);\n};\nexport function AiOutlineEuro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z\"}}]})(props);\n};\nexport function AiOutlineException (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM640 812a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm12-64h40c4.4 0 8-3.6 8-8V628c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineExclamationCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 804a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineExpandAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L863.9 169a7.9 7.9 0 0 0-8.9-8.9zM416.6 562.3a8.03 8.03 0 0 0-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z\"}}]})(props);\n};\nexport function AiOutlineExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683683230\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M342 88H120c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V168h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zM920 664h-48c-8.8 0-16 7.2-16 16v176H682c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V680c0-8.8-7.2-16-16-16zM342 856H168V680c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zM904 88H682c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V120c0-17.7-14.3-32-32-32z\"}}]})(props);\n};\nexport function AiOutlineExperiment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 472a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z\"}}]})(props);\n};\nexport function AiOutlineExport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zm18.6-251.7L765 393.7c-5.3-4.2-13-.4-13 6.3v76H438c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z\"}}]})(props);\n};\nexport function AiOutlineEyeInvisible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5zm-63.57-320.64L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z\"}}]})(props);\n};\nexport function AiOutlineEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\"}}]})(props);\n};\nexport function AiOutlineFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 736H663.9V602.2h104l15.6-120.7H663.9v-77.1c0-35 9.7-58.8 59.8-58.8h63.9v-108c-11.1-1.5-49-4.8-93.2-4.8-92.2 0-155.3 56.3-155.3 159.6v89H434.9v120.7h104.3V848H176V176h672v672z\"}}]})(props);\n};\nexport function AiOutlineFall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M925.9 804l-24-199.2c-.8-6.6-8.9-9.4-13.6-4.7L829 659.5 557.7 388.3c-6.3-6.2-16.4-6.2-22.6 0L433.3 490 156.6 213.3a8.03 8.03 0 0 0-11.3 0l-45 45.2a8.03 8.03 0 0 0 0 11.3L422 591.7c6.2 6.3 16.4 6.3 22.6 0L546.4 490l226.1 226-59.3 59.3a8.01 8.01 0 0 0 4.7 13.6l199.2 24c5.1.7 9.5-3.7 8.8-8.9z\"}}]})(props);\n};\nexport function AiOutlineFastBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z\"}}]})(props);\n};\nexport function AiOutlineFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z\"}}]})(props);\n};\nexport function AiOutlineFieldBinary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683645783\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M600 395.4h91V649h79V267c0-4.4-3.6-8-8-8h-48.2c-3.7 0-7 2.6-7.7 6.3-2.6 12.1-6.9 22.3-12.9 30.9-7.2 10.1-15.9 18.2-26.3 24.4-10.3 6.2-22 10.5-35 12.9-10.4 1.9-21 3-32 3.1-4.4 0.1-7.9 3.6-7.9 8v42.8c0 4.4 3.6 8 8 8zM871 702H567c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM443.9 312.7c-16.1-19-34.4-32.4-55.2-40.4-21.3-8.2-44.1-12.3-68.4-12.3-23.9 0-46.4 4.1-67.7 12.3-20.8 8-39 21.4-54.8 40.3-15.9 19.1-28.7 44.7-38.3 77-9.6 32.5-14.5 73-14.5 121.5 0 49.9 4.9 91.4 14.5 124.4 9.6 32.8 22.4 58.7 38.3 77.7 15.8 18.9 34 32.3 54.8 40.3 21.3 8.2 43.8 12.3 67.7 12.3 24.4 0 47.2-4.1 68.4-12.3 20.8-8 39.2-21.4 55.2-40.4 16.1-19 29-44.9 38.6-77.7 9.6-33 14.5-74.5 14.5-124.4 0-48.4-4.9-88.9-14.5-121.5-9.5-32.1-22.4-57.7-38.6-76.8z m-29.5 251.7c-1 21.4-4.2 42-9.5 61.9-5.5 20.7-14.5 38.5-27 53.4-13.6 16.3-33.2 24.3-57.6 24.3-24 0-43.2-8.1-56.7-24.4-12.2-14.8-21.1-32.6-26.6-53.3-5.3-19.9-8.5-40.6-9.5-61.9-1-20.8-1.5-38.5-1.5-53.2 0-8.8 0.1-19.4 0.4-31.8 0.2-12.7 1.1-25.8 2.6-39.2 1.5-13.6 4-27.1 7.6-40.5 3.7-13.8 8.8-26.3 15.4-37.4 6.9-11.6 15.8-21.1 26.7-28.3 11.4-7.6 25.3-11.3 41.5-11.3 16.1 0 30.1 3.7 41.7 11.2 11.1 7.2 20.3 16.6 27.4 28.2 6.9 11.2 12.1 23.8 15.6 37.7 3.3 13.2 5.8 26.6 7.5 40.1 1.8 13.5 2.8 26.6 3 39.4 0.2 12.4 0.4 23 0.4 31.8 0.1 14.8-0.4 32.5-1.4 53.3z\"}}]})(props);\n};\nexport function AiOutlineFieldNumber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683604581\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M508 280h-63.3c-3.3 0-6 2.7-6 6v340.2H433L197.4 282.6c-1.1-1.6-3-2.6-4.9-2.6H126c-3.3 0-6 2.7-6 6v464c0 3.3 2.7 6 6 6h62.7c3.3 0 6-2.7 6-6V405.1h5.7l238.2 348.3c1.1 1.6 3 2.6 5 2.6H508c3.3 0 6-2.7 6-6V286c0-3.3-2.7-6-6-6zM886 693H582c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM733.8 630c52.9 0 95.2-17.2 126.2-51.7 29.4-32.9 44-75.8 44-128.8 0-53.1-14.6-96.5-44-129.3-30.9-34.8-73.2-52.2-126.2-52.2-53.7 0-95.9 17.5-126.3 52.8-29.2 33.1-43.4 75.9-43.4 128.7 0 52.4 14.3 95.2 43.5 128.3 30.6 34.7 73 52.2 126.2 52.2z m-71.5-263.7c16.9-20.6 40.3-30.9 71.4-30.9 31.5 0 54.8 9.6 71 29.1 16.4 20.3 24.9 48.6 24.9 84.9 0 36.3-8.4 64.1-24.8 83.9-16.5 19.4-40 29.2-71.1 29.2-31.2 0-55-10.3-71.4-30.4-16.3-20.1-24.5-47.3-24.5-82.6 0.1-35.8 8.2-63 24.5-83.2z\"}}]})(props);\n};\nexport function AiOutlineFieldString (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683607277\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M875.6 515.9c2.1 0.8 4.4-0.3 5.2-2.4 0.2-0.4 0.2-0.9 0.2-1.4v-58.3c0-1.8-1.1-3.3-2.8-3.8-6-1.8-17.2-3-27.2-3-32.9 0-61.7 16.7-73.5 41.2v-28.6c0-4.4-3.6-8-8-8H717c-4.4 0-8 3.6-8 8V729c0 4.4 3.6 8 8 8h54.8c4.4 0 8-3.6 8-8V572.7c0-36.2 26.1-60.2 65.1-60.2 10.4 0.1 26.6 1.8 30.7 3.4zM338.6 475.4l-54.7-12.6c-61.2-14.2-87.7-34.8-87.7-70.7 0-44.6 39.1-73.5 96.9-73.5 52.8 0 91.4 26.5 99.9 68.9h70C455.9 311.6 387.6 259 293.4 259c-103.3 0-171 55.5-171 139 0 68.6 38.6 109.5 122.2 128.5l61.6 14.3c63.6 14.9 91.6 37.1 91.6 75.1 0 44.1-43.5 75.2-102.5 75.2-60.6 0-104.5-27.2-112.8-70.5H111c7.2 79.9 75.6 130.4 179.1 130.4C402.3 751 471 695.2 471 605.3c0-70.2-38.6-108.5-132.4-129.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M877 729m-36 0a36 36 0 1 0 72 0 36 36 0 1 0-72 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M653 457.8h-51.4V396c0-4.4-3.6-8-8-8h-54.7c-4.4 0-8 3.6-8 8v61.8H495c-4.4 0-8 3.6-8 8v42.3c0 4.4 3.6 8 8 8h35.9v147.5c0 56.2 27.4 79.4 93.1 79.4 11.7 0 23.6-1.2 33.8-3.1 1.9-0.3 3.2-2 3.2-3.9v-49.3c0-2.2-1.8-4-4-4h-0.4c-4.9 0.5-6.2 0.6-8.3 0.8-4.1 0.3-7.8 0.5-12.6 0.5-24.1 0-34.1-10.3-34.1-35.6V516.1H653c4.4 0 8-3.6 8-8v-42.3c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineFieldTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683618210\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M945 412H689c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h256c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM811 548H689c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h122c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM477.3 322.5H434c-6.2 0-11.2 5-11.2 11.2v248c0 3.6 1.7 6.9 4.6 9l148.9 108.6c5 3.6 12 2.6 15.6-2.4l25.7-35.1v-0.1c3.6-5 2.5-12-2.5-15.6l-126.7-91.6V333.7c0.1-6.2-5-11.2-11.1-11.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M804.8 673.9H747c-5.6 0-10.9 2.9-13.9 7.7-12.7 20.1-27.5 38.7-44.5 55.7-29.3 29.3-63.4 52.3-101.3 68.3-39.3 16.6-81 25-124 25-43.1 0-84.8-8.4-124-25-37.9-16-72-39-101.3-68.3s-52.3-63.4-68.3-101.3c-16.6-39.2-25-80.9-25-124 0-43.1 8.4-84.7 25-124 16-37.9 39-72 68.3-101.3 29.3-29.3 63.4-52.3 101.3-68.3 39.2-16.6 81-25 124-25 43.1 0 84.8 8.4 124 25 37.9 16 72 39 101.3 68.3 17 17 31.8 35.6 44.5 55.7 3 4.8 8.3 7.7 13.9 7.7h57.8c6.9 0 11.3-7.2 8.2-13.3-65.2-129.7-197.4-214-345-215.7-216.1-2.7-395.6 174.2-396 390.1C71.6 727.5 246.9 903 463.2 903c149.5 0 283.9-84.6 349.8-215.8 3.1-6.1-1.4-13.3-8.2-13.3z\"}}]})(props);\n};\nexport function AiOutlineFileAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z\"}}]})(props);\n};\nexport function AiOutlineFileDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 0 0-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z\"}}]})(props);\n};\nexport function AiOutlineFileExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM472 744a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm16-104h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineFileGif (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683725598\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M551.5 490.5H521c-4.6 0-8.4 3.7-8.4 8.4V720c0 4.6 3.7 8.4 8.4 8.4h30.5c4.6 0 8.4-3.7 8.4-8.4V498.9c-0.1-4.6-3.8-8.4-8.4-8.4zM477.3 600h-88.1c-4.6 0-8.4 3.7-8.4 8.4v23.8c0 4.6 3.7 8.4 8.4 8.4h47.6v0.7c-0.6 29.9-23 49.8-56.5 49.8-39.2 0-63.6-30.7-63.6-81.4 0-50.1 23.9-80.6 62.3-80.6 28.1 0 47.5 13.5 55.4 38.3l0.9 2.8h49.2l-0.7-4.6C475.9 515.9 434.7 484 379 484c-68.8 0-113 49.4-113 125.9 0 77.5 43.7 126.1 113.6 126.1 64.4 0 106-40.3 106-102.9v-24.8c0-4.6-3.7-8.3-8.3-8.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216c0 23.2 18.8 42 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M608.2 727.8h32.3c4.6 0 8.4-3.7 8.4-8.4v-84.8h87.8c4.6 0 8.4-3.7 8.4-8.4v-25.5c0-4.6-3.7-8.4-8.4-8.4h-87.8v-58.9h96.8c4.6 0 8.4-3.7 8.4-8.4v-26.8c0-4.6-3.7-8.4-8.4-8.4H608.2c-4.6 0-8.4 3.7-8.4 8.4v221.1c0 4.8 3.8 8.5 8.4 8.5z\"}}]})(props);\n};\nexport function AiOutlineFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}}]})(props);\n};\nexport function AiOutlineFileJpg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M874.6 301.8L596.8 21.3c-4.5-4.5-9.4-8.3-14.7-11.5-1.4-.8-2.8-1.6-4.3-2.3-.9-.5-1.9-.9-2.8-1.3-9-4-18.9-6.2-29-6.2H201c-39.8 0-73 32.2-73 72v880c0 39.8 33.2 72 73 72h623c39.8 0 71-32.2 71-72V352.5c0-19-7-37.2-20.4-50.7zM583 110.4L783.8 312H583V110.4zM823 952H200V72h311v240c0 39.8 33.2 72 73 72h239v568zM350 696.5c0 24.2-7.5 31.4-21.9 31.4-9 0-18.4-5.8-24.8-18.5L272.9 732c13.4 22.9 32.3 34.2 61.3 34.2 41.6 0 60.8-29.9 60.8-66.2V577h-45v119.5zM501.3 577H437v186h44v-62h21.6c39.1 0 73.1-19.6 73.1-63.6 0-45.8-33.5-60.4-74.4-60.4zm-.8 89H481v-53h18.2c21.5 0 33.4 6.2 33.4 24.9 0 18.1-10.5 28.1-32.1 28.1zm182.5-9v36h30v30.1c-4 2.9-11 4.7-17.7 4.7-34.3 0-50.7-21.4-50.7-58.2 0-36.1 19.7-57.4 47.1-57.4 15.3 0 25 6.2 34 14.4l23.7-28.3c-12.7-12.8-32.1-24.2-59.2-24.2-49.6 0-91.1 35.3-91.1 97 0 62.7 40 95.1 91.5 95.1 25.9 0 49.2-10.2 61.5-22.6V657H683z\"}}]})(props);\n};\nexport function AiOutlineFileMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z\"}}]})(props);\n};\nexport function AiOutlineFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}}]})(props);\n};\nexport function AiOutlineFilePpt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 476c-4.4 0-8 3.6-8 8v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.3c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1zm280-281.7L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}}]})(props);\n};\nexport function AiOutlineFileProtect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M644.7 669.2a7.92 7.92 0 0 0-6.5-3.3H594c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.8-5.3 0-12.7-6.5-12.7h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-22.9-31.9zM688 306v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 458H208V148h560v296c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h312c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm402.6-320.8l-192-66.7c-.9-.3-1.7-.4-2.6-.4s-1.8.1-2.6.4l-192 66.7a7.96 7.96 0 0 0-5.4 7.5v251.1c0 2.5 1.1 4.8 3.1 6.3l192 150.2c1.4 1.1 3.2 1.7 4.9 1.7s3.5-.6 4.9-1.7l192-150.2c1.9-1.5 3.1-3.8 3.1-6.3V538.7c0-3.4-2.2-6.4-5.4-7.5zM826 763.7L688 871.6 550 763.7V577l138-48 138 48v186.7z\"}}]})(props);\n};\nexport function AiOutlineFileSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm144 452H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm445.7 51.5l-93.3-93.3C814.7 780.7 828 743.9 828 704c0-97.2-78.8-176-176-176s-176 78.8-176 176 78.8 176 176 176c35.8 0 69-10.7 96.8-29l94.7 94.7c1.6 1.6 3.6 2.3 5.6 2.3s4.1-.8 5.6-2.3l31-31a7.9 7.9 0 0 0 0-11.2zM652 816c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\"}}]})(props);\n};\nexport function AiOutlineFileSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 256c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm192 200v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8zm-48 396H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm104.1-115.6c1.8-34.5 16.2-66.8 40.8-91.4 26.2-26.2 62-41 99.1-41 37.4 0 72.6 14.6 99.1 41 3.2 3.2 6.3 6.6 9.2 10.1L769.2 673a8 8 0 0 0 3 14.1l93.3 22.5c5 1.2 9.8-2.6 9.9-7.7l.6-95.4a8 8 0 0 0-12.9-6.4l-20.3 15.8C805.4 569.6 748.1 540 684 540c-109.9 0-199.6 86.9-204 195.7-.2 4.5 3.5 8.3 8 8.3h48.1c4.3 0 7.8-3.3 8-7.6zM880 744h-48.1c-4.3 0-7.8 3.3-8 7.6-1.8 34.5-16.2 66.8-40.8 91.4-26.2 26.2-62 41-99.1 41-37.4 0-72.6-14.6-99.1-41-3.2-3.2-6.3-6.6-9.2-10.1l23.1-17.9a8 8 0 0 0-3-14.1l-93.3-22.5c-5-1.2-9.8 2.6-9.9 7.7l-.6 95.4a8 8 0 0 0 12.9 6.4l20.3-15.8C562.6 918.4 619.9 948 684 948c109.9 0 199.6-86.9 204-195.7.2-4.5-3.5-8.3-8-8.3z\"}}]})(props);\n};\nexport function AiOutlineFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z\"}}]})(props);\n};\nexport function AiOutlineFileUnknown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm78 195a32 32 0 1 0 64 0 32 32 0 1 0-64 0z\"}}]})(props);\n};\nexport function AiOutlineFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z\"}}]})(props);\n};\nexport function AiOutlineFileZip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 392h64v64h-64zm0 190v160h128V582h-64v-62h-64v62zm80 48v64h-32v-64h32zm-16-302h64v64h-64zm-64-64h64v64h-64zm64 192h64v64h-64zm0-256h64v64h-64zm494.6 88.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z\"}}]})(props);\n};\nexport function AiOutlineFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}}]})(props);\n};\nexport function AiOutlineFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z\"}}]})(props);\n};\nexport function AiOutlineFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z\"}}]})(props);\n};\nexport function AiOutlineFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z\"}}]})(props);\n};\nexport function AiOutlineFolderAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\"}}]})(props);\n};\nexport function AiOutlineFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\"}}]})(props);\n};\nexport function AiOutlineFolderView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683698855\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M309.1 554.3c-5.4 11.6-5.4 24.9 0 36.4C353.3 684 421.6 732 512.5 732s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8 0.1-36.3l-0.1-0.1-0.1-0.1C671.7 461 603.4 413 512.5 413s-159.2 48.1-203.4 141.3zM512.5 477c62.1 0 107.4 30 141.1 95.5C620 638 574.6 668 512.5 668s-107.4-30-141.1-95.5c33.7-65.5 79-95.5 141.1-95.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M513 573m-56 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 298.4H521L403.7 186.2c-1.5-1.4-3.5-2.2-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\"}}]})(props);\n};\nexport function AiOutlineFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\"}}]})(props);\n};\nexport function AiOutlineFontColors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-650.3-80h85c4.2 0 8-2.7 9.3-6.8l53.7-166h219.2l53.2 166c1.3 4 5 6.8 9.3 6.8h89.1c1.1 0 2.2-.2 3.2-.5a9.7 9.7 0 0 0 6-12.4L573.6 118.6a9.9 9.9 0 0 0-9.2-6.6H462.1c-4.2 0-7.9 2.6-9.2 6.6L244.5 723.1c-.4 1-.5 2.1-.5 3.2-.1 5.3 4.3 9.7 9.7 9.7zm255.9-516.1h4.1l83.8 263.8H424.9l84.7-263.8z\"}}]})(props);\n};\nexport function AiOutlineFontSize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z\"}}]})(props);\n};\nexport function AiOutlineFork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M752 100c-61.8 0-112 50.2-112 112 0 47.7 29.9 88.5 72 104.6v27.6L512 601.4 312 344.2v-27.6c42.1-16.1 72-56.9 72-104.6 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 50.6 33.8 93.5 80 107.3v34.4c0 9.7 3.3 19.3 9.3 27L476 672.3v33.6c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-33.6l226.7-291.6c6-7.7 9.3-17.3 9.3-27v-34.4c46.2-13.8 80-56.7 80-107.3 0-61.8-50.2-112-112-112zM224 212a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm336 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm192-552a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}}]})(props);\n};\nexport function AiOutlineForm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 0 0-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z\"}}]})(props);\n};\nexport function AiOutlineFormatPainter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683552617\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M840 192h-56v-72c0-13.3-10.7-24-24-24H168c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h592c13.3 0 24-10.7 24-24V256h32v200H465c-22.1 0-40 17.9-40 40v136h-44c-4.4 0-8 3.6-8 8v228c0 0.6 0.1 1.3 0.2 1.9-0.1 2-0.2 4.1-0.2 6.1 0 46.4 37.6 84 84 84s84-37.6 84-84c0-2.1-0.1-4.1-0.2-6.1 0.1-0.6 0.2-1.2 0.2-1.9V640c0-4.4-3.6-8-8-8h-44V520h351c22.1 0 40-17.9 40-40V232c0-22.1-17.9-40-40-40zM720 352H208V160h512v192zM477 876c0 11-9 20-20 20s-20-9-20-20V696h40v180z\"}}]})(props);\n};\nexport function AiOutlineForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z\"}}]})(props);\n};\nexport function AiOutlineFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM512 533c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4C420 636.1 461.5 597 512 597s92.1 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533z\"}}]})(props);\n};\nexport function AiOutlineFullscreenExit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391 240.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L200 146.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L280 333.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L401 410c5.1.6 9.5-3.7 8.9-8.9L391 240.9zm10.1 373.2L240.8 633c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L146.3 824a8.03 8.03 0 0 0 0 11.3l42.4 42.3c3.1 3.1 8.2 3.1 11.3 0L333.7 744l43.7 43.7A8.01 8.01 0 0 0 391 783l18.9-160.1c.6-5.1-3.7-9.4-8.8-8.8zm221.8-204.2L783.2 391c6.6-.8 9.4-8.9 4.7-13.6L744 333.6 877.7 200c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.3a8.03 8.03 0 0 0-11.3 0L690.3 279.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L614.1 401c-.6 5.2 3.7 9.5 8.8 8.9zM744 690.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L623 614c-5.1-.6-9.5 3.7-8.9 8.9L633 783.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L824 877.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L744 690.4z\"}}]})(props);\n};\nexport function AiOutlineFullscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290 236.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0 0 13.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 0 0 0 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 0 0-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z\"}}]})(props);\n};\nexport function AiOutlineFunction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683610100\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M841 370c3-3.3 2.7-8.3-0.6-11.3-1.5-1.3-3.4-2.1-5.3-2.1h-72.6c-2.4 0-4.6 1-6.1 2.8L633.5 504.6c-2.9 3.4-7.9 3.8-11.3 0.9-0.9-0.8-1.6-1.7-2.1-2.8l-63.5-141.3c-1.3-2.9-4.1-4.7-7.3-4.7H380.7l0.9-4.7 8-42.3c10.5-55.4 38-81.4 85.8-81.4 18.6 0 35.5 1.7 48.8 4.7l14.1-66.8c-22.6-4.7-35.2-6.1-54.9-6.1-103.3 0-156.4 44.3-175.9 147.3l-9.4 49.4h-97.6c-3.8 0-7.1 2.7-7.8 6.4L181.9 415c-0.9 4.3 1.9 8.6 6.2 9.5 0.5 0.1 1.1 0.2 1.6 0.2H284l-89 429.9c-0.9 4.3 1.9 8.6 6.2 9.5 0.5 0.1 1.1 0.2 1.6 0.2H269c3.8 0 7.1-2.7 7.8-6.4l89.7-433.1h135.8l68.2 139.1c1.4 2.9 1 6.4-1.2 8.8l-180.6 203c-2.9 3.3-2.6 8.4 0.7 11.3 1.5 1.3 3.4 2 5.3 2h72.7c2.4 0 4.6-1 6.1-2.8l123.7-146.7c2.8-3.4 7.9-3.8 11.3-1 0.9 0.8 1.6 1.7 2.1 2.8L676.4 784c1.3 2.8 4.1 4.7 7.3 4.7h64.6c4.4 0 8-3.6 8-8 0-1.2-0.3-2.4-0.8-3.5l-95.2-198.9c-1.4-2.9-0.9-6.4 1.3-8.8L841 370z\"}}]})(props);\n};\nexport function AiOutlineFundProjectionScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683753031\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M312.1 591.5c3.1 3.1 8.2 3.1 11.3 0l101.8-101.8 86.1 86.2c3.1 3.1 8.2 3.1 11.3 0l226.3-226.5c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8c-3.1-3.1-8.2-3.1-11.3 0L517 485.3l-86.1-86.2c-3.1-3.1-8.2-3.1-11.3 0L275.3 543.4c-3.1 3.1-3.1 8.2 0 11.3l36.8 36.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M904 160H548V96c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H120c-17.7 0-32 14.3-32 32v520c0 17.7 14.3 32 32 32h356.4v32L311.6 884.1c-3.7 2.4-4.7 7.3-2.3 11l30.3 47.2v0.1c2.4 3.7 7.4 4.7 11.1 2.3L512 838.9l161.3 105.8c3.7 2.4 8.7 1.4 11.1-2.3v-0.1l30.3-47.2c2.4-3.7 1.3-8.6-2.3-11L548 776.3V744h356c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32z m-40 512H160V232h704v440z\"}}]})(props);\n};\nexport function AiOutlineFundView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683816874\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M956 686.5l-0.1-0.1-0.1-0.1C911.7 593 843.4 545 752.5 545s-159.2 48.1-203.4 141.3v0.1c-5.4 11.5-5.4 24.9 0 36.4C593.3 816 661.6 864 752.5 864s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8 0.1-36.2zM752.5 800c-62.1 0-107.4-30-141.1-95.5C645 639 690.4 609 752.5 609c62.1 0 107.4 30 141.1 95.5C860 770 814.6 800 752.5 800z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M753 705m-56 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M136 232h704v253h72V192c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v520c0 17.7 14.3 32 32 32h352v-72H136V232z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M724.9 338.1l-36.8-36.8c-3.1-3.1-8.2-3.1-11.3 0L493 485.3l-86.1-86.2c-3.1-3.1-8.2-3.1-11.3 0L251.3 543.4c-3.1 3.1-3.1 8.2 0 11.3l36.8 36.8c3.1 3.1 8.2 3.1 11.3 0l101.8-101.8 86.1 86.2c3.1 3.1 8.2 3.1 11.3 0l226.3-226.5c3.2-3.1 3.2-8.2 0-11.3z\"}}]})(props);\n};\nexport function AiOutlineFund (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-40 632H134V236h752v560zm-658.9-82.3c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L531 565 416.6 450.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z\"}}]})(props);\n};\nexport function AiOutlineFunnelPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V650h182.9v148zm9.6-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z\"}}]})(props);\n};\nexport function AiOutlineGateway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 392c8.8 0 16-7.2 16-16V192c0-8.8-7.2-16-16-16H744c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h56v240H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16V648c0-8.8-7.2-16-16-16h-56V392h56zM792 240h88v88h-88v-88zm-648 88v-88h88v88h-88zm88 456h-88v-88h88v88zm648-88v88h-88v-88h88zm-80-64h-56c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16h-56V392h56c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h56v240z\"}}]})(props);\n};\nexport function AiOutlineGif (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683621237\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M944 299H692c-4.4 0-8 3.6-8 8v406c0 4.4 3.6 8 8 8h59.2c4.4 0 8-3.6 8-8V549.9h168.2c4.4 0 8-3.6 8-8V495c0-4.4-3.6-8-8-8H759.2V364.2H944c4.4 0 8-3.6 8-8V307c0-4.4-3.6-8-8-8zM588 300h-56c-4.4 0-8 3.6-8 8v406c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V308c0-4.4-3.6-8-8-8zM452 500.9H290.5c-4.4 0-8 3.6-8 8v43.7c0 4.4 3.6 8 8 8h94.9l-0.3 8.9c-1.2 58.8-45.6 98.5-110.9 98.5-76.2 0-123.9-59.7-123.9-156.7 0-95.8 46.8-155.2 121.5-155.2 54.8 0 93.1 26.9 108.5 75.4h76.2c-13.6-87.2-86-143.4-184.7-143.4C150 288 72 375.2 72 511.9 72 650.2 149.1 736 273 736c114.1 0 187-70.7 187-181.6v-45.5c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z\"}}]})(props);\n};\nexport function AiOutlineGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z\"}}]})(props);\n};\nexport function AiOutlineGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M913.9 552.2L805 181.4v-.1c-7.6-22.9-25.7-36.5-48.3-36.5-23.4 0-42.5 13.5-49.7 35.2l-71.4 213H388.8l-71.4-213c-7.2-21.7-26.3-35.2-49.7-35.2-23.1 0-42.5 14.8-48.4 36.6L110.5 552.2c-4.4 14.7 1.2 31.4 13.5 40.7l368.5 276.4c2.6 3.6 6.2 6.3 10.4 7.8l8.6 6.4 8.5-6.4c4.9-1.7 9-4.7 11.9-8.9l368.4-275.4c12.4-9.2 18-25.9 13.6-40.6zM751.7 193.4c1-1.8 2.9-1.9 3.5-1.9 1.1 0 2.5.3 3.4 3L818 394.3H684.5l67.2-200.9zm-487.4 1c.9-2.6 2.3-2.9 3.4-2.9 2.7 0 2.9.1 3.4 1.7l67.3 201.2H206.5l57.8-200zM158.8 558.7l28.2-97.3 202.4 270.2-230.6-172.9zm73.9-116.4h122.1l90.8 284.3-212.9-284.3zM512.9 776L405.7 442.3H620L512.9 776zm157.9-333.7h119.5L580 723.1l90.8-280.8zm-40.7 293.9l207.3-276.7 29.5 99.2-236.8 177.5z\"}}]})(props);\n};\nexport function AiOutlineGlobal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0 0 10-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 0 0 3.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 0 0-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 0 1 887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 0 1-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 0 1 115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 0 1 540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 0 0 540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 0 1-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 0 0-81.5 55.9A373.86 373.86 0 0 1 137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 0 1-107.6 69.2z\"}}]})(props);\n};\nexport function AiOutlineGold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128zm2.5 282.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z\"}}]})(props);\n};\nexport function AiOutlineGooglePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M879.5 470.4c-.3-27-.4-54.2-.5-81.3h-80.8c-.3 27-.5 54.1-.7 81.3-27.2.1-54.2.3-81.2.6v80.9c27 .3 54.2.5 81.2.8.3 27 .3 54.1.5 81.1h80.9c.1-27 .3-54.1.5-81.3 27.2-.3 54.2-.4 81.2-.7v-80.9c-26.9-.2-54.1-.2-81.1-.5zm-530 .4c-.1 32.3 0 64.7.1 97 54.2 1.8 108.5 1 162.7 1.8-23.9 120.3-187.4 159.3-273.9 80.7-89-68.9-84.8-220 7.7-284 64.7-51.6 156.6-38.9 221.3 5.8 25.4-23.5 49.2-48.7 72.1-74.7-53.8-42.9-119.8-73.5-190-70.3-146.6-4.9-281.3 123.5-283.7 270.2-9.4 119.9 69.4 237.4 180.6 279.8 110.8 42.7 252.9 13.6 323.7-86 46.7-62.9 56.8-143.9 51.3-220-90.7-.7-181.3-.6-271.9-.3z\"}}]})(props);\n};\nexport function AiOutlineGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M881 442.4H519.7v148.5h206.4c-8.9 48-35.9 88.6-76.6 115.8-34.4 23-78.3 36.6-129.9 36.6-99.9 0-184.4-67.5-214.6-158.2-7.6-23-12-47.6-12-72.9s4.4-49.9 12-72.9c30.3-90.6 114.8-158.1 214.7-158.1 56.3 0 106.8 19.4 146.6 57.4l110-110.1c-66.5-62-153.2-100-256.6-100-149.9 0-279.6 86-342.7 211.4-26 51.8-40.8 110.4-40.8 172.4S151 632.8 177 684.6C240.1 810 369.8 896 519.7 896c103.6 0 190.4-34.4 253.8-93 72.5-66.8 114.4-165.2 114.4-282.1 0-27.2-2.4-53.3-6.9-78.5z\"}}]})(props);\n};\nexport function AiOutlineGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683739097\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M912 820.1V203.9c28-9.9 48-36.6 48-67.9 0-39.8-32.2-72-72-72-31.3 0-58 20-67.9 48H203.9C194 84 167.3 64 136 64c-39.8 0-72 32.2-72 72 0 31.3 20 58 48 67.9v616.2C84 830 64 856.7 64 888c0 39.8 32.2 72 72 72 31.3 0 58-20 67.9-48h616.2c9.9 28 36.6 48 67.9 48 39.8 0 72-32.2 72-72 0-31.3-20-58-48-67.9zM888 112c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 912c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z m0-752c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z m704 680H184V184h656v656z m48 72c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M288 474h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16z m56-136h336v64H344v-64zM288 758h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16z m56-136h336v64H344v-64z\"}}]})(props);\n};\nexport function AiOutlineHdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM496 208H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 244a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z\"}}]})(props);\n};\nexport function AiOutlineHeatMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-790.4-23.9L512 231.9 858.7 832H165.3zm319-474.1l-228 394c-12.3 21.3 3.1 48 27.7 48h455.8c24.7 0 40.1-26.7 27.7-48L539.7 358c-6.2-10.7-17-16-27.7-16-10.8 0-21.6 5.3-27.7 16zm214 386H325.7L512 422l186.3 322zm-214-194.1l-57 98.4C415 669.5 430.4 696 455 696h114c24.6 0 39.9-26.5 27.7-47.7l-57-98.4c-6.1-10.6-16.9-15.9-27.7-15.9s-21.5 5.3-27.7 15.9zm57.1 98.4h-58.7l29.4-50.7 29.3 50.7z\"}}]})(props);\n};\nexport function AiOutlineHighlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.2H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.2l68.6-67.6 171.4 168.9-68.6 67.6zM713.1 658L450.3 399.1 597.6 254l262.8 259-147.3 145z\"}}]})(props);\n};\nexport function AiOutlineHistory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 0 0 3 14.1zm167.7 301.1l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 0 1-112.5 75.9 352.18 352.18 0 0 1-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 0 1-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 0 1 171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 0 1 112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 0 1 775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z\"}}]})(props);\n};\nexport function AiOutlineHolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M300,276.497424 C317.32646,286.500861 338.67354,286.500861 356,276.497424 C373.326461,266.493987 384,248.006874 384,228 C384,207.993128 373.326461,189.506014 356,179.502578 C338.67354,169.499141 317.32646,169.499141 300,179.502578 C282.673539,189.506014 272,207.993128 272,228 C272,248.006874 282.673539,266.493987 300,276.497424 Z M300,560.497426 C317.32646,570.500863 338.67354,570.500863 356,560.497426 C373.326461,550.493989 384,532.006876 384,512.000002 C384,491.993129 373.326461,473.506016 356,463.502579 C338.67354,453.499142 317.32646,453.499142 300,463.502579 C282.673539,473.506016 272,491.993129 272,512.000002 C272,532.006876 282.673539,550.493989 300,560.497426 Z M640,228 C640,248.006874 650.673539,266.493987 668,276.497424 C685.32646,286.500861 706.67354,286.500861 724,276.497424 C741.326461,266.493987 752,248.006874 752,228 C752,207.993128 741.326461,189.506014 724,179.502578 C706.67354,169.499141 685.32646,169.499141 668,179.502578 C650.673539,189.506014 640,207.993128 640,228 L640,228 Z M640,512.000002 C640,532.006876 650.673539,550.493989 668,560.497426 C685.32646,570.500863 706.67354,570.500863 724,560.497426 C741.326461,550.493989 752,532.006876 752,512.000002 C752,491.993129 741.326461,473.506016 724,463.502579 C706.67354,453.499142 685.32646,453.499142 668,463.502579 C650.673539,473.506016 640,491.993129 640,512.000002 L640,512.000002 Z M300,844.497427 C317.32646,854.500864 338.67354,854.500864 356,844.497427 C373.326461,834.493991 384,816.006877 384,796.000003 C384,775.993131 373.326461,757.506018 356,747.502581 C338.67354,737.499144 317.32646,737.499144 300,747.502581 C282.673539,757.506018 272,775.993131 272,796.000003 C272,816.006877 282.673539,834.493991 300,844.497427 Z M640,796.000003 C640,816.006877 650.673539,834.493991 668,844.497427 C685.32646,854.500864 706.67354,854.500864 724,844.497427 C741.326461,834.493991 752,816.006877 752,796.000003 C752,775.993131 741.326461,757.506018 724,747.502581 C706.67354,737.499144 685.32646,737.499144 668,747.502581 C650.673539,757.506018 640,775.993131 640,796.000003 L640,796.000003 Z\"}}]})(props);\n};\nexport function AiOutlineHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z\"}}]})(props);\n};\nexport function AiOutlineHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z\"}}]})(props);\n};\nexport function AiOutlineHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2zM281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z\"}}]})(props);\n};\nexport function AiOutlineIdcard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560zM610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z\"}}]})(props);\n};\nexport function AiOutlineIe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M852.6 367.6c16.3-36.9 32.1-90.7 32.1-131.8 0-109.1-119.5-147.6-314.5-57.9-161.4-10.8-316.8 110.5-355.6 279.7 46.3-52.3 117.4-123.4 183-151.7C316.1 378.3 246.7 470 194 565.6c-31.1 56.9-66 148.8-66 217.5 0 147.9 139.3 129.8 270.4 63 47.1 23.1 99.8 23.4 152.5 23.4 145.7 0 276.4-81.4 325.2-219H694.9c-78.8 132.9-295.2 79.5-295.2-71.2h493.2c9.6-65.4-2.5-143.6-40.3-211.7zM224.8 648.3c26.6 76.7 80.6 143.8 150.4 185-133.1 73.4-259.9 43.6-150.4-185zm174-163.3c3-82.7 75.4-142.3 156-142.3 80.1 0 153 59.6 156 142.3h-312zm276.8-281.4c32.1-15.4 72.8-33 108.8-33 47.1 0 81.4 32.6 81.4 80.6 0 30-11.1 73.5-21.9 101.8-39.3-63.5-98.9-122.4-168.3-149.4z\"}}]})(props);\n};\nexport function AiOutlineImport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zM902 476H588v-76c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-76h314c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0 0 60.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z\"}}]})(props);\n};\nexport function AiOutlineInfoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 224a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm96 168h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V400c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineInsertRowAbove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683507961\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M878.7 336H145.3c-18.4 0-33.3 14.3-33.3 32v464c0 17.7 14.9 32 33.3 32h733.3c18.4 0 33.3-14.3 33.3-32V368c0.1-17.7-14.8-32-33.2-32zM360 792H184V632h176v160z m0-224H184V408h176v160z m240 224H424V632h176v160z m0-224H424V408h176v160z m240 224H664V632h176v160z m0-224H664V408h176v160zM904 160H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineInsertRowBelow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683503597\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M904 768H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zM878.7 160H145.3c-18.4 0-33.3 14.3-33.3 32v464c0 17.7 14.9 32 33.3 32h733.3c18.4 0 33.3-14.3 33.3-32V192c0.1-17.7-14.8-32-33.2-32zM360 616H184V456h176v160z m0-224H184V232h176v160z m240 224H424V456h176v160z m0-224H424V232h176v160z m240 224H664V456h176v160z m0-224H664V232h176v160z\"}}]})(props);\n};\nexport function AiOutlineInsertRowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683561749\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M248 112h-80c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8zM832 112H368c-17.7 0-32 14.9-32 33.3v733.3c0 18.4 14.3 33.3 32 33.3h464c17.7 0 32-14.9 32-33.3V145.3c0-18.4-14.3-33.3-32-33.3zM568 840H408V664h160v176z m0-240H408V424h160v176z m0-240H408V184h160v176z m224 480H632V664h160v176z m0-240H632V424h160v176z m0-240H632V184h160v176z\"}}]})(props);\n};\nexport function AiOutlineInsertRowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683555439\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M856 112h-80c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8zM656 112H192c-17.7 0-32 14.9-32 33.3v733.3c0 18.4 14.3 33.3 32 33.3h464c17.7 0 32-14.9 32-33.3V145.3c0-18.4-14.3-33.3-32-33.3zM392 840H232V664h160v176z m0-240H232V424h160v176z m0-240H232V184h160v176z m224 480H456V664h160v176z m0-240H456V424h160v176z m0-240H456V184h160v176z\"}}]})(props);\n};\nexport function AiOutlineInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 306.9c-113.5 0-205.1 91.6-205.1 205.1S398.5 717.1 512 717.1 717.1 625.5 717.1 512 625.5 306.9 512 306.9zm0 338.4c-73.4 0-133.3-59.9-133.3-133.3S438.6 378.7 512 378.7 645.3 438.6 645.3 512 585.4 645.3 512 645.3zm213.5-394.6c-26.5 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9 47.9-21.3 47.9-47.9a47.84 47.84 0 0 0-47.9-47.9zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zm-88 235.8c-7.3 18.2-16.1 31.8-30.2 45.8-14.1 14.1-27.6 22.9-45.8 30.2C695.2 844.7 570.3 840 512 840c-58.3 0-183.3 4.7-235.9-16.1-18.2-7.3-31.8-16.1-45.8-30.2-14.1-14.1-22.9-27.6-30.2-45.8C179.3 695.2 184 570.3 184 512c0-58.3-4.7-183.3 16.1-235.9 7.3-18.2 16.1-31.8 30.2-45.8s27.6-22.9 45.8-30.2C328.7 179.3 453.7 184 512 184s183.3-4.7 235.9 16.1c18.2 7.3 31.8 16.1 45.8 30.2 14.1 14.1 22.9 27.6 30.2 45.8C844.7 328.7 840 453.7 840 512c0 58.3 4.7 183.2-16.2 235.8z\"}}]})(props);\n};\nexport function AiOutlineInsurance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441.6 306.8L403 288.6a6.1 6.1 0 0 0-8.4 3.7c-17.5 58.5-45.2 110.1-82.2 153.6a6.05 6.05 0 0 0-1.2 5.6l13.2 43.5c1.3 4.4 7 5.7 10.2 2.4 7.7-8.1 15.4-16.9 23.1-26V656c0 4.4 3.6 8 8 8H403c4.4 0 8-3.6 8-8V393.1a429.2 429.2 0 0 0 33.6-79c1-2.9-.3-6-3-7.3zm26.8 9.2v127.2c0 4.4 3.6 8 8 8h65.9v18.6h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c1.9 3.1 6.2 3.8 8.9 1.4 31.6-26.8 58.7-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V536c21.3 41.7 47.5 77.5 78.1 106.9 2.6 2.5 6.8 2.1 8.9-.7l26.3-35.3c2-2.7 1.4-6.5-1.2-8.4-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8V478c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H476.4c-4.4 0-8 3.6-8 8zm51.5 42.8h97.9v41.6h-97.9v-41.6zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z\"}}]})(props);\n};\nexport function AiOutlineInteraction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z\"}}]})(props);\n};\nexport function AiOutlineIssuesClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72-112c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48zm400-188h-59.3c-2.6 0-5 1.2-6.5 3.3L763.7 538.1l-49.9-68.8a7.92 7.92 0 0 0-6.5-3.3H648c-6.5 0-10.3 7.4-6.5 12.7l109.2 150.7a16.1 16.1 0 0 0 26 0l165.8-228.7c3.8-5.3 0-12.7-6.5-12.7zm-44 306h-64.2c-5.5 0-10.6 2.9-13.6 7.5a352.2 352.2 0 0 1-49.8 62.2A355.92 355.92 0 0 1 651.1 840a355 355 0 0 1-138.7 27.9c-48.1 0-94.8-9.4-138.7-27.9a355.92 355.92 0 0 1-113.3-76.3A353.06 353.06 0 0 1 184 650.5c-18.6-43.8-28-90.5-28-138.5s9.4-94.7 28-138.5c17.9-42.4 43.6-80.5 76.4-113.2 32.8-32.7 70.9-58.4 113.3-76.3a355 355 0 0 1 138.7-27.9c48.1 0 94.8 9.4 138.7 27.9 42.4 17.9 80.5 43.6 113.3 76.3 19 19 35.6 39.8 49.8 62.2 2.9 4.7 8.1 7.5 13.6 7.5H892c6 0 9.8-6.3 7.2-11.6C828.8 178.5 684.7 82 517.7 80 278.9 77.2 80.5 272.5 80 511.2 79.5 750.1 273.3 944 512.4 944c169.2 0 315.6-97 386.7-238.4A8 8 0 0 0 892 694z\"}}]})(props);\n};\nexport function AiOutlineItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 0 0 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z\"}}]})(props);\n};\nexport function AiOutlineLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z\"}}]})(props);\n};\nexport function AiOutlineLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z\"}}]})(props);\n};\nexport function AiOutlineLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiOutlineLeftSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M365.3 518.5l246 178c5.3 3.8 12.7 0 12.7-6.5v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a8.05 8.05 0 0 0 0 13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\"}}]})(props);\n};\nexport function AiOutlineLike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0 1 42.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z\"}}]})(props);\n};\nexport function AiOutlineLineChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z\"}}]})(props);\n};\nexport function AiOutlineLineHeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M648 160H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm272.8 546H856V318h64.8c6 0 9.4-7 5.7-11.7L825.7 178.7a7.14 7.14 0 0 0-11.3 0L713.6 306.3a7.23 7.23 0 0 0 5.7 11.7H784v388h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5a7.2 7.2 0 0 0-5.6-11.7z\"}}]})(props);\n};\nexport function AiOutlineLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M904 476H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M574 665.4a8.03 8.03 0 0 0-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 0 0-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 0 0 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 0 0 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 0 0-11.3 0L372.3 598.7a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\"}}]})(props);\n};\nexport function AiOutlineLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M847.7 112H176.3c-35.5 0-64.3 28.8-64.3 64.3v671.4c0 35.5 28.8 64.3 64.3 64.3h671.4c35.5 0 64.3-28.8 64.3-64.3V176.3c0-35.5-28.8-64.3-64.3-64.3zm0 736c-447.8-.1-671.7-.2-671.7-.3.1-447.8.2-671.7.3-671.7 447.8.1 671.7.2 671.7.3-.1 447.8-.2 671.7-.3 671.7zM230.6 411.9h118.7v381.8H230.6zm59.4-52.2c37.9 0 68.8-30.8 68.8-68.8a68.8 68.8 0 1 0-137.6 0c-.1 38 30.7 68.8 68.8 68.8zm252.3 245.1c0-49.8 9.5-98 71.2-98 60.8 0 61.7 56.9 61.7 101.2v185.7h118.6V584.3c0-102.8-22.2-181.9-142.3-181.9-57.7 0-96.4 31.7-112.3 61.7h-1.6v-52.2H423.7v381.8h118.6V604.8z\"}}]})(props);\n};\nexport function AiOutlineLoading3Quarters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3 22.2 52.4 53.9 99.5 94.3 139.9 40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6 52.4-22.2 99.5-53.9 139.9-94.3 40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7-63.1 26.8-130.2 40.3-199.3 40.3z\"}}]})(props);\n};\nexport function AiOutlineLoading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\"}}]})(props);\n};\nexport function AiOutlineLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z\"}}]})(props);\n};\nexport function AiOutlineLogin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z\"}}]})(props);\n};\nexport function AiOutlineLogout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 0 1-112.7 75.9A352.8 352.8 0 0 1 512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 0 1-112.7-75.9 353.28 353.28 0 0 1-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z\"}}]})(props);\n};\nexport function AiOutlineMacCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683819749\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32z m-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M370.8 554.4c-54.6 0-98.8 44.2-98.8 98.8s44.2 98.8 98.8 98.8 98.8-44.2 98.8-98.8v-42.4h84.7v42.4c0 54.6 44.2 98.8 98.8 98.8s98.8-44.2 98.8-98.8-44.2-98.8-98.8-98.8h-42.4v-84.7h42.4c54.6 0 98.8-44.2 98.8-98.8 0-54.6-44.2-98.8-98.8-98.8s-98.8 44.2-98.8 98.8v42.4h-84.7v-42.4c0-54.6-44.2-98.8-98.8-98.8S272 316.2 272 370.8s44.2 98.8 98.8 98.8h42.4v84.7h-42.4z m42.4 98.8c0 23.4-19 42.4-42.4 42.4s-42.4-19-42.4-42.4 19-42.4 42.4-42.4h42.4v42.4z m197.6-282.4c0-23.4 19-42.4 42.4-42.4s42.4 19 42.4 42.4-19 42.4-42.4 42.4h-42.4v-42.4z m0 240h42.4c23.4 0 42.4 19 42.4 42.4s-19 42.4-42.4 42.4-42.4-19-42.4-42.4v-42.4zM469.6 469.6h84.7v84.7h-84.7v-84.7z m-98.8-56.4c-23.4 0-42.4-19-42.4-42.4s19-42.4 42.4-42.4 42.4 19 42.4 42.4v42.4h-42.4z\"}}]})(props);\n};\nexport function AiOutlineMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z\"}}]})(props);\n};\nexport function AiOutlineMan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M874 120H622c-3.3 0-6 2.7-6 6v56c0 3.3 2.7 6 6 6h160.4L583.1 387.3c-50-38.5-111-59.3-175.1-59.3-76.9 0-149.3 30-203.6 84.4S120 539.1 120 616s30 149.3 84.4 203.6C258.7 874 331.1 904 408 904s149.3-30 203.6-84.4C666 765.3 696 692.9 696 616c0-64.1-20.8-124.9-59.2-174.9L836 241.9V402c0 3.3 2.7 6 6 6h56c3.3 0 6-2.7 6-6V150c0-16.5-13.5-30-30-30zM408 828c-116.9 0-212-95.1-212-212s95.1-212 212-212 212 95.1 212 212-95.1 212-212 212z\"}}]})(props);\n};\nexport function AiOutlineMedicineBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840zM652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineMediumWorkmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M517.2 590.55c0 3.55 0 4.36 2.4 6.55l13.43 13.25v.57h-59.57v-25.47a41.44 41.44 0 0 1-39.5 27.65c-30.61 0-52.84-24.25-52.84-68.87 0-41.8 23.99-69.69 57.65-69.69a35.15 35.15 0 0 1 34.61 21.67v-56.19a6.99 6.99 0 0 0-2.71-6.79l-12.8-12.45v-.56l59.33-7.04v177.37zm-43.74-8.09v-83.83a22.2 22.2 0 0 0-17.74-8.4c-14.48 0-28.47 13.25-28.47 52.62 0 36.86 12.07 49.88 27.1 49.88a23.91 23.91 0 0 0 19.11-10.27zm83.23 28.46V497.74a7.65 7.65 0 0 0-2.4-6.79l-13.19-13.74v-.57h59.56v114.8c0 3.55 0 4.36 2.4 6.54l13.12 12.45v.57l-59.49-.08zm-2.16-175.67c0-13.4 10.74-24.25 23.99-24.25 13.25 0 23.98 10.86 23.98 24.25 0 13.4-10.73 24.25-23.98 24.25s-23.99-10.85-23.99-24.25zm206.83 155.06c0 3.55 0 4.6 2.4 6.79l13.43 13.25v.57h-59.88V581.9a43.4 43.4 0 0 1-41.01 31.2c-26.55 0-40.78-19.56-40.78-56.59 0-17.86 0-37.43.56-59.41a6.91 6.91 0 0 0-2.4-6.55L620.5 477.2v-.57h59.09v73.81c0 24.25 3.51 40.42 18.54 40.42a23.96 23.96 0 0 0 19.35-12.2v-80.85a7.65 7.65 0 0 0-2.4-6.79l-13.27-13.82v-.57h59.56V590.3zm202.76 20.6c0-4.36.8-59.97.8-72.75 0-24.25-3.76-40.98-20.63-40.98a26.7 26.7 0 0 0-21.19 11.64 99.68 99.68 0 0 1 2.4 23.04c0 16.81-.56 38.23-.8 59.66a6.91 6.91 0 0 0 2.4 6.55l13.43 12.45v.56h-60.12c0-4.04.8-59.98.8-72.76 0-24.65-3.76-40.98-20.39-40.98-8.2.3-15.68 4.8-19.83 11.96v82.46c0 3.56 0 4.37 2.4 6.55l13.11 12.45v.56h-59.48V498.15a7.65 7.65 0 0 0-2.4-6.8l-13.19-14.14v-.57H841v28.78c5.53-19 23.13-31.76 42.7-30.96 19.82 0 33.26 11.16 38.93 32.34a46.41 46.41 0 0 1 44.77-32.34c26.55 0 41.58 19.8 41.58 57.23 0 17.87-.56 38.24-.8 59.66a6.5 6.5 0 0 0 2.72 6.55l13.11 12.45v.57h-59.88zM215.87 593.3l17.66 17.05v.57h-89.62v-.57l17.99-17.05a6.91 6.91 0 0 0 2.4-6.55V477.69c0-4.6 0-10.83.8-16.16L104.66 613.1h-.72l-62.6-139.45c-1.37-3.47-1.77-3.72-2.65-6.06v91.43a32.08 32.08 0 0 0 2.96 17.87l25.19 33.46v.57H0v-.57l25.18-33.55a32.16 32.16 0 0 0 2.96-17.78V457.97A19.71 19.71 0 0 0 24 444.15L6.16 420.78v-.56h63.96l53.56 118.1 47.17-118.1h62.6v.56l-17.58 19.8a6.99 6.99 0 0 0-2.72 6.8v139.37a6.5 6.5 0 0 0 2.72 6.55zm70.11-54.65v.56c0 34.6 17.67 48.5 38.38 48.5a43.5 43.5 0 0 0 40.77-24.97h.56c-7.2 34.2-28.14 50.36-59.48 50.36-33.82 0-65.72-20.61-65.72-68.39 0-50.2 31.98-70.25 67.32-70.25 28.46 0 58.76 13.58 58.76 57.24v6.95h-80.59zm0-6.95h39.42v-7.04c0-35.57-7.28-45.03-18.23-45.03-13.27 0-21.35 14.15-21.35 52.07h.16z\"}}]})(props);\n};\nexport function AiOutlineMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M834.7 279.8l61.3-58.9V208H683.7L532.4 586.4 360.3 208H137.7v12.9l71.6 86.6c7 6.4 10.6 15.8 9.7 25.2V673c2.2 12.3-1.7 24.8-10.3 33.7L128 805v12.7h228.6v-12.9l-80.6-98a39.99 39.99 0 0 1-11.1-33.7V378.7l200.7 439.2h23.3l172.6-439.2v349.9c0 9.2 0 11.1-6 17.2l-62.1 60.3V819h301.2v-12.9l-59.9-58.9c-5.2-4-7.9-10.7-6.8-17.2V297a18.1 18.1 0 0 1 6.8-17.2z\"}}]})(props);\n};\nexport function AiOutlineMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 565H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineMenuFold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z\"}}]})(props);\n};\nexport function AiOutlineMenuUnfold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z\"}}]})(props);\n};\nexport function AiOutlineMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineMergeCells (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683404098\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M482.2 508.4L331.3 389c-3-2.4-7.3-0.2-7.3 3.6V478H184V184h204v128c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V144c0-15.5-12.5-28-28-28H144c-15.5 0-28 12.5-28 28v736c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v128H184V546h140v85.4c0 3.8 4.4 6 7.3 3.6l150.9-119.4c2.4-1.8 2.4-5.4 0-7.2zM880 116H596c-15.5 0-28 12.5-28 28v168c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V184h204v294H700v-85.4c0-3.8-4.3-6-7.3-3.6l-151 119.4c-2.3 1.8-2.3 5.3 0 7.1l151 119.5c2.9 2.3 7.3 0.2 7.3-3.6V546h140v294H636V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v168c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V144c0-15.5-12.5-28-28-28z\"}}]})(props);\n};\nexport function AiOutlineMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm200 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 0 0-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z\"}}]})(props);\n};\nexport function AiOutlineMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiOutlineMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineMoneyCollect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM512 837.5l-256-93.1V184h512v560.4l-256 93.1zM660.6 312h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9z\"}}]})(props);\n};\nexport function AiOutlineMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M692.8 412.7l.2-.2-34.6-44.3a7.97 7.97 0 0 0-11.2-1.4l-50.4 39.3-70.5-90.1a7.97 7.97 0 0 0-11.2-1.4l-37.9 29.7a7.97 7.97 0 0 0-1.4 11.2l70.5 90.2-.2.1 34.6 44.3c2.7 3.5 7.7 4.1 11.2 1.4l50.4-39.3 64.1 82c2.7 3.5 7.7 4.1 11.2 1.4l37.9-29.6c3.5-2.7 4.1-7.7 1.4-11.2l-64.1-82.1zM608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L114.3 856.1a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6C473 696.1 537.7 720 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2z\"}}]})(props);\n};\nexport function AiOutlineMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 231a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0z\"}}]})(props);\n};\nexport function AiOutlineNodeCollapse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683371420\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298c-14.2-35.2-48.7-60-89-60-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM451.7 313.7l172.5 136.2c6.3 5.1 15.8 0.5 15.8-7.7V344h264c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H640v-98.2c0-8.1-9.4-12.8-15.8-7.7L451.7 298.3c-4.9 3.9-4.9 11.5 0 15.4z\"}}]})(props);\n};\nexport function AiOutlineNodeExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683374330\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298c-14.2-35.2-48.7-60-89-60-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM456 344h264v98.2c0 8.1 9.5 12.8 15.8 7.7l172.5-136.2c5-3.9 5-11.4 0-15.3L735.8 162.1c-6.4-5.1-15.8-0.5-15.8 7.7V268H456c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineNodeIndex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683635191\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M843.5 737.4c-12.4-75.2-79.2-129.1-155.3-125.4S550.9 676 546 752c-153.5-4.8-208-40.7-199.1-113.7 3.3-27.3 19.8-41.9 50.1-49 18.4-4.3 38.8-4.9 57.3-3.2 1.7 0.2 3.5 0.3 5.2 0.5 11.3 2.7 22.8 5 34.3 6.8 34.1 5.6 68.8 8.4 101.8 6.6 92.8-5 156-45.9 159.2-132.7 3.1-84.1-54.7-143.7-147.9-183.6-29.9-12.8-61.6-22.7-93.3-30.2-14.3-3.4-26.3-5.7-35.2-7.2-7.9-75.9-71.5-133.8-147.8-134.4-76.3-0.6-140.9 56.1-150.1 131.9s40 146.3 114.2 163.9c74.2 17.6 149.9-23.3 175.7-95.1 9.4 1.7 18.7 3.6 28 5.8 28.2 6.6 56.4 15.4 82.4 26.6 70.7 30.2 109.3 70.1 107.5 119.9-1.6 44.6-33.6 65.2-96.2 68.6-27.5 1.5-57.6-0.9-87.3-5.8-8.3-1.4-15.9-2.8-22.6-4.3-3.9-0.8-6.6-1.5-7.8-1.8l-3.1-0.6c-2.2-0.3-5.9-0.8-10.7-1.3-25-2.3-52.1-1.5-78.5 4.6-55.2 12.9-93.9 47.2-101.1 105.8-15.7 126.2 78.6 184.7 276 188.9 29.1 70.4 106.4 107.9 179.6 87 73.3-20.9 119.3-93.4 106.9-168.6zM329.1 345.2c-46 0-83.3-37.3-83.3-83.3s37.3-83.3 83.3-83.3 83.3 37.3 83.3 83.3-37.3 83.3-83.3 83.3zM695.6 845c-46 0-83.3-37.3-83.3-83.3s37.3-83.3 83.3-83.3 83.3 37.3 83.3 83.3-37.3 83.3-83.3 83.3z\"}}]})(props);\n};\nexport function AiOutlineNotification (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z\"}}]})(props);\n};\nexport function AiOutlineNumber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z\"}}]})(props);\n};\nexport function AiOutlineOneToOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683653709\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M316 672h60c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8zM512 622c22.1 0 40-17.9 40-39 0-23.1-17.9-41-40-41s-40 17.9-40 41c0 21.1 17.9 39 40 39zM512 482c22.1 0 40-17.9 40-39 0-23.1-17.9-41-40-41s-40 17.9-40 41c0 21.1 17.9 39 40 39z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32z m-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M648 672h60c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineOrderedList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 0 0-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 0 0 2.1-5.4V432c0-2.2-1.8-4-4-4z\"}}]})(props);\n};\nexport function AiOutlinePaperClip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 0 0 174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z\"}}]})(props);\n};\nexport function AiOutlinePartition (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683632175\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M640.6 429.8h257.1c7.9 0 14.3-6.4 14.3-14.3V158.3c0-7.9-6.4-14.3-14.3-14.3H640.6c-7.9 0-14.3 6.4-14.3 14.3v92.9H490.6c-3.9 0-7.1 3.2-7.1 7.1v221.5h-85.7v-96.5c0-7.9-6.4-14.3-14.3-14.3H126.3c-7.9 0-14.3 6.4-14.3 14.3v257.2c0 7.9 6.4 14.3 14.3 14.3h257.1c7.9 0 14.3-6.4 14.3-14.3V544h85.7v221.5c0 3.9 3.2 7.1 7.1 7.1h135.7v92.9c0 7.9 6.4 14.3 14.3 14.3h257.1c7.9 0 14.3-6.4 14.3-14.3v-257c0-7.9-6.4-14.3-14.3-14.3h-257c-7.9 0-14.3 6.4-14.3 14.3v100h-78.6v-393h78.6v100c0 7.9 6.4 14.3 14.3 14.3z m53.5-217.9h150V362h-150V211.9zM329.9 587h-150V437h150v150z m364.2 75.1h150v150.1h-150V662.1z\"}}]})(props);\n};\nexport function AiOutlinePauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlinePause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlinePayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm159.6-585h-59.5c-3 0-5.8 1.7-7.1 4.4l-90.6 180H511l-90.6-180a8 8 0 0 0-7.1-4.4h-60.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9L457 515.7h-61.4c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V603h-81.7c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V717c0 4.4 3.6 8 8 8h54.3c4.4 0 8-3.6 8-8v-68.1h82c4.4 0 8-3.6 8-8V611c0-4.4-3.6-8-8-8h-82v-41.5h82c4.4 0 8-3.6 8-8v-29.9c0-4.4-3.6-8-8-8h-62l111.1-204.8c.6-1.2 1-2.5 1-3.8-.1-4.4-3.7-8-8.1-8z\"}}]})(props);\n};\nexport function AiOutlinePercentage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M855.7 210.8l-42.4-42.4a8.03 8.03 0 0 0-11.3 0L168.3 801.9a8.03 8.03 0 0 0 0 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0L855.6 222c3.2-3 3.2-8.1.1-11.2zM304 448c79.4 0 144-64.6 144-144s-64.6-144-144-144-144 64.6-144 144 64.6 144 144 144zm0-216c39.7 0 72 32.3 72 72s-32.3 72-72 72-72-32.3-72-72 32.3-72 72-72zm416 344c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144-64.6-144-144-144zm0 216c-39.7 0-72-32.3-72-72s32.3-72 72-72 72 32.3 72 72-32.3 72-72 72z\"}}]})(props);\n};\nexport function AiOutlinePhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 0 1-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 0 0-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 0 0 285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z\"}}]})(props);\n};\nexport function AiOutlinePicCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM848 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h672zM232 436h560v152H232V436z\"}}]})(props);\n};\nexport function AiOutlinePicLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM608 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM152 436h400v152H152V436zm552 210c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlinePicRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-24 500c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H416c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM472 436h400v152H472V436zM80 646c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlinePicture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\"}}]})(props);\n};\nexport function AiOutlinePieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552a398.46 398.46 0 0 0 117.1 282.8c36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952a398.46 398.46 0 0 0 282.8-117.1c36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552c0-88.7 34.5-172.1 97.2-234.8 54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8zM952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-4.7-.4-8.7 3.2-8.7 7.9V464c0 4.4 3.6 8 8 8l384-1c4.7 0 8.4-4 8-8.6zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z\"}}]})(props);\n};\nexport function AiOutlinePlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M719.4 499.1l-296.1-215A15.9 15.9 0 0 0 398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 0 0 0-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z\"}}]})(props);\n};\nexport function AiOutlinePlaySquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M442.3 677.6l199.4-156.7a11.3 11.3 0 0 0 0-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlinePlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiOutlinePlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlinePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1551322312294\",\"style\":\"\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M474 152m8 0l60 0q8 0 8 8l0 704q0 8-8 8l-60 0q-8 0-8-8l0-704q0-8 8-8Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M168 474m8 0l672 0q8 0 8 8l0 60q0 8-8 8l-672 0q-8 0-8-8l0-60q0-8 8-8Z\"}}]})(props);\n};\nexport function AiOutlinePoundCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlinePound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlinePoweroff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlinePrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z\"}}]})(props);\n};\nexport function AiOutlineProfile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM492 400h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM340 368a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineProject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8zm216-432H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlinePropertySafety (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM430.5 318h-46c-1.7 0-3.3.4-4.8 1.2a10.1 10.1 0 0 0-4 13.6l88 161.1h-45.2c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7h-63.1c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1a10.05 10.05 0 0 0-8.8-14.8h-45c-3.8 0-7.2 2.1-8.9 5.5l-73.2 144.3-72.9-144.3c-1.7-3.4-5.2-5.5-9-5.5z\"}}]})(props);\n};\nexport function AiOutlinePullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M788 705.9V192c0-8.8-7.2-16-16-16H602v-68.8c0-6-7-9.4-11.7-5.7L462.7 202.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V240h114v465.9c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c.1-49.2-31.7-91-75.9-106.1zM752 860a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zM384 212c0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1V318.1c44.2-15.1 76-56.9 76-106.1zm-160 0a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0z\"}}]})(props);\n};\nexport function AiOutlinePushpin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z\"}}]})(props);\n};\nexport function AiOutlineQq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z\"}}]})(props);\n};\nexport function AiOutlineQrcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineQuestionCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M764 280.9c-14-30.6-33.9-58.1-59.3-81.6C653.1 151.4 584.6 125 512 125s-141.1 26.4-192.7 74.2c-25.4 23.6-45.3 51-59.3 81.7-14.6 32-22 65.9-22 100.9v27c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-27c0-99.5 88.6-180.4 197.6-180.4s197.6 80.9 197.6 180.4c0 40.8-14.5 79.2-42 111.2-27.2 31.7-65.6 54.4-108.1 64-24.3 5.5-46.2 19.2-61.7 38.8a110.85 110.85 0 0 0-23.9 68.6v31.4c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-31.4c0-15.7 10.9-29.5 26-32.9 58.4-13.2 111.4-44.7 149.3-88.7 19.1-22.3 34-47.1 44.3-74 10.7-27.9 16.1-57.2 16.1-87 0-35-7.4-69-22-100.9zM512 787c-30.9 0-56 25.1-56 56s25.1 56 56 56 56-25.1 56-56-25.1-56-56-56z\"}}]})(props);\n};\nexport function AiOutlineRadarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M926.8 397.1l-396-288a31.81 31.81 0 0 0-37.6 0l-396 288a31.99 31.99 0 0 0-11.6 35.8l151.3 466a32 32 0 0 0 30.4 22.1h489.5c13.9 0 26.1-8.9 30.4-22.1l151.3-466c4.2-13.2-.5-27.6-11.7-35.8zM838.6 417l-98.5 32-200-144.7V199.9L838.6 417zM466 567.2l-89.1 122.3-55.2-169.2L466 567.2zm-116.3-96.8L484 373.3v140.8l-134.3-43.7zM512 599.2l93.9 128.9H418.1L512 599.2zm28.1-225.9l134.2 97.1L540.1 514V373.3zM558 567.2l144.3-46.9-55.2 169.2L558 567.2zm-74-367.3v104.4L283.9 449l-98.5-32L484 199.9zM169.3 470.8l86.5 28.1 80.4 246.4-53.8 73.9-113.1-348.4zM327.1 853l50.3-69h269.3l50.3 69H327.1zm414.5-33.8l-53.8-73.9 80.4-246.4 86.5-28.1-113.1 348.4z\"}}]})(props);\n};\nexport function AiOutlineRadiusBottomleft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineRadiusBottomright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-58-624h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm578 102h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm292 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm174 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 276h-56c-4.4 0-8 3.6-8 8v182c0 87.3-70.7 158-158 158H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c127 0 230-103 230-230V484c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineRadiusSetting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396 140h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-44 684h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm524-204h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 344h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm320 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm160 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm140-284c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V370c0-127-103-230-230-230H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h170c87.3 0 158 70.7 158 158v170zM236 96H92c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2zM920 780H776c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V788c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2z\"}}]})(props);\n};\nexport function AiOutlineRadiusUpleft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M656 200h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm58 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 650h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm696-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174-696H358c-127 0-230 103-230 230v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-87.3 70.7-158 158-158h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineRadiusUpright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-2 696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm522-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-48-696H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c87.3 0 158 70.7 158 158v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-127-103-230-230-230z\"}}]})(props);\n};\nexport function AiOutlineRead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488zM396.9 361H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm223.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c0-4.1-3.2-7.5-7.1-7.5H627.1c-3.9 0-7.1 3.4-7.1 7.5zM396.9 501H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm416 0H627.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5z\"}}]})(props);\n};\nexport function AiOutlineReconciliation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34zm204-523H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552zM704 408v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zM592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineRedEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142zM832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z\"}}]})(props);\n};\nexport function AiOutlineReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm338.7 119.7c-23.1 18.2-68.9 37.8-114.7 37.8s-91.6-19.6-114.7-37.8c-14.4-11.3-35.3-8.9-46.7 5.5s-8.9 35.3 5.5 46.7C396.3 771.6 457.5 792 512 792s115.7-20.4 155.9-52.1a33.25 33.25 0 1 0-41.2-52.2zM960 456c0-61.9-50.1-112-112-112-42.1 0-78.7 23.2-97.9 57.6-57.6-31.5-127.7-51.8-204.1-56.5L612.9 195l127.9 36.9c11.5 32.6 42.6 56.1 79.2 56.1 46.4 0 84-37.6 84-84s-37.6-84-84-84c-32 0-59.8 17.9-74 44.2L603.5 123a33.2 33.2 0 0 0-39.6 18.4l-90.8 203.9c-74.5 5.2-142.9 25.4-199.2 56.2A111.94 111.94 0 0 0 176 344c-61.9 0-112 50.1-112 112 0 45.8 27.5 85.1 66.8 102.5-7.1 21-10.8 43-10.8 65.5 0 154.6 175.5 280 392 280s392-125.4 392-280c0-22.6-3.8-44.5-10.8-65.5C932.5 541.1 960 501.8 960 456zM820 172.5a31.5 31.5 0 1 1 0 63 31.5 31.5 0 0 1 0-63zM120 456c0-30.9 25.1-56 56-56a56 56 0 0 1 50.6 32.1c-29.3 22.2-53.5 47.8-71.5 75.9a56.23 56.23 0 0 1-35.1-52zm392 381.5c-179.8 0-325.5-95.6-325.5-213.5S332.2 410.5 512 410.5 837.5 506.1 837.5 624 691.8 837.5 512 837.5zM868.8 508c-17.9-28.1-42.2-53.7-71.5-75.9 9-18.9 28.3-32.1 50.6-32.1 30.9 0 56 25.1 56 56 .1 23.5-14.5 43.7-35.1 52zM624 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0z\"}}]})(props);\n};\nexport function AiOutlineRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 0 0-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z\"}}]})(props);\n};\nexport function AiOutlineReload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 0 1 655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 0 1 279 755.2a342.16 342.16 0 0 1-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 0 1 109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z\"}}]})(props);\n};\nexport function AiOutlineRest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z\"}}]})(props);\n};\nexport function AiOutlineRetweet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136 552h63.6c4.4 0 8-3.6 8-8V288.7h528.6v72.6c0 1.9.6 3.7 1.8 5.2a8.3 8.3 0 0 0 11.7 1.4L893 255.4c4.3-5 3.6-10.3 0-13.2L749.7 129.8a8.22 8.22 0 0 0-5.2-1.8c-4.6 0-8.4 3.8-8.4 8.4V209H199.7c-39.5 0-71.7 32.2-71.7 71.8V544c0 4.4 3.6 8 8 8zm752-80h-63.6c-4.4 0-8 3.6-8 8v255.3H287.8v-72.6c0-1.9-.6-3.7-1.8-5.2a8.3 8.3 0 0 0-11.7-1.4L131 768.6c-4.3 5-3.6 10.3 0 13.2l143.3 112.4c1.5 1.2 3.3 1.8 5.2 1.8 4.6 0 8.4-3.8 8.4-8.4V815h536.6c39.5 0 71.7-32.2 71.7-71.8V480c-.2-4.4-3.8-8-8.2-8z\"}}]})(props);\n};\nexport function AiOutlineRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M666.7 505.5l-246-178A8 8 0 0 0 408 334v46.9c0 10.2 4.9 19.9 13.2 25.9L566.6 512 421.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.8 0-13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiOutlineRightSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M412.7 696.5l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5V381c0 10.2 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z\"}}]})(props);\n};\nexport function AiOutlineRise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 0 0 0 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0 0 13.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z\"}}]})(props);\n};\nexport function AiOutlineRobot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M300 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0 1 62.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z\"}}]})(props);\n};\nexport function AiOutlineRollback (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112a8 8 0 0 0 0 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z\"}}]})(props);\n};\nexport function AiOutlineRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683455503\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32z m-44 402H188V494h440v326z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-0.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7 0.4 12.6-6.1v-63.9c12.9 0.1 25.9 0.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8 11 40.7 14 82.7 8.9 124.8-0.7 5.4-1.4 10.8-2.4 16.1h74.9c14.8-103.6-11.3-213-81-302.3z\"}}]})(props);\n};\nexport function AiOutlineRotateRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683458761\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-0.4-12.6 6.1l-0.2 64c-118.6 0.5-235.8 53.4-314.6 154.2-69.6 89.2-95.7 198.6-81.1 302.4h74.9c-0.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32z m-44 402H396V494h440v326z\"}}]})(props);\n};\nexport function AiOutlineSafetyCertificate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z\"}}]})(props);\n};\nexport function AiOutlineSafety (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M378.4 475.1a35.91 35.91 0 0 0-50.9 0 35.91 35.91 0 0 0 0 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0 0 48.1 0L730.6 434a33.98 33.98 0 0 0 0-48.1l-2.8-2.8a33.98 33.98 0 0 0-48.1 0L483 579.7 378.4 475.1z\"}}]})(props);\n};\nexport function AiOutlineSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z\"}}]})(props);\n};\nexport function AiOutlineScan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136 384h56c4.4 0 8-3.6 8-8V200h176c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-37.6 0-68 30.4-68 68v180c0 4.4 3.6 8 8 8zm512-184h176v176c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V196c0-37.6-30.4-68-68-68H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM376 824H200V648c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v180c0 37.6 30.4 68 68 68h180c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm512-184h-56c-4.4 0-8 3.6-8 8v176H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h180c37.6 0 68-30.4 68-68V648c0-4.4-3.6-8-8-8zm16-164H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineSchedule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 136H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm308.2-177.4L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5z\"}}]})(props);\n};\nexport function AiOutlineScissor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 0 0 288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"}}]})(props);\n};\nexport function AiOutlineSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0 0 11.6 0l43.6-43.5a8.2 8.2 0 0 0 0-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\"}}]})(props);\n};\nexport function AiOutlineSecurityScan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM402.9 528.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.7 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 123-20.1 178.6zm65.4-133.3c31.3-31.3 82-31.3 113.2 0 31.3 31.3 31.3 82 0 113.2-31.3 31.3-82 31.3-113.2 0s-31.3-81.9 0-113.2z\"}}]})(props);\n};\nexport function AiOutlineSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h360c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H184V184h656v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM653.3 599.4l52.2-52.2a8.01 8.01 0 0 0-4.7-13.6l-179.4-21c-5.1-.6-9.5 3.7-8.9 8.9l21 179.4c.8 6.6 8.9 9.4 13.6 4.7l52.4-52.4 256.2 256.2c3.1 3.1 8.2 3.1 11.3 0l42.4-42.4c3.1-3.1 3.1-8.2 0-11.3L653.3 599.4z\"}}]})(props);\n};\nexport function AiOutlineSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683742680\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2-8.5 2.1-13.8 10.7-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-0.9 3.7-0.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 0.7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-0.8 4.2-2.6 5-5 1.4-4.2-0.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z\"}}]})(props);\n};\nexport function AiOutlineSetting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5a449.4 449.4 0 0 0 159 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2z\"}}]})(props);\n};\nexport function AiOutlineShake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M324 666a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm616.7-309.6L667.6 83.2C655.2 70.9 638.7 64 621.1 64s-34.1 6.8-46.5 19.2L83.3 574.5a65.85 65.85 0 0 0 0 93.1l273.2 273.2c12.3 12.3 28.9 19.2 46.5 19.2s34.1-6.8 46.5-19.2l491.3-491.3c25.6-25.7 25.6-67.5-.1-93.1zM403 880.1L143.9 621l477.2-477.2 259 259.2L403 880.1zM152.8 373.7a7.9 7.9 0 0 0 11.2 0L373.7 164a7.9 7.9 0 0 0 0-11.2l-38.4-38.4a7.9 7.9 0 0 0-11.2 0L114.3 323.9a7.9 7.9 0 0 0 0 11.2l38.5 38.6zm718.6 276.6a7.9 7.9 0 0 0-11.2 0L650.3 860.1a7.9 7.9 0 0 0 0 11.2l38.4 38.4a7.9 7.9 0 0 0 11.2 0L909.7 700a7.9 7.9 0 0 0 0-11.2l-38.3-38.5z\"}}]})(props);\n};\nexport function AiOutlineShareAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 0 0 0-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z\"}}]})(props);\n};\nexport function AiOutlineShop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z\"}}]})(props);\n};\nexport function AiOutlineShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 0 0-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 1 0 0 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 0 0-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 0 0-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6z\"}}]})(props);\n};\nexport function AiOutlineShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z\"}}]})(props);\n};\nexport function AiOutlineShrink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M881.7 187.4l-45.1-45.1a8.03 8.03 0 0 0-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L447.9 585a7.9 7.9 0 0 0-8.9-8.9z\"}}]})(props);\n};\nexport function AiOutlineSisternode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683586275\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M672 432c-120.3 0-219.9 88.5-237.3 204H320c-15.5 0-28-12.5-28-28V244h291c14.2 35.2 48.7 60 89 60 53 0 96-43 96-96s-43-96-96-96c-40.3 0-74.8 24.8-89 60H112v72h108v364c0 55.2 44.8 100 100 100h114.7c17.4 115.5 117 204 237.3 204 132.5 0 240-107.5 240-240S804.5 432 672 432z m128 266c0 4.4-3.6 8-8 8h-86v86c0 4.4-3.6 8-8 8h-52c-4.4 0-8-3.6-8-8v-86h-86c-4.4 0-8-3.6-8-8v-52c0-4.4 3.6-8 8-8h86v-86c0-4.4 3.6-8 8-8h52c4.4 0 8 3.6 8 8v86h86c4.4 0 8 3.6 8 8v52z\"}}]})(props);\n};\nexport function AiOutlineSketch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M925.6 405.1l-203-253.7a6.5 6.5 0 0 0-5-2.4H306.4c-1.9 0-3.8.9-5 2.4l-203 253.7a6.5 6.5 0 0 0 .2 8.3l408.6 459.5c1.2 1.4 3 2.1 4.8 2.1 1.8 0 3.5-.8 4.8-2.1l408.6-459.5a6.5 6.5 0 0 0 .2-8.3zM645.2 206.4l34.4 133.9-132.5-133.9h98.1zm8.2 178.5H370.6L512 242l141.4 142.9zM378.8 206.4h98.1L344.3 340.3l34.5-133.9zm-53.4 7l-44.1 171.5h-93.1l137.2-171.5zM194.6 434.9H289l125.8 247.7-220.2-247.7zM512 763.4L345.1 434.9h333.7L512 763.4zm97.1-80.8L735 434.9h94.4L609.1 682.6zm133.6-297.7l-44.1-171.5 137.2 171.5h-93.1z\"}}]})(props);\n};\nexport function AiOutlineSkin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z\"}}]})(props);\n};\nexport function AiOutlineSkype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-88.1 216C766.9 823.4 729 839 688.4 839c-26.1 0-51.8-6.8-74.6-19.7l-22.5-12.7-25.5 4.5c-17.8 3.2-35.8 4.8-53.6 4.8-41.4 0-81.3-8.1-119.1-24.1-36.3-15.3-69-37.3-97.2-65.5a304.29 304.29 0 0 1-65.5-97.1c-16-37.7-24-77.6-24-119 0-17.4 1.6-35.2 4.6-52.8l4.4-25.1L203 410a151.02 151.02 0 0 1-19.1-73.4c0-40.6 15.7-78.5 44.4-107.2C257.1 200.7 295 185 335.6 185a153 153 0 0 1 71.4 17.9l22.4 11.8 24.8-4.8c18.9-3.6 38.4-5.5 58-5.5 41.4 0 81.3 8.1 119 24 36.5 15.4 69.1 37.4 97.2 65.5 28.2 28.1 50.2 60.8 65.6 97.2 16 37.7 24 77.6 24 119 0 18.4-1.7 37-5.1 55.5l-4.7 25.5 12.6 22.6c12.6 22.5 19.2 48 19.2 73.7 0 40.7-15.7 78.5-44.4 107.2zM583.4 466.2L495 446.6c-33.6-7.7-72.3-17.8-72.3-49.5s27.1-53.9 76.1-53.9c98.7 0 89.7 67.8 138.7 67.8 25.8 0 48.4-15.2 48.4-41.2 0-60.8-97.4-106.5-180-106.5-89.7 0-185.2 38.1-185.2 139.5 0 48.8 17.4 100.8 113.6 124.9l119.4 29.8c36.1 8.9 45.2 29.2 45.2 47.6 0 30.5-30.3 60.3-85.2 60.3-107.2 0-92.3-82.5-149.7-82.5-25.8 0-44.5 17.8-44.5 43.1 0 49.4 60 115.4 194.2 115.4 127.7 0 191-61.5 191-144 0-53.1-24.5-109.6-121.3-131.2z\"}}]})(props);\n};\nexport function AiOutlineSlackSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4-13.3 0-26.1-5.3-35.6-14.8-9.4-9.5-14.7-22.3-14.7-35.6 0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4 13.3 0 26.1 5.3 35.6 14.8s14.7 22.3 14.7 35.6v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8-9.4-9.5-14.7-22.3-14.7-35.6 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z\"}}]})(props);\n};\nexport function AiOutlineSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3 14.4 14.4 33.9 22.5 54.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3 14.4 14.4 33.9 22.5 54.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3-14.4-14.4-34-22.5-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3 14.4 14.4 33.9 22.5 54.3 22.5 42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z\"}}]})(props);\n};\nexport function AiOutlineSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440zm644-436h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74z\"}}]})(props);\n};\nexport function AiOutlineSmallDash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 476h72v72h-72zm182 0h72v72h-72zm364 0h72v72h-72zm182 0h72v72h-72zm-364 0h72v72h-72z\"}}]})(props);\n};\nexport function AiOutlineSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4z\"}}]})(props);\n};\nexport function AiOutlineSnippets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z\"}}]})(props);\n};\nexport function AiOutlineSolution (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M688 264c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48zm-8 136H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM480 544H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 308H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm356.8-74.4c29-26.3 47.2-64.3 47.2-106.6 0-79.5-64.5-144-144-144s-144 64.5-144 144c0 42.3 18.2 80.3 47.2 106.6-57 32.5-96.2 92.7-99.2 162.1-.2 4.5 3.5 8.3 8 8.3h48.1c4.2 0 7.7-3.3 8-7.6C564 871.2 621.7 816 692 816s128 55.2 131.9 124.4c.2 4.2 3.7 7.6 8 7.6H880c4.6 0 8.2-3.8 8-8.3-2.9-69.5-42.2-129.6-99.2-162.1zM692 591c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z\"}}]})(props);\n};\nexport function AiOutlineSortAscending (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9a8 8 0 0 0 12.6 0l112-141.9c4.1-5.2.4-13-6.3-13z\"}}]})(props);\n};\nexport function AiOutlineSortDescending (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM310.3 167.1a8 8 0 0 0-12.6 0L185.7 309c-4.2 5.3-.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z\"}}]})(props);\n};\nexport function AiOutlineSound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344z\"}}]})(props);\n};\nexport function AiOutlineSplitCells (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683545621\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M938.2 508.4L787.3 389c-3-2.4-7.3-0.2-7.3 3.6V478H636V184h204v128c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V144c0-15.5-12.5-28-28-28H596c-15.5 0-28 12.5-28 28v736c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v128H636V546h144v85.4c0 3.8 4.4 6 7.3 3.6l150.9-119.4c2.4-1.8 2.4-5.4 0-7.2zM428 116H144c-15.5 0-28 12.5-28 28v168c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V184h204v294H244v-85.4c0-3.8-4.3-6-7.3-3.6l-151 119.4c-2.3 1.8-2.3 5.3 0 7.1l151 119.5c2.9 2.3 7.3 0.2 7.3-3.6V546h144v294H184V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v168c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V144c0-15.5-12.5-28-28-28z\"}}]})(props);\n};\nexport function AiOutlineStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM664.8 561.6l36.1 210.3L512 672.7 323.1 772l36.1-210.3-152.8-149L417.6 382 512 190.7 606.4 382l211.2 30.7-152.8 148.9z\"}}]})(props);\n};\nexport function AiOutlineStepBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8\"}}]})(props);\n};\nexport function AiOutlineStepForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8\"}}]})(props);\n};\nexport function AiOutlineStock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M904 747H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM165.7 621.8l39.7 39.5c3.1 3.1 8.2 3.1 11.3 0l234.7-233.9 97.6 97.3a32.11 32.11 0 0 0 45.2 0l264.2-263.2c3.1-3.1 3.1-8.2 0-11.3l-39.7-39.6a8.03 8.03 0 0 0-11.3 0l-235.7 235-97.7-97.3a32.11 32.11 0 0 0-45.2 0L165.7 610.5a7.94 7.94 0 0 0 0 11.3z\"}}]})(props);\n};\nexport function AiOutlineStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z\"}}]})(props);\n};\nexport function AiOutlineStrikethrough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 0 0-8-7.9z\"}}]})(props);\n};\nexport function AiOutlineSubnode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683432252\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M688 240c-138 0-252 102.8-269.6 236H249c-14.2-35.2-48.7-60-89-60-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h169.3C436 681.2 550 784 688 784c150.2 0 272-121.8 272-272S838.2 240 688 240z m128 298c0 4.4-3.6 8-8 8h-86v86c0 4.4-3.6 8-8 8h-52c-4.4 0-8-3.6-8-8v-86h-86c-4.4 0-8-3.6-8-8v-52c0-4.4 3.6-8 8-8h86v-86c0-4.4 3.6-8 8-8h52c4.4 0 8 3.6 8 8v86h86c4.4 0 8 3.6 8 8v52z\"}}]})(props);\n};\nexport function AiOutlineSwapLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M872 572H266.8l144.3-183c4.1-5.2.4-13-6.3-13H340c-9.8 0-19.1 4.5-25.1 12.2l-164 208c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineSwapRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M873.1 596.2l-164-208A32 32 0 0 0 684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\"}}]})(props);\n};\nexport function AiOutlineSwap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineSwitcher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528zm168-728H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM300 550h296v64H300z\"}}]})(props);\n};\nexport function AiOutlineSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 0 1 755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 0 1 512.1 856a342.24 342.24 0 0 1-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 0 0-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 0 0-8-8.2z\"}}]})(props);\n};\nexport function AiOutlineTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z\"}}]})(props);\n};\nexport function AiOutlineTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7zM680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"}}]})(props);\n};\nexport function AiOutlineTags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1 0 67.88-67.89 48 48 0 1 0-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z\"}}]})(props);\n};\nexport function AiOutlineTaobaoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z\"}}]})(props);\n};\nexport function AiOutlineTaobao (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.5 273.7a68.7 68.7 0 1 0 137.4 0 68.7 68.7 0 1 0-137.4 0zm730 79.2s-23.7-184.4-426.9-70.1c17.3-30 25.6-49.5 25.6-49.5L396.4 205s-40.6 132.6-113 194.4c0 0 70.1 40.6 69.4 39.4 20.1-20.1 38.2-40.6 53.7-60.4 16.1-7 31.5-13.6 46.7-19.8-18.6 33.5-48.7 83.8-78.8 115.6l42.4 37s28.8-27.7 60.4-61.2h36v61.8H372.9v49.5h140.3v118.5c-1.7 0-3.6 0-5.4-.2-15.4-.7-39.5-3.3-49-18.2-11.5-18.1-3-51.5-2.4-71.9h-97l-3.4 1.8s-35.5 159.1 102.3 155.5c129.1 3.6 203-36 238.6-63.1l14.2 52.6 79.6-33.2-53.9-131.9-64.6 20.1 12.1 45.2c-16.6 12.4-35.6 21.7-56.2 28.4V561.3h137.1v-49.5H628.1V450h137.6v-49.5H521.3c17.6-21.4 31.5-41.1 35-53.6l-42.5-11.6c182.8-65.5 284.5-54.2 283.6 53.2v282.8s10.8 97.1-100.4 90.1l-60.2-12.9-14.2 57.1S882.5 880 903.7 680.2c21.3-200-5.2-327.3-5.2-327.3zm-707.4 18.3l-45.4 69.7 83.6 52.1s56 28.5 29.4 81.9C233.8 625.5 112 736.3 112 736.3l109 68.1c75.4-163.7 70.5-142 89.5-200.7 19.5-60.1 23.7-105.9-9.4-139.1-42.4-42.6-47-46.6-110-93.4z\"}}]})(props);\n};\nexport function AiOutlineTeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M824.2 699.9a301.55 301.55 0 0 0-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 0 1 612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 0 0 8-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 0 1 612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z\"}}]})(props);\n};\nexport function AiOutlineThunderbolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z\"}}]})(props);\n};\nexport function AiOutlineToTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M885 780H165c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM400 325.7h73.9V664c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V325.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 171a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13z\"}}]})(props);\n};\nexport function AiOutlineTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z\"}}]})(props);\n};\nexport function AiOutlineTrademarkCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 0 0 7.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z\"}}]})(props);\n};\nexport function AiOutlineTrademark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 0 0 7.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z\"}}]})(props);\n};\nexport function AiOutlineTransaction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M668.6 320c0-4.4-3.6-8-8-8h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.5-1.1.9-2.4.9-3.7zM157.9 504.2a352.7 352.7 0 0 1 103.5-242.4c32.5-32.5 70.3-58.1 112.4-75.9 43.6-18.4 89.9-27.8 137.6-27.8 47.8 0 94.1 9.3 137.6 27.8 42.1 17.8 79.9 43.4 112.4 75.9 10 10 19.3 20.5 27.9 31.4l-50 39.1a8 8 0 0 0 3 14.1l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3l-47.8 37.4C770.7 146.3 648.6 82 511.5 82 277 82 86.3 270.1 82 503.8a8 8 0 0 0 8 8.2h60c4.3 0 7.8-3.5 7.9-7.8zM934 512h-60c-4.3 0-7.9 3.5-8 7.8a352.7 352.7 0 0 1-103.5 242.4 352.57 352.57 0 0 1-112.4 75.9c-43.6 18.4-89.9 27.8-137.6 27.8s-94.1-9.3-137.6-27.8a352.57 352.57 0 0 1-112.4-75.9c-10-10-19.3-20.5-27.9-31.4l49.9-39.1a8 8 0 0 0-3-14.1l-156.8-38.3c-5-1.2-9.9 2.6-9.9 7.7l-.8 161.7c0 6.7 7.7 10.5 12.9 6.3l47.8-37.4C253.3 877.7 375.4 942 512.5 942 747 942 937.7 753.9 942 520.2a8 8 0 0 0-8-8.2z\"}}]})(props);\n};\nexport function AiOutlineTranslation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683569194\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M140 188h584v164h76V144c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h544v-76H140V188z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M414.3 256h-60.6c-3.4 0-6.4 2.2-7.6 5.4L219 629.4c-0.3 0.8-0.4 1.7-0.4 2.6 0 4.4 3.6 8 8 8h55.1c3.4 0 6.4-2.2 7.6-5.4L322 540h196.2L422 261.4c-1.3-3.2-4.3-5.4-7.7-5.4z m12.4 228h-85.5L384 360.2 426.7 484zM936 528H800v-93c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v93H592c-13.3 0-24 10.7-24 24v176c0 13.3 10.7 24 24 24h136v152c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V752h136c13.3 0 24-10.7 24-24V552c0-13.3-10.7-24-24-24zM728 680h-88v-80h88v80z m160 0h-88v-80h88v80z\"}}]})(props);\n};\nexport function AiOutlineTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM184 352V232h64v207.6a91.99 91.99 0 0 1-64-87.6zm520 128c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z\"}}]})(props);\n};\nexport function AiOutlineTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0 0 75-94 336.64 336.64 0 0 1-108.2 41.2A170.1 170.1 0 0 0 672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 0 0-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 0 1-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 0 1-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z\"}}]})(props);\n};\nexport function AiOutlineUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M824 804H200c-4.4 0-8 3.4-8 7.6v60.8c0 4.2 3.6 7.6 8 7.6h624c4.4 0 8-3.4 8-7.6v-60.8c0-4.2-3.6-7.6-8-7.6zm-312-76c69.4 0 134.6-27.1 183.8-76.2C745 602.7 772 537.4 772 468V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 97-79 176-176 176s-176-79-176-176V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 69.4 27.1 134.6 76.2 183.8C377.3 701 442.6 728 512 728z\"}}]})(props);\n};\nexport function AiOutlineUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.4 124C290.5 124.3 112 303 112 523.9c0 128 60.2 242 153.8 315.2l-37.5 48c-4.1 5.3-.3 13 6.3 12.9l167-.8c5.2 0 9-4.9 7.7-9.9L369.8 727a8 8 0 0 0-14.1-3L315 776.1c-10.2-8-20-16.7-29.3-26a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-7.5 7.5-15.3 14.5-23.4 21.2a7.93 7.93 0 0 0-1.2 11.1l39.4 50.5c2.8 3.5 7.9 4.1 11.4 1.3C854.5 760.8 912 649.1 912 523.9c0-221.1-179.4-400.2-400.6-399.9z\"}}]})(props);\n};\nexport function AiOutlineUngroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683823033\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M736 550H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16z m-56 136H344v-64h336v64zM888 816c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z m0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zM736 266H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16z m-56 136H344v-64h336v64zM888 208c39.8 0 72-32.2 72-72s-32.2-72-72-72-72 32.2-72 72 32.2 72 72 72z m0-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 64c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z m0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zM136 816c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z m0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"}}]})(props);\n};\nexport function AiOutlineUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z\"}}]})(props);\n};\nexport function AiOutlineUnorderedList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z\"}}]})(props);\n};\nexport function AiOutlineUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M518.5 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiOutlineUpSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M334 624h46.9c10.2 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246A7.96 7.96 0 0 0 334 624z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]})(props);\n};\nexport function AiOutlineUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 0 0 140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z\"}}]})(props);\n};\nexport function AiOutlineUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-424 0V184h352v248H336zm120-184h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineUserAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 888.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineUserDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M678.3 655.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 518 759.6 444.7 759.6 362c0-137-110.8-248-247.5-248S264.7 225 264.7 362c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 901.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 641.2 432.2 610 512.2 610c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 534c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 362c0-45.9 17.9-89.1 50.3-121.6S466.3 190 512.2 190s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 362c0 45.9-17.9 89.1-50.3 121.6C601.1 516.1 558 534 512.2 534zM880 772H640c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiOutlineUserSwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683921137\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M759 335c0-137-111-248-248-248S263 198 263 335c0 82.8 40.6 156.2 103 201.2-0.4 0.2-0.7 0.3-0.9 0.4-44.7 18.9-84.8 46-119.3 80.6-34.5 34.5-61.5 74.7-80.4 119.5C146.9 780.5 137 827 136 874.8c-0.1 4.5 3.5 8.2 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C356 614.2 431 583 511 583c137 0 248-111 248-248zM511 507c-95 0-172-77-172-172s77-172 172-172 172 77 172 172-77 172-172 172zM616 728h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H703.5l47.2-60.1c1.1-1.4 1.7-3.2 1.7-4.9 0-4.4-3.6-8-8-8h-72.6c-4.9 0-9.5 2.3-12.6 6.1l-68.5 87.1c-4.4 5.6-6.8 12.6-6.8 19.8 0.1 17.7 14.4 32 32.1 32zM856 792H592c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h176.5l-47.2 60.1c-1.1 1.4-1.7 3.2-1.7 4.9 0 4.4 3.6 8 8 8h72.6c4.9 0 9.5-2.3 12.6-6.1l68.5-87.1c4.4-5.6 6.8-12.6 6.8-19.8-0.1-17.7-14.4-32-32.1-32z\"}}]})(props);\n};\nexport function AiOutlineUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M858.5 763.6a374 374 0 0 0-80.6-119.5 375.63 375.63 0 0 0-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 0 0-80.6 119.5A371.7 371.7 0 0 0 136 901.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 0 0 8-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\"}}]})(props);\n};\nexport function AiOutlineUsergroupAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z\"}}]})(props);\n};\nexport function AiOutlineUsergroupDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M888 784H664c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7zM824 484c0-109.4-87.9-198.3-196.9-200C516.3 282.3 424 373.2 424 484c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 754.6 326 826.8 324 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 707.7 563 684 624 684c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 598.7 658.2 612 624 612s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z\"}}]})(props);\n};\nexport function AiOutlineVerified (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683899926\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8 588.8l-7.3-32.5c-0.2-1-0.6-1.9-1.1-2.7-2.5-3.7-7.4-4.7-11.1-2.2L405 567V411c0-4.4-3.6-8-8-8h-81c-4.4 0-8 3.6-8 8v36c0 4.4 3.6 8 8 8h37v192.4c0 1.7 0.5 3.3 1.5 4.7 2.6 3.6 7.6 4.4 11.2 1.8l79-56.8c2.6-1.9 3.8-5.1 3.1-8.3zM391.1 372.2l0.2 0.2c3.2 3 8.3 2.8 11.3-0.5l24.1-26.2c2.9-3.2 2.8-8.1-0.3-11.2l-53.7-52.1c-3.1-3-8.1-3-11.2 0.1l-24.7 24.7c-3.1 3.1-3.1 8.2 0.1 11.3l54.2 53.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 0.7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c0.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M452 297v36c0 4.4 3.6 8 8 8h108v274h-38V405c0-4.4-3.6-8-8-8h-35c-4.4 0-8 3.6-8 8v210h-31c-4.4 0-8 3.6-8 8v37c0 4.4 3.6 8 8 8h244c4.4 0 8-3.6 8-8v-37c0-4.4-3.6-8-8-8h-72V493h58c4.4 0 8-3.6 8-8v-35c0-4.4-3.6-8-8-8h-58V341h63c4.4 0 8-3.6 8-8v-36c0-4.4-3.6-8-8-8H460c-4.4 0-8 3.6-8 8z\"}}]})(props);\n};\nexport function AiOutlineVerticalAlignBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8z\"}}]})(props);\n};\nexport function AiOutlineVerticalAlignMiddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 0 0-11.3 0L405.6 752.3a7.23 7.23 0 0 0 5.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z\"}}]})(props);\n};\nexport function AiOutlineVerticalAlignTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z\"}}]})(props);\n};\nexport function AiOutlineVerticalLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M762 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm-508 0v72.4c0 9.5 4.2 18.4 11.4 24.5L564.6 512 265.4 763.1c-7.2 6.1-11.4 15-11.4 24.5V860c0 6.8 7.9 10.5 13.1 6.1L689 512 267.1 157.9A7.95 7.95 0 0 0 254 164z\"}}]})(props);\n};\nexport function AiOutlineVerticalRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm444 72.4V164c0-6.8-7.9-10.5-13.1-6.1L335 512l421.9 354.1c5.2 4.4 13.1.7 13.1-6.1v-72.4c0-9.4-4.2-18.4-11.4-24.5L459.4 512l299.2-251.1c7.2-6.1 11.4-15.1 11.4-24.5z\"}}]})(props);\n};\nexport function AiOutlineVideoCameraAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683915274\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M368 724H252V608c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v116H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h116v116c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V788h116c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v352h72V232h576v560H448v72h272c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM888 625l-104-59.8V458.9L888 399v226z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 360c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112z\"}}]})(props);\n};\nexport function AiOutlineVideoCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226zM208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiOutlineWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiOutlineWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z\"}}]})(props);\n};\nexport function AiOutlineWechat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z\"}}]})(props);\n};\nexport function AiOutlineWeiboCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z\"}}]})(props);\n};\nexport function AiOutlineWeiboSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z\"}}]})(props);\n};\nexport function AiOutlineWeibo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M457.3 543c-68.1-17.7-145 16.2-174.6 76.2-30.1 61.2-1 129.1 67.8 151.3 71.2 23 155.2-12.2 184.4-78.3 28.7-64.6-7.2-131-77.6-149.2zm-52 156.2c-13.8 22.1-43.5 31.7-65.8 21.6-22-10-28.5-35.7-14.6-57.2 13.7-21.4 42.3-31 64.4-21.7 22.4 9.5 29.6 35 16 57.3zm45.5-58.5c-5 8.6-16.1 12.7-24.7 9.1-8.5-3.5-11.2-13.1-6.4-21.5 5-8.4 15.6-12.4 24.1-9.1 8.7 3.2 11.8 12.9 7 21.5zm334.5-197.2c15 4.8 31-3.4 35.9-18.3 11.8-36.6 4.4-78.4-23.2-109a111.39 111.39 0 0 0-106-34.3 28.45 28.45 0 0 0-21.9 33.8 28.39 28.39 0 0 0 33.8 21.8c18.4-3.9 38.3 1.8 51.9 16.7a54.2 54.2 0 0 1 11.3 53.3 28.45 28.45 0 0 0 18.2 36zm99.8-206c-56.7-62.9-140.4-86.9-217.7-70.5a32.98 32.98 0 0 0-25.4 39.3 33.12 33.12 0 0 0 39.3 25.5c55-11.7 114.4 5.4 154.8 50.1 40.3 44.7 51.2 105.7 34 159.1-5.6 17.4 3.9 36 21.3 41.7 17.4 5.6 36-3.9 41.6-21.2v-.1c24.1-75.4 8.9-161.1-47.9-223.9zM729 499c-12.2-3.6-20.5-6.1-14.1-22.1 13.8-34.7 15.2-64.7.3-86-28-40.1-104.8-37.9-192.8-1.1 0 0-27.6 12.1-20.6-9.8 13.5-43.5 11.5-79.9-9.6-101-47.7-47.8-174.6 1.8-283.5 110.6C127.3 471.1 80 557.5 80 632.2 80 775.1 263.2 862 442.5 862c235 0 391.3-136.5 391.3-245 0-65.5-55.2-102.6-104.8-118zM443 810.8c-143 14.1-266.5-50.5-275.8-144.5-9.3-93.9 99.2-181.5 242.2-195.6 143-14.2 266.5 50.5 275.8 144.4C694.4 709 586 796.6 443 810.8z\"}}]})(props);\n};\nexport function AiOutlineWhatsApp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"t\":\"1569683925316\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\"},\"child\":[{\"tag\":\"defs\",\"attr\":{},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M713.5 599.9c-10.9-5.6-65.2-32.2-75.3-35.8-10.1-3.8-17.5-5.6-24.8 5.6-7.4 11.1-28.4 35.8-35 43.3-6.4 7.4-12.9 8.3-23.8 2.8-64.8-32.4-107.3-57.8-150-131.1-11.3-19.5 11.3-18.1 32.4-60.2 3.6-7.4 1.8-13.7-1-19.3-2.8-5.6-24.8-59.8-34-81.9-8.9-21.5-18.1-18.5-24.8-18.9-6.4-0.4-13.7-0.4-21.1-0.4-7.4 0-19.3 2.8-29.4 13.7-10.1 11.1-38.6 37.8-38.6 92s39.5 106.7 44.9 114.1c5.6 7.4 77.7 118.6 188.4 166.5 70 30.2 97.4 32.8 132.4 27.6 21.3-3.2 65.2-26.6 74.3-52.5 9.1-25.8 9.1-47.9 6.4-52.5-2.7-4.9-10.1-7.7-21-13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3-41.3-41.3-89.5-73.8-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6 0.3-119.3 12.3-174.5 35.9-53.3 22.8-101.1 55.2-142 96.5-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9 0.3 69.4 16.9 138.3 48 199.9v152c0 25.4 20.6 46 46 46h152.1c61.6 31.1 130.5 47.7 199.9 48h2.1c59.9 0 118-11.6 172.7-34.3 53.5-22.3 101.6-54.3 142.8-95.2 41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5 0.3-60.9-11.5-120-34.8-175.6z m-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-0.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-0.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-0.6 99.6-39.7 192.9-110.1 262.7z\"}}]})(props);\n};\nexport function AiOutlineWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6a8.1 8.1 0 0 0-.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-.9l36-42.9c2.8-3.3 2.4-8.3-.9-11.2zm117.4-140.1C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4a8.05 8.05 0 0 0-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3zm116.7-139C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4a8 8 0 0 0-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3zM448 778a64 64 0 1 0 128 0 64 64 0 1 0-128 0z\"}}]})(props);\n};\nexport function AiOutlineWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.1 770.6L443 823.2V543.8H120.1v226.8zm63.4-163.5h196.2v141.6l-196.2-31.9V607.1zm340.3 226.5l382 62.2v-352h-382v289.8zm63.4-226.5h255.3v214.4l-255.3-41.6V607.1zm-63.4-415.7v288.8h382V128.1l-382 63.3zm318.7 225.5H587.3V245l255.3-42.3v214.2zm-722.4 63.3H443V201.9l-322.9 53.5v224.8zM183.5 309l196.2-32.5v140.4H183.5V309z\"}}]})(props);\n};\nexport function AiOutlineWoman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M712.8 548.8c53.6-53.6 83.2-125 83.2-200.8 0-75.9-29.5-147.2-83.2-200.8C659.2 93.6 587.8 64 512 64s-147.2 29.5-200.8 83.2C257.6 200.9 228 272.1 228 348c0 63.8 20.9 124.4 59.4 173.9 7.3 9.4 15.2 18.3 23.7 26.9 8.5 8.5 17.5 16.4 26.8 23.7 39.6 30.8 86.3 50.4 136.1 57V736H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h114v140c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V812h114c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H550V629.5c61.5-8.2 118.2-36.1 162.8-80.7zM512 556c-55.6 0-107.7-21.6-147.1-60.9C325.6 455.8 304 403.6 304 348s21.6-107.7 60.9-147.1C404.2 161.5 456.4 140 512 140s107.7 21.6 147.1 60.9C698.4 240.2 720 292.4 720 348s-21.6 107.7-60.9 147.1C619.7 534.4 567.6 556 512 556z\"}}]})(props);\n};\nexport function AiOutlineYahoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M859.9 681.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm0 507C245.1 738 121 634.6 121 512.5c0-62.3 32.3-119.7 84.9-161v48.4h37l159.8 159.9v65.3h-84.4v56.3h225.1v-56.3H459v-65.3l103.5-103.6h65.3v-56.3H459v65.3l-28.1 28.1-93.4-93.5h37v-56.3H216.4c49.4-35 114.3-56.6 186.2-56.6 157.6 0 281.6 103.4 281.6 225.5S560.2 738 402.6 738zm534.7-507H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7z\"}}]})(props);\n};\nexport function AiOutlineYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M960 509.2c0-2.2 0-4.7-.1-7.6-.1-8.1-.3-17.2-.5-26.9-.8-27.9-2.2-55.7-4.4-81.9-3-36.1-7.4-66.2-13.4-88.8a139.52 139.52 0 0 0-98.3-98.5c-28.3-7.6-83.7-12.3-161.7-15.2-37.1-1.4-76.8-2.3-116.5-2.8-13.9-.2-26.8-.3-38.4-.4h-29.4c-11.6.1-24.5.2-38.4.4-39.7.5-79.4 1.4-116.5 2.8-78 3-133.5 7.7-161.7 15.2A139.35 139.35 0 0 0 82.4 304C76.3 326.6 72 356.7 69 392.8c-2.2 26.2-3.6 54-4.4 81.9-.3 9.7-.4 18.8-.5 26.9 0 2.9-.1 5.4-.1 7.6v5.6c0 2.2 0 4.7.1 7.6.1 8.1.3 17.2.5 26.9.8 27.9 2.2 55.7 4.4 81.9 3 36.1 7.4 66.2 13.4 88.8 12.8 47.9 50.4 85.7 98.3 98.5 28.2 7.6 83.7 12.3 161.7 15.2 37.1 1.4 76.8 2.3 116.5 2.8 13.9.2 26.8.3 38.4.4h29.4c11.6-.1 24.5-.2 38.4-.4 39.7-.5 79.4-1.4 116.5-2.8 78-3 133.5-7.7 161.7-15.2 47.9-12.8 85.5-50.5 98.3-98.5 6.1-22.6 10.4-52.7 13.4-88.8 2.2-26.2 3.6-54 4.4-81.9.3-9.7.4-18.8.5-26.9 0-2.9.1-5.4.1-7.6v-5.6zm-72 5.2c0 2.1 0 4.4-.1 7.1-.1 7.8-.3 16.4-.5 25.7-.7 26.6-2.1 53.2-4.2 77.9-2.7 32.2-6.5 58.6-11.2 76.3-6.2 23.1-24.4 41.4-47.4 47.5-21 5.6-73.9 10.1-145.8 12.8-36.4 1.4-75.6 2.3-114.7 2.8-13.7.2-26.4.3-37.8.3h-28.6l-37.8-.3c-39.1-.5-78.2-1.4-114.7-2.8-71.9-2.8-124.9-7.2-145.8-12.8-23-6.2-41.2-24.4-47.4-47.5-4.7-17.7-8.5-44.1-11.2-76.3-2.1-24.7-3.4-51.3-4.2-77.9-.3-9.3-.4-18-.5-25.7 0-2.7-.1-5.1-.1-7.1v-4.8c0-2.1 0-4.4.1-7.1.1-7.8.3-16.4.5-25.7.7-26.6 2.1-53.2 4.2-77.9 2.7-32.2 6.5-58.6 11.2-76.3 6.2-23.1 24.4-41.4 47.4-47.5 21-5.6 73.9-10.1 145.8-12.8 36.4-1.4 75.6-2.3 114.7-2.8 13.7-.2 26.4-.3 37.8-.3h28.6l37.8.3c39.1.5 78.2 1.4 114.7 2.8 71.9 2.8 124.9 7.2 145.8 12.8 23 6.2 41.2 24.4 47.4 47.5 4.7 17.7 8.5 44.1 11.2 76.3 2.1 24.7 3.4 51.3 4.2 77.9.3 9.3.4 18 .5 25.7 0 2.7.1 5.1.1 7.1v4.8zM423 646l232-135-232-133z\"}}]})(props);\n};\nexport function AiOutlineYuque (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.8-8.1-194.9-3-195-3 .1 0 87.4 55.6 52.4 154.7-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6zm-204.1 334c-10.6 0-26.2.1-46.8.3l-23.6.2-17.8 15.5c-47.1 41-104.4 71.5-171.4 87.6-52.5 12.6-110 16.2-172.7 9.6 18-20.5 36.5-41.6 55.4-63.1 92-104.6 173.8-197.5 236.9-268.5l1.4-1.4 1.3-1.5c4.1-4.6 20.6-23.3 24.7-28.1 9.7-11.1 17.3-19.9 24.5-28.6 30.7-36.7 52.2-67.8 69-102.2l1.6-3.3 1.2-3.4c13.7-38.8 15.4-76.9 6.2-112.8 22.5.7 46.5 1.9 71.7 3.6 33.3 2.3 55.5 12.9 71.1 29.2 5.8 6 10.2 12.5 13.4 18.7 1 2 1.7 3.6 2.3 5l5 17.7c-15.7 34.5-19.9 73.3-11.4 107.2 3 11.8 6.9 22.4 12.3 34.4 2.1 4.7 9.5 20.1 11 23.3 10.3 22.7 15.4 43 16.7 78.7 3.3 94.6-82.7 181.9-182 181.9z\"}}]})(props);\n};\nexport function AiOutlineZhihu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z\"}}]})(props);\n};\nexport function AiOutlineZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\"}}]})(props);\n};\nexport function AiOutlineZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\"}}]})(props);\n};\nexport function AiTwotoneAccountBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-65.6 121.8l-89.3 164.1h49.1c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4v33.7h65.4c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4V752c0 4.4-3.6 8-8 8h-41.3c-4.4 0-8-3.6-8-8v-53.8h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8h65.1v-33.7h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8H467l-89.3-164c-2.1-3.9-.7-8.8 3.2-10.9 1.1-.7 2.5-1 3.8-1h46a8 8 0 0 1 7.1 4.4l73.4 145.4h2.8l73.4-145.4c1.3-2.7 4.1-4.4 7.1-4.4h45c4.5 0 8 3.6 7.9 8 0 1.3-.4 2.6-1 3.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z\"}}]})(props);\n};\nexport function AiTwotoneAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340 585c0-5.5 4.5-10 10-10h44c5.5 0 10 4.5 10 10v171h355V563c0-136.4-110.6-247-247-247S265 426.6 265 563v193h75V585z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M216.9 310.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8zm348 712H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zm-639-96c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563z\"}}]})(props);\n};\nexport function AiTwotoneApi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 0 0-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z\"}}]})(props);\n};\nexport function AiTwotoneAppstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm52-668H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M212 212h200v200H212zm400 0h200v200H612zM212 612h200v200H212zm400 0h200v200H612z\"}}]})(props);\n};\nexport function AiTwotoneAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 552c54.3 0 98-43.2 98-96V232c0-52.8-43.7-96-98-96s-98 43.2-98 96v224c0 52.8 43.7 96 98 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-98-392c0-52.8 43.7-96 98-96s98 43.2 98 96v224c0 52.8-43.7 96-98 96s-98-43.2-98-96V232z\"}}]})(props);\n};\nexport function AiTwotoneBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.9 393.9h542.2L512 196.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374zM240.9 393.9L512 196.7l271.1 197.2H240.9z\"}}]})(props);\n};\nexport function AiTwotoneBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 220c-55.6 0-107.8 21.6-147.1 60.9S304 372.4 304 428v340h416V428c0-55.6-21.6-107.8-60.9-147.1S567.6 220 512 220zm280 208c0-141.1-104.3-257.8-240-277.2v.1c135.7 19.4 240 136 240 277.1zM472 150.9v-.1C336.3 170.2 232 286.9 232 428c0-141.1 104.3-257.7 240-277.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zm208-120H304V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340z\"}}]})(props);\n};\nexport function AiTwotoneBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752H232z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M668 345.9V136h-96v211.4l49.5-35.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 0 1-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z\"}}]})(props);\n};\nexport function AiTwotoneBoxPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 368h88v288h-88zm152 0h280v288H448z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM384 656h-88V368h88v288zm344 0H448V368h280v288z\"}}]})(props);\n};\nexport function AiTwotoneBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308 412v268c0 36.779 9.678 71.962 27.805 102.907a205.39 205.39 0 0 0 73.288 73.288C440.038 874.322 475.22 884 512 884c36.779 0 71.962-9.678 102.907-27.805a205.39 205.39 0 0 0 73.288-73.288C706.322 751.962 716 716.78 716 680V412H308zm484 172v96c0 6.503-.222 12.954-.658 19.346C859.931 728.636 908 796.705 908 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-44.24-23.94-82.888-59.57-103.697a278.635 278.635 0 0 1-22.658 49.018 281.39 281.39 0 0 1-100.45 100.45C611.84 946.072 563.546 960 512 960s-99.84-13.929-141.321-38.228a281.39 281.39 0 0 1-100.45-100.45 278.635 278.635 0 0 1-22.658-49.019C211.94 793.113 188 831.76 188 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-79.295 48.07-147.363 116.658-176.654A284.122 284.122 0 0 1 232 680v-96H84a8 8 0 0 1-8-8v-56a8 8 0 0 1 8-8h148V412c-76.768 0-139-62.232-139-139a8 8 0 0 1 8-8h60a8 8 0 0 1 8 8c0 34.794 28.206 63 63 63h560c34.794 0 63-28.206 63-63a8 8 0 0 1 8-8h60a8 8 0 0 1 8 8c0 76.768-62.232 139-139 139v100h148a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8H792zM368 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-40.039 8.779-76.746 25.9-108.068 17.235-31.526 42.506-56.797 74.032-74.031C427.254 72.779 463.962 64 504 64h16c40.039 0 76.746 8.779 108.068 25.9 31.526 17.235 56.797 42.506 74.031 74.032C719.221 195.254 728 231.962 728 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-28.326-5.938-53.154-17.077-73.531-10.625-19.437-25.955-34.767-45.392-45.392C573.154 141.937 548.326 136 520 136h-16c-28.326 0-53.154 5.938-73.531 17.077-19.437 10.625-34.767 25.955-45.392 45.392C373.937 218.846 368 243.674 368 272z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M308 412v268c0 36.779 9.678 71.962 27.805 102.907a205.39 205.39 0 0 0 73.288 73.288C440.038 874.322 475.22 884 512 884c36.779 0 71.962-9.678 102.907-27.805a205.39 205.39 0 0 0 73.288-73.288C706.322 751.962 716 716.78 716 680V412H308z\"}}]})(props);\n};\nexport function AiTwotoneBuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 546h200v200H144zm268-268h200v200H412z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM344 746H144V546h200v200zm268 0H412V546h200v200zm0-268H412V278h200v200zm268 0H680V278h200v200z\"}}]})(props);\n};\nexport function AiTwotoneBulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 136c-141.4 0-256 114.6-256 256 0 92.5 49.4 176.3 128.1 221.8l35.9 20.8V752h184V634.6l35.9-20.8C718.6 568.3 768 484.5 768 392c0-141.4-114.6-256-256-256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z\"}}]})(props);\n};\nexport function AiTwotoneCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm256.2-75h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zM576 335c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 265c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 104c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zM248 335c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M383.5 675l61.3-74.8c4.3-5.2.7-13.1-5.9-13.1h-50.8c-2.3 0-4.4 1-5.9 2.9l-34 41.6-34-41.6a7.69 7.69 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.4-1 5.9-2.9l35.5-43.5 35.5 43.5c1.4 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 6-13.2L383.5 675zM251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 369h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4z\"}}]})(props);\n};\nexport function AiTwotoneCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z\"}}]})(props);\n};\nexport function AiTwotoneCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z\"}}]})(props);\n};\nexport function AiTwotoneCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M199.6 474L184 517v237h656V517l-15.6-43H199.6zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M720 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM840 754H184V517l15.6-43h624.8l15.6 43v237z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm420 23h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotoneCarryOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-17.5 128.8L481.9 725.5a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.9-6.6 13-6.6H688c6.5 0 10.3 7.4 6.5 12.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z\"}}]})(props);\n};\nexport function AiTwotoneCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm193.4 225.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 5 25.9 13.3l71.2 98.8 157.2-218c6-8.4 15.7-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.4 12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\"}}]})(props);\n};\nexport function AiTwotoneCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm130-367.8h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H688c6.5 0 10.3 7.4 6.5 12.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L307.5 484.9c-3.8-5.3 0-12.7 6.5-12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432.2 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7h-46.9c-10.3 0-19.9 5-25.9 13.3L458 584.3l-71.2-98.8c-6-8.4-15.7-13.3-25.9-13.3H314c-6.5 0-10.3 7.4-6.5 12.7l124.7 172.8z\"}}]})(props);\n};\nexport function AiTwotoneCiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z\"}}]})(props);\n};\nexport function AiTwotoneCi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z\"}}]})(props);\n};\nexport function AiTwotoneClockCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm176.5 509.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.6-3.6 1.8-8.6-1.8-11.1z\"}}]})(props);\n};\nexport function AiTwotoneCloseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm171.8 527.1c1.2 1.5 1.9 3.3 1.9 5.2 0 4.5-3.6 8-8 8l-66-.3-99.3-118.4-99.3 118.5-66.1.3c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2L471 512.3l-130.1-155a8.32 8.32 0 0 1-1.9-5.2c0-4.5 3.6-8 8-8l66.1.3 99.3 118.4 99.4-118.5 66-.3c4.4 0 8 3.6 8 8 0 1.9-.6 3.8-1.8 5.2l-130.1 155 129.9 154.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M685.8 352c0-4.4-3.6-8-8-8l-66 .3-99.4 118.5-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155-130.1 154.9a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3 99.3-118.5L611.7 680l66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.9 512.2l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z\"}}]})(props);\n};\nexport function AiTwotoneCloseSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm163.9-473.9A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M354 671h58.9c4.8 0 9.3-2.1 12.3-5.7L512 561.8l86.8 103.5c3.1 3.6 7.6 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.3-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.8 0-9.3 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3.1-3.6-7.6-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z\"}}]})(props);\n};\nexport function AiTwotoneCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M791.9 492l-37.8-10-13.8-36.5c-8.6-22.7-20.6-44.1-35.7-63.4a245.73 245.73 0 0 0-52.4-49.9c-41.1-28.9-89.5-44.2-140-44.2s-98.9 15.3-140 44.2a245.6 245.6 0 0 0-52.4 49.9 240.47 240.47 0 0 0-35.7 63.4l-13.9 36.6-37.9 9.9a125.7 125.7 0 0 0-66.1 43.7A123.1 123.1 0 0 0 140 612c0 33.1 12.9 64.3 36.3 87.7 23.4 23.4 54.5 36.3 87.6 36.3h496.2c33.1 0 64.2-12.9 87.6-36.3A123.3 123.3 0 0 0 884 612c0-56.2-37.8-105.5-92.1-120z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z\"}}]})(props);\n};\nexport function AiTwotoneCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm339.5-223h185c4.1 0 7.5 3.6 7.5 8v48c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8zM308 610.3c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M321.1 679.1l192-161c3.9-3.2 3.9-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48z\"}}]})(props);\n};\nexport function AiTwotoneCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM327.6 701.7c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2L421 470.9 553.1 603l-225.5 98.7zm375.1-375.1L604 552.1 471.9 420l225.5-98.7c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M322.3 696.4c-.4 1-.4 2.2 0 3.2.9 2.1 3.3 3 5.3 2.1L553.1 603 421 470.9l-98.7 225.5zm375.1-375.1L471.9 420 604 552.1l98.7-225.5c.4-1.1.4-2.2 0-3.2-.9-2.1-3.3-3-5.3-2.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]})(props);\n};\nexport function AiTwotoneContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460.3 526a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM661 736h-43.8c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 39.9-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5h-43.9a8 8 0 0 1-8-8.4c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.7 26.4 71.9 72.8 74.7 126.1a8 8 0 0 1-8 8.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M594.3 601.5a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1 8 8 0 0 0 8 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z\"}}]})(props);\n};\nexport function AiTwotoneContainer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M635 771.7c-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H232v201h560V687h-97.9c-11.6 32.8-32 62.3-59.1 84.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 501h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v201zm0-264H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v488z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiTwotoneControl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM340.4 601.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm436.4-499.1c-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1zM340 485V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c41.7-13.5 72-52.8 72-99s-30.3-85.4-72-99V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c-41.7 13.5-72 52.8-72 99s30.3 85.4 72 99zm.1-116c.1-.2.2-.3.3-.5l1.5-2.4c0-.1.1-.1.1-.2l.9-1.2c0-.1.1-.2.2-.3 1-1.2 2.1-2.5 3.2-3.6l.2-.2c.4-.4.8-.7 1.2-1.1.8-.7 1.7-1.4 2.6-2.1h.1l1.2-.9c.1-.1.3-.2.4-.3 1.3-.8 2.6-1.5 3.9-2.2.2-.2.5-.3.7-.4.4-.2.7-.3 1.1-.5.3-.1.7-.3 1-.4.5-.1 1-.3 1.5-.5.4-.1.9-.3 1.3-.4l.9-.3 1.4-.3c.2-.1.5-.1.7-.2.7-.2 1.4-.3 2.1-.4.2-.1.4-.1.6-.1.5-.1 1.1-.2 1.7-.2.3-.1.5-.1.7-.1.8-.1 1.5-.1 2.3-.1s1.5.1 2.3.1c.3.1.5.1.7.1.6.1 1.1.1 1.7.2.2.1.4.1.6.1.7.1 1.4.3 2.1.4.2.1.5.1.7.2l1.4.3.9.3c.4.1.9.3 1.3.4.5.1 1 .3 1.5.5.3.1.7.3 1 .4.4.2.7.3 1.1.5.2.2.5.3.7.4 1.4.6 2.7 1.4 3.9 2.2.1.1.3.2.4.3l1.2.9h.1c.9.6 1.8 1.3 2.6 2.1.4.3.8.7 1.2 1.1l.2.2c1.2 1.1 2.2 2.3 3.2 3.6 0 .1.1.2.2.3l.9 1.2c0 .1.1.1.1.2l1.5 2.4A36.03 36.03 0 0 1 408 584c0 6.1-1.6 11.9-4.3 17-.1.2-.2.3-.3.5l-1.5 2.4c0 .1-.1.1-.1.2l-.9 1.2c0 .1-.1.2-.2.3-1 1.2-2.1 2.5-3.2 3.6l-.2.2c-.4.4-.8.7-1.2 1.1-.8.7-1.7 1.4-2.6 2.1h-.1l-1.2.9c-.1.1-.3.2-.4.3-1.3.8-2.6 1.5-3.9 2.2-.2.2-.5.3-.7.4-.4.2-.7.3-1.1.5-.3.1-.7.3-1 .4-.5.1-1 .3-1.5.5-.4.1-.9.3-1.3.4l-.9.3-1.4.3c-.2.1-.5.1-.7.2-.7.2-1.4.3-2.1.4-.2.1-.4.1-.6.1-.5.1-1.1.2-1.7.2-.3.1-.5.1-.7.1-.8.1-1.5.1-2.3.1s-1.5-.1-2.3-.1c-.3-.1-.5-.1-.7-.1-.6-.1-1.1-.1-1.7-.2-.2-.1-.4-.1-.6-.1-.7-.1-1.4-.3-2.1-.4-.2-.1-.5-.1-.7-.2l-1.4-.3-.9-.3c-.4-.1-.9-.3-1.3-.4-.5-.1-1-.3-1.5-.5-.3-.1-.7-.3-1-.4-.4-.2-.7-.3-1.1-.5-.2-.2-.5-.3-.7-.4-1.4-.6-2.7-1.4-3.9-2.2-.1-.1-.3-.2-.4-.3l-1.2-.9h-.1c-.9-.6-1.8-1.3-2.6-2.1-.4-.3-.8-.7-1.2-1.1l-.2-.2c-1.2-1.1-2.2-2.3-3.2-3.6 0-.1-.1-.2-.2-.3l-.9-1.2c0-.1-.1-.1-.1-.2l-1.5-2.4c-.1-.2-.2-.3-.3-.5-2.7-5-4.3-10.9-4.3-17s1.6-11.9 4.3-17zm280.3-27.9c-.1 0-.2-.1-.4-.1v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-.1 0-.2.1-.4.1 42-13.4 72.4-52.7 72.4-99.1 0-46.4-30.4-85.7-72.4-99.1.1 0 .2.1.4.1v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c.1 0 .2-.1.4-.1-42 13.4-72.4 52.7-72.4 99.1 0 46.4 30.4 85.7 72.4 99.1zM652 404c19.9 0 36 16.1 36 36s-16.1 36-36 36-36-16.1-36-36 16.1-36 36-36z\"}}]})(props);\n};\nexport function AiTwotoneCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 706h142c22.1 0 40 17.9 40 40v142h250V264H232v442z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\"}}]})(props);\n};\nexport function AiTwotoneCopyrightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z\"}}]})(props);\n};\nexport function AiTwotoneCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z\"}}]})(props);\n};\nexport function AiTwotoneCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136 792h752V440H136v352zm507-144c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72zM136 232h752v120H136z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M651 728h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V440h752v352zm0-440H136V232h752v120z\"}}]})(props);\n};\nexport function AiTwotoneCrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M911.9 283.9v.5L835.5 865c-1 8-7.9 14-15.9 14H204.5c-8.1 0-14.9-6.1-16-14l-76.4-580.6v-.6 1.6L188.5 866c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.1-.5.1-1 0-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M773.6 810.6l53.9-409.4-139.8 86.1L512 252.9 336.3 487.3l-139.8-86.1 53.8 409.4h523.3zm-374.2-189c0-62.1 50.5-112.6 112.6-112.6s112.6 50.5 112.6 112.6v1c0 62.1-50.5 112.6-112.6 112.6s-112.6-50.5-112.6-112.6v-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 734.2c61.9 0 112.3-50.2 112.6-112.1v-.5c0-62.1-50.5-112.6-112.6-112.6s-112.6 50.5-112.6 112.6v.5c.3 61.9 50.7 112.1 112.6 112.1zm0-160.9c26.6 0 48.2 21.6 48.2 48.3 0 26.6-21.6 48.3-48.2 48.3s-48.2-21.6-48.2-48.3c0-26.6 21.6-48.3 48.2-48.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6v-.5c.3-6.4-6.7-10.8-12.3-7.4L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.5-3.4-12.6.9-12.2 7.3v.6L188.5 865zm147.8-377.7L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4H250.3l-53.8-409.4 139.8 86.1z\"}}]})(props);\n};\nexport function AiTwotoneCustomerService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M696 632h128v192H696zm-496 0h128v192H200z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z\"}}]})(props);\n};\nexport function AiTwotoneDashboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 188c-99.3 0-192.7 38.7-263 109-70.3 70.2-109 163.6-109 263 0 105.6 44.5 205.5 122.6 276h498.8A371.12 371.12 0 0 0 884 560c0-99.3-38.7-192.7-109-263-70.2-70.3-163.6-109-263-109zm-30 44c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.4l-31.1 31.1a8.03 8.03 0 0 1-11.3 0l-56.6-56.6a8.03 8.03 0 0 1 0-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.5l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.2 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 0 1-11.3 0zM846 538v44c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 0 1 140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M762.7 340.8l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zM750 538v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zM304.1 309.7a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotoneDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M304 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-544a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z\"}}]})(props);\n};\nexport function AiTwotoneDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M292.7 840h438.6l24.2-512h-487z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-504-72h304v72H360v-72zm371.3 656H292.7l-24.2-512h487l-24.2 512z\"}}]})(props);\n};\nexport function AiTwotoneDiff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 264v624h432V413.8L514.2 264H232zm336 489c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-262v42c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7z\"}}]})(props);\n};\nexport function AiTwotoneDislike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M273 100.1v428h.3l-.3-428zM820.4 525l-21.9-19 14-25.5a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-22.4-13.2-42.6-33.6-51.8H345v345.2c18.6 67.2 46.4 168 83.5 302.5a44.28 44.28 0 0 0 42.2 32.3c7.5.1 15-2.2 21.1-6.7 9.9-7.4 15.2-18.6 14.6-30.5l-9.6-198.4h314.4C829 605.5 840 587.1 840 568c0-16.5-7.1-32.2-19.6-43z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32zm773.9 358.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273l.3 428 85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zm-74.7 126.1H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3c-37.1-134.4-64.9-235.2-83.5-302.5V172h399.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z\"}}]})(props);\n};\nexport function AiTwotoneDollarCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 0 1-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z\"}}]})(props);\n};\nexport function AiTwotoneDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 0 1-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z\"}}]})(props);\n};\nexport function AiTwotoneDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm184.4 277.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z\"}}]})(props);\n};\nexport function AiTwotoneDownSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm150-440h46.9c10.3 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z\"}}]})(props);\n};\nexport function AiTwotoneEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z\"}}]})(props);\n};\nexport function AiTwotoneEnvironment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M724.4 224.9C667.7 169.5 592.3 139 512 139s-155.7 30.5-212.4 85.8C243.1 280 212 353.2 212 431.1c0 241.3 234.1 407.2 300 449.1 65.9-41.9 300-207.8 300-449.1 0-77.9-31.1-151.1-87.6-206.2zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 263c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8S624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1z\"}}]})(props);\n};\nexport function AiTwotoneEuroCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 0 1-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z\"}}]})(props);\n};\nexport function AiTwotoneEuro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 0 1-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z\"}}]})(props);\n};\nexport function AiTwotoneExclamationCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-32 156c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M488 576h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8zm-24 112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z\"}}]})(props);\n};\nexport function AiTwotoneExperiment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M551.9 513c19.6 0 35.9-14.2 39.3-32.8A40.02 40.02 0 0 1 552 512a40 40 0 0 1-40-39.4v.5c0 22 17.9 39.9 39.9 39.9zM752 687.8l-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-41.2 0-81-9.8-116.7-28L210.5 844h603l-59.9-155.2-1.6-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M879 824.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.6-107.6.1-.2c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1l.6 1.6L813.5 844h-603z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M552 512c19.3 0 35.4-13.6 39.2-31.8.6-2.7.8-5.4.8-8.2 0-22.1-17.9-40-40-40s-40 17.9-40 40v.6a40 40 0 0 0 40 39.4z\"}}]})(props);\n};\nexport function AiTwotoneEyeInvisible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M254.89,758.85,380.46,633.28A176,176,0,0,1,629.28,384.46L757,256.72Q651.69,186.07,512,186,223.7,186,81.8,486.3a60.3,60.3,0,0,0,0,51.5Q151.07,683.71,254.89,758.85Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M942.2,486.2Q889.46,375.11,816.7,305L672.48,449.27A176.09,176.09,0,0,1,445.26,676.48L323,798.75Q408,838,512,838q288.3,0,430.2-300.3A60.29,60.29,0,0,0,942.2,486.2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M942.2,486.2Q889.47,375.11,816.7,305l-50.88,50.88C807.31,395.53,843.45,447.4,874.7,512,791.5,684.2,673.4,766,512,766q-72.67,0-133.87-22.38L323,798.75Q408,838,512,838q288.3,0,430.2-300.3A60.29,60.29,0,0,0,942.2,486.2Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M878.63,165.56,836,122.88a8,8,0,0,0-11.32,0L715.31,232.2Q624.86,186,512,186,223.7,186,81.8,486.3a60.3,60.3,0,0,0,0,51.5q56.69,119.4,136.5,191.41L112.48,835a8,8,0,0,0,0,11.31L155.17,889a8,8,0,0,0,11.31,0L878.63,176.88A8,8,0,0,0,878.63,165.56ZM149.3,512C232.6,339.8,350.7,258,512,258c54.54,0,104.13,9.36,149.12,28.39l-70.3,70.3A176,176,0,0,0,352.69,594.82l-83.42,83.42C223.1,637.49,183.3,582.28,149.3,512ZM396,512A112.11,112.11,0,0,1,542.2,405.31L401.31,546.2A112,112,0,0,1,396,512Z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M508,624c-3.46,0-6.87-.16-10.25-.47l-52.82,52.82A176.09,176.09,0,0,0,672.35,448.93l-52.82,52.82c.31,3.38.47,6.79.47,10.25A111.94,111.94,0,0,1,508,624Z\"}}]})(props);\n};\nexport function AiTwotoneEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M81.8 537.8a60.3 60.3 0 0 1 0-51.5C176.6 286.5 319.8 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c-192.1 0-335.4-100.5-430.2-300.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 258c-161.3 0-279.4 81.8-362.7 254C232.6 684.2 350.7 766 512 766c161.4 0 279.5-81.8 362.7-254C791.4 339.8 673.3 258 512 258zm-4 430c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258s279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M508 336c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\"}}]})(props);\n};\nexport function AiTwotoneFileAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm126 236v48c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V644H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V472c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z\"}}]})(props);\n};\nexport function AiTwotoneFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm51.6 120h35.7a12.04 12.04 0 0 1 10.1 18.5L546.1 623l84 130.4c3.6 5.6 2 13-3.6 16.6-2 1.2-4.2 1.9-6.5 1.9h-37.5c-4.1 0-8-2.1-10.2-5.7L510 664.8l-62.7 101.5c-2.2 3.5-6 5.7-10.2 5.7h-34.5a12.04 12.04 0 0 1-10.2-18.4l83.4-132.8-82.3-130.4c-3.6-5.7-1.9-13.1 3.7-16.6 1.9-1.3 4.1-1.9 6.4-1.9H442c4.2 0 8.1 2.2 10.3 5.8l61.8 102.4 61.2-102.3c2.2-3.6 6.1-5.8 10.3-5.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z\"}}]})(props);\n};\nexport function AiTwotoneFileExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-54 96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V448zm32 336c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M488 640h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm-16 104a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiTwotoneFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-134 50c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328.1c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8.1 8.1 0 0 1 12.7 0l136.5 174c4.1 5.2.4 12.9-6.3 12.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiTwotoneFileMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm72.3 122H641c6.6 0 12 5.4 12 12v272c0 6.6-5.4 12-12 12h-27.2c-6.6 0-12-5.4-12-12V581.7L535 732.3c-2 4.3-6.3 7.1-11 7.1h-24.1a12 12 0 0 1-11-7.1l-66.8-150.2V758c0 6.6-5.4 12-12 12H383c-6.6 0-12-5.4-12-12V486c0-6.6 5.4-12 12-12h35c4.8 0 9.1 2.8 11 7.2l83.2 191 83.1-191c1.9-4.4 6.2-7.2 11-7.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z\"}}]})(props);\n};\nexport function AiTwotoneFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M509.2 490.8c-.7-1.3-1.4-1.9-2.2-2-2.9 3.3-2.2 31.5 2.7 51.4 4-13.6 4.7-40.5-.5-49.4zm-1.6 120.5c-7.7 20-18.8 47.3-32.1 71.4 4-1.6 8.1-3.3 12.3-5 17.6-7.2 37.3-15.3 58.9-20.2-14.9-11.8-28.4-27.7-39.1-46.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm55 287.6c16.1-1.9 30.6-2.8 44.3-2.3 12.8.4 23.6 2 32 5.1.2.1.3.1.5.2.4.2.8.3 1.2.5.5.2 1.1.4 1.6.7.1.1.3.1.4.2 4.1 1.8 7.5 4 10.1 6.6 9.1 9.1 11.8 26.1 6.2 39.6-3.2 7.7-11.7 20.5-33.3 20.5-21.8 0-53.9-9.7-82.1-24.8-25.5 4.3-53.7 13.9-80.9 23.1-5.8 2-11.8 4-17.6 5.9-38 65.2-66.5 79.4-84.1 79.4-4.2 0-7.8-.9-10.8-2-6.9-2.6-12.8-8-16.5-15-.9-1.7-1.6-3.4-2.2-5.2-1.6-4.8-2.1-9.6-1.3-13.6l.6-2.7c.1-.2.1-.4.2-.6.2-.7.4-1.4.7-2.1 0-.1.1-.2.1-.3 4.1-11.9 13.6-23.4 27.7-34.6 12.3-9.8 27.1-18.7 45.9-28.4 15.9-28 37.6-75.1 51.2-107.4-10.8-41.8-16.7-74.6-10.1-98.6.9-3.3 2.5-6.4 4.6-9.1.2-.2.3-.4.5-.6.1-.1.1-.2.2-.2 6.3-7.5 16.9-11.9 28.1-11.5 16.6.7 29.7 11.5 33 30.1 1.7 8 2.2 16.5 1.9 25.7v.7c0 .5 0 1-.1 1.5-.7 13.3-3 26.6-7.3 44.7-.4 1.6-.8 3.2-1.2 5.2l-1 4.1-.1.3c.1.2.1.3.2.5l1.8 4.5c.1.3.3.7.4 1 .7 1.6 1.4 3.3 2.1 4.8v.1c8.7 18.8 19.7 33.4 33.9 45.1 4.3 3.5 8.9 6.7 13.9 9.8 1.8-.5 3.5-.7 5.3-.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M391.5 761c5.7-4.4 16.2-14.5 30.1-34.7-10.3 9.4-23.4 22.4-30.1 34.7zm270.9-83l.2-.3h.2c.6-.4.5-.7.4-.9-.1-.1-4.5-9.3-45.1-7.4 35.3 13.9 43.5 9.1 44.3 8.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M535.9 585.3c-.8-1.7-1.5-3.3-2.2-4.9-.1-.3-.3-.7-.4-1l-1.8-4.5c-.1-.2-.1-.3-.2-.5l.1-.3.2-1.1c4-16.3 8.6-35.3 9.4-54.4v-.7c.3-8.6-.2-17.2-2-25.6-3.8-21.3-19.5-29.6-32.9-30.2-11.3-.5-21.8 4-28.1 11.4-.1.1-.1.2-.2.2-.2.2-.4.4-.5.6-2.1 2.7-3.7 5.8-4.6 9.1-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.4-51.2 107.4v.1c-27.7 14.3-64.1 35.8-73.6 62.9 0 .1-.1.2-.1.3-.2.7-.5 1.4-.7 2.1-.1.2-.1.4-.2.6-.2.9-.5 1.8-.6 2.7-.9 4-.4 8.8 1.3 13.6.6 1.8 1.3 3.5 2.2 5.2 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-2.6-2.6-6-4.8-10.1-6.6-.1-.1-.3-.1-.4-.2-.5-.2-1.1-.4-1.6-.7-.4-.2-.8-.3-1.2-.5-.2-.1-.3-.1-.5-.2-16.2-5.8-41.7-6.7-76.3-2.8l-5.3.6c-5-3-9.6-6.3-13.9-9.8-14.2-11.3-25.1-25.8-33.8-44.7zM391.5 761c6.7-12.3 19.8-25.3 30.1-34.7-13.9 20.2-24.4 30.3-30.1 34.7zM507 488.8c.8.1 1.5.7 2.2 2 5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4zm-19.2 188.9c-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4 10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2zm175.4-.9c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4z\"}}]})(props);\n};\nexport function AiTwotoneFilePpt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464.5 516.2v108.4h38.9c44.7 0 71.2-10.9 71.2-54.3 0-34.4-20.1-54.1-53.9-54.1h-56.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm90 218.4c0 55.2-36.8 94.1-96.2 94.1h-63.3V760c0 4.4-3.6 8-8 8H424c-4.4 0-8-3.6-8-8V484c0-4.4 3.6-8 8-8v.1h104c59.7 0 96 39.8 96 94.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M424 476.1c-4.4-.1-8 3.5-8 7.9v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.2c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1z\"}}]})(props);\n};\nexport function AiTwotoneFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 322c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm200-184v48c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8zm192 128H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotoneFileUnknown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 424c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm110-228.4c.7 44.9-29.7 84.5-74.3 98.9-5.7 1.8-9.7 7.3-9.7 13.3V672c0 5.5-4.5 10-10 10h-32c-5.5 0-10-4.5-10-10v-32c.2-19.8 15.4-37.3 34.7-40.1C549 596.2 570 574.3 570 549c0-28.1-25.8-51.5-58-51.5s-58 23.4-58 51.6c0 5.2-4.4 9.4-9.8 9.4h-32.4c-5.4 0-9.8-4.1-9.8-9.5 0-57.4 50.1-103.7 111.5-103 59.3.8 107.7 46.1 108.5 101.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 744a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm-78-195c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103z\"}}]})(props);\n};\nexport function AiTwotoneFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm101.3 129.3c1.3-5.4 6.1-9.3 11.7-9.3h35.6a12.04 12.04 0 0 1 11.6 15.1l-74.4 276c-1.4 5.3-6.2 8.9-11.6 8.9h-31.8c-5.4 0-10.2-3.7-11.6-8.9l-52.8-197-52.8 197c-1.4 5.3-6.2 8.9-11.6 8.9h-32c-5.4 0-10.2-3.7-11.6-8.9l-74.2-276a12.02 12.02 0 0 1 11.6-15.1h35.4c5.6 0 10.4 3.9 11.7 9.3L434.6 680l49.7-198.9c1.3-5.4 6.1-9.1 11.6-9.1h32.2c5.5 0 10.3 3.7 11.6 9.1l49.8 199.3 45.8-199.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z\"}}]})(props);\n};\nexport function AiTwotoneFileZip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 630h32v2h-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H360v64h64v64h-64v64h64v64h-64v64h64v64h-64v62h64v160H296V520h64v-64h-64v-64h64v-64h-64v-64h64v-64h-64v-64h-64v752h560V394H576a42 42 0 0 1-42-42z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M296 392h64v64h-64zm0-128h64v64h-64zm0 318v160h128V582h-64v-62h-64v62zm48 50v-2h32v64h-32v-62zm16-432h64v64h-64zm0 256h64v64h-64zm0-128h64v64h-64z\"}}]})(props);\n};\nexport function AiTwotoneFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z\"}}]})(props);\n};\nexport function AiTwotoneFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420.6 798h182.9V642H420.6zM411 561.4l9.5 16.6h183l9.5-16.6L811.3 226H212.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V642h182.9v156zm9.5-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z\"}}]})(props);\n};\nexport function AiTwotoneFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M737 438.6c-9.6 15.5-21.1 30.7-34.4 45.6a73.1 73.1 0 0 1-51 24.4 73.36 73.36 0 0 1-53.4-18.8 74.01 74.01 0 0 1-24.4-59.8c3-47.4-12.4-103.1-45.8-165.7-16.9-31.4-37.1-58.2-61.2-80.4a240 240 0 0 1-12.1 46.5 354.26 354.26 0 0 1-58.2 101 349.6 349.6 0 0 1-58.6 56.8c-34 26.1-62 60-80.8 97.9a275.96 275.96 0 0 0-29.1 124c0 74.9 29.5 145.3 83 198.4 53.7 53.2 125 82.4 201 82.4s147.3-29.2 201-82.4c53.5-53 83-123.5 83-198.4 0-39.2-8.1-77.3-24-113.1-9.3-21-21-40.5-35-58.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z\"}}]})(props);\n};\nexport function AiTwotoneFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 232h368v336H184z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M624 632c0 4.4-3.6 8-8 8H504v73h336V377H624v255z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z\"}}]})(props);\n};\nexport function AiTwotoneFolderAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372.5 256H184v512h656V370.4H492.1L372.5 256zM540 443.1V528h84.5c4.1 0 7.5 3.1 7.5 7v42c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1z\"}}]})(props);\n};\nexport function AiTwotoneFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159 768h612.3l103.4-256H262.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\"}}]})(props);\n};\nexport function AiTwotoneFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M372.5 256H184v512h656V370.4H492.1z\"}}]})(props);\n};\nexport function AiTwotoneFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm224 112c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4 3.7-49.5 45.3-88.6 95.8-88.6s92 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533zm128-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z\"}}]})(props);\n};\nexport function AiTwotoneFund (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M136 792h752V232H136v560zm56.4-130.5l214.9-215c3.1-3.1 8.2-3.1 11.3 0L533 561l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.1 3.1 3.1 8.2 0 11.3l-297 297.2a8.03 8.03 0 0 1-11.3 0L412.9 537.2 240.4 709.7a8.03 8.03 0 0 1-11.3 0l-36.7-36.9a8.03 8.03 0 0 1 0-11.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M229.1 709.7c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L533 561 418.6 446.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z\"}}]})(props);\n};\nexport function AiTwotoneFunnelPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420.6 798h182.9V650H420.6zM297.7 374h428.6l85-148H212.7zm113.2 197.4l8.4 14.6h185.3l8.4-14.6L689.6 438H334.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V650h182.9v148zm9.5-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z\"}}]})(props);\n};\nexport function AiTwotoneGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M546 378h298v104H546zM228 550h250v308H228zm-48-172h298v104H180zm366 172h250v308H546z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zM478 858H228V550h250v308zm0-376H180V378h298v104zm0-176h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm68-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm250 622H546V550h250v308zm48-376H546V378h298v104z\"}}]})(props);\n};\nexport function AiTwotoneGold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M435.7 558.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M592.7 276H433.2l-20.8 128h201zM217.2 620l-20.7 128h200.9l-20.7-128zm430 0l-20.7 128h200.9l-20.7-128z\"}}]})(props);\n};\nexport function AiTwotoneHdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 888h560V680H232v208zm448-140c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 616h560V408H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48zm-72-144h560V136H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-272h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 516a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiTwotoneHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M679.7 201c-73.1 0-136.5 40.8-167.7 100.4C480.8 241.8 417.4 201 344.3 201c-104 0-188.3 82.6-188.3 184.5 0 201.2 356 429.3 356 429.3s356-228.1 356-429.3C868 283.6 783.7 201 679.7 201z\"}}]})(props);\n};\nexport function AiTwotoneHighlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M229.6 796.3h160.2l54.3-54.1-80.1-78.9zm220.7-397.1l262.8 258.9 147.3-145-262.8-259zm-77.1 166.1l171.4 168.9 68.6-67.6-171.4-168.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M957.6 507.5L603.2 158.3a7.9 7.9 0 0 0-11.2 0L353.3 393.5a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8v55.2c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6L539 830a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.3H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.3l68.6-67.6 171.4 168.9-68.6 67.6zm168.5-76.1L450.3 399.2l147.3-145.1 262.8 259-147.3 145z\"}}]})(props);\n};\nexport function AiTwotoneHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.1 172.6l-370 369.7h96V868H392V640c0-22.1 17.9-40 40-40h160c22.1 0 40 17.9 40 40v228h153.9V542.3H882L535.2 195.7l-23.1-23.1zm434.5 422.9c-6 6-13.1 10.8-20.8 13.9 7.7-3.2 14.8-7.9 20.8-13.9zm-887-34.7c5 30.3 31.4 53.5 63.1 53.5h.9c-31.9 0-58.9-23-64-53.5zm-.9-10.5v-1.9 1.9zm.1-2.6c.1-3.1.5-6.1 1-9.1-.6 2.9-.9 6-1 9.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M951 510c0-.1-.1-.1-.1-.2l-1.8-2.1c-.1-.1-.2-.3-.4-.4-.7-.8-1.5-1.6-2.2-2.4L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.6 63.6 0 0 0-16 26.6l-.6 2.1-.3 1.1-.3 1.2c-.2.7-.3 1.4-.4 2.1 0 .1 0 .3-.1.4-.6 3-.9 6-1 9.1v3.3c0 .5 0 1 .1 1.5 0 .5 0 .9.1 1.4 0 .5.1 1 .1 1.5 0 .6.1 1.2.2 1.8 0 .3.1.6.1.9l.3 2.5v.1c5.1 30.5 32.2 53.5 64 53.5h42.5V940h691.7V614.3h43.4c8.6 0 16.9-1.7 24.5-4.9s14.7-7.9 20.8-13.9a63.6 63.6 0 0 0 18.7-45.3c0-14.7-5-28.8-14.3-40.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z\"}}]})(props);\n};\nexport function AiTwotoneHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 548c-42.2 0-81.9 16.4-111.7 46.3A156.63 156.63 0 0 0 354 706v134h316V706c0-42.2-16.4-81.9-46.3-111.7A156.63 156.63 0 0 0 512 548zM354 318c0 42.2 16.4 81.9 46.3 111.7C430.1 459.6 469.8 476 512 476s81.9-16.4 111.7-46.3C653.6 399.9 670 360.2 670 318V184H354v134z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z\"}}]})(props);\n};\nexport function AiTwotoneHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z\"}}]})(props);\n};\nexport function AiTwotoneIdcard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M136 792h752V232H136v560zm472-372c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm0 144c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48c0 4.4-3.2 8-7.1 8H615.1c-3.9 0-7.1-3.6-7.1-8v-48zM216.2 664.6c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.6 26.4 71.8 72.8 74.6 126.1a8 8 0 0 1-8 8.4h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224c-4.6 0-8.2-3.8-7.8-8.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M321.3 463a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z\"}}]})(props);\n};\nexport function AiTwotoneInfoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm32 588c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotoneInsurance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M521.9 358.8h97.9v41.6h-97.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM413.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm257.9-340v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a6.38 6.38 0 0 1-4.8 1.4c-1.7-.3-3.2-1.3-4.1-2.8L432 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M443.7 306.9l-38.6-18.3c-3.4-1.6-7.3.2-8.4 3.7-17.5 58.5-45.2 110.2-82.2 153.6a5.7 5.7 0 0 0-1.2 5.6l13.2 43.5c1.4 4.5 7 5.8 10.2 2.4 7.7-8.1 15.4-16.8 23.1-26V656c0 4.4 3.6 8 8 8h37.3c4.4 0 8-3.6 8-8h.2V393.1a429.2 429.2 0 0 0 33.6-79c.9-2.8-.5-5.9-3.2-7.2zm26.8 9.1v127.4c0 4.4 3.6 8 8 8h65.9V470h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c.9 1.5 2.4 2.5 4.1 2.8 1.7.3 3.5-.2 4.8-1.4 31.6-26.8 58.6-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V535.9c21.3 41.7 47.5 77.6 78.1 106.9 2.6 2.5 6.7 2.2 8.9-.7l26.3-35.3c2-2.6 1.4-6.4-1.2-8.5-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8v-35.6c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H478.5c-4.4 0-8 3.6-8 8zm51.4 42.8h97.9v41.6h-97.9v-41.6z\"}}]})(props);\n};\nexport function AiTwotoneInteraction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z\"}}]})(props);\n};\nexport function AiTwotoneLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 185h456v136H384zm-200 0h136v656H184zm696-73H144c-17.7 0-32 14.3-32 32v1c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32v-1c0-17.7-14.3-32-32-32zM384 385h456v456H384z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 113H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V145c0-17.7-14.3-32-32-32zM320 841H184V185h136v656zm520 0H384V385h456v456zm0-520H384V185h456v136z\"}}]})(props);\n};\nexport function AiTwotoneLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm104 240.9c0 10.3-4.9 19.9-13.2 25.9L457.4 512l145.4 105.1c8.3 6 13.2 15.7 13.2 25.9v46.9c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z\"}}]})(props);\n};\nexport function AiTwotoneLeftSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm181.3-334.5l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9c0 10.3-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.7 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.4l-246-178a7.95 7.95 0 0 1 0-12.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M365.3 518.4l246 178c5.3 3.9 12.7.1 12.7-6.4v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a7.95 7.95 0 0 0 0 12.9z\"}}]})(props);\n};\nexport function AiTwotoneLike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M273 495.9v428l.3-428zm538.2-88.3H496.8l9.6-198.4c.6-11.9-4.7-23.1-14.6-30.5-6.1-4.5-13.6-6.8-21.1-6.7-19.6.1-36.9 13.4-42.2 32.3-37.1 134.4-64.9 235.2-83.5 302.5V852h399.4a56.85 56.85 0 0 0 33.6-51.8c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-14-25.5 21.9-19a56.76 56.76 0 0 0 19.6-43c0-19.1-11-37.5-28.8-48.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32zm773.9 5.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.5-65.5-111a67.67 67.67 0 0 0-34.3-9.3H572.3l6-122.9c1.5-29.7-9-57.9-29.5-79.4a106.4 106.4 0 0 0-77.9-33.4c-52 0-98 35-111.8 85.1l-85.8 310.8-.3 428h472.1c9.3 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37zM820.4 499l-21.9 19 14 25.5a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H345V506.8c18.6-67.2 46.4-168 83.5-302.5a44.28 44.28 0 0 1 42.2-32.3c7.5-.1 15 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.1 32.2-19.6 43z\"}}]})(props);\n};\nexport function AiTwotoneLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z\"}}]})(props);\n};\nexport function AiTwotoneMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.5 536.3L135.9 270.7l-27.5-21.4 27.6 21.5V792h752V270.8L546.2 536.3a55.99 55.99 0 0 1-68.7 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M876.3 198.8l39.3 50.5-27.6 21.5 27.7-21.5-39.3-50.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-94.5 72.1L512 482 190.5 232.1h643zm54.5 38.7V792H136V270.8l-27.6-21.5 27.5 21.4 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5h.1l39.3 50.5-27.7 21.5z\"}}]})(props);\n};\nexport function AiTwotoneMedicineBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244.3 328L184 513.4V840h656V513.4L779.7 328H244.3zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840z\"}}]})(props);\n};\nexport function AiTwotoneMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 144H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-24-144a48 48 0 1 0 96 0 48 48 0 1 0-96 0z\"}}]})(props);\n};\nexport function AiTwotoneMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M775.3 248.9a369.62 369.62 0 0 0-119-80A370.2 370.2 0 0 0 512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 0 0-80-119zM312 560a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M664 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 0 0-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0z\"}}]})(props);\n};\nexport function AiTwotoneMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotoneMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiTwotoneMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M744 64H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H288V136h448v752z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M288 888h448V136H288v752zm224-142c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M472 786a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiTwotoneMoneyCollect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 744.4l256 93.1 256-93.1V184H256v560.4zM359.7 313c1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 485.2h3.3L599 316.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8L564 515.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V704c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 323.8c-2.1-3.8-.7-8.7 3.2-10.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM768 744.4l-256 93.1-256-93.1V184h512v560.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M460.4 515.4h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6z\"}}]})(props);\n};\nexport function AiTwotoneNotification (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M229.6 678.1c-3.7 11.6-5.6 23.9-5.6 36.4 0-12.5 2-24.8 5.7-36.4h-.1zm76.3-260.2H184v188.2h121.9l12.9 5.2L840 820.7V203.3L318.8 412.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z\"}}]})(props);\n};\nexport function AiTwotonePauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-80 524c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M424 352h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotonePhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M721.7 184.9L610.9 295.8l120.8 120.7-8 21.6A481.29 481.29 0 0 1 438 723.9l-21.6 8-.9-.9-119.8-120-110.8 110.9 104.5 104.5c10.8 10.7 26 15.7 40.8 13.2 117.9-19.5 235.4-82.9 330.9-178.4s158.9-213.1 178.4-331c2.5-14.8-2.5-30-13.3-40.8L721.7 184.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 0 1-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 0 0-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 0 0 285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z\"}}]})(props);\n};\nexport function AiTwotonePicture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 1 1 0 176 88 88 0 0 1 0-176z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M276 368a28 28 0 1 0 56 0 28 28 0 1 0-56 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\"}}]})(props);\n};\nexport function AiTwotonePieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M316.2 920.5c-47.6-20.1-90.4-49-127.1-85.7a398.19 398.19 0 0 1-85.7-127.1A397.12 397.12 0 0 1 72 552.2v.2a398.57 398.57 0 0 0 117 282.5c36.7 36.7 79.4 65.5 127 85.6A396.64 396.64 0 0 0 471.6 952c27 0 53.6-2.7 79.7-7.9-25.9 5.2-52.4 7.8-79.3 7.8-54 .1-106.4-10.5-155.8-31.4zM560 472c-4.4 0-8-3.6-8-8V79.9c0-1.3.3-2.5.9-3.6-.9 1.3-1.5 2.9-1.5 4.6v383.7c0 4.4 3.6 8 8 8l383.6-1c1.6 0 3.1-.5 4.4-1.3-1 .5-2.2.7-3.4.7l-384 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M619.8 147.6v256.6l256.4-.7c-13-62.5-44.3-120.5-90-166.1a332.24 332.24 0 0 0-166.4-89.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M438 221.7c-75.9 7.6-146.2 40.9-200.8 95.5C174.5 379.9 140 463.3 140 552s34.5 172.1 97.2 234.8c62.3 62.3 145.1 96.8 233.2 97.2 88.2.4 172.7-34.1 235.3-96.2C761 733 794.6 662.3 802.3 586H438V221.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552v.2c0 53.9 10.6 106.2 31.4 155.5 20.1 47.6 49 90.4 85.7 127.1 36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952c26.9 0 53.4-2.6 79.3-7.8 26.1-5.3 51.7-13.1 76.4-23.6 47.6-20.1 90.4-49 127.1-85.7 36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552s34.5-172.1 97.2-234.8c54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-3.4-.3-6.4 1.5-7.8 4.3a8.7 8.7 0 0 0-.9 3.6V464c0 4.4 3.6 8 8 8l384-1c1.2 0 2.3-.3 3.4-.7a8.1 8.1 0 0 0 4.6-7.9zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z\"}}]})(props);\n};\nexport function AiTwotonePlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm164.1 378.2L457.7 677.1a8.02 8.02 0 0 1-12.7-6.5V353a8 8 0 0 1 12.7-6.5l218.4 158.8a7.9 7.9 0 0 1 0 12.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M676.1 505.3L457.7 346.5A8 8 0 0 0 445 353v317.6a8.02 8.02 0 0 0 12.7 6.5l218.4-158.9a7.9 7.9 0 0 0 0-12.9z\"}}]})(props);\n};\nexport function AiTwotonePlaySquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M442.3 677.6l199.4-156.8a11.2 11.2 0 0 0 0-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z\"}}]})(props);\n};\nexport function AiTwotonePlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotonePlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiTwotonePoundCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm146 582.1c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8v39.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M650 674.3H470v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.8-5.3-41h98.6c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8h-112c-7.2-22.6-13.4-45.8-13.4-70.5 0-43.6 34-70.2 87.3-70.2 21.4 0 42.5 4.1 60.4 10.5a8 8 0 0 0 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.9-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.4 6.8 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.2c3.4 14.8 5.9 29.5 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8v38.5c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotonePrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 180h304v152H360zm492 220H172c-6.6 0-12 5.4-12 12v292h132V500h440v204h132V412c0-6.6-5.4-12-12-12zm-24 84c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M852 332H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotoneProfile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M340 656a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm152 320h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiTwotoneProject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm472-560c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiTwotonePropertySafety (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM593.9 318h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3L585 323.5a10 10 0 0 1 8.9-5.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M438.9 323.5a9.88 9.88 0 0 0-8.9-5.5h-46c-1.7 0-3.3.4-4.8 1.2-4.9 2.7-6.6 8.8-4 13.6l88 161.1H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1c.8-1.5 1.2-3.1 1.1-4.8 0-5.5-4.5-10-10-10h-45a10 10 0 0 0-8.9 5.5l-73.2 144.3-72.9-144.3z\"}}]})(props);\n};\nexport function AiTwotonePushpin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M474.8 357.7l-24.5 24.5-34.4-3.8c-9.6-1.1-19.3-1.6-28.9-1.6-29 0-57.5 4.7-84.7 14.1-14 4.8-27.4 10.8-40.3 17.9l353.1 353.3a259.92 259.92 0 0 0 30.4-153.9l-3.8-34.4 24.5-24.5L800 415.5 608.5 224 474.8 357.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z\"}}]})(props);\n};\nexport function AiTwotoneQuestionCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z\"}}]})(props);\n};\nexport function AiTwotoneReconciliation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M740 344H404V240H304v160h176c17.7 0 32 14.3 32 32v360h328V240H740v104zM584 448c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56zm92 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-341v96c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M642 657a34 34 0 1 0 68 0 34 34 0 1 0-68 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm112-104v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 168H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z\"}}]})(props);\n};\nexport function AiTwotoneRedEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M492.3 397.2L232 193.1V888h560V193.1L531.8 397.2a31.99 31.99 0 0 1-39.5 0zm99.4 60.9h47.8a8.45 8.45 0 0 1 7.4 12.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4V665c0 4.6-3.8 8.4-8.4 8.4h-63.3V702h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.7-3.5 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4L377 470.4a8.4 8.4 0 0 1 3.4-11.4c1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.7 142 71.9-141.9a8.6 8.6 0 0 1 7.5-4.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M232 136.7h31.7L512 331.3l248.3-194.6H792v-.7H232z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142z\"}}]})(props);\n};\nexport function AiTwotoneRest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.4 844h363.2l44.3-520H282l44.4 520zM508 416c79.5 0 144 64.5 144 144s-64.5 144-144 144-144-64.5-144-144 64.5-144 144-144z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z\"}}]})(props);\n};\nexport function AiTwotoneRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm154.7 378.4l-246 178c-5.3 3.8-12.7 0-12.7-6.5V643c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M666.7 505.5l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L566.6 512 421.2 617.1c-8.3 6-13.2 15.7-13.2 25.9v46.9c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.7 0-12.9z\"}}]})(props);\n};\nexport function AiTwotoneRightSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm216-196.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9l-246 178c-5.3 3.9-12.7.1-12.7-6.4v-46.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M412.7 696.4l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.7-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.4z\"}}]})(props);\n};\nexport function AiTwotoneRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M261.7 621.4c-9.4 14.6-17 30.3-22.5 46.6H324V558.7c-24.8 16.2-46 37.5-62.3 62.7zM700 558.7V668h84.8c-5.5-16.3-13.1-32-22.5-46.6a211.6 211.6 0 0 0-62.3-62.7zm-64-239.9l-124-147-124 147V668h248V318.8zM512 448a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zm-540-68h-84.8c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668zm64-184.9V318.8l124-147 124 147V668H388V483.1zm240.1 301.1c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM700 668V558.7a211.6 211.6 0 0 1 62.3 62.7c9.4 14.6 17 30.3 22.5 46.6H700z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z\"}}]})(props);\n};\nexport function AiTwotoneSafetyCertificate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM632.8 328H688c6.5 0 10.3 7.4 6.5 12.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89.1 150.9-207.8c3-4.1 7.9-6.6 13-6.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M404.2 453.3c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z\"}}]})(props);\n};\nexport function AiTwotoneSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M704 320c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V184H184v656h656V341.8l-136-136V320zM512 730c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M893.3 293.3L730.7 130.7c-.7-.7-1.4-1.3-2.1-2-.1-.1-.3-.2-.4-.3-.7-.7-1.5-1.3-2.2-1.9a64 64 0 0 0-22-11.7V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840z\"}}]})(props);\n};\nexport function AiTwotoneSchedule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.4-91.2l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.3c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.4 12.9 6.6l52.8 73.1 103.6-143.7c3-4.1 7.8-6.6 12.8-6.5h54.9c6.5 0 10.3 7.4 6.5 12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M724.2 454.6L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M416 632H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function AiTwotoneSecurityScan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M460.7 451.1a80.1 80.1 0 1 0 160.2 0 80.1 80.1 0 1 0-160.2 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zm428.7 122.5c56.3 56.3 56.3 147.5 0 203.8-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M418.8 527.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.6 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 122.9-20.1 178.6zm65.4-133.3a80.1 80.1 0 0 1 113.3 0 80.1 80.1 0 0 1 0 113.3c-31.3 31.3-82 31.3-113.3 0s-31.3-82 0-113.3z\"}}]})(props);\n};\nexport function AiTwotoneSetting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 0 0-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 0 1-79.7 137.9l-1.8 2.1a32 32 0 0 1-35.1 9.5l-81.3-28.9a350 350 0 0 1-99.7 57.6l-15.7 85a32.05 32.05 0 0 1-25.8 25.7l-2.7.5a445.2 445.2 0 0 1-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M594.1 952.2a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 0 0-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6a32.09 32.09 0 0 0 7.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z\"}}]})(props);\n};\nexport function AiTwotoneShop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M839.5 344h-655c-.3 0-.5.2-.5.5v91.2c0 59.8 49 108.3 109.3 108.3 40.7 0 76.2-22 95.1-54.7 2.9-5.1 8.4-8.3 14.3-8.3s11.3 3.2 14.3 8.3c18.8 32.7 54.3 54.7 95 54.7 40.8 0 76.4-22.1 95.1-54.9 2.9-5 8.2-8.1 13.9-8.1h.6c5.8 0 11 3.1 13.9 8.1 18.8 32.8 54.4 54.9 95.2 54.9C791 544 840 495.5 840 435.7v-91.2c0-.3-.2-.5-.5-.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234.4 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c3-1.3 6-2.6 9-4v242.2zM840 435.7c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z\"}}]})(props);\n};\nexport function AiTwotoneShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M696 472c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88H400v88c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88h-96v456h560V384h-96v88z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z\"}}]})(props);\n};\nexport function AiTwotoneSkin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 318c-79.2 0-148.5-48.8-176.7-120H182v196h119v432h422V394h119V198H688.7c-28.2 71.2-97.5 120-176.7 120z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z\"}}]})(props);\n};\nexport function AiTwotoneSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180 292h80v440h-80zm369 180h-74a3 3 0 0 0-3 3v74a3 3 0 0 0 3 3h74a3 3 0 0 0 3-3v-74a3 3 0 0 0-3-3zm215-108h80v296h-80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z\"}}]})(props);\n};\nexport function AiTwotoneSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 112h-48.1c-4.2 0-7.8 3.2-8.1 7.4-3.7 49.5-45.3 88.6-95.8 88.6s-92-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4zm-24-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z\"}}]})(props);\n};\nexport function AiTwotoneSnippets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450 510V336H232v552h432V550H490c-22.1 0-40-17.9-40-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z\"}}]})(props);\n};\nexport function AiTwotoneSound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.4 424H146v176h129.4l18 11.7L586 803V221L293.3 412.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM934 476H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582z\"}}]})(props);\n};\nexport function AiTwotoneStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.5 190.4l-94.4 191.3-211.2 30.7 152.8 149-36.1 210.3 188.9-99.3 188.9 99.2-36.1-210.3 152.8-148.9-211.2-30.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M908.6 352.8l-253.9-36.9L541.2 85.8c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L370.3 315.9l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1L239 839.4a31.95 31.95 0 0 0 46.4 33.7l227.1-119.4 227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM665.3 561.3l36.1 210.3-188.9-99.2-188.9 99.3 36.1-210.3-152.8-149 211.2-30.7 94.4-191.3 94.4 191.3 211.2 30.7-152.8 148.9z\"}}]})(props);\n};\nexport function AiTwotoneStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z\"}}]})(props);\n};\nexport function AiTwotoneSwitcher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h528V312H184v528zm116-290h296v64H300v-64z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M300 550h296v64H300z\"}}]})(props);\n};\nexport function AiTwotoneTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M232 888h560V136H232v752zm280-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}}]})(props);\n};\nexport function AiTwotoneTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M589 164.6L189.3 564.3l270.4 270.4L859.4 435 836 188l-247-23.4zM680 432c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8a9.9 9.9 0 0 0 7.1 2.9c2.7 0 5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7z\"}}]})(props);\n};\nexport function AiTwotoneTags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.5 694l311.9-311.8-19-224.6-224.6-19-311.9 311.9L477.5 694zm116-415.5a47.81 47.81 0 0 1 33.9-33.9c16.6-4.4 34.2.3 46.4 12.4a47.93 47.93 0 0 1 12.4 46.4 47.81 47.81 0 0 1-33.9 33.9c-16.6 4.4-34.2-.3-46.4-12.4a48.3 48.3 0 0 1-12.4-46.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M476.6 792.6c-1.7-.2-3.4-1-4.7-2.3L137.7 456.1a8.03 8.03 0 0 1 0-11.3L515.9 66.6c1.2-1.3 2.9-2.1 4.7-2.3h-.4c-2.3-.2-4.7.6-6.3 2.3L135.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.8 1.9 4.3 2.6 6.7 2.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3zM652.3 337.3a47.81 47.81 0 0 0 33.9-33.9c4.4-16.6-.3-34.2-12.4-46.4a47.93 47.93 0 0 0-46.4-12.4 47.81 47.81 0 0 0-33.9 33.9c-4.4 16.6.3 34.2 12.4 46.4a48.3 48.3 0 0 0 46.4 12.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.3 1.3 2.9 2.1 4.7 2.3 2.4.3 4.8-.5 6.6-2.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3h-1.6c-1.8.2-3.4 1-4.7 2.3L137.7 444.8zm408.1-306.2l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9z\"}}]})(props);\n};\nexport function AiTwotoneThunderbolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M695.4 164.1H470.8L281.2 491.5h157.4l-60.3 241 319.8-305.1h-211z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M848.1 359.3H627.8L825.9 109c4.1-5.3.4-13-6.3-13H436.1c-2.8 0-5.5 1.5-6.9 4L170.1 547.5c-3.1 5.3.7 12 6.9 12h174.4L262 917.1c-1.9 7.8 7.5 13.3 13.3 7.7L853.6 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.3 732.5l60.3-241H281.2l189.6-327.4h224.6L487.1 427.4h211L378.3 732.5z\"}}]})(props);\n};\nexport function AiTwotoneTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M706.8 488.7a32.05 32.05 0 0 1-45.3 0L537 364.2a32.05 32.05 0 0 1 0-45.3l132.9-132.8a184.2 184.2 0 0 0-144 53.5c-58.1 58.1-69.3 145.3-33.6 214.6L439.5 507c-.1 0-.1-.1-.1-.1L209.3 737l79.2 79.2 274-274.1.1.1 8.8-8.8c69.3 35.7 156.5 24.5 214.6-33.6 39.2-39.1 57.3-92.1 53.6-143.9L706.8 488.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z\"}}]})(props);\n};\nexport function AiTwotoneTrademarkCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm170.7 584.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H384c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M529.9 357h-83.4v148H528c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M605.4 549.3c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.4-131.1-144.2-131.1H384c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.7c4.4 0 8-3.6 8-8V561.2h88.7L610 720.4c1.3 2.8 4.1 4.6 7.2 4.6h62c1.2 0 2.4-.3 3.5-.8 3.9-2 5.6-6.8 3.5-10.7l-80.8-164.2zM528 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.6 0 46.8-29.8 72.4-82.8 72.4z\"}}]})(props);\n};\nexport function AiTwotoneTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 480c0 49.1 19.1 95.3 53.9 130.1 34.7 34.8 81 53.9 130.1 53.9h16c49.1 0 95.3-19.1 130.1-53.9 34.8-34.7 53.9-81 53.9-130.1V184H320v296zM184 352c0 41 26.9 75.8 64 87.6-37.1-11.9-64-46.7-64-87.6zm364 382.5C665 721.8 758.4 630.2 773.8 514 758.3 630.2 665 721.7 548 734.5zM250.2 514C265.6 630.2 359 721.8 476 734.5 359 721.7 265.7 630.2 250.2 514z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6a91.99 91.99 0 0 1-64-87.6V232h64v207.6zM704 480c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z\"}}]})(props);\n};\nexport function AiTwotoneUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304z\"}}]})(props);\n};\nexport function AiTwotoneUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm178 479h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M518.4 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7h46.9c10.3 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246z\"}}]})(props);\n};\nexport function AiTwotoneUpSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V184H184v656zm143.5-228.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M334 624h46.9c10.3 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7z\"}}]})(props);\n};\nexport function AiTwotoneUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M759.9 504H264.1c-26.5 0-48.1 19.7-48.1 44v292h592V548c0-24.3-21.6-44-48.1-44z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M456 248h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zM336 184h352v248H336V184zm472 656H216V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v292z\"}}]})(props);\n};\nexport function AiTwotoneVideoCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136 792h576V232H136v560zm64-488c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function AiTwotoneWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0-192H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200H184V184h656v200z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M528 576h312V448H528v128zm92-104c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 840h656V640H496c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32h344V184H184v656z\"}}]})(props);\n};\nexport function AiTwotoneWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M172.2 828.1h679.6L512 239.9 172.2 828.1zM560 720a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm-16-304v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z\"}}]})(props);\n};\n","/** @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;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;e=\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","/** @license React v17.0.2\n * react-jsx-runtime.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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.url = void 0;\nconst parseuri = require(\"parseuri\");\nconst debug = require(\"debug\")(\"socket.io-client:url\");\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nfunction url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug(\"protocol-less url %s\", uri);\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n debug(\"parse %s\", uri);\n obj = parseuri(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\nexports.url = url;\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride,\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","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 Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","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 } 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\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","const Socket = require(\"./socket\");\n\nmodule.exports = (uri, opts) => new Socket(uri, opts);\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nmodule.exports.Socket = Socket;\nmodule.exports.protocol = Socket.protocol; // this is an int\nmodule.exports.Transport = require(\"./transport\");\nmodule.exports.transports = require(\"./transports/index\");\nmodule.exports.parser = require(\"engine.io-parser\");\n","const transports = require(\"./transports/index\");\nconst Emitter = require(\"component-emitter\");\nconst debug = require(\"debug\")(\"engine.io-client:socket\");\nconst parser = require(\"engine.io-parser\");\nconst parseuri = require(\"parseuri\");\nconst parseqs = require(\"parseqs\");\n\nclass Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? 443\n : 80);\n\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n\n this.opts = Object.assign(\n {\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n jsonp: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {}\n },\n opts\n );\n\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n\n if (typeof this.opts.query === \"string\") {\n this.opts.query = parseqs.decode(this.opts.query);\n }\n\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n\n // set on heartbeat\n this.pingTimeoutTimer = null;\n\n if (typeof addEventListener === \"function\") {\n addEventListener(\n \"beforeunload\",\n () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n },\n false\n );\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\");\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n\n this.open();\n }\n\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n debug('creating transport \"%s\"', name);\n const query = clone(this.opts.query);\n\n // append engine.io protocol identifier\n query.EIO = parser.protocol;\n\n // transport name\n query.transport = name;\n\n // session id if we already have one\n if (this.id) query.sid = this.id;\n\n const opts = Object.assign(\n {},\n this.opts.transportOptions[name],\n this.opts,\n {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n }\n );\n\n debug(\"options: %j\", opts);\n\n return new transports[name](opts);\n }\n\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (\n this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1\n ) {\n transport = \"websocket\";\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n const self = this;\n setTimeout(function() {\n self.emit(\"error\", \"No transports available\");\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n debug(\"error while creating transport: %s\", e);\n this.transports.shift();\n this.open();\n return;\n }\n\n transport.open();\n this.setTransport(transport);\n }\n\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n debug(\"setting transport %s\", transport.name);\n const self = this;\n\n if (this.transport) {\n debug(\"clearing existing transport %s\", this.transport.name);\n this.transport.removeAllListeners();\n }\n\n // set up transport\n this.transport = transport;\n\n // set up transport listeners\n transport\n .on(\"drain\", function() {\n self.onDrain();\n })\n .on(\"packet\", function(packet) {\n self.onPacket(packet);\n })\n .on(\"error\", function(e) {\n self.onError(e);\n })\n .on(\"close\", function() {\n self.onClose(\"transport close\");\n });\n }\n\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n debug('probing transport \"%s\"', name);\n let transport = this.createTransport(name, { probe: 1 });\n let failed = false;\n const self = this;\n\n Socket.priorWebsocketSuccess = false;\n\n function onTransportOpen() {\n if (self.onlyBinaryUpgrades) {\n const upgradeLosesBinary =\n !this.supportsBinary && self.transport.supportsBinary;\n failed = failed || upgradeLosesBinary;\n }\n if (failed) return;\n\n debug('probe transport \"%s\" opened', name);\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", function(msg) {\n if (failed) return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n debug('probe transport \"%s\" pong', name);\n self.upgrading = true;\n self.emit(\"upgrading\", transport);\n if (!transport) return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n\n debug('pausing current transport \"%s\"', self.transport.name);\n self.transport.pause(function() {\n if (failed) return;\n if (\"closed\" === self.readyState) return;\n debug(\"changing transport and sending upgrade packet\");\n\n cleanup();\n\n self.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n self.emit(\"upgrade\", transport);\n transport = null;\n self.upgrading = false;\n self.flush();\n });\n } else {\n debug('probe transport \"%s\" failed', name);\n const err = new Error(\"probe error\");\n err.transport = transport.name;\n self.emit(\"upgradeError\", err);\n }\n });\n }\n\n function freezeTransport() {\n if (failed) return;\n\n // Any callback called by transport should be ignored since now\n failed = true;\n\n cleanup();\n\n transport.close();\n transport = null;\n }\n\n // Handle any error that happens while probing\n function onerror(err) {\n const error = new Error(\"probe error: \" + err);\n error.transport = transport.name;\n\n freezeTransport();\n\n debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n self.emit(\"upgradeError\", error);\n }\n\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n freezeTransport();\n }\n }\n\n // Remove all listeners on the transport and on self\n function cleanup() {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n self.removeListener(\"close\", onclose);\n self.removeListener(\"upgrading\", onupgrade);\n }\n\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n\n transport.open();\n }\n\n /**\n * Called when connection is deemed open.\n *\n * @api public\n */\n onOpen() {\n debug(\"socket open\");\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emit(\"open\");\n this.flush();\n\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\n \"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause\n ) {\n debug(\"starting upgrade probes\");\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\n \"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState\n ) {\n debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n this.emit(\"packet\", packet);\n\n // Socket is live - any packet counts\n this.emit(\"heartbeat\");\n\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emit(\"pong\");\n break;\n\n case \"error\":\n const err = new Error(\"server error\");\n err.code = packet.data;\n this.onError(err);\n break;\n\n case \"message\":\n this.emit(\"data\", packet.data);\n this.emit(\"message\", packet.data);\n break;\n }\n } else {\n debug('packet received with socket readyState \"%s\"', this.readyState);\n }\n }\n\n /**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emit(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState) return;\n this.resetPingTimeout();\n }\n\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n clearTimeout(this.pingTimeoutTimer);\n this.pingTimeoutTimer = setTimeout(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n\n if (0 === this.writeBuffer.length) {\n this.emit(\"drain\");\n } else {\n this.flush();\n }\n }\n\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\n \"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length\n ) {\n debug(\"flushing %d packets in socket\", this.writeBuffer.length);\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emit(\"flush\");\n }\n }\n\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n\n options = options || {};\n options.compress = false !== options.compress;\n\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emit(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn) this.once(\"flush\", fn);\n this.flush();\n }\n\n /**\n * Closes the connection.\n *\n * @api private\n */\n close() {\n const self = this;\n\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n\n if (this.writeBuffer.length) {\n this.once(\"drain\", function() {\n if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n\n function close() {\n self.onClose(\"forced close\");\n debug(\"socket closing - telling transport to close\");\n self.transport.close();\n }\n\n function cleanupAndClose() {\n self.removeListener(\"upgrade\", cleanupAndClose);\n self.removeListener(\"upgradeError\", cleanupAndClose);\n close();\n }\n\n function waitForUpgrade() {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n self.once(\"upgrade\", cleanupAndClose);\n self.once(\"upgradeError\", cleanupAndClose);\n }\n\n return this;\n }\n\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n debug(\"socket error %j\", err);\n Socket.priorWebsocketSuccess = false;\n this.emit(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, desc) {\n if (\n \"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState\n ) {\n debug('socket close with reason: \"%s\"', reason);\n const self = this;\n\n // clear timers\n clearTimeout(this.pingIntervalTimer);\n clearTimeout(this.pingTimeoutTimer);\n\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n\n // ensure transport won't stay open\n this.transport.close();\n\n // ignore further transport communication\n this.transport.removeAllListeners();\n\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n\n // set ready state\n this.readyState = \"closed\";\n\n // clear session id\n this.id = null;\n\n // emit close event\n this.emit(\"close\", reason, desc);\n\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n self.writeBuffer = [];\n self.prevBufferLen = 0;\n }\n }\n\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\nfunction clone(obj) {\n const o = {};\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n}\n\nmodule.exports = Socket;\n","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}\n","/* global attachEvent */\n\nconst XMLHttpRequest = require(\"../../contrib/xmlhttprequest-ssl/XMLHttpRequest\");\nconst Polling = require(\"./polling\");\nconst Emitter = require(\"component-emitter\");\nconst { pick } = require(\"../util\");\nconst globalThis = require(\"../globalThis\");\n\nconst debug = require(\"debug\")(\"engine.io-client:polling-xhr\");\n\n/**\n * Empty function\n */\n\nfunction empty() {}\n\nconst hasXHR2 = (function() {\n const xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\nclass XHR extends Polling {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n const self = this;\n req.on(\"success\", fn);\n req.on(\"error\", function(err) {\n self.onError(\"xhr post error\", err);\n });\n }\n\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n debug(\"xhr poll\");\n const req = this.request();\n const self = this;\n req.on(\"data\", function(data) {\n self.onData(data);\n });\n req.on(\"error\", function(err) {\n self.onError(\"xhr poll error\", err);\n });\n this.pollXhr = req;\n }\n}\n\nclass Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n this.opts = opts;\n\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n\n this.create();\n }\n\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(\n this.opts,\n \"agent\",\n \"enablesXDR\",\n \"pfx\",\n \"key\",\n \"passphrase\",\n \"cert\",\n \"ca\",\n \"ciphers\",\n \"rejectUnauthorized\",\n \"autoUnref\"\n );\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n const self = this;\n\n try {\n debug(\"xhr open %s: %s\", this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n } catch (e) {}\n\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function() {\n self.onLoad();\n };\n xhr.onerror = function() {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function() {\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function() {\n self.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n }\n\n debug(\"xhr data %s\", this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function() {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n\n /**\n * Called upon successful response.\n *\n * @api private\n */\n onSuccess() {\n this.emit(\"success\");\n this.cleanup();\n }\n\n /**\n * Called if we have data.\n *\n * @api private\n */\n onData(data) {\n this.emit(\"data\", data);\n this.onSuccess();\n }\n\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emit(\"error\", err);\n this.cleanup(true);\n }\n\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n }\n\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.onData(data);\n }\n }\n\n /**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n hasXDR() {\n return typeof XDomainRequest !== \"undefined\" && !this.xs && this.enablesXDR;\n }\n\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (typeof document !== \"undefined\") {\n if (typeof attachEvent === \"function\") {\n attachEvent(\"onunload\", unloadHandler);\n } else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\n\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n","const { PACKET_TYPES } = require(\"./commons\");\n\nconst withNativeBlob =\n typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\n\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n } else {\n return encodeBlobAsBase64(data, callback);\n }\n } else if (\n withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))\n ) {\n if (supportsBinary) {\n return callback(data instanceof ArrayBuffer ? data : data.buffer);\n } else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\n\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function() {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\n\nmodule.exports = encodePacket;\n","const { PACKET_TYPES_REVERSE, ERROR_PACKET } = require(\"./commons\");\n\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n\nlet base64decoder;\nif (withNativeArrayBuffer) {\n base64decoder = require(\"base64-arraybuffer\");\n}\n\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\n\nconst decodeBase64Packet = (data, binaryType) => {\n if (base64decoder) {\n const decoded = base64decoder.decode(data);\n return mapBinary(decoded, binaryType);\n } else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\n\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\n\nmodule.exports = decodePacket;\n","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(chars){\n \"use strict\";\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i+1]);\n encoded3 = chars.indexOf(base64[i+2]);\n encoded4 = chars.indexOf(base64[i+3]);\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\");\n","const Polling = require(\"./polling\");\nconst globalThis = require(\"../globalThis\");\n\nconst rNewline = /\\n/g;\nconst rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nlet callbacks;\n\nclass JSONPPolling extends Polling {\n /**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n constructor(opts) {\n super(opts);\n\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n callbacks = globalThis.___eio = globalThis.___eio || [];\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n const self = this;\n callbacks.push(function(msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n }\n\n /**\n * JSONP only supports binary as base64 encoded strings\n */\n get supportsBinary() {\n return false;\n }\n\n /**\n * Closes the socket.\n *\n * @api private\n */\n doClose() {\n if (this.script) {\n // prevent spurious errors from being emitted when the window is unloaded\n this.script.onerror = () => {};\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n\n super.doClose();\n }\n\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const self = this;\n const script = document.createElement(\"script\");\n\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n script.async = true;\n script.src = this.uri();\n script.onerror = function(e) {\n self.onError(\"jsonp poll error\", e);\n };\n\n const insertAt = document.getElementsByTagName(\"script\")[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n\n const isUAgecko =\n \"undefined\" !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n if (isUAgecko) {\n setTimeout(function() {\n const iframe = document.createElement(\"iframe\");\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n }\n\n /**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const self = this;\n let iframe;\n\n if (!this.form) {\n const form = document.createElement(\"form\");\n const area = document.createElement(\"textarea\");\n const id = (this.iframeId = \"eio_iframe_\" + this.index);\n\n form.className = \"socketio\";\n form.style.position = \"absolute\";\n form.style.top = \"-1000px\";\n form.style.left = \"-1000px\";\n form.target = id;\n form.method = \"POST\";\n form.setAttribute(\"accept-charset\", \"utf-8\");\n area.name = \"d\";\n form.appendChild(area);\n document.body.appendChild(form);\n\n this.form = form;\n this.area = area;\n }\n\n this.form.action = this.uri();\n\n function complete() {\n initIframe();\n fn();\n }\n\n function initIframe() {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError(\"jsonp polling iframe removal error\", e);\n }\n }\n\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n const html = '