{"version":3,"file":"static/js/169.c0e90d08.chunk.js","mappings":"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","sources":["../node_modules/@fortawesome/pro-duotone-svg-icons/index.es.js","../node_modules/@radix-ui/react-icons/src/ActivityLogIcon.tsx","../node_modules/@radix-ui/react-icons/src/ReloadIcon.tsx","../node_modules/decimal.js-light/decimal.js","../node_modules/eventemitter3/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_baseExtremum.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_createRound.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/constant.js","../node_modules/lodash/debounce.js","../node_modules/lodash/eq.js","../node_modules/lodash/every.js","../node_modules/lodash/find.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/flatMap.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBoolean.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/isNil.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/last.js","../node_modules/lodash/map.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/max.js","../node_modules/lodash/memoize.js","../node_modules/lodash/min.js","../node_modules/lodash/noop.js","../node_modules/lodash/now.js","../node_modules/lodash/property.js","../node_modules/lodash/range.js","../node_modules/lodash/round.js","../node_modules/lodash/some.js","../node_modules/lodash/sortBy.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/throttle.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/uniq.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/upperFirst.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/react-feather/dist/icons/chevron-right.js","../node_modules/fast-equals/src/utils.ts","../node_modules/fast-equals/src/equals.ts","../node_modules/fast-equals/src/comparator.ts","../node_modules/fast-equals/src/index.ts","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/use-latest/dist/use-latest.esm.js","../node_modules/use-composed-ref/dist/use-composed-ref.esm.js","../node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/util/BarUtils.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/util/getEveryNthWithCondition.js","../node_modules/recharts/es6/util/TickUtils.js","../node_modules/recharts/es6/cartesian/getTicks.js","../node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/util/tooltip/translate.js","../node_modules/recharts/es6/component/TooltipBoundingBox.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/AccessibilityManager.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/bump.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","../node_modules/recharts/es6/util/cursor/getCursorPoints.js","../node_modules/recharts/es6/component/Cursor.js","../node_modules/recharts/es6/util/cursor/getCursorRectangle.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/recharts/es6/component/Label.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/recharts/es6/util/ReduceCSSCalc.js","../node_modules/recharts/es6/component/Text.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/recharts/es6/util/calculateViewBox.js","../node_modules/recharts/es6/context/chartLayoutContext.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/d3-shape/src/symbol/asterisk.js","../node_modules/d3-shape/src/symbol/triangle2.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/shape/Trapezoid.js","../node_modules/recharts/es6/util/ActiveShapeUtils.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/sort.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/Global.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/getLegendProps.js","../node_modules/recharts/es6/util/payload/getUniqPayload.js","../node_modules/recharts/es6/util/types.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/d3-scale/src/band.js","../node_modules/d3-array/src/range.js","../node_modules/d3-scale/src/init.js","../node_modules/internmap/src/index.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/path.js"],"sourcesContent":["/*!\n * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\nvar prefix = \"fad\";\nvar faAbacus = {\n prefix: 'fad',\n iconName: 'abacus',\n icon: [576, 512, [], \"f640\", [\"M192 440h-32v-48h32zM160 72v48h32V72zm96 160v48h32v-48zm-96 0v48h32v-48zm96 208h160v-48H256zm96-160h128v-48H352zM544 0a32 32 0 0 0-32 32v464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V32a32 32 0 0 0-32-32zM416 72H256v48h160zM32 0A32 32 0 0 0 0 32v464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V32A32 32 0 0 0 32 0z\", \"M144 32h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-96 160h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zM464 32h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM144 352h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm224 0h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16z\"]]\n};\nvar faAcorn = {\n prefix: 'fad',\n iconName: 'acorn',\n icon: [448, 512, [], \"f6ae\", [\"M32 256h384a258.87 258.87 0 0 1-143.11 231.55L224 512l-48.89-24.45A258.87 258.87 0 0 1 32 256z\", \"M448 160v32a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32v-32a96 96 0 0 1 96-96h106a132.41 132.41 0 0 1 29.41-58.64 15.7 15.7 0 0 1 11.31-5.3 15.44 15.44 0 0 1 12 4.72L266 16.1a16 16 0 0 1 .66 21.9 84.32 84.32 0 0 0-15.16 26H352a96 96 0 0 1 96 96z\"]]\n};\nvar faAd = {\n prefix: 'fad',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", [\"M352 256a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm-194.48 16h37L176 218.78zM464 64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM250.58 352h-16.94a16 16 0 0 1-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94a16 16 0 0 1-15.12-21.25L140 176.12A24 24 0 0 1 162.67 160h26.66A24 24 0 0 1 212 176.13l53.69 154.62A16 16 0 0 1 250.58 352zM424 336a16 16 0 0 1-16 16h-16a15.74 15.74 0 0 1-12-5.68A72 72 0 1 1 352 208a71.05 71.05 0 0 1 24 4.42V176a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16z\", \"M212 176.13A24 24 0 0 0 189.33 160h-26.66A24 24 0 0 0 140 176.12L86.3 330.75A16 16 0 0 0 101.42 352h16.94a16 16 0 0 0 15.12-10.75l7.38-21.25h70.29l7.37 21.25A16 16 0 0 0 233.64 352h16.94a16 16 0 0 0 15.11-21.25zM157.52 272L176 218.78 194.48 272zM408 160h-16a16 16 0 0 0-16 16v36.42a71.05 71.05 0 0 0-24-4.42 72 72 0 1 0 28 138.32 15.74 15.74 0 0 0 12 5.68h16a16 16 0 0 0 16-16V176a16 16 0 0 0-16-16zm-56 144a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faAddressBook = {\n prefix: 'fad',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", [\"M416 48a48 48 0 0 0-48-48H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h320a48 48 0 0 0 48-48zm-208 80a64 64 0 1 1-64 64 64.06 64.06 0 0 1 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5a103 103 0 0 0 79.6 0h5c37.1 0 67.2 25.8 67.2 57.6z\", \"M252.8 288h-5a103 103 0 0 1-79.6 0h-5c-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6zM208 256a64 64 0 1 0-64-64 64.06 64.06 0 0 0 64 64zm228-32h-20v64h20a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 128h-20v64h20a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-256h-20v64h20a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\"]]\n};\nvar faAddressCard = {\n prefix: 'fad',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", [\"M528 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-352 96a64 64 0 1 1-64 64 64.06 64.06 0 0 1 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5a103 103 0 0 0 79.6 0h5c37.1 0 67.2 25.8 67.2 57.6zM512 312a8 8 0 0 1-8 8H360a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-64a8 8 0 0 1-8 8H360a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-64a8 8 0 0 1-8 8H360a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8z\", \"M176 256a64 64 0 1 0-64-64 64.06 64.06 0 0 0 64 64zm44.8 32h-5a103 103 0 0 1-79.6 0h-5C94.1 288 64 313.8 64 345.6v19.2c0 10.6 10 19.2 22.4 19.2h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6z\"]]\n};\nvar faAdjust = {\n prefix: 'fad',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", [\"M504 256c0 137-111 248-248 248V8c137 0 248 111 248 248z\", \"M256 8v496C119 504 8 393 8 256S119 8 256 8z\"]]\n};\nvar faAirConditioner = {\n prefix: 'fad',\n iconName: 'air-conditioner',\n icon: [576, 512, [], \"f8f4\", [\"M216,424a40,40,0,0,1-40,40h-6.22c-20,0-38.19-13.88-41.28-33.61-2.88-18.41,6.92-34.22,21.84-41.47,5.73-2.78,9.66-8.25,9.66-14.63V356.67a16.1,16.1,0,0,0-21.42-15.17A87.55,87.55,0,0,0,80.7,435.24C86.26,479.82,126.55,512,171.48,512H176a88,88,0,0,0,88-88V256H216ZM437.42,309.5A16.1,16.1,0,0,0,416,324.67v17.62c0,6.38,3.93,11.85,9.66,14.63,14.92,7.25,24.72,23.06,21.84,41.47C444.41,418.12,426.2,432,406.23,432H400a40,40,0,0,1-40-40V256H312V392a88,88,0,0,0,88,88h4.53c44.92,0,85.21-32.18,90.77-76.76A87.55,87.55,0,0,0,437.42,309.5ZM64,128v32H512V128Z\", \"M544,0H32A32,32,0,0,0,0,32V192a32,32,0,0,0,32,32H544a32,32,0,0,0,32-32V32A32,32,0,0,0,544,0ZM512,160H64V128H512Z\"]]\n};\nvar faAirFreshener = {\n prefix: 'fad',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", [\"M160 256C115.875 256 80 291.875 80 336S115.875 416 160 416S240 380.125 240 336S204.125 256 160 256ZM192 128H128V160H192V128ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32Z\"]]\n};\nvar faAlarmClock = {\n prefix: 'fad',\n iconName: 'alarm-clock',\n icon: [512, 512, [], \"f34e\", [\"M474.49 462.06L434.55 422a223.25 223.25 0 0 0 44.61-134c0-123.71-99.9-224-223.14-224S32.88 164.29 32.88 288a223.25 223.25 0 0 0 44.61 134l-39.95 40.06a16.05 16.05 0 0 0 0 22.63l22.54 22.62a15.9 15.9 0 0 0 22.47.07l.07-.07 39.94-40.09a221.26 221.26 0 0 0 266.92 0l39.94 40.09a15.9 15.9 0 0 0 22.47.07l.07-.07 22.53-22.62a16 16 0 0 0 0-22.63zM346 355.51l-20 25a16 16 0 0 1-22.49 2.5L239 331.39a40 40 0 0 1-15-31.23V176a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v112.62L343.5 333a16 16 0 0 1 2.5 22.51z\", \"M1 96a95.08 95.08 0 0 0 15.24 51.26L161.57 25.68A95 95 0 0 0 96.62 0C43.83 0 1 43 1 96zm342.5 237L288 288.62V176a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v124.16a40 40 0 0 0 15 31.23L303.51 383a16 16 0 0 0 22.49-2.5l20-25a16 16 0 0 0-2.5-22.5zM415.38 0a95.08 95.08 0 0 0-64.93 25.66l145.33 121.57A95.13 95.13 0 0 0 511 96c0-53-42.83-96-95.62-96z\"]]\n};\nvar faAlarmExclamation = {\n prefix: 'fad',\n iconName: 'alarm-exclamation',\n icon: [512, 512, [], \"f843\", [\"M434.55 422a223.27 223.27 0 0 0 44.61-134c0-123.71-99.9-224-223.14-224S32.88 164.29 32.88 288a223.27 223.27 0 0 0 44.61 134l-39.95 40.06a16.05 16.05 0 0 0 0 22.63l22.54 22.62a15.89 15.89 0 0 0 22.54 0l39.94-40.09a221.27 221.27 0 0 0 266.92 0l39.94 40.09a15.89 15.89 0 0 0 22.54 0l22.53-22.62a16 16 0 0 0 0-22.63zM256 416a32 32 0 1 1 31.88-32A31.91 31.91 0 0 1 256 416zm38.05-238.4l-12.75 128a15.91 15.91 0 0 1-15.82 14.4h-18.93a15.92 15.92 0 0 1-15.84-14.4L218 177.6a16 16 0 0 1 15.8-17.6h44.42a15.92 15.92 0 0 1 15.84 17.6z\", \"M1 96a95.11 95.11 0 0 0 15.24 51.26L161.57 25.68A95 95 0 0 0 96.62 0C43.83 0 1 43 1 96zM415.38 0a95.09 95.09 0 0 0-64.93 25.66l145.33 121.57A95.13 95.13 0 0 0 511 96c0-53-42.83-96-95.62-96zM256 352a32 32 0 1 0 31.88 32A31.91 31.91 0 0 0 256 352zm22.21-192H233.8a16 16 0 0 0-15.8 17.6l12.76 128a15.92 15.92 0 0 0 15.79 14.4h18.93a15.91 15.91 0 0 0 15.83-14.4l12.75-128a15.92 15.92 0 0 0-15.84-17.6z\"]]\n};\nvar faAlarmPlus = {\n prefix: 'fad',\n iconName: 'alarm-plus',\n icon: [512, 512, [], \"f844\", [\"M435.25 422A222.7 222.7 0 0 0 480 288c0-123.71-100.3-224-224-224S32 164.29 32 288a222.7 222.7 0 0 0 44.79 134l-40.1 40.09a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0L122 467.22a222.82 222.82 0 0 0 268 0l40.1 40.09a16 16 0 0 0 22.63 0l22.62-22.62a16 16 0 0 0 0-22.63zM368 296a16 16 0 0 1-16 16h-72v72a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-72h-72a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h72v-72a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v72h72a16 16 0 0 1 16 16z\", \"M352 264h-72v-72a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v72h-72a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h72v72a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-72h72a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM96 0A96 96 0 0 0 0 96a94.81 94.81 0 0 0 15.3 51.26L161.2 25.68A95.61 95.61 0 0 0 96 0zm320 0a95.68 95.68 0 0 0-65.18 25.66l145.9 121.57A94.93 94.93 0 0 0 512 96a96 96 0 0 0-96-96z\"]]\n};\nvar faAlarmSnooze = {\n prefix: 'fad',\n iconName: 'alarm-snooze',\n icon: [512, 512, [], \"f845\", [\"M434.55 422a223.27 223.27 0 0 0 44.61-134c0-123.71-99.91-224-223.14-224S32.88 164.29 32.88 288a223.21 223.21 0 0 0 44.61 134l-39.95 40.06a16.05 16.05 0 0 0 0 22.63l22.54 22.62a15.89 15.89 0 0 0 22.54 0l39.94-40.09a221.25 221.25 0 0 0 266.91 0l39.95 40.09a15.89 15.89 0 0 0 22.54 0l22.53-22.62a16 16 0 0 0 0-22.63zM338.4 223L242 344h77.77a16 16 0 0 1 15.93 16v16a16 16 0 0 1-15.93 16H192.23a24 24 0 0 1-18.67-39L270 232h-77.77a16 16 0 0 1-15.94-16v-16a16 16 0 0 1 15.94-16h127.51a24 24 0 0 1 18.66 39z\", \"M319.74 184H192.23a16 16 0 0 0-15.94 16v16a16 16 0 0 0 15.94 16H270l-96.44 121a24 24 0 0 0 18.67 39h127.51a16 16 0 0 0 15.93-16v-16a16 16 0 0 0-15.93-16H242l96.4-121a24 24 0 0 0-18.66-39zM1 96a95.11 95.11 0 0 0 15.24 51.26L161.57 25.68A95 95 0 0 0 96.62 0C43.83 0 1 43 1 96zM415.38 0a95.09 95.09 0 0 0-64.93 25.66l145.32 121.57A95.14 95.14 0 0 0 511 96c0-53-42.84-96-95.62-96z\"]]\n};\nvar faAlbum = {\n prefix: 'fad',\n iconName: 'album',\n icon: [448, 512, [], \"f89f\", [\"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zM224 416a160 160 0 1 1 160-160 160 160 0 0 1-160 160z\", \"M224 96a160 160 0 1 0 160 160A160 160 0 0 0 224 96zm0 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faAlbumCollection = {\n prefix: 'fad',\n iconName: 'album-collection',\n icon: [512, 512, [], \"f8a0\", [\"M480 160H32A32 32 0 0 0 .13 194.9l26.19 288A32 32 0 0 0 58.18 512h395.64a32 32 0 0 0 31.86-29.1l26.19-288A32 32 0 0 0 480 160zM256 472.89c-94.26 0-174.39-54.53-179.2-125.15C71.71 273.1 151.82 209.4 256 209.4s184.29 63.7 179.2 138.34c-4.81 70.63-84.93 125.15-179.2 125.15z\", \"M480 24a24 24 0 0 0-24-24H56a24 24 0 0 0-24 24v24h448zm-8 56H40a24 24 0 0 0-24 24v24h480v-24a24 24 0 0 0-24-24zM256 209.4c-104.18 0-184.29 63.7-179.19 138.34 4.81 70.62 84.94 125.15 179.2 125.15s174.38-54.52 179.19-125.15C440.29 273.1 360.18 209.4 256 209.4zm0 160.06c-16.36 0-29.73-9.68-29.86-21.72s13.23-22.09 29.86-22.09 30 9.93 29.87 22.09-13.51 21.72-29.87 21.72z\"]]\n};\nvar faAlicorn = {\n prefix: 'fad',\n iconName: 'alicorn',\n icon: [640, 512, [], \"f6b0\", [\"M64.36 215.74A39.94 39.94 0 0 0 48 248v56a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-56a88 88 0 0 1 88-88h.45a95.57 95.57 0 0 0-24.09 55.74zM632 32H531.93a52.6 52.6 0 0 1-10.28 8.3c5.11 5.38 9.91 10.47 13.69 14.5a31.76 31.76 0 0 1 8.58 21.8v6.74l92.49-36.69A8 8 0 0 0 632 32z\", \"M535.34 54.8c-3.78-4-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66A8.09 8.09 0 0 0 535.9 0h-120C346.67 0 288 64 288 128h-.08c-63.92 0-104.2-36.78-127.66-90.27-3.22-7.35-13.61-7.76-17-.5A158.37 158.37 0 0 0 128 105.1c0 67 51 136.25 128 150.9-96.87 0-138.75-73.3-153.39-109a96 96 0 0 0-8.16 147.09l-25.63 68.39a63.94 63.94 0 0 0-2.16 38l24.85 99.41A16 16 0 0 0 107 512h66a16 16 0 0 0 15.52-19.88l-26.33-105.26L186 323.27l102 22.31V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V318.22A111.55 111.55 0 0 0 416 240c0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7a32 32 0 0 0 40.49 15.37l32.55-13A32 32 0 0 0 544 154.31l-.06-77.71a31.76 31.76 0 0 0-8.6-21.8zM479.92 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faAlien = {\n prefix: 'fad',\n iconName: 'alien',\n icon: [448, 512, [], \"f8f5\", [\"M224,0C100.28125,0,0,88.0293,0,232.45117,0,344.22852,134.21484,457.04883,194.86328,502.32422a48.70766,48.70766,0,0,0,58.27344,0C313.78516,457.04883,448,344.22852,448,232.45117,448,88.0293,347.71875,0,224,0ZM176,320H144a80.00021,80.00021,0,0,1-80-80,15.99954,15.99954,0,0,1,16-16h32a79.999,79.999,0,0,1,80,80A16.00079,16.00079,0,0,1,176,320Zm128,0H272a16.00079,16.00079,0,0,1-16-16,79.999,79.999,0,0,1,80-80h32a15.99954,15.99954,0,0,1,16,16A80.00021,80.00021,0,0,1,304,320Z\", \"M112,224H80a15.99954,15.99954,0,0,0-16,16,80.00021,80.00021,0,0,0,80,80h32a16.00079,16.00079,0,0,0,16-16A79.999,79.999,0,0,0,112,224Zm256,0H336a79.999,79.999,0,0,0-80,80,16.00079,16.00079,0,0,0,16,16h32a80.00021,80.00021,0,0,0,80-80A15.99954,15.99954,0,0,0,368,224Z\"]]\n};\nvar faAlienMonster = {\n prefix: 'fad',\n iconName: 'alien-monster',\n icon: [576, 512, [], \"f8f6\", [\"M560,128H528a15.99954,15.99954,0,0,0-16,16v80H480V176a15.99954,15.99954,0,0,0-16-16H416V96h48a16.00079,16.00079,0,0,0,16-16V48a15.99954,15.99954,0,0,0-16-16H432a15.99954,15.99954,0,0,0-16,16V64H368a15.99954,15.99954,0,0,0-16,16v48H224V80a15.99954,15.99954,0,0,0-16-16H160V48a15.99954,15.99954,0,0,0-16-16H112A15.99954,15.99954,0,0,0,96,48V80a16.00079,16.00079,0,0,0,16,16h48v64H112a15.99954,15.99954,0,0,0-16,16v48H64V144a15.99954,15.99954,0,0,0-16-16H16A15.99954,15.99954,0,0,0,0,144V272a16.00079,16.00079,0,0,0,16,16H64v80a16.00079,16.00079,0,0,0,16,16h48v80a16.00079,16.00079,0,0,0,16,16h96a16.00079,16.00079,0,0,0,16-16V432a15.99954,15.99954,0,0,0-16-16H192V384H384v32H336a15.99954,15.99954,0,0,0-16,16v32a16.00079,16.00079,0,0,0,16,16h96a16.00079,16.00079,0,0,0,16-16V384h48a16.00079,16.00079,0,0,0,16-16V288h48a16.00079,16.00079,0,0,0,16-16V144A15.99954,15.99954,0,0,0,560,128ZM224,320H160V224h64Zm192,0H352V224h64Z\", \"M160,320h64V224H160Zm192-96v96h64V224Z\"]]\n};\nvar faAlignCenter = {\n prefix: 'fad',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", [\"M108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faAlignJustify = {\n prefix: 'fad',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", [\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M432 288H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-256H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faAlignLeft = {\n prefix: 'fad',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", [\"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96z\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faAlignRight = {\n prefix: 'fad',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", [\"M435.17 32H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faAlignSlash = {\n prefix: 'fad',\n iconName: 'align-slash',\n icon: [640, 512, [], \"f846\", [\"M528 352h-31.46l-82.81-64H528a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16zM96 304v32a16 16 0 0 0 16 16h175.21l-82.8-64H112a16 16 0 0 0-16 16zM528 96a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H112a15.82 15.82 0 0 0-15 11.18L165.31 96zM112 416a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h340.83L370 416zm416-256H248.12l82.81 64H528a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M633.82 458.1L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45z\"]]\n};\nvar faAllergies = {\n prefix: 'fad',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", [\"M416 112a32.09 32.09 0 0 0-32 32v72a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V64a32 32 0 0 0-64 0v152a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V32a32 32 0 0 0-64 0v184a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V64a32 32 0 1 0-64 0v241l-23.6-32.49a40 40 0 0 0-64.73 47.03L133.28 492.2a48.08 48.08 0 0 0 38.8 19.8H369.7a47.93 47.93 0 0 0 46.7-37l26.5-112.68A201.29 201.29 0 0 0 448 320V144a32.09 32.09 0 0 0-32-32zM176 288a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm0 127.92a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM240 448a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-96.07a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM304 384a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm32 63.91a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM368 320a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M176 288a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64 128a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faAmbulance = {\n prefix: 'fad',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", [\"M464 352a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm-288 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm120-224h-56V72a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8z\", \"M624 352h-16V243.9a48 48 0 0 0-14.1-33.9L494 110.1A48 48 0 0 0 460.1 96H416V48a48 48 0 0 0-48-48H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h18.16C74 361.93 119.78 320 176 320s102.54 41.86 110.38 96h67.24c7.85-54.14 54.1-96 110.38-96s102 41.93 109.84 96H624a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM304 184a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56V72a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm256 72H416V144h44.1l99.9 99.9z\"]]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fad',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", [\"M638.14 227.07l-44.46-89.31a17.72 17.72 0 0 0-23.89-7.76l-66.41 33.49-92.8-8.66c-37.93 0-67.93 21.55-82 51.07-8.6 18 5.18 38.24 23.61 38.24-18.47 0-32.19 20.26-23.61 38.23 14.37 30.23 43 50.79 85.57 50.79a83.33 83.33 0 0 1-64.74-3.9 26.81 26.81 0 0 0-23.34 48.28c29.37 14.31 62 16.9 88.08 11.16A112.86 112.86 0 0 1 370 404a26.35 26.35 0 0 0-23 29.86c2.18 17.49 19.71 25.68 29.73 23.16a166.69 166.69 0 0 0 74.19-28.19 179.23 179.23 0 0 1-32.51 35.73 26.72 26.72 0 0 0 33.9 41.3A222.5 222.5 0 0 0 532 358.51L573.12 284l58.07-33.21a18.27 18.27 0 0 0 6.95-23.72zm-229.23 52.74a35.57 35.57 0 0 1-32.23-20.37 26.52 26.52 0 0 0-23.34-15.35 26.52 26.52 0 0 0 23.34-15.35 35.57 35.57 0 0 1 32.23-20.37c17.76 0 35.57 14.2 35.57 35.72v.22a35.54 35.54 0 0 1-35.57 35.5z\", \"M313.89 134.53c-29.37-14.31-62-16.9-88.08-11.16A112.54 112.54 0 0 1 270 108a26.72 26.72 0 0 0-6.67-53 166.79 166.79 0 0 0-74.19 28.18 179.46 179.46 0 0 1 32.51-35.72 26.73 26.73 0 0 0 3.61-37.67 26.44 26.44 0 0 0-37.51-3.63A222.47 222.47 0 0 0 108 153.5L66.88 228 8.81 261.22a18.27 18.27 0 0 0-6.95 23.72l44.46 89.3a17.72 17.72 0 0 0 23.89 7.81l66.41-33.48s93.91 8.65 94.47 8.65a89.4 89.4 0 0 0 80.3-51.07c8.59-18-5.19-38.23-23.62-38.23 18.47 0 32.19-20.26 23.62-38.23-14.37-30.23-43-50.79-85.58-50.79a83.29 83.29 0 0 1 64.74 3.91 26.81 26.81 0 0 0 23.34-48.28zm-82.8 97.67a35.57 35.57 0 0 1 32.23 20.37 26.52 26.52 0 0 0 23.34 15.35 26.52 26.52 0 0 0-23.34 15.35 35.59 35.59 0 0 1-32.23 20.37c-17.76 0-35.57-14.2-35.57-35.72v-.22a35.54 35.54 0 0 1 35.57-35.5z\"]]\n};\nvar faAmpGuitar = {\n prefix: 'fad',\n iconName: 'amp-guitar',\n icon: [512, 512, [], \"f8a1\", [\"M321 403a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-64-128a16 16 0 0 0 16-16h-32a16 16 0 0 0 16 16zm-32 96a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm32-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0 96a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm32-32a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm64 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm32 32a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-64-128a16 16 0 0 0 16-16h-32a16 16 0 0 0 16 16zm0 32a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm32 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-64 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-160 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-32 32a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm288-32a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-256 96a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm288-96a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-224-32a16 16 0 0 0 16-16h-32a16 16 0 0 0 16 16zm-32 32a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm64 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0 96a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32-32a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32-96a16 16 0 0 0 16-16h-32a16 16 0 0 0 16 16zm224 128a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-32 32a16 16 0 0 0-16 16h32a16 16 0 0 0-16-16zm-64 0a16 16 0 0 0-16 16h32a16 16 0 0 0-16-16zm32-32a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm96 32a16 16 0 0 0-16 16h32a16 16 0 0 0-16-16zm32-32a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm16-144a16 16 0 0 0 16 16v-16zM225 403a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm208-80a16 16 0 0 0 16 16v-32a16 16 0 0 0-16 16zm0 64a16 16 0 0 0 16 16v-32a16 16 0 0 0-16 16zm-48-112a16 16 0 0 0 16-16h-32a16 16 0 0 0 16 16zm48 176h16v-16a16 16 0 0 0-16 16zM81 259H65v16a16 16 0 0 0 16-16zm0 64a16 16 0 0 0-16-16v32a16 16 0 0 0 16-16zm336 48a16 16 0 1 0-16-16 16 16 0 0 0 16 16zM97 307a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-16 80a16 16 0 0 0-16-16v32a16 16 0 0 0 16-16zm48 48a16 16 0 0 0-16 16h32a16 16 0 0 0-16-16zm-64 0v16h16a16 16 0 0 0-16-16zm128 0a16 16 0 0 0-16 16h32a16 16 0 0 0-16-16zm-32-32a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-64 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zM257 51c26.89 0 54 14.79 76.25 32h70.25C378.75 55.71 322.51 3 257 3S135.25 55.71 110.5 83h70.25C203 65.79 230.12 51 257 51z\", \"M465 83H49a48 48 0 0 0-48 48v336a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V131a48 48 0 0 0-48-48zm-120 64a24 24 0 1 1-24 24 24 24 0 0 1 24-24zm-176 0a24 24 0 1 1-24 24 24 24 0 0 1 24-24zm-80 0a24 24 0 1 1-24 24 24 24 0 0 1 24-24zm360 304H65V259h384zm-24-256a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faAnalytics = {\n prefix: 'fad',\n iconName: 'analytics',\n icon: [576, 512, [], \"f643\", [\"M510.62 92.63l-95.32 76.28a48.66 48.66 0 0 1 .7 7.09 48 48 0 0 1-96 0 47.44 47.44 0 0 1 .71-7.1l-95.33-76.27a45.11 45.11 0 0 1-29.66 1.59l-101.5 101.5A47.9 47.9 0 1 1 48 160a47.87 47.87 0 0 1 12.28 1.78l101.5-101.5A47.87 47.87 0 0 1 160 48a48 48 0 0 1 96 0 47.44 47.44 0 0 1-.71 7.1l95.32 76.26a46.5 46.5 0 0 1 34.76 0l95.34-76.27A48.66 48.66 0 0 1 480 48a48.36 48.36 0 1 1 30.62 44.63z\", \"M400 320h-64a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V336a16 16 0 0 0-16-16zm160-128h-64a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zm-320 0h-64a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zM80 352H16a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V368a16 16 0 0 0-16-16z\"]]\n};\nvar faAnchor = {\n prefix: 'fad',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", [\"M372 192h-52v-5.47A96 96 0 0 0 384 96c0-52.22-42.36-95.25-94.58-96A96 96 0 0 0 256 186.54V192h-52a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h168a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM288 64a32 32 0 1 1-32 32 32 32 0 0 1 32-32z\", \"M564 352h-32.51C509.63 454.62 394.61 512 288 512c-106.41 0-221.58-57.27-243.46-160H12a12 12 0 0 1-8.51-20.49l67.26-67a12.07 12.07 0 0 1 17 0l67.26 67a12 12 0 0 1-8.46 20.49h-35.26c20.37 54.34 85.47 86.62 144.61 94V288h64.22v158c59.36-7.43 124.26-39.7 144.62-94h-35.26a12 12 0 0 1-8.48-20.49l67.26-67a12.07 12.07 0 0 1 17 0l67.26 67A12 12 0 0 1 564 352z\"]]\n};\nvar faAngel = {\n prefix: 'fad',\n iconName: 'angel',\n icon: [576, 512, [], \"f779\", [\"M384 64c0 2.3-3.3 6.1-9.1 10.3a117.38 117.38 0 0 1 16.6 27.1C406.74 90.9 416 78 416 64c0-35.3-57.3-64-128-64S160 28.7 160 64c0 14 9.3 26.9 24.5 37.4a108.79 108.79 0 0 1 16.6-27.1c-5.8-4.1-9.1-7.9-9.1-10.3 0-8 34-32 96-32s96 24 96 32zm187.77 389.1l-38.17-78.6a49.38 49.38 0 0 1 0-43.1c4.79-9.8 8.69-16.7 11.89-22.1C555 292.7 560 282.8 560 256c0-51.1-46.87-96-100.35-96a93 93 0 0 0-66.26 28.1l-72.54 73.27a103.63 103.63 0 0 1 60 52.13L480 512h55.6a40.29 40.29 0 0 0 34.18-19 41.12 41.12 0 0 0 1.99-39.9zM116.34 160C62.86 160 16 204.9 16 256c0 26.8 5 36.7 14.52 53.3 3.2 5.4 7.1 12.3 11.89 22.1a49.38 49.38 0 0 1 0 43.1L4.23 453.1a41.12 41.12 0 0 0 2 39.9 40.29 40.29 0 0 0 34.17 19H96l99.22-198.5a103.63 103.63 0 0 1 60-52.13L182.6 188.1a93 93 0 0 0-66.26-28.1z\", \"M288 224a80 80 0 1 0-80-80 80 80 0 0 0 80 80zm93.4 89.54a104.58 104.58 0 0 0-186.8 0L96 512h384z\"]]\n};\nvar faAngleDoubleDown = {\n prefix: 'fad',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", [\"M143 256L7.05 120.37a23.78 23.78 0 0 1 0-33.8L29.64 64a23.94 23.94 0 0 1 33.89 0l96.37 96.13L256.27 64a23.94 23.94 0 0 1 33.89 0L313 86.47a23.78 23.78 0 0 1 0 33.8L177 255.88a23.94 23.94 0 0 1-34 .1z\", \"M143 447.89L7.05 312.34a23.77 23.77 0 0 1 0-33.79L29.74 256a23.94 23.94 0 0 1 33.89 0L160 352.11l96.47-96a23.94 23.94 0 0 1 33.89 0L313 278.65a23.77 23.77 0 0 1 0 33.79L177 448a24 24 0 0 1-34-.11z\"]]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fad',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", [\"M224 239l135.61-136a23.78 23.78 0 0 1 33.8 0L416 125.64a23.94 23.94 0 0 1 0 33.89l-96.16 96.37L416 352.27a23.94 23.94 0 0 1 0 33.89L393.53 409a23.78 23.78 0 0 1-33.8 0L224.12 273a23.94 23.94 0 0 1-.1-34z\", \"M32.11 239l135.55-136a23.77 23.77 0 0 1 33.79 0L224 125.74a23.94 23.94 0 0 1 0 33.89L127.89 256l96 96.47a23.94 23.94 0 0 1 0 33.89L201.35 409a23.77 23.77 0 0 1-33.79 0L32 273a24 24 0 0 1 .11-34z\"]]\n};\nvar faAngleDoubleRight = {\n prefix: 'fad',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", [\"M224 273L88.37 409a23.78 23.78 0 0 1-33.8 0L32 386.36a23.94 23.94 0 0 1 0-33.89l96.13-96.37L32 159.73a23.94 23.94 0 0 1 0-33.89l22.44-22.79a23.78 23.78 0 0 1 33.8 0L223.88 239a23.94 23.94 0 0 1 .1 34z\", \"M415.89 273L280.34 409a23.77 23.77 0 0 1-33.79 0L224 386.26a23.94 23.94 0 0 1 0-33.89L320.11 256l-96-96.47a23.94 23.94 0 0 1 0-33.89l22.52-22.59a23.77 23.77 0 0 1 33.79 0L416 239a24 24 0 0 1-.11 34z\"]]\n};\nvar faAngleDoubleUp = {\n prefix: 'fad',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", [\"M177 256l136 135.63a23.78 23.78 0 0 1 0 33.8L290.36 448a23.94 23.94 0 0 1-33.89 0l-96.37-96.16L63.73 448a23.94 23.94 0 0 1-33.89 0L7.05 425.53a23.78 23.78 0 0 1 0-33.8L143 256.12a23.94 23.94 0 0 1 34-.1z\", \"M177 64.11l136 135.55a23.77 23.77 0 0 1 0 33.79L290.26 256a23.94 23.94 0 0 1-33.89 0L160 159.89l-96.47 96a23.94 23.94 0 0 1-33.89 0L7.05 233.35a23.77 23.77 0 0 1 0-33.79L143 64a24 24 0 0 1 34 .11z\"]]\n};\nvar faAngleDown = {\n prefix: 'fad',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", [\"M160 256.14l-56.51 56.47-96.44-96.15a23.77 23.77 0 0 1-.18-33.61l.18-.18 22.59-22.51a23.94 23.94 0 0 1 33.85 0z\", \"M313 182.57L290.21 160a23.94 23.94 0 0 0-33.85 0L103.47 312.61 143 352l.06.06a24 24 0 0 0 33.93-.16L313 216.36l.18-.17a23.78 23.78 0 0 0-.18-33.62z\"]]\n};\nvar faAngleLeft = {\n prefix: 'fad',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", [\"M223.83 352.44a24 24 0 0 1 0 33.86L201.32 409l-.18.18a23.76 23.76 0 0 1-33.6-.18l-96.15-96.5 56.47-56.5z\", \"M167.81 102.87l-.17.18L32.11 239a24 24 0 0 0-.17 33.93l.06.07 39.39 39.51L224 159.66a23.92 23.92 0 0 0 0-33.84l-22.54-22.74a23.77 23.77 0 0 0-33.62-.23z\"]]\n};\nvar faAngleRight = {\n prefix: 'fad',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", [\"M128.14 256l56.47 56.49L88.46 409a23.76 23.76 0 0 1-33.6.18l-.18-.18-22.51-22.68a23.92 23.92 0 0 1 0-33.84z\", \"M54.58 103.07L32 125.81a23.92 23.92 0 0 0 0 33.84L184.61 312.5 224 273l.06-.06a24 24 0 0 0-.16-33.94L88.37 103l-.17-.18a23.78 23.78 0 0 0-33.62.22z\"]]\n};\nvar faAngleUp = {\n prefix: 'fad',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", [\"M63.52 351.84a23.94 23.94 0 0 1-33.85 0L7.05 329.33l-.18-.18a23.77 23.77 0 0 1 .18-33.61l96.42-96.15L160 255.86z\", \"M313.13 295.81l-.18-.17L177 160.11a24 24 0 0 0-34-.11l-39.51 39.39L256.33 352a23.94 23.94 0 0 0 33.85 0L313 329.43a23.78 23.78 0 0 0 .13-33.62z\"]]\n};\nvar faAngry = {\n prefix: 'fad',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM136,240a31.87,31.87,0,0,1,10.22-23.43l-30.82-9.24a16,16,0,0,1,9.2-30.66l80,24A16,16,0,0,1,200,232h-1a32,32,0,1,1-63,8ZM304.32,394.05c-27.93-33.26-84.59-33.26-112.62,0-13.57,16.23-38.38-4.18-24.72-20.41a105.93,105.93,0,0,1,162,0C342.81,390.07,317.79,410.09,304.32,394.05ZM381.6,207.33,350,216.8A32,32,0,1,1,297,232a16,16,0,0,1-4.61-31.32l80-24a16,16,0,1,1,9.2,30.65h0Z\", \"M204.6,200.67l-80-24a16,16,0,0,0-9.2,30.66h0l30.82,9.24A32,32,0,1,0,199,232h1a16,16,0,0,0,4.59-31.33ZM392.33,187.4a16,16,0,0,0-19.93-10.72h0l-80,24A16,16,0,0,0,297,232a32,32,0,1,0,53-15.2l31.58-9.47a16,16,0,0,0,10.76-19.9h0Z\"]]\n};\nvar faAnkh = {\n prefix: 'fad',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", [\"M296 256H24a24 24 0 0 0-24 24v32a24 24 0 0 0 24 24h272a24 24 0 0 0 24-24v-32a24 24 0 0 0-24-24z\", \"M120 488a24 24 0 0 0 24 24h32a24 24 0 0 0 24-24V336h-80zM160 0C89.31 0 32 55.63 32 144c0 37.65 15.54 78 36.62 112h182.76C272.46 222 288 181.65 288 144 288 55.63 230.69 0 160 0zm0 244.87c-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64s48 24.52 48 64c0 34.66-27.14 78.14-48 100.87z\"]]\n};\nvar faAppleAlt = {\n prefix: 'fad',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", [\"M295.92 88q-14 13-37 19a116.69 116.69 0 0 1-35 5l-15-1a128.32 128.32 0 0 1 0-32q4-36 23-55 14-13 37-19a116.69 116.69 0 0 1 35-5l15 1 1 15a117.29 117.29 0 0 1-5 35q-6 23-19 37z\", \"M350.86 129q39 7 63.92 42 22 31 30 78a248.7 248.7 0 0 1-1 86q-12 71-47.94 119-43 58-107.87 58-16 0-35-10a56.45 56.45 0 0 0-57.97 0q-19 10-35 10-64.85 0-107.8-58-36-48-47.94-119a248.7 248.7 0 0 1-1-86q8-47 30-78 25-35 63.92-42 24-4 65.92 7 36 10 60.93 24 25-14 60.93-24 41.93-11 65.9-7z\"]]\n};\nvar faAppleCrate = {\n prefix: 'fad',\n iconName: 'apple-crate',\n icon: [512, 512, [], \"f6b1\", [\"M424.17 80.61c-18.13-3-51.9 6.18-72.49 17.69-17-9.52-42.45-17-61.15-17.79 1.82 2.21 3.83 4.17 5.5 6.58 20.84 30.15 25.74 72.3 22.17 104.91H478c5.25-39.47-5.16-102.65-53.83-111.39zM210.53 50.47C221.82 38.28 225 18.44 223.75.25c-12.88-.86-35.67-.12-50 13.28-16.55 16.6-13.75 46.36-13.24 50.22C179 65 198.28 61.9 210.53 50.47zm191.69 0c11.29-12.19 14.43-32 13.22-50.22-12.88-.86-35.67-.12-50 13.28-16.53 16.6-13.77 46.36-13.22 50.22 18.45 1.25 37.78-1.85 50-13.28zM232.48 80.61c-18.13-3-51.9 6.18-72.48 17.69-20.66-11.56-54.43-20.71-72.48-17.69C38.91 89.34 28.53 152.88 33.7 192h252.6c5.26-39.47-5.15-102.65-53.82-111.39z\", \"M496 224H16a16 16 0 0 0-16 16v112h512V240a16 16 0 0 0-16-16zM64 304a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm384 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM0 496a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16V384H0zm448-64a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-384 0a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]]\n};\nvar faArchive = {\n prefix: 'fad',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", [\"M32 160v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V160zm288 84a12 12 0 0 1-12 12H204a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h104a12 12 0 0 1 12 12z\", \"M512 64v48a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V64a32 32 0 0 1 32-32h448a32 32 0 0 1 32 32z\"]]\n};\nvar faArchway = {\n prefix: 'fad',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", [\"M576 16v32a16 16 0 0 1-16 16H16A16 16 0 0 1 0 48V16A16 16 0 0 1 16 0h544a16 16 0 0 1 16 16z\", \"M576 464v32a16 16 0 0 1-16 16H400a16 16 0 0 1-16-16V320a96 96 0 0 0-192 0v176a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h16V96h512v352h16a16 16 0 0 1 16 16z\"]]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fad',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm124.41 268.32L264.52 390.48a12.08 12.08 0 0 1-17 0L131.59 276.32c-7.67-7.49-2.22-20.48 8.57-20.48h71.51V140a12.08 12.08 0 0 1 12.1-12h64.56a12.08 12.08 0 0 1 12.1 12v115.84h71.41c10.79 0 16.24 12.89 8.57 20.48z\", \"M223.77 128h64.56a12.08 12.08 0 0 1 12.1 12v115.84h71.41c10.79 0 16.24 12.89 8.57 20.48L264.52 390.48a12.08 12.08 0 0 1-17 0L131.59 276.32c-7.67-7.49-2.22-20.48 8.57-20.48h71.51V140a12.08 12.08 0 0 1 12.1-12z\"]]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fad',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm128 280.33a12.08 12.08 0 0 1-12 12.1H256.16v71.41c0 10.79-12.89 16.24-20.48 8.57L121.52 264.52a12.08 12.08 0 0 1 0-17l114.16-115.93c7.49-7.67 20.48-2.22 20.48 8.57v71.51H372a12.08 12.08 0 0 1 12 12.1z\", \"M384 223.77v64.56a12.08 12.08 0 0 1-12 12.1H256.16v71.41c0 10.79-12.89 16.24-20.48 8.57L121.52 264.52a12.08 12.08 0 0 1 0-17l114.16-115.93c7.49-7.67 20.48-2.22 20.48 8.57v71.51H372a12.08 12.08 0 0 1 12 12.1z\"]]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fad',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm134.48 256.52L276.32 380.41c-7.49 7.67-20.48 2.22-20.48-8.57v-71.51H140a12.08 12.08 0 0 1-12-12.1v-64.56a12.08 12.08 0 0 1 12-12.1h115.84v-71.41c0-10.79 12.89-16.24 20.48-8.57l114.16 115.89a12.08 12.08 0 0 1 0 17.04z\", \"M128 288.23v-64.56a12.08 12.08 0 0 1 12-12.1h115.84v-71.41c0-10.79 12.89-16.24 20.48-8.57l114.16 115.89a12.08 12.08 0 0 1 0 17L276.32 380.41c-7.49 7.67-20.48 2.22-20.48-8.57v-71.51H140a12.08 12.08 0 0 1-12-12.1z\"]]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fad',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.84 248.16h-71.51V372a12.08 12.08 0 0 1-12.1 12h-64.56a12.08 12.08 0 0 1-12.1-12V256.16h-71.41c-10.79 0-16.24-12.89-8.57-20.48l115.89-114.16a12.08 12.08 0 0 1 17 0l115.93 114.16c7.67 7.49 2.22 20.48-8.57 20.48z\", \"M288.23 384h-64.56a12.08 12.08 0 0 1-12.1-12V256.16h-71.41c-10.79 0-16.24-12.89-8.57-20.48l115.89-114.16a12.08 12.08 0 0 1 17 0l115.93 114.16c7.67 7.49 2.22 20.48-8.57 20.48h-71.51V372a12.08 12.08 0 0 1-12.1 12z\"]]\n};\nvar faArrowAltDown = {\n prefix: 'fad',\n iconName: 'arrow-alt-down',\n icon: [448, 512, [], \"f354\", [\"M288,56V256H159.88V56a24,24,0,0,1,24-24H264A24,24,0,0,1,288,56Z\", \"M408.93,297,241,473a24.09,24.09,0,0,1-34,0L39.07,297c-15.11-15.09-4.4-41,17-41H391.93C413.35,256,424,281.76,408.93,297Z\"]]\n};\nvar faArrowAltFromBottom = {\n prefix: 'fad',\n iconName: 'arrow-alt-from-bottom',\n icon: [384, 512, [], \"f346\", [\"M360 480H24a24 24 0 0 1-24-24v-16a24 24 0 0 1 24-24h336a24 24 0 0 1 24 24v16a24 24 0 0 1-24 24z\", \"M232 384h-80a23.94 23.94 0 0 1-24-24V224H40.3c-17.8 0-26.8-21.51-14.2-34.11L178.4 37.63a19.36 19.36 0 0 1 27.3 0l152.1 152.23c12.6 12.6 3.7 34.11-14.1 34.11H256V360a23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faArrowAltFromLeft = {\n prefix: 'fad',\n iconName: 'arrow-alt-from-left',\n icon: [448, 512, [], \"f347\", [\"M0 424V88a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v336a23.94 23.94 0 0 1-24 24H24a23.94 23.94 0 0 1-24-24z\", \"M96 296v-80a23.94 23.94 0 0 1 24-24h136v-87.8c0-17.8 21.51-26.7 34.11-14.1l152.26 152.2a19.36 19.36 0 0 1 0 27.3L290.14 421.8c-12.6 12.6-34.11 3.7-34.11-14.1V320H120a23.94 23.94 0 0 1-24-24z\"]]\n};\nvar faArrowAltFromRight = {\n prefix: 'fad',\n iconName: 'arrow-alt-from-right',\n icon: [448, 512, [], \"f348\", [\"M448 88v336a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V88a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24z\", \"M352 215.89V296a24 24 0 0 1-24 24H192v88c0 17.82-21.51 26.73-34.11 14.12L5.63 269.67a19.4 19.4 0 0 1 0-27.34L157.86 89.91C170.46 77.3 192 86.21 192 104v87.83h136a24 24 0 0 1 24 24.06z\"]]\n};\nvar faArrowAltFromTop = {\n prefix: 'fad',\n iconName: 'arrow-alt-from-top',\n icon: [384, 512, [], \"f349\", [\"M384 56v16a23.94 23.94 0 0 1-24 24H24A23.94 23.94 0 0 1 0 72V56a23.94 23.94 0 0 1 24-24h336a23.94 23.94 0 0 1 24 24z\", \"M151.89 128H232a24 24 0 0 1 24 24v136h88c17.82 0 26.73 21.51 14.12 34.11L205.67 474.37a19.4 19.4 0 0 1-27.34 0L25.91 322.14C13.3 309.54 22.21 288 40 288h87.83V152a24 24 0 0 1 24.06-24z\"]]\n};\nvar faArrowAltLeft = {\n prefix: 'fad',\n iconName: 'arrow-alt-left',\n icon: [448, 512, [], \"f355\", [\"M424 320H224V191.89h200a24 24 0 0 1 24 24V296a24 24 0 0 1-24 24z\", \"M183 440.92L7 273a24.06 24.06 0 0 1 0-34L183 71.09c15.1-15.11 41-4.4 41 17v335.83c0 21.42-25.76 32.13-41 17z\"]]\n};\nvar faArrowAltRight = {\n prefix: 'fad',\n iconName: 'arrow-alt-right',\n icon: [448, 512, [], \"f356\", [\"M24 192h200v128.14H24a24 24 0 0 1-24-24V216a24 24 0 0 1 24-24z\", \"M265 71.11L441 239a24.08 24.08 0 0 1 0 34L265 440.94c-15.1 15.11-41 4.4-41-17V88.11c0-21.42 25.75-32.11 41-17z\"]]\n};\nvar faArrowAltSquareDown = {\n prefix: 'fad',\n iconName: 'arrow-alt-square-down',\n icon: [448, 512, [], \"f350\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-51.58 244.32l-116 115.16a12.08 12.08 0 0 1-17 0L99.58 276.32c-7.66-7.49-2.21-20.32 8.57-20.32h71.49V140a12.07 12.07 0 0 1 12.1-12h64.52a12.07 12.07 0 0 1 12.1 12v116h71.49c10.78 0 16.23 12.83 8.57 20.32z\", \"M191.74 128h64.52a12.07 12.07 0 0 1 12.1 12v116h71.49c10.78 0 16.23 12.83 8.57 20.32l-116 115.16a12.08 12.08 0 0 1-17 0L99.58 276.32c-7.66-7.49-2.21-20.32 8.57-20.32h71.49V140a12.07 12.07 0 0 1 12.1-12z\"]]\n};\nvar faArrowAltSquareLeft = {\n prefix: 'fad',\n iconName: 'arrow-alt-square-left',\n icon: [448, 512, [], \"f351\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-48 256.26a12.07 12.07 0 0 1-12 12.1H224v71.49c0 10.78-12.83 16.23-20.32 8.57L88.52 264.47a12.08 12.08 0 0 1 0-17l115.16-115.89c7.49-7.66 20.32-2.21 20.32 8.57v71.49h116a12.07 12.07 0 0 1 12 12.1z\", \"M352 223.74v64.52a12.07 12.07 0 0 1-12 12.1H224v71.49c0 10.78-12.83 16.23-20.32 8.57L88.52 264.47a12.08 12.08 0 0 1 0-17l115.16-115.89c7.49-7.66 20.32-2.21 20.32 8.57v71.49h116a12.07 12.07 0 0 1 12 12.1z\"]]\n};\nvar faArrowAltSquareRight = {\n prefix: 'fad',\n iconName: 'arrow-alt-square-right',\n icon: [448, 512, [], \"f352\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-40.52 232.57L244.32 380.42c-7.49 7.66-20.32 2.21-20.32-8.57v-71.49H108a12.07 12.07 0 0 1-12-12.1v-64.52a12.07 12.07 0 0 1 12-12.1h116v-71.49c0-10.78 12.83-16.23 20.32-8.57l115.16 116a12.08 12.08 0 0 1 0 16.99z\", \"M96 288.26v-64.52a12.07 12.07 0 0 1 12-12.1h116v-71.49c0-10.78 12.83-16.23 20.32-8.57l115.16 116a12.08 12.08 0 0 1 0 17L244.32 380.42c-7.49 7.66-20.32 2.21-20.32-8.57v-71.49H108a12.07 12.07 0 0 1-12-12.1z\"]]\n};\nvar faArrowAltSquareUp = {\n prefix: 'fad',\n iconName: 'arrow-alt-square-up',\n icon: [448, 512, [], \"f353\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-60.15 224h-71.49v116a12.07 12.07 0 0 1-12.1 12h-64.52a12.07 12.07 0 0 1-12.1-12V256h-71.49c-10.78 0-16.23-12.83-8.57-20.32l116-115.16a12.08 12.08 0 0 1 17 0l115.84 115.16c7.66 7.49 2.21 20.32-8.57 20.32z\", \"M256.26 384h-64.52a12.07 12.07 0 0 1-12.1-12V256h-71.49c-10.78 0-16.23-12.83-8.57-20.32l116-115.16a12.08 12.08 0 0 1 17 0l115.84 115.16c7.66 7.49 2.21 20.32-8.57 20.32h-71.49v116a12.07 12.07 0 0 1-12.1 12z\"]]\n};\nvar faArrowAltToBottom = {\n prefix: 'fad',\n iconName: 'arrow-alt-to-bottom',\n icon: [384, 512, [], \"f34a\", [\"M360 480H24a24 24 0 0 1-24-24v-16a24 24 0 0 1 24-24h336a24 24 0 0 1 24 24v16a24 24 0 0 1-24 24z\", \"M151.92 32h80a23.94 23.94 0 0 1 24 24v136h87.7c17.8 0 26.8 21.51 14.2 34.11l-152.3 152.26a19.36 19.36 0 0 1-27.3 0L26.12 226.14c-12.6-12.6-3.7-34.11 14.1-34.11h87.7V56a23.94 23.94 0 0 1 24-24z\"]]\n};\nvar faArrowAltToLeft = {\n prefix: 'fad',\n iconName: 'arrow-alt-to-left',\n icon: [448, 512, [], \"f34b\", [\"M0 424V88a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v336a23.94 23.94 0 0 1-24 24H24a23.94 23.94 0 0 1-24-24z\", \"M448 215.9v80a23.94 23.94 0 0 1-24 24H288v87.8c0 17.8-21.51 26.7-34.11 14.1L101.63 269.6a19.36 19.36 0 0 1 0-27.3L253.86 90.1c12.6-12.6 34.14-3.7 34.14 14.1v87.7h136a23.94 23.94 0 0 1 24 24z\"]]\n};\nvar faArrowAltToRight = {\n prefix: 'fad',\n iconName: 'arrow-alt-to-right',\n icon: [448, 512, [], \"f34c\", [\"M448 88v336a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V88a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24z\", \"M0 296.11V216a24 24 0 0 1 24-24h136v-88c0-17.82 21.51-26.73 34.11-14.12l152.26 152.45a19.4 19.4 0 0 1 0 27.34L194.14 422.09C181.54 434.7 160 425.79 160 408v-87.86H24a24 24 0 0 1-24-24.03z\"]]\n};\nvar faArrowAltToTop = {\n prefix: 'fad',\n iconName: 'arrow-alt-to-top',\n icon: [384, 512, [], \"f34d\", [\"M24 32h336a23.94 23.94 0 0 1 24 23.88V72a23.94 23.94 0 0 1-23.88 24H24A23.94 23.94 0 0 1 0 72.12V56a23.94 23.94 0 0 1 23.88-24z\", \"M232.11 480H152a24 24 0 0 1-24-24V320H40c-17.82 0-26.73-21.51-14.12-34.11l152.45-152.26a19.4 19.4 0 0 1 27.34 0l152.42 152.23C370.7 298.46 361.79 320 344 320h-87.83v136a24 24 0 0 1-24 24z\"]]\n};\nvar faArrowAltUp = {\n prefix: 'fad',\n iconName: 'arrow-alt-up',\n icon: [448, 512, [], \"f357\", [\"M160,456V256H288.11V456a24,24,0,0,1-24,24H184A24,24,0,0,1,160,456Z\", \"M39.05,215,207,39a24.08,24.08,0,0,1,34,0L408.92,215c15.11,15.09,4.4,41-17,41H56.05C34.63,256,24,230.3,39.05,215Z\"]]\n};\nvar faArrowCircleDown = {\n prefix: 'fad',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm149.6 263.6L272.9 404.3a23.9 23.9 0 0 1-33.9 0L106.4 271.6a23.9 23.9 0 0 1 0-33.9l10.9-11a24 24 0 0 1 34.3.4l72.4 75.5V120a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v182.6l72.4-75.5a24 24 0 0 1 34.3-.4l10.9 11a23.9 23.9 0 0 1 0 33.9z\", \"M360.4 227.1a24 24 0 0 1 34.3-.4l10.9 11a23.9 23.9 0 0 1 0 33.9L272.9 404.3a23.9 23.9 0 0 1-33.9 0L106.4 271.6a23.9 23.9 0 0 1 0-33.9l10.9-11a24 24 0 0 1 34.3.4l72.4 75.5V120a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v182.6l72.4-75.5z\"]]\n};\nvar faArrowCircleLeft = {\n prefix: 'fad',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm160 256a23.94 23.94 0 0 1-24 24H209.4l75.5 72.4a24 24 0 0 1 .4 34.3l-11 10.9a23.9 23.9 0 0 1-33.9 0L107.7 272.9a23.9 23.9 0 0 1 0-33.9l132.7-132.6a23.9 23.9 0 0 1 33.9 0l11 10.9a24 24 0 0 1-.4 34.3L209.4 224H392a23.94 23.94 0 0 1 24 24z\", \"M285.3 394.7l-11 10.9a23.9 23.9 0 0 1-33.9 0L107.7 272.9a23.9 23.9 0 0 1 0-33.9l132.7-132.6a23.9 23.9 0 0 1 33.9 0l11 10.9a24 24 0 0 1-.4 34.3L209.4 224H392a23.94 23.94 0 0 1 24 24v16a23.94 23.94 0 0 1-24 24H209.4l75.5 72.4a24 24 0 0 1 .4 34.3z\"]]\n};\nvar faArrowCircleRight = {\n prefix: 'fad',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm148.3 265L271.6 405.6a23.9 23.9 0 0 1-33.9 0l-11-10.9a24 24 0 0 1 .4-34.3l75.5-72.4H120a23.94 23.94 0 0 1-24-24v-16a23.94 23.94 0 0 1 24-24h182.6l-75.5-72.4a24.15 24.15 0 0 1-.4-34.4l11-10.9a23.9 23.9 0 0 1 33.9 0l132.7 132.8a23.9 23.9 0 0 1 0 33.9z\", \"M226.7 117.2l11-10.9a23.9 23.9 0 0 1 33.9 0l132.7 132.8a23.9 23.9 0 0 1 0 33.9L271.6 405.6a23.9 23.9 0 0 1-33.9 0l-11-10.9a24 24 0 0 1 .4-34.3l75.5-72.4H120a23.94 23.94 0 0 1-24-24v-16a23.94 23.94 0 0 1 24-24h182.6l-75.5-72.4a24.15 24.15 0 0 1-.4-34.4z\"]]\n};\nvar faArrowCircleUp = {\n prefix: 'fad',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm149.6 266.3l-10.9 11a24 24 0 0 1-34.3-.4L288 209.4V392a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V209.4l-72.4 75.5a24.15 24.15 0 0 1-34.4.4l-10.9-11a23.9 23.9 0 0 1 0-33.9l132.8-132.7a23.9 23.9 0 0 1 33.9 0l132.6 132.7a23.9 23.9 0 0 1 0 33.9z\", \"M117.2 285.3l-10.9-11a23.9 23.9 0 0 1 0-33.9l132.8-132.7a23.9 23.9 0 0 1 33.9 0l132.6 132.7a23.9 23.9 0 0 1 0 33.9l-10.9 11a24 24 0 0 1-34.3-.4L288 209.4V392a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V209.4l-72.4 75.5a24.15 24.15 0 0 1-34.4.4z\"]]\n};\nvar faArrowDown = {\n prefix: 'fad',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", [\"M265 56v286.4L224 384l-41-41.59V56c0-13.3 11-24 24.63-24h32.82A24.22 24.22 0 0 1 265 56z\", \"M441.48 278.31c-.23.24-.47.48-.71.71L241.44 473a25 25 0 0 1-34.78 0L7.23 279a23.38 23.38 0 0 1-.7-33.11c.22-.24.46-.47.7-.7L30 223.06a25.13 25.13 0 0 1 35.18.4L224 384.19l158.8-160.73a24.94 24.94 0 0 1 35.18-.4l22.78 22.15a23.38 23.38 0 0 1 .72 33.1z\"]]\n};\nvar faArrowFromBottom = {\n prefix: 'fad',\n iconName: 'arrow-from-bottom',\n icon: [384, 512, [], \"f342\", [\"M360 480H24a23.94 23.94 0 0 1-24-24v-16a23.94 23.94 0 0 1 24-24h336a23.94 23.94 0 0 1 24 24v16a23.94 23.94 0 0 1-24 24z\", \"M56.13 225.48l-17.06-17a23.86 23.86 0 0 1 0-33.91L175 39.05a24 24 0 0 1 34 0l135.93 135.52a23.86 23.86 0 0 1 0 33.91l-17.06 17a24 24 0 0 1-34 0l-65.81-65.61V360A24 24 0 0 1 204 384h-24.09a24 24 0 0 1-24.07-24V159.87L90 225.48a23.9 23.9 0 0 1-33.87 0z\"]]\n};\nvar faArrowFromLeft = {\n prefix: 'fad',\n iconName: 'arrow-from-left',\n icon: [448, 512, [], \"f343\", [\"M0 424V88a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v336a23.94 23.94 0 0 1-24 24H24a23.94 23.94 0 0 1-24-24z\", \"M254.52 120.13l17-17.06a23.86 23.86 0 0 1 33.91 0L441 239a24 24 0 0 1 0 34L305.43 408.93a23.86 23.86 0 0 1-33.91 0l-17-17.06a24 24 0 0 1 0-34l65.61-65.81H120A24 24 0 0 1 96 268v-24.09a24 24 0 0 1 24-24.07h200.13L254.52 154a23.9 23.9 0 0 1 0-33.87z\"]]\n};\nvar faArrowFromRight = {\n prefix: 'fad',\n iconName: 'arrow-from-right',\n icon: [448, 512, [], \"f344\", [\"M448 88v336a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V88a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24z\", \"M193.48 391.87l-17 17.06a23.86 23.86 0 0 1-33.91 0L7.05 273a24 24 0 0 1 0-34l135.52-135.93a23.86 23.86 0 0 1 33.91 0l17 17.06a24 24 0 0 1 0 34l-65.61 65.81H328A24 24 0 0 1 352 244v24.08a24 24 0 0 1-24 24.07H127.87L193.48 358a23.9 23.9 0 0 1 0 33.87z\"]]\n};\nvar faArrowFromTop = {\n prefix: 'fad',\n iconName: 'arrow-from-top',\n icon: [384, 512, [], \"f345\", [\"M24 32h336a23.94 23.94 0 0 1 24 24v16a23.94 23.94 0 0 1-24 24H24A23.94 23.94 0 0 1 0 72V56a23.94 23.94 0 0 1 24-24z\", \"M327.87 286.52l17.06 17a23.86 23.86 0 0 1 0 33.91L209 473a24 24 0 0 1-34 0L39.07 337.43a23.86 23.86 0 0 1 0-33.91l17.06-17a24 24 0 0 1 34 0l65.81 65.61V152A24 24 0 0 1 180 128h24.08a24 24 0 0 1 24.07 24v200.13L294 286.52a23.9 23.9 0 0 1 33.87 0z\"]]\n};\nvar faArrowLeft = {\n prefix: 'fad',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", [\"M424 297H137.6L96 256l41.59-41H424c13.3 0 24 11 24 24.63v32.82A24.22 24.22 0 0 1 424 297z\", \"M201.69 473.48l-.71-.71L7 273.44a25 25 0 0 1 0-34.78L201 39.23a23.38 23.38 0 0 1 33.11-.7c.24.22.47.46.7.7L256.94 62a25.13 25.13 0 0 1-.4 35.18L95.81 256l160.73 158.8a24.94 24.94 0 0 1 .4 35.18l-22.15 22.78a23.38 23.38 0 0 1-33.1.72z\"]]\n};\nvar faArrowRight = {\n prefix: 'fad',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", [\"M24 215h286.4l41.6 41-41.59 41H24c-13.3 0-24-11-24-24.63v-32.82A24.22 24.22 0 0 1 24 215z\", \"M246.31 38.52c.24.23.48.47.71.71L441 238.56a25 25 0 0 1 0 34.78L247 472.77a23.38 23.38 0 0 1-33.11.7c-.24-.22-.47-.46-.7-.7L191.06 450a25.13 25.13 0 0 1 .4-35.18L352.19 256 191.46 97.2a24.94 24.94 0 0 1-.4-35.18l22.15-22.78a23.38 23.38 0 0 1 33.1-.72z\"]]\n};\nvar faArrowSquareDown = {\n prefix: 'fad',\n iconName: 'arrow-square-down',\n icon: [448, 512, [], \"f339\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-26.4 239.6L240.9 404.3a23.9 23.9 0 0 1-33.9 0L74.4 271.6a23.9 23.9 0 0 1 0-33.9l10.9-11a24 24 0 0 1 34.3.4l72.4 75.5V120a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v182.6l72.4-75.5a24 24 0 0 1 34.3-.4l10.9 11a23.9 23.9 0 0 1 0 33.9z\", \"M328.4 227.1a24 24 0 0 1 34.3-.4l10.9 11a23.9 23.9 0 0 1 0 33.9L240.9 404.3a23.9 23.9 0 0 1-33.9 0L74.4 271.6a23.9 23.9 0 0 1 0-33.9l10.9-11a24 24 0 0 1 34.3.4l72.4 75.5V120a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v182.6l72.4-75.5z\"]]\n};\nvar faArrowSquareLeft = {\n prefix: 'fad',\n iconName: 'arrow-square-left',\n icon: [448, 512, [], \"f33a\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 232a23.94 23.94 0 0 1-24 24H177.4l75.5 72.4a24 24 0 0 1 .4 34.3l-11 10.9a23.9 23.9 0 0 1-33.9 0L75.7 272.9a23.9 23.9 0 0 1 0-33.9l132.7-132.6a23.9 23.9 0 0 1 33.9 0l11 10.9a24 24 0 0 1-.4 34.3L177.4 224H360a23.94 23.94 0 0 1 24 24z\", \"M253.3 394.7l-11 10.9a23.9 23.9 0 0 1-33.9 0L75.7 272.9a23.9 23.9 0 0 1 0-33.9l132.7-132.6a23.9 23.9 0 0 1 33.9 0l11 10.9a24 24 0 0 1-.4 34.3L177.4 224H360a23.94 23.94 0 0 1 24 24v16a23.94 23.94 0 0 1-24 24H177.4l75.5 72.4a24 24 0 0 1 .4 34.3z\"]]\n};\nvar faArrowSquareRight = {\n prefix: 'fad',\n iconName: 'arrow-square-right',\n icon: [448, 512, [], \"f33b\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-27.7 241L239.6 405.6a23.9 23.9 0 0 1-33.9 0l-11-10.9a24 24 0 0 1 .4-34.3l75.5-72.4H88a23.94 23.94 0 0 1-24-24v-16a23.94 23.94 0 0 1 24-24h182.6l-75.5-72.4a24.15 24.15 0 0 1-.4-34.4l11-10.9a23.9 23.9 0 0 1 33.9 0l132.7 132.8a23.9 23.9 0 0 1 0 33.9z\", \"M194.7 117.2l11-10.9a23.9 23.9 0 0 1 33.9 0l132.7 132.8a23.9 23.9 0 0 1 0 33.9L239.6 405.6a23.9 23.9 0 0 1-33.9 0l-11-10.9a24 24 0 0 1 .4-34.3l75.5-72.4H88a23.94 23.94 0 0 1-24-24v-16a23.94 23.94 0 0 1 24-24h182.6l-75.5-72.4a24.15 24.15 0 0 1-.4-34.4z\"]]\n};\nvar faArrowSquareUp = {\n prefix: 'fad',\n iconName: 'arrow-square-up',\n icon: [448, 512, [], \"f33c\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-26.4 242.3l-10.9 11a24 24 0 0 1-34.3-.4L256 209.4V392a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V209.4l-72.4 75.5a24.15 24.15 0 0 1-34.4.4l-10.9-11a23.9 23.9 0 0 1 0-33.9l132.8-132.7a23.9 23.9 0 0 1 33.9 0l132.6 132.7a23.9 23.9 0 0 1 0 33.9z\", \"M85.2 285.3l-10.9-11a23.9 23.9 0 0 1 0-33.9l132.8-132.7a23.9 23.9 0 0 1 33.9 0l132.6 132.7a23.9 23.9 0 0 1 0 33.9l-10.9 11a24 24 0 0 1-34.3-.4L256 209.4V392a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V209.4l-72.4 75.5a24.15 24.15 0 0 1-34.4.4z\"]]\n};\nvar faArrowToBottom = {\n prefix: 'fad',\n iconName: 'arrow-to-bottom',\n icon: [384, 512, [], \"f33d\", [\"M360 480H24a23.94 23.94 0 0 1-24-23.88V440a23.94 23.94 0 0 1 23.88-24H360a23.94 23.94 0 0 1 24 23.88V456a23.94 23.94 0 0 1-23.88 24z\", \"M327.87 190.52l17.06 17a23.86 23.86 0 0 1 .17 33.74l-.17.17L209 377a24 24 0 0 1-33.94.06L175 377 39.07 241.43a23.86 23.86 0 0 1-.17-33.74l.17-.17 17.06-17a24 24 0 0 1 33.94-.06l.06.06 65.81 65.61V56a24 24 0 0 1 24-24h24.14a24 24 0 0 1 24.07 23.93v200.2L294 190.52a23.91 23.91 0 0 1 33.8-.07z\"]]\n};\nvar faArrowToLeft = {\n prefix: 'fad',\n iconName: 'arrow-to-left',\n icon: [448, 512, [], \"f33e\", [\"M0 424V88a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v336a23.94 23.94 0 0 1-24 24H24a23.94 23.94 0 0 1-24-24z\", \"M289.48 391.87l-17 17.06a23.86 23.86 0 0 1-33.91 0L103.05 273a24 24 0 0 1 0-34l135.52-135.93a23.86 23.86 0 0 1 33.91 0l17 17.06a24 24 0 0 1 0 34l-65.61 65.81H424A24 24 0 0 1 448 244v24.08a24 24 0 0 1-24 24.07H223.87L289.48 358a23.9 23.9 0 0 1 0 33.87z\"]]\n};\nvar faArrowToRight = {\n prefix: 'fad',\n iconName: 'arrow-to-right',\n icon: [448, 512, [], \"f340\", [\"M448 88v336a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V88a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24z\", \"M158.52 120.13l17-17.06a23.86 23.86 0 0 1 33.91 0L345 239a24 24 0 0 1 0 34L209.43 408.93a23.86 23.86 0 0 1-33.91 0l-17-17.06a24 24 0 0 1 0-34l65.61-65.81H24A24 24 0 0 1 0 268v-24.09a24 24 0 0 1 24-24.07h200.13L158.52 154a23.9 23.9 0 0 1 0-33.87z\"]]\n};\nvar faArrowToTop = {\n prefix: 'fad',\n iconName: 'arrow-to-top',\n icon: [384, 512, [], \"f341\", [\"M24 32h336a23.94 23.94 0 0 1 24 24v16a23.94 23.94 0 0 1-24 24H24A23.94 23.94 0 0 1 0 72V56a23.94 23.94 0 0 1 24-24z\", \"M56.13 321.48l-17.06-17a23.86 23.86 0 0 1 0-33.91L175 135.05a24 24 0 0 1 34 0l135.93 135.52a23.86 23.86 0 0 1 0 33.91l-17.06 17a24 24 0 0 1-34 0l-65.81-65.61V456A24 24 0 0 1 204 480h-24.09a24 24 0 0 1-24.07-24V255.87L90 321.48a23.9 23.9 0 0 1-33.87 0z\"]]\n};\nvar faArrowUp = {\n prefix: 'fad',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", [\"M183 456V169.6l41-41.6 41 41.59V456c0 13.3-11 24-24.63 24h-32.82A24.22 24.22 0 0 1 183 456z\", \"M6.52 233.69c.23-.24.47-.48.71-.71L206.56 39a25 25 0 0 1 34.78 0l199.43 194a23.38 23.38 0 0 1 .7 33.11c-.22.24-.46.47-.7.7L418 288.94a25.13 25.13 0 0 1-35.18-.4L224 127.81 65.2 288.54a24.94 24.94 0 0 1-35.18.4L7.23 266.79a23.38 23.38 0 0 1-.71-33.1z\"]]\n};\nvar faArrows = {\n prefix: 'fad',\n iconName: 'arrows',\n icon: [512, 512, [], \"f047\", [\"M440 256l-34.68 32H288v117.34L256 440l-32-34.68V288H106.66L72 256l34.68-32H224V106.66L256 72l32 34.67V224h117.34z\", \"M128.57 170.71l-.46-.47-10.83-10.84a24 24 0 0 0-33.93 0l-74 74a32 32 0 0 0 0 45.24l74 74a24 24 0 0 0 33.93 0l10.83-10.84.46-.47a24 24 0 0 0-.93-33.92L72 256l55.66-51.37a24 24 0 0 0 .91-33.92zm374.05 62.67l-74-74a24 24 0 0 0-33.93 0l-10.83 10.84-.46.47a24 24 0 0 0 .93 33.92L440 256l-55.66 51.37a24 24 0 0 0-.93 33.92l.46.47 10.83 10.84a24 24 0 0 0 33.93 0l74-74a32 32 0 0 0 0-45.24zM341.76 383.89l-.47-.46a24 24 0 0 0-33.92.93L256 440l-51.37-55.66a24 24 0 0 0-33.92-.93l-.47.46-10.84 10.85a24 24 0 0 0 0 33.93l74 74a32 32 0 0 0 45.24 0l74-74a24 24 0 0 0 0-33.93zM278.62 9.38a32 32 0 0 0-45.24 0l-74 74a24 24 0 0 0 0 33.93l10.84 10.83.47.46a24 24 0 0 0 33.92-.93L256 72l51.37 55.66a24 24 0 0 0 33.92.93l.47-.46 10.84-10.83a24 24 0 0 0 0-33.93z\"]]\n};\nvar faArrowsAlt = {\n prefix: 'fad',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", [\"M384 288h-96v96h-64v-96h-96v-64h96v-96h64v96h96z\", \"M504.93 239.07l-79.7-79C410 145 384 155.67 384 177v158c0 21.34 26 32 41.23 16.93l79.7-79 .2-.2a23.8 23.8 0 0 0-.2-33.66zm-418.16-79l-79.7 79-.2.2a23.8 23.8 0 0 0 .2 33.66l79.7 79C102 367 128 356.33 128 335V177c0-21.34-26-32-41.23-16.93zM335 384H177c-21.34 0-32 26-16.93 41.23l79 79.7.2.2a23.8 23.8 0 0 0 33.66-.2l79-79.7C367 410 356.33 384 335 384zM272.93 7.07l-.2-.2a23.8 23.8 0 0 0-33.66.2l-79 79.7C145 102 155.67 128 177 128h158c21.34 0 32-26 16.93-41.23z\"]]\n};\nvar faArrowsAltH = {\n prefix: 'fad',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", [\"M134.1 216H378v80H134.1z\", \"M378 170v172c0 21.41 25.88 32.1 41 17l86-86a24 24 0 0 0 0-33.94L419 153c-15.17-15-41-4.36-41 17zM134.1 342V170.11c0-21.41-25.88-32.1-41-17l-86.1 86A24 24 0 0 0 7 273l86.1 86c15.15 15.06 41 4.37 41-17z\"]]\n};\nvar faArrowsAltV = {\n prefix: 'fad',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", [\"M88 378V134.08h80V378z\", \"M42 134.08h171.94c21.4 0 32.09-25.87 17-41L145 7a24 24 0 0 0-33.89 0L25 93.09c-15 15.15-4.32 40.99 17 40.99zM213.94 378H42.14c-21.4 0-32.09 25.88-17 41l86 86a24 24 0 0 0 33.86 0l85.93-86c15.07-15.23 4.4-41-16.99-41z\"]]\n};\nvar faArrowsH = {\n prefix: 'fad',\n iconName: 'arrows-h',\n icon: [512, 512, [], \"f07e\", [\"M405.66 288H106.34l-33.77-32 33.77-32h299.32l33.77 32z\", \"M358.59 146.37a23.93 23.93 0 0 0 .94 33.92l79.9 75.71-79.9 75.71a23.93 23.93 0 0 0-.94 33.92L369.9 377a24.15 24.15 0 0 0 34.1 0l98.65-98.36a31.92 31.92 0 0 0 0-45.24L404 135a24.15 24.15 0 0 0-34.05 0zM153.41 365.63a23.93 23.93 0 0 0-.94-33.92L72.57 256l79.9-75.71a23.93 23.93 0 0 0 .94-33.92L142.1 135a24.15 24.15 0 0 0-34 0L9.4 233.38a31.92 31.92 0 0 0 0 45.24L108.05 377a24.15 24.15 0 0 0 34.05 0z\"]]\n};\nvar faArrowsV = {\n prefix: 'fad',\n iconName: 'arrows-v',\n icon: [256, 512, [], \"f07d\", [\"M160 106.34v299.32l-32 33.77-32-33.77V106.34l32-33.77z\", \"M18.37 153.41a23.93 23.93 0 0 0 33.92-.94L128 72.57l75.71 79.9a23.93 23.93 0 0 0 33.92.94L249 142.1a24.15 24.15 0 0 0 0-34L150.62 9.4a31.92 31.92 0 0 0-45.24 0L7 108.05a24.15 24.15 0 0 0 0 34.05zm219.26 205.18a23.93 23.93 0 0 0-33.92.94L128 439.43l-75.71-79.9a23.93 23.93 0 0 0-33.92-.94L7 369.9A24.15 24.15 0 0 0 7 404l98.36 98.65a31.92 31.92 0 0 0 45.24 0L249 404a24.15 24.15 0 0 0 0-34.05z\"]]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fad',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", [\"M160 320a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM32 448a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm480-192.52c-1.88-115-75.8-217-184-254a28 28 0 1 0-18.1 53C395.79 83.86 454.5 165 456 256.46v3.55a28 28 0 0 0 56 0v-4.53zM39 393l80 80 34-34-80-80z\", \"M240 236a24 24 0 0 1 24 24 28 28 0 0 0 56 0 80 80 0 0 0-160 0 28 28 0 0 0 56 0 24 24 0 0 1 24-24zm0-152c-97 0-176 79-176 176a28 28 0 0 0 56 0 120 120 0 0 1 240 0c0 75.16-71 70.31-72 143.62v.38a52.06 52.06 0 0 1-52 52 28 28 0 0 0 0 56 108.12 108.12 0 0 0 108-107.77c.59-34.43 72-48.23 72-144.23 0-97-78.95-176-176-176z\"]]\n};\nvar faAsterisk = {\n prefix: 'fad',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", [\"M479 177.64l-.41.23-182.5 100.45 3.45 209.17A24 24 0 0 1 276.06 512h-39.55a24 24 0 0 1-24-24v-.52L216 278 33.47 177.91A24 24 0 0 1 24 145.32l.25-.45 19.5-33.74a24.07 24.07 0 0 1 32.89-8.75l.38.23L256 208l179-105.39a24.07 24.07 0 0 1 33.05 8.12l.23.4 19.5 33.74a24 24 0 0 1-8.78 32.77z\", \"M488 366.68l-.25.45-19.5 33.74a24.07 24.07 0 0 1-32.89 8.75l-.38-.23L256 304 77 409.39a24.07 24.07 0 0 1-33-8.12l-.23-.4-19.5-33.74a24 24 0 0 1 8.83-32.77l.41-.23 182.4-100.45-3.45-209.17A24 24 0 0 1 235.94 0h39.55a24 24 0 0 1 24 24v.52L296 234l182.53 100.09a24 24 0 0 1 9.47 32.59z\"]]\n};\nvar faAt = {\n prefix: 'fad',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", [\"M440 232c0-102.38-83.86-160-184-160-101.46 0-184 82.54-184 184s82.54 184 184 184a184.46 184.46 0 0 0 99.41-29.13 23.94 23.94 0 0 1 31.37 5.13L397 428.4a24.94 24.94 0 0 1 1.61 2.21 24 24 0 0 1-7.2 33.17A248.76 248.76 0 0 1 256 504C118.92 504 8 393.08 8 256S118.94 8 256 8c138 0 248 87.65 248 224 0 68.32-33.63 133.22-120 145.37v-62c35.72-5.27 56-45.37 56-83.37z\", \"M391.79 164.58a24 24 0 0 0-19-28.14 24.26 24.26 0 0 0-4.58-.44h-45a13.52 13.52 0 0 0-13.43 12v.09c-14.69-17.9-40.45-21.77-60-21.77-74.55 0-137.8 62.22-137.8 151.45 0 65.3 36.79 105.87 96 105.87 27 0 57.37-15.64 75-38.33 9.52 34.1 40.61 34.1 70.71 34.1a217.39 217.39 0 0 0 30.29-2v-62c-.72.1-1.44.22-2.17.3-17.35-.45-16.91-12.85-13.48-30zM234.32 312.43c-22.25 0-36.07-15.62-36.07-40.77 0-45 30.78-72.73 58.63-72.73 22.29 0 35.6 15.24 35.6 40.77 0 45.06-33.87 72.73-58.16 72.73z\"]]\n};\nvar faAtlas = {\n prefix: 'fad',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zM318.38 208h-39.09c-1.49 27-6.54 51.35-14.21 70.41a95.85 95.85 0 0 0 53.3-70.41zm0-32a95.87 95.87 0 0 0-53.3-70.41c7.68 19.06 12.72 43.41 14.21 70.41zM182.92 278.41C175.24 259.35 170.2 235 168.71 208h-39.09a95.85 95.85 0 0 0 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zM224 64A128 128 0 1 1 96 192 128 128 0 0 1 224 64zm-41.08 41.59a95.85 95.85 0 0 0-53.3 70.41h39.09c1.49-27 6.53-51.35 14.21-70.41z\"]]\n};\nvar faAtom = {\n prefix: 'fad',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", [\"M439.1958,128C410.86719,77.44043,332.00391,87.02637,320.56445,88.26367a352.05546,352.05546,0,0,1,20.15625,62.92969c36.69434-1.16992,44.45166,8.4043,44.67627,8.80469,3.37158,6.01367-1.80517,24.11718-16.6206,47.3789-6.82129-6.47656-13.88135-12.89648-21.4336-19.16406a492.30786,492.30786,0,0,1,0,135.57422c7.55225-6.26758,14.61621-12.6875,21.4336-19.16406C383.5918,327.88281,388.76855,345.98828,385.397,352c-.22461.40039-8.00976,9.981-44.67627,8.80664a352.10663,352.10663,0,0,1-20.15625,62.92969C331.70312,424.94141,410.81494,434.64209,439.1958,384c18.75342-33.4668,6.61035-80.60156-27.51709-128.00195C445.80615,208.59766,457.94922,161.4668,439.1958,128ZM224,184.2793c21.61426,10.52978,35.104,17.4497,62.35107,37.02343-5.688-73.38916-27.21826-113.52832-30.03271-119.09179C245.69922,105.59766,234.88867,109.68164,224,114.166c-10.88867-4.48633-21.69922-8.57032-32.31836-11.957a328.8272,328.8272,0,0,0-64.24609-13.94726C116.31934,87.05859,37.18359,77.35742,8.8042,128c-18.75342,33.4668-6.61035,80.59766,27.51709,127.99805C2.19385,303.39844-9.94922,350.5332,8.8042,384c28.3291,50.55615,107.19238,40.97363,118.63135,39.73633a329.0303,329.0303,0,0,0,64.24609-13.94727c10.61914-3.38672,21.42969-7.4707,32.31836-11.95508,10.89258,4.48633,21.69922,8.56836,32.31836,11.95508,2.80518-5.54687,24.34375-45.689,30.03271-119.09179C259.0835,310.28564,245.38721,317.30371,224,327.71875c-21.42285-10.43213-35.10938-17.45166-62.35107-37.02148A372.06341,372.06341,0,0,1,119.97314,256a372.06341,372.06341,0,0,1,41.67579-34.69727C188.86865,201.749,202.57471,194.71289,224,184.2793ZM144.54,355.92773a212.85585,212.85585,0,0,1-37.26074,4.87891C70.6167,361.981,62.82764,352.40186,62.603,352.002c-3.37158-6.01367,1.80517-24.11914,16.6206-47.3789,6.81739,6.47656,13.88135,12.89648,21.4336,19.16406A475.19526,475.19526,0,0,0,144.54,355.92773ZM100.65723,188.21289C93.105,194.48047,86.041,200.90039,79.22363,207.377,64.4082,184.11719,59.23145,166.01172,62.603,160c.22412-.40039,8.00293-9.98047,44.68017-8.80859a212.81514,212.81514,0,0,1,37.25684,4.8789A475.56925,475.56925,0,0,0,100.65723,188.21289Z\", \"M100.65723,323.78711c1.75,12.76367,3.9458,25.13281,6.62207,37.01953A212.85585,212.85585,0,0,0,144.54,355.92773,475.19526,475.19526,0,0,1,100.65723,323.78711ZM119.97314,256a372.06341,372.06341,0,0,0,41.67579,34.69727c-2.27539-29.40479-2.16016-41.4795,0-69.39454A372.06341,372.06341,0,0,0,119.97314,256ZM107.2832,151.19141c-2.67627,11.88671-4.876,24.25586-6.626,37.02148A475.56925,475.56925,0,0,1,144.54,156.07031,212.81514,212.81514,0,0,0,107.2832,151.19141Zm240.05957,37.02148c-1.75-12.76562-3.9458-25.13477-6.62207-37.01953a352.05546,352.05546,0,0,0-20.15625-62.92969C297.0918,34.28125,262.58105,0,224,0s-73.0918,34.28125-96.56445,88.26172A328.8272,328.8272,0,0,1,191.68164,102.209C204.14844,77.56055,217.08447,64,224,64s19.85547,13.56055,32.31836,38.21094c2.80469,5.54443,24.34473,45.69726,30.03271,119.09179,2.27539,29.40479,2.16016,41.4795,0,69.39454-5.688,73.38916-27.21679,113.52441-30.03271,119.09179C243.85547,434.4375,230.91553,448,224,448s-19.85156-13.56055-32.31836-38.21094a329.0303,329.0303,0,0,1-64.24609,13.94727C150.9082,477.71875,185.419,512,224,512s73.0918-34.28125,96.56445-88.26367a352.10663,352.10663,0,0,0,20.15625-62.92969c2.67627-11.88672,4.87207-24.25586,6.62207-37.01953A492.286,492.286,0,0,0,347.34277,188.21289ZM256.01367,256A32.01367,32.01367,0,1,0,224,288,32.06879,32.06879,0,0,0,256.01367,256Z\"]]\n};\nvar faAtomAlt = {\n prefix: 'fad',\n iconName: 'atom-alt',\n icon: [448, 512, [], \"f5d3\", [\"M424.37305,55.69141C408.294,39.61914,385.50879,32,358.58252,32,319.82764,32,272.43359,48.127,224,77.14453a493.86641,493.86641,0,0,0-58.042,41.03711C140.58252,138.875,114.57666,162.5918,85.75635,197.916a374.25237,374.25237,0,0,0,35.70263,58.082A505.23427,505.23427,0,0,1,224,153.65625a377.23937,377.23937,0,0,1,58.042-35.47266c70.01221-34.334,95.22461-19.07421,97.0625-17.23632,9.54248,9.543,7.67432,46.94531-16.86084,96.96875A492.27615,492.27615,0,0,1,403.06543,256C452.27637,173.91992,463.59277,94.90039,424.37305,55.69141ZM224,358.3418a377.44678,377.44678,0,0,1-58.042,35.47461c-70.01221,34.334-95.22461,19.07421-97.0625,17.23632-9.54248-9.543-7.67432-46.94335,16.86084-96.96875A492.27615,492.27615,0,0,1,44.93457,256C-4.27637,338.08008-15.59277,417.09961,23.627,456.30664,39.70605,472.38086,62.49121,480,89.41748,480c38.75488,0,86.14893-16.127,134.58252-45.14453a493.86641,493.86641,0,0,0,58.042-41.03711c25.38965-20.70508,51.42285-44.45606,80.20166-79.73438A373.962,373.962,0,0,0,326.541,256,505.23427,505.23427,0,0,1,224,358.3418Z\", \"M224,287.98828a31.99414,31.99414,0,1,0-32-31.99414A31.98908,31.98908,0,0,0,224,287.98828ZM121.46094,255.99805A374.13921,374.13921,0,0,1,85.7583,197.916c-24.53906-50.02344-26.40625-87.42579-16.86328-96.9668,1.83984-1.83789,27.05078-17.10156,97.062,17.23242A494.241,494.241,0,0,1,224,77.14453C175.5625,48.13086,128.16406,32,89.41846,32c-26.9336,0-49.707,7.61523-65.793,23.69141C-15.59326,94.90039-4.27686,173.91992,44.93408,256A492.0174,492.0174,0,0,0,85.7583,314.084c28.79639,35.30274,54.85889,59.07227,80.19873,79.73243A377.429,377.429,0,0,0,224,358.3418,505.131,505.131,0,0,1,121.46094,255.99805ZM403.06592,256a492.0174,492.0174,0,0,0-40.82422-58.084c-28.84326-35.35547-54.89795-59.10352-80.19873-79.73243A377.4073,377.4073,0,0,0,224,153.65625,505.20556,505.20556,0,0,1,326.53906,256a373.849,373.849,0,0,1,35.70264,58.084c24.53906,50.02149,26.40625,87.42383,16.86328,96.9668-1.83984,1.83789-27.05078,17.10156-97.062-17.23242A494.241,494.241,0,0,1,224,434.85547C272.4375,463.86914,319.83594,480,358.58154,480c26.9336,0,49.707-7.61523,65.793-23.69336C463.59326,417.09961,452.27686,338.08008,403.06592,256Z\"]]\n};\nvar faAudioDescription = {\n prefix: 'fad',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", [\"M159 223.47c-1.22 5.24-2.59 10.82-3.87 15.24l-9 30.65h25.57l-8.83-30.65c-1.26-4.42-2.64-9.99-3.87-15.24zM464 64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM234.1 352h-29.17a12 12 0 0 1-11.53-8.6l-8.79-30h-51.37l-8.57 29.91a12 12 0 0 1-11.54 8.69H84a12 12 0 0 1-11.35-15.86l57.09-168a12 12 0 0 1 11.37-8.14H177a12 12 0 0 1 11.36 8.14l57.1 168A12 12 0 0 1 234.1 352zm97.1 0h-57.37a12 12 0 0 1-12-12V172a12 12 0 0 1 12-12h57.37c61 0 99 36.64 99 95.61 0 59.46-38 96.39-99 96.39zm-1.8-145.39h-14.52v98.78h14.52c29.77 0 46.17-17.68 46.17-49.78s-17.49-49-46.17-49z\", \"M188.36 168.14A12 12 0 0 0 177 160h-35.89a12 12 0 0 0-11.37 8.14l-57.09 168A12 12 0 0 0 84 352h29.13a12 12 0 0 0 11.54-8.69l8.57-29.91h51.37l8.79 30a12 12 0 0 0 11.53 8.6h29.17a12 12 0 0 0 11.36-15.86zm-42.22 101.22l9-30.65c1.28-4.42 2.65-10 3.87-15.24 1.22 5.25 2.6 10.82 3.87 15.24l8.83 30.65zM331.2 160h-57.37a12 12 0 0 0-12 12v168a12 12 0 0 0 12 12h57.37c61 0 99-36.93 99-96.39-.04-58.97-37.96-95.61-99-95.61zm-1.8 145.39h-14.52v-98.78h14.52c28.68 0 46.17 16.77 46.17 49s-16.4 49.78-46.17 49.78z\"]]\n};\nvar faAward = {\n prefix: 'fad',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", [\"M382.78 448.69L324 304.23a40.63 40.63 0 0 1-22.23 15.62C280 325.78 278.26 324.44 263 340a39.72 39.72 0 0 1-49.73 5.82 39.68 39.68 0 0 0-42.53 0A39.73 39.73 0 0 1 121 340c-14.73-15-16.4-14-38.73-20.12a40.54 40.54 0 0 1-22.07-15.4L1.2 448.7a16 16 0 0 0 15.43 22l52.69-2 36.22 38.3a16 16 0 0 0 22.62.61A16.23 16.23 0 0 0 132 502l60.15-147.1L252 502a16 16 0 0 0 26.43 5l36.25-38.28 52.69 2A16 16 0 0 0 384 455.33a16.23 16.23 0 0 0-1.22-6.64zM192 240a64 64 0 1 0-64-64 64 64 0 0 0 64 64z\", \"M366.62 152.72a41.51 41.51 0 0 0-10.42-39.59c-20.41-20.77-18.47-17.35-25.95-45.74a40.66 40.66 0 0 0-28.47-29c-27.88-7.61-24.52-5.62-45-26.41A39.79 39.79 0 0 0 218 1.39c-27.92 7.6-24 7.6-51.95 0A39.8 39.8 0 0 0 127.16 12c-20.41 20.78-17 18.8-44.94 26.41a40.66 40.66 0 0 0-28.47 29c-7.47 28.39-5.54 25-25.95 45.75a41.46 41.46 0 0 0-10.42 39.58c7.47 28.36 7.48 24.4 0 52.82a41.52 41.52 0 0 0 10.42 39.57c20.41 20.78 18.47 17.35 26 45.75a40.64 40.64 0 0 0 28.47 29C104.6 326 106.27 325 121 340a39.74 39.74 0 0 0 49.74 5.82 39.68 39.68 0 0 1 42.53 0A39.73 39.73 0 0 0 263 340c15.28-15.55 17-14.21 38.79-20.14a40.64 40.64 0 0 0 28.47-29c7.48-28.4 5.54-25 25.95-45.75a41.49 41.49 0 0 0 10.42-39.58c-7.48-28.36-7.49-24.4-.01-52.81zM192 272a96 96 0 1 1 96-96 96 96 0 0 1-96 96z\"]]\n};\nvar faAxe = {\n prefix: 'fad',\n iconName: 'axe',\n icon: [640, 512, [], \"f6b2\", [\"M592 160v32c0 97.05-79 176-176 176h-32v48h32c123.71 0 224-100.29 224-224v-32zM4.69 439.43a16 16 0 0 0 0 22.63L50 507.31a16 16 0 0 0 22.63 0l235.82-235.87-67.88-67.88zM507.31 72.57a16 16 0 0 0 0-22.63L462.06 4.69a16 16 0 0 0-22.63 0l-34.5 34.5 67.88 67.88z\", \"M384 301.74L233.37 151.11a32 32 0 0 1 0-45.25l96.49-96.49a32 32 0 0 1 45.26 0L525.74 160H560v32c0 79.4-64.6 144-144 144h-32z\"]]\n};\nvar faAxeBattle = {\n prefix: 'fad',\n iconName: 'axe-battle',\n icon: [512, 512, [], \"f6b3\", [\"M512 160.92C505.16 99.16 478.4 44.29 438.94 4.7c-9.21-9.25-23.89-4.12-27.06 9-12 49.67-47.25 88.27-91.88 101.23v154.18c44.63 13 79.85 51.56 91.88 101.23 3.17 13.08 17.85 18.21 27.06 9 39.46-39.59 66.22-94.45 73.06-156.22L449.24 192zM101 13.66C97.86.58 83.32-4.54 74.2 4.7 28.67 50.83 0 117.62 0 192s28.67 141.17 74.2 187.3c9.13 9.25 23.66 4.12 26.8-9 11.92-49.67 46.79-88.27 91-101.23V114.89c-44.21-12.96-79.08-51.56-91-101.23z\", \"M288 80v416a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\"]]\n};\nvar faBaby = {\n prefix: 'fad',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", [\"M272.07 288v48L216 400h-48l-55.93-64-.07-48z\", \"M192 160a80 80 0 1 0-80-80 80 80 0 0 0 80 80zm-52.46 259L168 400l-55.93-64v-.06l-.07.06-57.33 49a40 40 0 0 0-3 59.24l56 56a40 40 0 1 0 56.56-56.56zM376 143.19a39.81 39.81 0 0 0-55.86-7.88l-40.5 28.39a152.31 152.31 0 0 1-175.28 0l-40.47-28.39a40 40 0 0 0-48 63.9q1 .78 2.13 1.5l40.49 28.5A231.24 231.24 0 0 0 112 257.1V288h160v-30.9a231.24 231.24 0 0 0 53.49-27.89l40.51-28.5q1.09-.72 2.13-1.5a40.08 40.08 0 0 0 7.87-56.02zM328.33 385L272 336l-56 64 27.46 19-24.74 24.75a40 40 0 1 0 56.57 56.56l56-56a40 40 0 0 0-3-59.24z\"]]\n};\nvar faBabyCarriage = {\n prefix: 'fad',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", [\"M96 384a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm256 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64zM90.8 7.61C35.3 51.91 0 118 0 192h256L144.8 17c-11.3-17.79-37.2-22.79-54-9.39z\", \"M496 96h-48a64.06 64.06 0 0 0-64 64v64H0a191.44 191.44 0 0 0 56.82 136.34 96.07 96.07 0 0 1 129.68 55.58c1.83.05 3.66.08 5.5.08h64c1.84 0 3.67 0 5.5-.08a96.07 96.07 0 0 1 129.68-55.58A191.44 191.44 0 0 0 448 224v-64h48a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faBackpack = {\n prefix: 'fad',\n iconName: 'backpack',\n icon: [448, 512, [], \"f5d4\", [\"M320 320H128a32 32 0 0 0-32 32v32h256v-32a32 32 0 0 0-32-32zM136 208h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\", \"M96 512h256v-96H96zM320 80h-8V56a56.06 56.06 0 0 0-56-56h-64a56.06 56.06 0 0 0-56 56v24h-8A128 128 0 0 0 0 208v240a64 64 0 0 0 64 64V352a64.07 64.07 0 0 1 64-64h192a64.07 64.07 0 0 1 64 64v160a64 64 0 0 0 64-64V208A128 128 0 0 0 320 80zM184 56a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v24h-80zm136 144a8 8 0 0 1-8 8H136a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8z\"]]\n};\nvar faBackspace = {\n prefix: 'fad',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", [\"M576 64H205.26A64 64 0 0 0 160 82.75L9.38 233.37a32 32 0 0 0 0 45.25L160 429.25A64 64 0 0 0 205.25 448H576a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zm-84.69 254.06a16 16 0 0 1 0 22.63l-22.62 22.62a16 16 0 0 1-22.63 0L384 301.25l-62.06 62.06a16 16 0 0 1-22.63 0l-22.62-22.62a16 16 0 0 1 0-22.63L338.75 256l-62.06-62.06a16 16 0 0 1 0-22.63l22.62-22.62a16 16 0 0 1 22.63 0L384 210.75l62.06-62.06a16 16 0 0 1 22.63 0l22.62 22.62a16 16 0 0 1 0 22.63L429.25 256z\", \"M491.31 318.06a16 16 0 0 1 0 22.63l-22.62 22.62a16 16 0 0 1-22.63 0L384 301.25l-62.06 62.06a16 16 0 0 1-22.63 0l-22.62-22.62a16 16 0 0 1 0-22.63L338.75 256l-62.06-62.06a16 16 0 0 1 0-22.63l22.62-22.62a16 16 0 0 1 22.63 0L384 210.75l62.06-62.06a16 16 0 0 1 22.63 0l22.62 22.62a16 16 0 0 1 0 22.63L429.25 256z\"]]\n};\nvar faBackward = {\n prefix: 'fad',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", [\"M512 96v320c0 27.39-31.9 41.79-52.51 24.59L288 297.69v-83.38L459.49 71.45C480.1 54.25 512 68.65 512 96z\", \"M11.48 231.41l192-160C224.1 54.25 256 68.65 256 96v320c0 27.39-31.9 41.79-52.51 24.59l-192-160a32.07 32.07 0 0 1-.01-49.18z\"]]\n};\nvar faBacon = {\n prefix: 'fad',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", [\"M9.09 407.62C-3.61 395-3 374 10.88 362.56c36.33-30 66.2-41.1 91.06-50.36 9.17-3.41 69-19.26 98.72-98.09 8.61-22.81 46.34-134.59 189-187.73 15.85-5.91 27.36-10.2 41-20.3a31 31 0 0 1 40.14 2.83l26.31 26.14C467 62.7 444.24 71.37 420.38 80.37 392.08 91 362.81 102 323 141.75s-50.76 69.05-61.37 97.34c-9.85 26.31-19.16 51.12-54.05 86s-59.65 44.16-85.91 54c-26 9.76-53 20.13-88.17 52.73zM566.92 104.4l-24.44-24.2c-35.19 32.64-62.17 43-88.24 52.8-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86c-10.64 28.33-21.62 57.56-61.41 97.34s-69 50.73-97.3 61.32c-23.85 9-46.59 17.65-76.68 45.3l26.32 26.14a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.19-53 180-164.11 188.93-187.7 29.73-78.79 89.52-94.67 98.73-98.11 24.87-9.28 54.74-20.41 91.11-50.42 13.89-11.4 14.51-32.45 1.81-45.05z\", \"M252.88 370.34c-39.79 39.78-69 50.73-97.3 61.32-23.86 9-46.6 17.66-76.71 45.33l-45.33-45.16c35.17-32.6 62.17-43 88.17-52.73 26.26-9.84 51.05-19.12 85.91-54s44.2-59.7 54.05-86c10.61-28.29 21.59-57.54 61.37-97.34s69-50.77 97.34-61.38c23.88-9 46.64-17.68 76.79-45.37l45.31 45.2c-35.19 32.64-62.17 43-88.24 52.8-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86c-10.64 28.32-21.62 57.55-61.41 97.33z\"]]\n};\nvar faBacteria = {\n prefix: 'fad',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", [\"M361.11,65.26l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58,18.14,18.14,0,0,0,7.18-1.5A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160ZM416,352a32,32,0,1,0,32,32A32,32,0,0,0,416,352Z\", \"M615.67,230.76l11.58-3.43a17.73,17.73,0,1,0-10.13-34l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.45,83.45,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.89,17.89,0,0,0,24.94,3.6A17.68,17.68,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21A83.27,83.27,0,0,0,615.67,230.76ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416ZM128,192a32,32,0,1,0,32,32A32,32,0,0,0,128,192Z\"]]\n};\nvar faBacterium = {\n prefix: 'fad',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", [\"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\", \"M208,320a48,48,0,1,1-48-48A48,48,0,0,1,208,320Z\"]]\n};\nvar faBadge = {\n prefix: 'fad',\n iconName: 'badge',\n icon: [512, 512, [], \"f335\", [\"M512 256a88 88 0 0 0-57.09-82.41 88 88 0 0 0-116.5-116.5 88 88 0 0 0-164.82 0 88 88 0 0 0-116.5 116.5 88 88 0 0 0 0 164.82 88 88 0 0 0 116.5 116.5 88 88 0 0 0 164.82 0 88 88 0 0 0 116.5-116.5A88 88 0 0 0 512 256zm-122.23 55.42a55.67 55.67 0 0 1-78.36 78.37 55.68 55.68 0 0 1-110.82 0 55.68 55.68 0 0 1-78.36-78.37 55.69 55.69 0 0 1 0-110.84 55.68 55.68 0 0 1 78.36-78.37 55.68 55.68 0 0 1 110.82 0 55.68 55.68 0 0 1 78.36 78.37 55.69 55.69 0 0 1 0 110.84z\", \"M389.77 311.42a55.67 55.67 0 0 1-78.36 78.37 55.68 55.68 0 0 1-110.82 0 55.68 55.68 0 0 1-78.36-78.37 55.69 55.69 0 0 1 0-110.84 55.68 55.68 0 0 1 78.36-78.37 55.68 55.68 0 0 1 110.82 0 55.68 55.68 0 0 1 78.36 78.37 55.69 55.69 0 0 1 0 110.84z\"]]\n};\nvar faBadgeCheck = {\n prefix: 'fad',\n iconName: 'badge-check',\n icon: [512, 512, [], \"f336\", [\"M512 256a88 88 0 0 0-57.1-82.4A88 88 0 0 0 338.4 57.1a88 88 0 0 0-164.8 0A88 88 0 0 0 57.1 173.6a88 88 0 0 0 0 164.8 88 88 0 0 0 116.5 116.5 88 88 0 0 0 164.8 0 88 88 0 0 0 116.5-116.5A88 88 0 0 0 512 256zm-144.8-44.25l-131 130a11 11 0 0 1-15.55-.06l-75.72-76.33a11 11 0 0 1 .06-15.56L171 224a11 11 0 0 1 15.56.06l42.15 42.49 97.2-96.42a11 11 0 0 1 15.55.06l25.82 26a11 11 0 0 1-.08 15.56z\", \"M367.2 211.75l-131 130a11 11 0 0 1-15.55-.06l-75.72-76.33a11 11 0 0 1 .06-15.56L171 224a11 11 0 0 1 15.56.06l42.15 42.49 97.2-96.42a11 11 0 0 1 15.55.06l25.82 26a11 11 0 0 1-.06 15.56z\"]]\n};\nvar faBadgeDollar = {\n prefix: 'fad',\n iconName: 'badge-dollar',\n icon: [512, 512, [], \"f645\", [\"M512 256a88 88 0 0 0-57.1-82.4A88 88 0 0 0 338.4 57.1a88 88 0 0 0-164.8 0A88 88 0 0 0 57.1 173.6a88 88 0 0 0 0 164.8 88 88 0 0 0 116.5 116.5 88 88 0 0 0 164.8 0 88 88 0 0 0 116.5-116.5A88 88 0 0 0 512 256zm-232 94.44V368a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-17.73a73 73 0 0 1-31.78-11.46c-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2a24.52 24.52 0 0 0 10.26 2.22h32.78a8.43 8.43 0 0 0 2.32-16.53l-50.07-14.3c-22.25-6.35-40-24.71-42.91-47.67a56.27 56.27 0 0 1 49.32-63V144a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v17.73a73 73 0 0 1 31.78 11.46c6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2a24.54 24.54 0 0 0-10.26-2.22h-32.78a8.43 8.43 0 0 0-2.32 16.53l50.07 14.3c22.25 6.36 40 24.71 42.91 47.67A56.27 56.27 0 0 1 280 350.44z\", \"M280 350.44V368a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-17.73a73 73 0 0 1-31.78-11.46c-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2a24.52 24.52 0 0 0 10.26 2.22h32.78a8.43 8.43 0 0 0 2.32-16.53l-50.07-14.3c-22.25-6.35-40-24.71-42.91-47.67a56.27 56.27 0 0 1 49.32-63V144a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v17.73a73 73 0 0 1 31.78 11.46c6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2a24.54 24.54 0 0 0-10.26-2.22h-32.78a8.43 8.43 0 0 0-2.32 16.53l50.07 14.3c22.25 6.36 40 24.71 42.91 47.67a56.27 56.27 0 0 1-49.32 63z\"]]\n};\nvar faBadgePercent = {\n prefix: 'fad',\n iconName: 'badge-percent',\n icon: [512, 512, [], \"f646\", [\"M512 256a88 88 0 0 0-57.1-82.4A88 88 0 0 0 338.4 57.1a88 88 0 0 0-164.8 0A88 88 0 0 0 57.1 173.6a88 88 0 0 0 0 164.8 88 88 0 0 0 116.5 116.5 88 88 0 0 0 164.8 0 88 88 0 0 0 116.5-116.5A88 88 0 0 0 512 256zm-320-96a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm12.28 181.65a16 16 0 0 1-22.63 0l-11.31-11.31a16 16 0 0 1 0-22.63l137.37-137.37a16 16 0 0 1 22.63 0l11.31 11.31a16 16 0 0 1 0 22.63zM320 352a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M192 160a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm12.28 181.65a16 16 0 0 1-22.63 0l-11.31-11.31a16 16 0 0 1 0-22.63l137.37-137.37a16 16 0 0 1 22.63 0l11.31 11.31a16 16 0 0 1 0 22.63zM320 352a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faBadgeSheriff = {\n prefix: 'fad',\n iconName: 'badge-sheriff',\n icon: [512, 512, [], \"f8a2\", [\"M440 192a40 40 0 1 0-40-40 40 40 0 0 0 40 40zM72 320a40 40 0 1 0 40 40 40 40 0 0 0-40-40zm0-208a40 40 0 1 0 40 40 40 40 0 0 0-40-40zm368 208a40 40 0 1 0 40 40 40 40 0 0 0-40-40zM256 0a40 40 0 1 0 40 40 40 40 0 0 0-40-40zm0 432a40 40 0 1 0 40 40 40 40 0 0 0-40-40z\", \"M428.79 322.26l-39.46-66.32 39.43-66.21C412.26 184.8 400 170.11 400 152c0-2.84 1.05-5.33 1.62-8h-78.88l-43.15-72.55C272.9 76.47 265 80 256 80s-16.78-3.49-23.44-8.45L189.41 144h-79c.57 2.67 1.62 5.16 1.62 8 0 18.12-12.28 32.82-28.79 37.74l39.46 66.32-39.46 66.21C99.74 327.2 112 341.89 112 360c0 2.84-1 5.33-1.62 8h78.88l43.15 72.55C239.1 435.53 247 432 256 432s16.78 3.49 23.44 8.45L322.59 368h79c-.57-2.67-1.62-5.16-1.62-8 .03-18.12 12.31-32.82 28.82-37.74zM256 320a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]]\n};\nvar faBadgerHoney = {\n prefix: 'fad',\n iconName: 'badger-honey',\n icon: [640, 512, [], \"f6b4\", [\"M619.83 124.94c-57.65-32.65-71-50.67-115.56-69.92A103.7 103.7 0 0 0 463 46.47a111.24 111.24 0 0 0-55.45 15.21c-17.06 9.79-35.9 16.79-55 16.79h-227a127.66 127.66 0 0 0-51.86 11c5.66 20.73 20.06 55 42.62 84.79 30.11 39.85 56.45 48.21 73.24 48.21h45.47a69.64 69.64 0 0 0 30-6.82l102-61.74.53-.25c29.8-14.33 59.14-27.19 90-27.19h164.71c-.78-.53-1.6-1.06-2.43-1.53zm-78.24 113.53l16 32 16-32 7-14.11-41.89 8.34z\", \"M622.25 126.47H457.58c-30.86 0-60.2 12.86-90 27.19l-.53.25-102 61.74a69.64 69.64 0 0 1-30 6.82h-45.47c-16.79 0-43.13-8.36-73.24-48.21-22.56-29.79-37-64.06-42.62-84.79a128 128 0 0 0-76.14 117v16a16 16 0 0 0 16 16h20c7.82 33.38 28.08 64.24 53.56 81.17l-21.49 57.3a64 64 0 0 0-2.16 38l14.09 35.41a16 16 0 0 0 15.52 12.12h63.77a15.48 15.48 0 0 0 3.84-.48 16 16 0 0 0 11.64-19.4l-15.55-41.26 33-66.86h105.69l23 115.14a16 16 0 0 0 15.69 12.86h63.37a16 16 0 0 0 15.69-19.1l-27-135c64-43.1 119.18-66.48 152.43-75.67l41.94-8.34c22.4-2.82 33-2.82 40.79-19 7.32-15.11 16.16-35.79 16.16-47.62.02-12.86-5.85-24.68-15.31-31.27zm-128.67 54a23.94 23.94 0 0 1-23.46-29H517a23.5 23.5 0 0 1 .54 5 24 24 0 0 1-23.96 24z\"]]\n};\nvar faBagsShopping = {\n prefix: 'fad',\n iconName: 'bags-shopping',\n icon: [576, 512, [], \"f847\", [\"M448 192a32 32 0 0 0-32-32h-96V96a96 96 0 0 0-192 0v64H32a32 32 0 0 0-32 32v256a32 32 0 0 0 32 32h128V256a32 32 0 0 1 32-32h256zm-176-32h-96V96a48 48 0 0 1 96 0zm200 160h-16a8 8 0 0 0-8 8v24a64.07 64.07 0 0 1-70.38 63.69c-33.25-3.23-57.62-33.12-57.62-66.53V328a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v20.66c0 48.79 35 92.32 83.37 98.53A96.12 96.12 0 0 0 480 352v-24a8 8 0 0 0-8-8z\", \"M544 256H224a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V288a32 32 0 0 0-32-32zm-64 96a96.12 96.12 0 0 1-108.63 95.19C323 441 288 397.45 288 348.66V328a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v21.16c0 33.41 24.37 63.3 57.62 66.53A64.07 64.07 0 0 0 448 352v-24a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8z\"]]\n};\nvar faBahai = {\n prefix: 'fad',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", [\"M239.69 218L256 166.72 272.29 218l44.95-28.62-20 49.87 52.57 7.38-46.91 25.12 35.61 39.93-51.89-11.3 2 53.79L256 311.68l-32.59 42.49 2-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-20-49.87z\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63l-94 59.89-34.13-107.18a18.15 18.15 0 0 0-34.7 0L204.56 120l-94-59.89c-15-9.55-33.25 6-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6 34.67l98.16 52.66-74.55 83.55c-10.92 12.25-1.72 30.93 13.29 30.93a18.79 18.79 0 0 0 4.07-.45l108.57-23.65-4.11 112.55A18.32 18.32 0 0 0 173.63 512a17.65 17.65 0 0 0 14.2-7.18L256 415.91l68.18 88.9a17.64 17.64 0 0 0 14.2 7.18 18.32 18.32 0 0 0 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.65-8.39 11.51-32.18-6.03-34.66zM338.51 311.68l-51.89-11.3 2 53.79L256 311.68l-32.59 42.49 2-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-20-49.87L239.69 218 256 166.72 272.29 218l44.95-28.62-20 49.87 52.57 7.38-46.91 25.12z\"]]\n};\nvar faBalanceScale = {\n prefix: 'fad',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", [\"M544 464v32a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h176V153.25A80.06 80.06 0 0 1 241.61 96H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h144.36a79.28 79.28 0 0 1 127.28 0H528a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H398.39A80.06 80.06 0 0 1 352 153.25V448h176a16 16 0 0 1 16 16z\", \"M256 336c0-16.18 1.34-8.73-85-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75 0 320.33 0 336c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56zm512 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C381.94 328.75 384 320.33 384 336c0 44.18 57.31 80 128 80s128-35.82 128-80zm-200-16l72-144 72 144z\"]]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fad',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", [\"M544 464v32a16 16 0 0 1-16 16H304a16 16 0 0 1-16-16V153.25a80.48 80.48 0 0 1-13-7.12l-142 47.63a16 16 0 0 1-20.26-10.08l-10.17-30.34a16 16 0 0 1 10.08-20.26L241 90a79.06 79.06 0 0 1-1-10 80 80 0 0 1 80-80c29.69 0 55.3 16.36 69.11 40.37L507 .84a16 16 0 0 1 20.26 10.08l10.17 30.34a16 16 0 0 1-10.08 20.26l-132 44.26A79.94 79.94 0 0 1 352 153.25V448h176a16 16 0 0 1 16 16z\", \"M640 304c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C381.94 296.75 384 288.33 384 304c0 44.18 57.31 80 128 80s128-35.82 128-80zm-200-16l72-144 72 144zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75 0 416.33 0 432c0 44.18 57.31 80 128 80s128-35.82 128-80c0-16.18 1.32-8.73-85.07-181.51zM56 416l72-144 72 144z\"]]\n};\nvar faBalanceScaleRight = {\n prefix: 'fad',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", [\"M112 448h176V153.24a79.91 79.91 0 0 1-43.38-47.47l-132-44.26a16 16 0 0 1-10.08-20.26l10.16-30.34A16 16 0 0 1 133 .83l117.89 39.54C264.7 16.36 290.31 0 320 0a80 80 0 0 1 80 80 79.06 79.06 0 0 1-1 10l128.4 43.05a16 16 0 0 1 10.08 20.26l-10.18 30.37a16 16 0 0 1-20.3 10.08l-142-47.63a80.48 80.48 0 0 1-13 7.12V496a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16z\", \"M0 304c0 44.18 57.31 80 128 80s128-35.82 128-80c0-15.67 2.08-7.25-85-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27 0 287.82 0 304zm56-16l72-144 72 144zm328 144c0 44.18 57.31 80 128 80s128-35.82 128-80c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C382.68 423.27 384 415.82 384 432zm56-16l72-144 72 144z\"]]\n};\nvar faBallPile = {\n prefix: 'fad',\n iconName: 'ball-pile',\n icon: [576, 512, [], \"f77e\", [\"M176 168a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm224 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80z\", \"M80 352a80 80 0 1 0 80 80 80 80 0 0 0-80-80zM288 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 352a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm208 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80z\"]]\n};\nvar faBallot = {\n prefix: 'fad',\n iconName: 'ballot',\n icon: [384, 512, [], \"f732\", [\"M360 0H24A23.94 23.94 0 0 0 0 24v464a23.94 23.94 0 0 0 24 24h336a23.94 23.94 0 0 0 24-24V24a23.94 23.94 0 0 0-24-24zM128 400a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm192 248a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-128a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-128a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8z\", \"M112 352H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faBallotCheck = {\n prefix: 'fad',\n iconName: 'ballot-check',\n icon: [384, 512, [], \"f733\", [\"M360 0H24A23.94 23.94 0 0 0 0 24v464a23.94 23.94 0 0 0 24 24h336a23.94 23.94 0 0 0 24-24V24a23.94 23.94 0 0 0-24-24zM161.7 202.4l12.6 12.7a5.37 5.37 0 0 1 0 7.6l-64.2 63.6a5.37 5.37 0 0 1-7.6 0L65.6 249a5.37 5.37 0 0 1 0-7.6l12.7-12.6a5.37 5.37 0 0 1 7.6 0l20.6 20.8 47.6-47.2a5.37 5.37 0 0 1 7.6 0zM64 112a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16zm64 288a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm192-8a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm-9.6-120H170.2s29.2-30.2 30.4-32h109.7c5.3 0 9.6 3.6 9.6 8v16h.1c0 4.4-4.3 8-9.6 8zm9.6-136a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8z\", \"M80 160h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm94.3 55.1l-12.6-12.7a5.37 5.37 0 0 0-7.6 0l-47.6 47.2-20.6-20.8a5.37 5.37 0 0 0-7.6 0l-12.7 12.6a5.37 5.37 0 0 0 0 7.6l36.9 37.3a5.37 5.37 0 0 0 7.6 0l64.2-63.6a5.37 5.37 0 0 0 0-7.6zM112 352H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faBan = {\n prefix: 'fad',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", [\"M406.78 361.53a186.53 186.53 0 0 1-45.25 45.25L105.22 150.47a186.53 186.53 0 0 1 45.25-45.25z\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm130.11 378.11A184 184 0 1 1 440 256a182.82 182.82 0 0 1-53.89 130.11z\"]]\n};\nvar faBandAid = {\n prefix: 'fad',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", [\"M0 160v192a64.05 64.05 0 0 0 64 64h96V96H64a64.05 64.05 0 0 0-64 64zm576-64h-96v320h96a64.05 64.05 0 0 0 64-64V160a64.05 64.05 0 0 0-64-64zM192 416h256V96H192zm176-232a24 24 0 1 1-24 24 23.94 23.94 0 0 1 24-24zm0 96a24 24 0 1 1-24 24 23.94 23.94 0 0 1 24-24zm-96-96a24 24 0 1 1-24 24 23.94 23.94 0 0 1 24-24zm0 96a24 24 0 1 1-24 24 23.94 23.94 0 0 1 24-24z\", \"M160 416h32V96h-32zM448 96v320h32V96z\"]]\n};\nvar faBanjo = {\n prefix: 'fad',\n iconName: 'banjo',\n icon: [512, 512, [], \"f8a3\", [\"M192 200A120 120 0 1 1 72 320a120.13 120.13 0 0 1 120-120m0-48a168 168 0 1 0 168 168 168 168 0 0 0-168-168z\", \"M194.34 381.66l11.31-11.31a8 8 0 0 0 0-11.32L153 306.35a8 8 0 0 0-11.32 0l-11.31 11.31a8 8 0 0 0 0 11.31L183 381.66a8 8 0 0 0 11.34 0zM502.63 39L473.05 9.37a32 32 0 0 0-45.26 0l-46.31 46.32A35.26 35.26 0 0 0 373 69.48l-12.19 36.59L286 180.79A168.81 168.81 0 0 1 331.29 226l74.88-74.88L442.52 139a35.12 35.12 0 0 0 13.79-8.52l46.32-46.31a32 32 0 0 0 0-45.17zM56.48 221.48a168.39 168.39 0 0 1 37-37l-.23-.23a26.18 26.18 0 0 0-37 37zm0 197l-.23.22a26.18 26.18 0 1 0 37 37l.23-.23a168 168 0 0 1-37-36.95zm-30.3-124.7a26.18 26.18 0 0 0 0 52.36h.46C25.29 337.59 24 329 24 320s1.29-17.59 2.64-26.18zm301.34 124.7a168 168 0 0 1-37 37l.23.23a26.18 26.18 0 1 0 37-37zm30.3-124.7h-.46C358.71 302.41 360 311 360 320s-1.29 17.59-2.64 26.18h.46a26.18 26.18 0 0 0 0-52.36zm-192 191.54v.46a26.18 26.18 0 0 0 52.36 0v-.46C209.59 486.71 201 488 192 488s-17.59-1.29-26.18-2.64zM192 128a26.18 26.18 0 0 0-26.18 26.18v.46C174.41 153.29 183 152 192 152s17.59 1.29 26.18 2.64v-.46A26.19 26.19 0 0 0 192 128z\"]]\n};\nvar faBarcode = {\n prefix: 'fad',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", [\"M179.71 447.73h8.86V64h-8.86zm36 0h8.86V64h-8.86zm-116.85 0h8.85V64h-8.85zm-72 0H36V64h-9.14zM494 64v384h18V64zm-53.71 383.73h26.85V64h-26.85zm-144 0h18V64h-18zm72 0h18V64h-18z\", \"M134.86 447.73h17.71V64h-17.71zm62.85 0h8.86V64h-8.86zM0 448h18V64H0zm54-.27h8.86V64H54zm341.14 0h18V64h-18zM476 64v383.73h9.14V64zM251.43 447.73h18V64h-18zm80.86 0h18V64h-18z\"]]\n};\nvar faBarcodeAlt = {\n prefix: 'fad',\n iconName: 'barcode-alt',\n icon: [640, 512, [], \"f463\", [\"M592 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h544a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM160 408a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V104a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8zm64 0a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V104a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8zm64 0a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V104a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8zm128 0a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V104a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8zm128 0a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V104a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8z\", \"M152 96h-48a8 8 0 0 0-8 8v304a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V104a8 8 0 0 0-8-8zm64 0h-16a8 8 0 0 0-8 8v304a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V104a8 8 0 0 0-8-8zm64 0h-16a8 8 0 0 0-8 8v304a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V104a8 8 0 0 0-8-8zm128 0h-48a8 8 0 0 0-8 8v304a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V104a8 8 0 0 0-8-8zm128 0h-48a8 8 0 0 0-8 8v304a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V104a8 8 0 0 0-8-8z\"]]\n};\nvar faBarcodeRead = {\n prefix: 'fad',\n iconName: 'barcode-read',\n icon: [640, 512, [], \"f464\", [\"M144 448H64v-80a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-448H16A16 16 0 0 0 0 16v128a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h80a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zm480 0H496a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h80v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zm0 352h-32a16 16 0 0 0-16 16v80h-80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16V368a16 16 0 0 0-16-16z\", \"M184 128h-48a8 8 0 0 0-8 8v240a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V136a8 8 0 0 0-8-8zm64 0h-16a8 8 0 0 0-8 8v240a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V136a8 8 0 0 0-8-8zm160 0h-48a8 8 0 0 0-8 8v240a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V136a8 8 0 0 0-8-8zm-96 0h-16a8 8 0 0 0-8 8v240a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V136a8 8 0 0 0-8-8zm192 0h-48a8 8 0 0 0-8 8v240a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V136a8 8 0 0 0-8-8z\"]]\n};\nvar faBarcodeScan = {\n prefix: 'fad',\n iconName: 'barcode-scan',\n icon: [640, 512, [], \"f465\", [\"M280 0h-48a8 8 0 0 0-8 8v152h64V8a8 8 0 0 0-8-8zM152 0H72a8 8 0 0 0-8 8v152h96V8a8 8 0 0 0-8-8zM64 504a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8V352H64zM472 0h-48a8 8 0 0 0-8 8v152h64V8a8 8 0 0 0-8-8zm96 0h-48a8 8 0 0 0-8 8v152h64V8a8 8 0 0 0-8-8zM376 0h-16a8 8 0 0 0-8 8v152h32V8a8 8 0 0 0-8-8zm136 504a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V352h-64zm-288 0a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V352h-64zm192 0a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V352h-64zm-64 0a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V352h-32z\", \"M640 232v48a8 8 0 0 1-8 8H8a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h624a8 8 0 0 1 8 8z\"]]\n};\nvar faBars = {\n prefix: 'fad',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", [\"M16 288h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M432 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 80v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]]\n};\nvar faBaseball = {\n prefix: 'fad',\n iconName: 'baseball',\n icon: [640, 512, [], \"f432\", [\"M123 354.88L169 419c15.9-9.1 32.3-17.5 48.8-25.5L162 315.68c-12.63 13.5-25.53 26.6-39 39.2zm372-2.8a80 80 0 1 0 79.8 80 79.87 79.87 0 0 0-79.8-80z\", \"M629.67 56.08l-23.9-33.4A53.82 53.82 0 0 0 530 10.48l-212 156.3c-69.1 50.9-112.4 99.8-137.2 128.3l62.2 86.7c34.6-15.2 93.7-41.8 162.8-92.7l212.1-156.2c24.1-17.8 29.37-52.2 11.77-76.8zm-583.3 361.6c-19.2-24.1-36.6-9-37.4-8.4A24 24 0 0 0 5.27 443l47.9 60a23.87 23.87 0 0 0 33.7 3.7c2.8-2.2 17.5-16.5 2.3-35.6 8.2-5.9 24.6-18.2 56.4-37.9l-43.2-60.3c-30 25.98-47 38.18-56 44.78z\"]]\n};\nvar faBaseballBall = {\n prefix: 'fad',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", [\"M441.77,101.1a213.51,213.51,0,0,0-44,60.42l-.12.24-28.75-14,.09-.19A245.85,245.85,0,0,1,420.13,77.5C323.91-15.33,171.4-15.14,75.4,77.91a244.73,244.73,0,0,1,50.72,68.79L97.51,160.9a212.83,212.83,0,0,0-43.58-59.31,248,248,0,0,0,.33,309.22,213.57,213.57,0,0,0,43.91-60.36l.11-.24L127,364.26l-.09.19a245.76,245.76,0,0,1-51.12,70c96.2,92.86,248.71,92.72,344.73-.32a244.66,244.66,0,0,1-50.76-68.83l28.65-14.25A212.72,212.72,0,0,0,442,410.46a248.06,248.06,0,0,0-.34-309.36ZM139.25,334.49l-30.33-10.2A212.09,212.09,0,0,0,120,256.52a214.18,214.18,0,0,0-11.69-69.79l30.26-10.4A245.62,245.62,0,0,1,152,256.52,243.74,243.74,0,0,1,139.25,334.49Zm218.13,1.14a245.26,245.26,0,0,1-.67-158.16L387,187.67a213.39,213.39,0,0,0,.6,137.56Z\", \"M98.17,350.45a214.1,214.1,0,0,1-43.91,60.36,250.37,250.37,0,0,0,21.56,23.67,245.93,245.93,0,0,0,51.13-70l.09-.19-28.76-14ZM97.51,160.9l28.65-14.25A244.73,244.73,0,0,0,75.44,77.86a249.19,249.19,0,0,0-21.52,23.71A213.3,213.3,0,0,1,97.51,160.9Zm300.28.62a213.51,213.51,0,0,1,44-60.42,250.36,250.36,0,0,0-21.57-23.66A245.73,245.73,0,0,0,369,147.52l-.09.19,28.75,14ZM376,255.44A212.18,212.18,0,0,1,387,187.67l-30.33-10.2a245.26,245.26,0,0,0,.67,158.16l30.26-10.4a213.85,213.85,0,0,1-11.71-69.79Zm22.5,95.63L369.8,365.32a244.59,244.59,0,0,0,50.77,68.84,250.19,250.19,0,0,0,21.51-23.7A212.63,212.63,0,0,1,398.45,351.07ZM108.32,186.73A214.44,214.44,0,0,1,120,256.52a212.1,212.1,0,0,1-11.09,67.77l30.33,10.2a243.61,243.61,0,0,0,12.76-78,245.62,245.62,0,0,0-13.43-80.19Z\"]]\n};\nvar faBasketballBall = {\n prefix: 'fad',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", [\"M216,10.05A247,247,0,0,0,84.33,69.7l79.89,79.89A212.33,212.33,0,0,0,216,10.05ZM186.89,172.26,248,233.37,411.67,69.7A247,247,0,0,0,248,8v2a244.13,244.13,0,0,1-61.11,162.26ZM280,502a247,247,0,0,0,131.67-59.7l-79.89-79.89A212.38,212.38,0,0,0,280,502ZM434.3,92.33,270.63,256l61.11,61.11A244.18,244.18,0,0,1,494,256h2A247,247,0,0,0,434.3,92.33Zm0,327.34A247,247,0,0,0,494,288a212.33,212.33,0,0,0-139.54,51.78ZM309.11,339.74,248,278.63,84.33,442.3A247,247,0,0,0,248,504v-2A244.13,244.13,0,0,1,309.11,339.74ZM61.7,92.33A247,247,0,0,0,2.05,224a212.33,212.33,0,0,0,139.54-51.78ZM164.26,194.89A244.13,244.13,0,0,1,2,256H0A247,247,0,0,0,61.7,419.67L225.37,256Z\", \"M280,502a249.84,249.84,0,0,1-32,2v-2a244.13,244.13,0,0,1,61.11-162.26L248,278.63,84.33,442.3A249.14,249.14,0,0,1,61.7,419.67L225.37,256l-61.11-61.11A244.13,244.13,0,0,1,2,256H0a249.89,249.89,0,0,1,2.05-32,212.33,212.33,0,0,0,139.54-51.78L61.7,92.33A249.14,249.14,0,0,1,84.33,69.7l79.89,79.89A212.33,212.33,0,0,0,216,10.05,249.89,249.89,0,0,1,248,8v2a244.13,244.13,0,0,1-61.11,162.26L248,233.37,411.67,69.7A249.14,249.14,0,0,1,434.3,92.33L270.63,256l61.11,61.11A244.18,244.18,0,0,1,494,256h2a249.84,249.84,0,0,1-2,32,212.33,212.33,0,0,0-139.54,51.78l79.89,79.89a249.14,249.14,0,0,1-22.63,22.63l-79.89-79.89A212.39,212.39,0,0,0,280,502Z\"]]\n};\nvar faBasketballHoop = {\n prefix: 'fad',\n iconName: 'basketball-hoop',\n icon: [640, 512, [], \"f435\", [\"M192 176h256v-48H192zm446.83 26.76C638.13 200.72 571.32 0 320 0S1.87 200.72 1.17 202.76c-1.6 10.39-1.1-8.66-1.1 132.35 0 23.23 13.6 44 34.71 52.78L139 431.6 130.15 288H104a40 40 0 0 1-40-40v-32a40 40 0 0 1 40-40h56V96h320v80h56a40 40 0 0 1 40 40v32a40 40 0 0 1-40 40h-26.15L501 431.6l104.21-43.71c21.11-8.76 34.71-29.55 34.71-52.78.01-141.01.51-121.96-1.09-132.35z\", \"M445.27 319.9L408.63 288h-47.07L320 329.4 278.44 288h-47.07l-36.64 31.9-2.51-31.9H160l18.27 224L254 440.4l66 71.6 66.05-71.6 75.68 71.6L480 288h-32.22zm-240.5 124.3l-4.32-53.5 30 27.9zm48.38-48.2l-46.88-43.6 48.79-42.5 42.25 42.1zM320 458.1l-43.36-40.3L320 374.6l43.36 43.2zM342.69 352l42.25-42.1 48.79 42.5-46.88 43.6zm92.54 92.2l-25.69-25.6 30-27.9zM536 208H104a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8z\"]]\n};\nvar faBat = {\n prefix: 'fad',\n iconName: 'bat',\n icon: [640, 512, [], \"f6b5\", [\"M411.83 175.3L320 230.4l-91.83-55.1L256 64l42.66 32h42.67L384 64z\", \"M640 320l-49.63-16.54a64 64 0 0 0-73.49 25.21L480 384l-11.82-11.82a64 64 0 0 0-90.51 0 65.74 65.74 0 0 0-5.95 6.86L320 448l-51.72-69a64 64 0 0 0-89.6-12.8 64.73 64.73 0 0 0-6.86 5.95L160 384l-36.89-55.33a64 64 0 0 0-73.49-25.21L0 320l81.55-190.31a32 32 0 0 1 42-16.8 32.58 32.58 0 0 1 3.86 2L320 230.4l192.56-115.53a32 32 0 0 1 43.91 11 32.58 32.58 0 0 1 2 3.86z\"]]\n};\nvar faBath = {\n prefix: 'fad',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", [\"M80,256H32V69.25a69.25,69.25,0,0,1,118.22-49l19.26,19.27c29.9-13.13,59.11-7.61,79.73,8.62l.17-.17A16,16,0,0,1,272,48l11.31,11.31a16,16,0,0,1,0,22.63L177.94,187.31a16,16,0,0,1-22.63,0L144,176a16,16,0,0,1,0-22.62l.17-.17c-16.23-20.62-21.75-49.85-8.62-79.73L116.28,54.22A21.26,21.26,0,0,0,80,69.25Z\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]]\n};\nvar faBatteryBolt = {\n prefix: 'fad',\n iconName: 'battery-bolt',\n icon: [640, 512, [], \"f376\", [\"M64 160h92.28l7.66-64H48a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h180.61l14.17-64H64zm552 0h-8v-16a48 48 0 0 0-48-48H405.38l-9.95 48h33.35a65.73 65.73 0 0 1 43.11 16H544v64h32v64h-32v64H427.17l-36.62 64H560a48 48 0 0 0 48-48v-16h8a24 24 0 0 0 24-24V184a24 24 0 0 0-24-24z\", \"M445.39 223.52l-140.77 246A19 19 0 0 1 288 480c-12.26 0-21.55-12.56-18.67-25.84l36.84-166.39h-95c-11.6 0-20.56-11.18-19-23.77l25.6-213.78C219 39.79 227.18 32 236.8 32h108.8c12.6 0 21.8 13.09 18.55 26.41L336.46 192h92.32c14.78 0 24.01 17.55 16.61 31.52z\"]]\n};\nvar faBatteryEmpty = {\n prefix: 'fad',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", [\"M616 160h-8v-16a48 48 0 0 0-48-48H48a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h512a48 48 0 0 0 48-48v-16h8a24 24 0 0 0 24-24V184a24 24 0 0 0-24-24zm-40 128h-32v64H64V160h480v64h32z\", \"\"]]\n};\nvar faBatteryFull = {\n prefix: 'fad',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", [\"M616 160h-8v-16a48 48 0 0 0-48-48H48a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h512a48 48 0 0 0 48-48v-16h8a24 24 0 0 0 24-24V184a24 24 0 0 0-24-24zm-40 128h-32v64H64V160h480v64h32z\", \"M512 320H96V192h416z\"]]\n};\nvar faBatteryHalf = {\n prefix: 'fad',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", [\"M616 160h-8v-16a48 48 0 0 0-48-48H48a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h512a48 48 0 0 0 48-48v-16h8a24 24 0 0 0 24-24V184a24 24 0 0 0-24-24zm-40 128h-32v64H64V160h480v64h32z\", \"M320 320H96V192h224z\"]]\n};\nvar faBatteryQuarter = {\n prefix: 'fad',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", [\"M616 160h-8v-16a48 48 0 0 0-48-48H48a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h512a48 48 0 0 0 48-48v-16h8a24 24 0 0 0 24-24V184a24 24 0 0 0-24-24zm-40 128h-32v64H64V160h480v64h32z\", \"M224 320H96V192h128z\"]]\n};\nvar faBatterySlash = {\n prefix: 'fad',\n iconName: 'battery-slash',\n icon: [640, 512, [], \"f377\", [\"M165.31 96H560a48 48 0 0 1 48 48v16h8a24 24 0 0 1 24 24v144a24 24 0 0 1-24 24h-8v16a48 48 0 0 1-32.14 45.31L496.54 352H544v-64h32v-64h-32v-64H248.12zM64 352V179.49l-62.13-48A47.37 47.37 0 0 0 0 144v224a48 48 0 0 0 48 48h322l-82.81-64z\", \"M633.83 458.11L45.47 3.38A16 16 0 0 0 23 6.17L3.37 31.46a16 16 0 0 0 2.81 22.45l588.35 454.73a16 16 0 0 0 22.47-2.79l19.64-25.27a16 16 0 0 0-2.81-22.47z\"]]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fad',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", [\"M616 160h-8v-16a48 48 0 0 0-48-48H48a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h512a48 48 0 0 0 48-48v-16h8a24 24 0 0 0 24-24V184a24 24 0 0 0-24-24zm-40 128h-32v64H64V160h480v64h32z\", \"M416 320H96V192h320z\"]]\n};\nvar faBed = {\n prefix: 'fad',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", [\"M528 128H304a16 16 0 0 0-16 16v144h352v-48a112 112 0 0 0-112-112zM176 96a80 80 0 1 0 80 80 80 80 0 0 0-80-80z\", \"M640 288v144a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-48H64v48a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v208z\"]]\n};\nvar faBedAlt = {\n prefix: 'fad',\n iconName: 'bed-alt',\n icon: [512, 512, [], \"f8f7\", [\"M512,288v64H0V288a64,64,0,0,1,64-64H448A64,64,0,0,1,512,288Z\", \"M0,352V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V416H448v48a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V352ZM64,224V160a32,32,0,0,1,32-32H208a32,32,0,0,1,32,32v64h32V160a32,32,0,0,1,32-32H416a32,32,0,0,1,32,32v64a66.4,66.4,0,0,1,32,8.88h0V64a32,32,0,0,0-32-32H64A32,32,0,0,0,32,64V232.88h0A66.51,66.51,0,0,1,64,224Z\"]]\n};\nvar faBedBunk = {\n prefix: 'fad',\n iconName: 'bed-bunk',\n icon: [576, 512, [], \"f8f8\", [\"M144,256a48,48,0,1,0,48,48A48.06,48.06,0,0,0,144,256ZM144,0a48,48,0,1,0,48,48A48.06,48.06,0,0,0,144,0ZM464,0H240a16,16,0,0,0-16,16V128H576V112A112,112,0,0,0,464,0ZM240,256a16,16,0,0,0-16,16V384H512V267.19A110.87,110.87,0,0,0,464,256Z\", \"M64,128V16A16,16,0,0,0,48,0H16A16,16,0,0,0,0,16V496a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V448H512v48a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V128ZM512,384H64V192H512Z\"]]\n};\nvar faBedEmpty = {\n prefix: 'fad',\n iconName: 'bed-empty',\n icon: [640, 512, [], \"f8f9\", [\"M208,128H112a16,16,0,0,0-16,16V288H224V144A16,16,0,0,0,208,128Zm320,0H272a16,16,0,0,0-16,16V288H640V240A112,112,0,0,0,528,128Z\", \"M640,288V432a16,16,0,0,1-16,16H592a16,16,0,0,1-16-16V384H64v48a16,16,0,0,1-16,16H16A16,16,0,0,1,0,432V80A16,16,0,0,1,16,64H48A16,16,0,0,1,64,80V288Z\"]]\n};\nvar faBeer = {\n prefix: 'fad',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", [\"M368 96h-48V56a24 24 0 0 0-24-24H24A24 24 0 0 0 0 56v400a24 24 0 0 0 24 24h272a24 24 0 0 0 24-24v-42.11l80.61-36a80.08 80.08 0 0 0 47.39-73V176a80.09 80.09 0 0 0-80-80zM128 368a16 16 0 0 1-32 0V144a16 16 0 0 1 32 0zm96 0a16 16 0 0 1-32 0V144a16 16 0 0 1 32 0zm160-63.14a16 16 0 0 1-9.48 14.61L320 343.8V160h48a16 16 0 0 1 16 16z\", \"M208 128a16 16 0 0 0-16 16v224a16 16 0 0 0 32 0V144a16 16 0 0 0-16-16zm-96 0a16 16 0 0 0-16 16v224a16 16 0 0 0 32 0V144a16 16 0 0 0-16-16z\"]]\n};\nvar faBell = {\n prefix: 'fad',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", [\"M448 384c-.1 16.4-13 32-32.1 32H32.08C13 416 .09 400.4 0 384a31.25 31.25 0 0 1 8.61-21.71c19.32-20.76 55.47-52 55.47-154.29 0-77.7 54.48-139.9 127.94-155.16V32a32 32 0 1 1 64 0v20.84C329.42 68.1 383.9 130.3 383.9 208c0 102.3 36.15 133.53 55.47 154.29A31.27 31.27 0 0 1 448 384z\", \"M160 448h128a64 64 0 0 1-128 0z\"]]\n};\nvar faBellExclamation = {\n prefix: 'fad',\n iconName: 'bell-exclamation',\n icon: [448, 512, [], \"f848\", [\"M439.39 362.29c-19.32-20.76-55.47-52-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32a32 32 0 1 0-64 0v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29A31.24 31.24 0 0 0 0 384c.11 16.4 13 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32a31.23 31.23 0 0 0-8.61-21.71zM224 352a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.2-206.4l-12.8 96a16 16 0 0 1-15.9 14.4h-19a16 16 0 0 1-15.9-14.4l-12.8-96a16.06 16.06 0 0 1 15.9-17.6h44.6a16 16 0 0 1 15.89 17.6z\", \"M160 448a64 64 0 1 0 128 0zm64-160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-9.5-32h19a16 16 0 0 0 15.9-14.4l12.8-96a16 16 0 0 0-15.9-17.6h-44.6a16.06 16.06 0 0 0-15.9 17.6l12.8 96a16 16 0 0 0 15.89 14.4z\"]]\n};\nvar faBellOn = {\n prefix: 'fad',\n iconName: 'bell-on',\n icon: [640, 512, [], \"f8fa\", [\"M479.92,208c0-77.69-54.48-139.91-127.94-155.16V32a32,32,0,1,0-64,0V52.84C214.56,68.09,160.08,130.31,160.08,208c0,102.31-36.14,133.53-55.47,154.28A31.28,31.28,0,0,0,96,384c.11,16.41,13,32,32.09,32H511.91c19.11,0,32-15.59,32.09-32a31.23,31.23,0,0,0-8.61-21.72C516.06,341.53,479.92,310.31,479.92,208Z\", \"M88,168H24a24,24,0,0,0,0,48H88a24,24,0,0,0,0-48ZM131.08,55.22l-55.42-32a24,24,0,1,0-24,41.56l55.42,32a24,24,0,1,0,24-41.56Zm457.26,9.56a24,24,0,0,0-24-41.56l-55.42,32a24,24,0,1,0,24,41.56ZM320,512a64,64,0,0,0,64-64H256A64,64,0,0,0,320,512ZM616,168H552a24,24,0,0,0,0,48h64a24,24,0,0,0,0-48Z\"]]\n};\nvar faBellPlus = {\n prefix: 'fad',\n iconName: 'bell-plus',\n icon: [448, 512, [], \"f849\", [\"M439.39 361.29c-19.32-20.76-55.47-52-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V31a32 32 0 1 0-64 0v20.84C118.56 67.1 64.08 129.3 64.08 207c0 102.3-36.15 133.53-55.47 154.29A31.24 31.24 0 0 0 0 383c.11 16.4 13 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32a31.23 31.23 0 0 0-8.61-21.71zM320 247a16 16 0 0 1-16 16h-56v56a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-56h-56a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h56v-56a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v56h56a16 16 0 0 1 16 16z\", \"M224 511a64 64 0 0 0 64-64H160a64 64 0 0 0 64 64zm80-296h-56v-56a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v56h-56a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h56v56a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-56h56a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\"]]\n};\nvar faBellSchool = {\n prefix: 'fad',\n iconName: 'bell-school',\n icon: [512, 512, [], \"f5d5\", [\"M464 320a48 48 0 0 0-27.14 87.55A40.07 40.07 0 0 1 400 432h-48v48h48a88.08 88.08 0 0 0 86-69.56A47.86 47.86 0 0 0 464 320zM208 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48z\", \"M208 0C93.12 0 0 93.12 0 208s93.12 208 208 208 208-93.12 208-208S322.88 0 208 0zm0 288a80 80 0 1 1 80-80 80.09 80.09 0 0 1-80 80zM64 399.54V480a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32v-80.46a238.18 238.18 0 0 1-288 0z\"]]\n};\nvar faBellSchoolSlash = {\n prefix: 'fad',\n iconName: 'bell-school-slash',\n icon: [640, 512, [], \"f5d6\", [\"M486.36 344.13a48 48 0 1 1 75.23 58.14zM272 160a47.69 47.69 0 0 0-18.87 3.88l66.33 51.26A48 48 0 0 0 272 160zm78.19 240.67L66 181a209.13 209.13 0 0 0-2 27c0 114.88 93.12 208 208 208a207.23 207.23 0 0 0 78.19-15.33zM272 448a238.41 238.41 0 0 1-144-48.46V480a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32v-28.47l-37.66-29.11A236.49 236.49 0 0 1 272 448zm-46.21-305.26a80 80 0 0 1 121 93.54l103 79.63A207 207 0 0 0 480 208C480 93.12 386.88 0 272 0a207.34 207.34 0 0 0-149.22 63.13z\", \"M633.82 458.09L45.47 3.38A16 16 0 0 0 23 6.17L3.37 31.46a16 16 0 0 0 2.81 22.45l588.34 454.71a16 16 0 0 0 22.48-2.79l19.64-25.27a16 16 0 0 0-2.82-22.47z\"]]\n};\nvar faBellSlash = {\n prefix: 'fad',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", [\"M370 416H128.1c-19.12 0-32-15.6-32.1-32a31.24 31.24 0 0 1 8.61-21.71c16.21-17.42 44-42.79 52.62-110.75zm173.64-27.59A32.49 32.49 0 0 0 544 384a31.23 31.23 0 0 0-8.61-21.71c-19.32-20.76-55.47-52-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32a32 32 0 1 0-64 0v20.84c-40.31 8.37-74.89 30.89-97.9 62.33zM320 512a64 64 0 0 0 64-64H256a64 64 0 0 0 64 64z\", \"M633.82 458.09L45.47 3.38A16 16 0 0 0 23 6.17L3.37 31.46a16 16 0 0 0 2.81 22.45l588.34 454.71a16 16 0 0 0 22.48-2.79l19.64-25.27a16 16 0 0 0-2.82-22.47z\"]]\n};\nvar faBells = {\n prefix: 'fad',\n iconName: 'bells',\n icon: [640, 512, [], \"f77f\", [\"M117.3 119.08c-.8 2.1-14.7 40.5-15.4 42.71-29.2 80.31-66.4 94.55-87.4 105.28C-5.6 277.4-5 307.78 17.5 316l243.3 88.84c8.4-19.25 19.5-45.72-3.3-108.49L242 253.57c-27.9-76.91 5-161 73.7-200.34a130.82 130.82 0 0 0-27.4-14.17c-69.25-25.19-145.77 10.62-171 80.02zM543.77 411L428.1 453a63.76 63.76 0 0 0 115.67-42z\", \"M137.85 444.14a63.73 63.73 0 0 0 73.83-23.2L96.23 378.83a63.78 63.78 0 0 0 41.62 65.31zM625.55 299c-21-10.73-58.33-25-87.44-105.28-.8-2.2-14.7-40.61-15.4-42.72C497.4 81.63 420.88 45.84 351.64 71.1s-104.92 102-79.73 171.37c.8 2.11 14.81 40.52 15.61 42.72 29.21 80.32 9.7 115.22.5 137-8.8 20.76 11.21 43.72 33.72 35.5L622.45 348c20.55-7.55 24.9-37.74 3.1-49z\"]]\n};\nvar faBetamax = {\n prefix: 'fad',\n iconName: 'betamax',\n icon: [512, 512, [], \"f8a4\", [\"M0 160v240a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V160zm144 224a80 80 0 1 1 80-80 80 80 0 0 1-80 80zm304 0H288V224h160z\", \"M496 64H16A16 16 0 0 0 0 80v80h512V80a16 16 0 0 0-16-16zM144 224a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 112a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faBezierCurve = {\n prefix: 'fad',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", [\"M368 32h-96a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zM160 320H64a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32zm416 0h-96a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32z\", \"M208 88h-84.75a64 64 0 1 0 0 48H203A232.21 232.21 0 0 0 93.44 288h49.4a183.69 183.69 0 0 1 71-101.56A63.28 63.28 0 0 1 208 160zm368-40a63.93 63.93 0 0 0-59.25 40H432v72a63.43 63.43 0 0 1-5.88 26.44 183.69 183.69 0 0 1 71 101.56h49.4A232.21 232.21 0 0 0 437 136h79.73A64 64 0 1 0 576 48z\"]]\n};\nvar faBible = {\n prefix: 'fad',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zm48-240a16 16 0 0 1 16-16h48V80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v48h48a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-48v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V192h-48a16 16 0 0 1-16-16z\"]]\n};\nvar faBicycle = {\n prefix: 'fad',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", [\"M255 304h-48.61a79.82 79.82 0 0 0-19.64-38.23L212.63 224A127.74 127.74 0 0 1 255 304zm257-112a127.54 127.54 0 0 0-45.93 8.5l26.07 42a80.25 80.25 0 1 1-40.74 25.37l-26.09-42A128 128 0 1 0 512 192zM201.3 352a80 80 0 1 1-56.2-110.14l26.21-42.34A128 128 0 1 0 252 352z\", \"M495.83 339.45a16 16 0 0 0 22 5.16l13.6-8.44a16 16 0 0 0 5.15-22L388.39 75.34A24 24 0 0 0 368 64h-64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h50.65l14.9 24H256v-16a16 16 0 0 0-16-16h-87.46c-13.44 0-24.77 11-24.53 24.44A24 24 0 0 0 152 152h48.73L99.6 315.37A24 24 0 0 0 120 352h184a24 24 0 0 0 20.41-11.37l86-138.86zM290.63 304H163.09l74.28-120h127.55z\"]]\n};\nvar faBiking = {\n prefix: 'fad',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", [\"M512 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm80 64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92L396 217a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64z\"]]\n};\nvar faBikingMountain = {\n prefix: 'fad',\n iconName: 'biking-mountain',\n icon: [640, 512, [], \"f84b\", [\"M191.34 49.88l-58.12 48.76c-6.38 5.55-7 15.54-1.34 22.34l40.83 49.18c5.65 6.8 15.39 7.81 21.77 2.26L298.8 83.51c6.38-5.54 7-15.54 1.35-22.33-28.15-33.95-76.91-39.02-108.81-11.3zM240 352h-5.2a110.19 110.19 0 0 0-8.65-20.89l3.67-3.67a16 16 0 0 0 0-22.63l-22.63-22.63a16 16 0 0 0-22.63 0l-3.67 3.67A110.45 110.45 0 0 0 160 277.2V272a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v5.2a110.19 110.19 0 0 0-20.89 8.65l-3.67-3.67a16 16 0 0 0-22.63 0l-22.63 22.63a16 16 0 0 0 0 22.63l3.67 3.67A110.45 110.45 0 0 0 21.2 352H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h5.2a110.19 110.19 0 0 0 8.65 20.89l-3.67 3.67a16 16 0 0 0 0 22.63l22.63 22.63a16 16 0 0 0 22.63 0l3.67-3.67A110.94 110.94 0 0 0 96 490.8v5.2a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-5.2a110.56 110.56 0 0 0 20.9-8.65l3.66 3.67a16 16 0 0 0 22.63 0l22.63-22.63a16 16 0 0 0 0-22.63l-3.67-3.67a110.45 110.45 0 0 0 8.66-20.89H240a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-112 96a64 64 0 1 1 64-64 64 64 0 0 1-64 64zm496-96h-5.2a110.19 110.19 0 0 0-8.65-20.89l3.67-3.67a16 16 0 0 0 0-22.63l-22.63-22.63a16 16 0 0 0-22.63 0l-3.66 3.67a110.81 110.81 0 0 0-20.9-8.65V272a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v5.2a110.47 110.47 0 0 0-20.89 8.65l-3.66-3.67a16 16 0 0 0-22.63 0l-22.63 22.63a16 16 0 0 0 0 22.63l3.67 3.67a110.45 110.45 0 0 0-8.67 20.89H400a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h5.2a110.19 110.19 0 0 0 8.65 20.89l-3.67 3.67a16 16 0 0 0 0 22.63l22.63 22.63a16 16 0 0 0 22.63 0l3.66-3.67a110.94 110.94 0 0 0 20.9 8.65v5.2a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-5.2a110.56 110.56 0 0 0 20.9-8.65l3.67 3.67a16 16 0 0 0 22.63 0l22.63-22.63a16 16 0 0 0 0-22.63l-3.67-3.67A110.45 110.45 0 0 0 618.8 416h5.2a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-112 96a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a32 32 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.07 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.35-27.57 58.24-49.92z\"]]\n};\nvar faBinoculars = {\n prefix: 'fad',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", [\"M400 32h-64a16 16 0 0 0-16 16v48h96V48a16 16 0 0 0-16-16zm-224 0h-64a16 16 0 0 0-16 16v48h96V48a16 16 0 0 0-16-16zm48 256h64V128h-64z\", \"M63.91 160C61.4 253.84 3.46 274.22 0 404v44a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 32zm384.18 0c-.48-17.62-14.3-32-31.93-32H320v160h32v160a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244z\"]]\n};\nvar faBiohazard = {\n prefix: 'fad',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", [\"M206 80.83a89.75 89.75 0 0 0 29.5 40.69c16.51-5.7 34-9.5 52.51-9.5s36.2 3.8 52.81 9.6a89.75 89.75 0 0 0 29.5-40.69 207.71 207.71 0 0 0-164.32-.1zm-76.72 205.83a84 84 0 0 0-26.4-4.59 81.46 81.46 0 0 0-22.5 3.1 208.16 208.16 0 0 0 83.31 153.45 91.09 91.09 0 0 0 24.5-42.39 158.72 158.72 0 0 1-58.91-109.57zm343.94-4.59a85.81 85.81 0 0 0-26.6 4.69A158.8 158.8 0 0 1 387.91 396a91.4 91.4 0 0 0 24.5 42.49 207.53 207.53 0 0 0 83-153.45 83.1 83.1 0 0 0-22.19-2.97z\", \"M575.53 283.47c-13.1-39.09-39.5-72-74.1-92.37a162.36 162.36 0 0 0-55.31-19.9c6-17.69 10-36.39 10-56.18a173.9 173.9 0 0 0-41-112.16 7.84 7.84 0 0 0-10-1.8 8.26 8.26 0 0 0-3.6 9.69c4.5 13.8 6.6 26.29 6.6 38.49 0 67.78-53.8 122.86-120 122.86s-120-55.08-120-122.86c0-12.1 2.2-24.69 6.6-38.49a8.26 8.26 0 0 0-3.6-9.69 7.86 7.86 0 0 0-10 1.8 174.49 174.49 0 0 0-41 112.16c0 19.79 3.9 38.49 10 56.18a163.12 163.12 0 0 0-55.31 19.9c-34.6 20.49-61 53.28-74.3 92.37A8.32 8.32 0 0 0 4 293.26a7.82 7.82 0 0 0 10-1.6c9.4-10.79 19-19.09 29.2-25.09 57.31-33.89 130.82-13.69 163.92 45s13.4 134-43.9 167.84c-10.21 6.1-22 10.4-35.81 13.4a8.27 8.27 0 0 0-6.4 8.1 8.07 8.07 0 0 0 6.5 8 163.8 163.8 0 0 0 115.18-19.71c18-10.6 32.91-24.49 45.31-40.09 12.4 15.6 27.3 29.49 45.31 40.09a163.8 163.8 0 0 0 115.21 19.69 8.07 8.07 0 0 0 6.5-8 8.16 8.16 0 0 0-6.4-8.1c-13.9-2.9-25.6-7.3-35.81-13.4-57.3-33.89-77-109.16-43.9-167.84s106.61-78.88 163.92-45c10.2 6.1 19.8 14.3 29.2 25.09a7.82 7.82 0 0 0 10 1.6 8.27 8.27 0 0 0 3.5-9.77zM288 320.05a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faBirthdayCake = {\n prefix: 'fad',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", [\"M373.5 384c-28 0-31.39 32-74.75 32-43.55 0-46.6-32-74.75-32-27.28 0-31.66 32-74.5 32-43.5 0-46.8-32-74.75-32S43.36 416 0 416v96h448v-96c-43.25 0-47-32-74.5-32zM96 96c17.75 0 32-13.5 32-40S108 0 96 0c0 41-32 33-32 64a31.9 31.9 0 0 0 32 32zm128 0c17.75 0 32-13.5 32-40S236 0 224 0c0 41-32 33-32 64a31.9 31.9 0 0 0 32 32zm128 0c17.75 0 32-13.5 32-40S364 0 352 0c0 41-32 33-32 64a31.9 31.9 0 0 0 32 32z\", \"M448 384c-28 0-31.26-32-74.5-32-43.43 0-46.83 32-74.75 32-27.7 0-31.45-32-74.75-32-42.84 0-47.22 32-74.5 32-28.15 0-31.2-32-74.75-32S28.1 384 0 384v-80a48 48 0 0 1 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16a48 48 0 0 1 48 48z\"]]\n};\nvar faBlanket = {\n prefix: 'fad',\n iconName: 'blanket',\n icon: [512, 512, [], \"f498\", [\"M512 464v32a16 16 0 0 1-16 16H128C57.17 512-.41 454.17 0 383.25.41 312.62 58.78 256 129.41 256H432a80.09 80.09 0 0 1 80 80.79c-.43 44-37 79.21-81 79.21H128a32 32 0 0 1-32-32.9c.48-17.43 15.22-31.1 32.66-31.1H432a16 16 0 0 0 16-16.81c-.42-8.59-7.84-15.19-16.44-15.19H128a64.06 64.06 0 0 0-64 65c.53 35.12 29.84 63 65 63h367a16 16 0 0 1 16 16z\", \"M512 96s-.07 179.79-.28 233.47A80.1 80.1 0 0 0 432 256H129.41C58.78 256 .41 312.62 0 383.25v.73V96A96.14 96.14 0 0 1 96 0h320a96.14 96.14 0 0 1 96 96z\"]]\n};\nvar faBlender = {\n prefix: 'fad',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", [\"M328 288a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h114.18l17.46-64H328a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h140.36l17.46-64H328a8 8 0 0 1-8-8V72a8 8 0 0 1 8-8h166.55L512 0H48A48 48 0 0 0 0 48v160a48 48 0 0 0 48 48h103.27l8.73 96h256l17.45-64zM64 192V64h69.82l11.64 128z\", \"M416 384H160a64 64 0 0 0-64 64v32a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32v-32a64 64 0 0 0-64-64zm-128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm40-288h131.64l8.72-32H328a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0 96h105.46l8.72-32H328a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-224a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h157.81l8.73-32z\"]]\n};\nvar faBlenderPhone = {\n prefix: 'fad',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", [\"M497.46 288L480 352H192V0h384l-17.45 64H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h157.82l-17.45 64H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h131.64l-17.45 64H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\", \"M158.8 335L133 271.75a16.79 16.79 0 0 0-17.24-10.26l-45 4.42a214.78 214.78 0 0 1 0-147.72l45 4.42A16.81 16.81 0 0 0 133 112.35l25.8-63.26A16.3 16.3 0 0 0 152.12 29L112.84 4.92C98.51-3.87 80.09-.5 69 12a269.64 269.64 0 0 0 2.09 362.49c9.87 10.8 29.12 12.48 41.66 4.8l39.4-24.18A16.3 16.3 0 0 0 158.8 335zM480 384H192a64 64 0 0 0-64 64v32a32 32 0 0 0 32 32h352a32 32 0 0 0 32-32v-32a64 64 0 0 0-64-64zm-144 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm56-192h105.46l8.72-32H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-96h131.64l8.72-32H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-128a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h157.81l8.73-32z\"]]\n};\nvar faBlind = {\n prefix: 'fad',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", [\"M380.15 510.84a8 8 0 0 1-11-2.68L243.83 301.72a31.91 31.91 0 0 0 13-9.48l126 207.61a8 8 0 0 1-2.68 11z\", \"M142.8 314.34l-32.54 89.48 36.12 88.29a32 32 0 0 0 59.24-24.23zM96 88a44 44 0 1 0-44-44 44 44 0 0 0 44 44zm154.84 169.13l-120-152A23.91 23.91 0 0 0 112 96H80a23.9 23.9 0 0 0-18.94 9.24L0 183.77v95.69c0 13.46 11 24.79 24.46 24.54A24 24 0 0 0 48 280v-79.77l16-20.57v140.7L9.93 469.05a32 32 0 0 0 59.91 22.51c.08-.21.16-.42.23-.63L136 309.64v-107.2l-31.41-39.82a4 4 0 0 1 6.27-5l102.3 129.22c9.15 11.59 24.37 11.34 33.71 4a24 24 0 0 0 4-33.71z\"]]\n};\nvar faBlinds = {\n prefix: 'fad',\n iconName: 'blinds',\n icon: [512, 512, [], \"f8fb\", [\"M96,226.94V160H16L0,256H66.94A47.82,47.82,0,0,1,96,226.94ZM16,416,0,512H512l-16-96ZM128,160v66.94A47.82,47.82,0,0,1,157.06,256H512l-16-96Zm29.06,128a47.73,47.73,0,0,1-90.12,0H16L0,384H512l-16-96ZM493.34,64H128v64H512ZM96,64H18.66L0,128H96Z\", \"M512,16V48a16,16,0,0,1-16,16H128V226.94a48,48,0,1,1-32,0V64H16A16,16,0,0,1,0,48V16A16,16,0,0,1,16,0H496A16,16,0,0,1,512,16Z\"]]\n};\nvar faBlindsOpen = {\n prefix: 'fad',\n iconName: 'blinds-open',\n icon: [512, 512, [], \"f8fc\", [\"M96,64H16L0,112H96Zm0,146.94V192H16L0,240H66.94A48.06,48.06,0,0,1,96,210.94ZM496,64H128v48H512ZM16,320,0,368H512l-16-48Zm0,144L0,512H512l-16-48ZM128,192v18.94A48.06,48.06,0,0,1,157.06,240H512l-16-48Z\", \"M512,16V48a16,16,0,0,1-16,16H128V210.94a48,48,0,1,1-32,0V64H16A16,16,0,0,1,0,48V16A16,16,0,0,1,16,0H496A16,16,0,0,1,512,16Z\"]]\n};\nvar faBlindsRaised = {\n prefix: 'fad',\n iconName: 'blinds-raised',\n icon: [512, 512, [], \"f8fd\", [\"M0,225.29H96V160.92H18.66Zm128-64.37v64.37H512l-18.66-64.37ZM493.34,64.37H128v64.37H512ZM0,128.74H96V64.37H18.66Z\", \"M512,16.09V48.28a16,16,0,0,1-16,16.09H128v354a48,48,0,1,1-32,0v-354H16A16,16,0,0,1,0,48.28V16.09A16,16,0,0,1,16,0H496A16,16,0,0,1,512,16.09Z\"]]\n};\nvar faBlog = {\n prefix: 'fad',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", [\"M511.9 303C503.4 139.82 372.2 8.62 209 0a16.1 16.1 0 0 0-17 16v31.6a15.84 15.84 0 0 0 15 15.9c129.4 7 233.4 112 240.9 241.5a16 16 0 0 0 15.9 15h32.1a16.1 16.1 0 0 0 16-17zM209.3 96a16.13 16.13 0 0 0-17.3 16.1v32.1a15.94 15.94 0 0 0 14.8 15.9c76.8 6.3 138 68.2 144.9 145.2a16.07 16.07 0 0 0 15.9 14.7h32.2a16.19 16.19 0 0 0 16.1-17.3C407.5 192.62 319.4 104.52 209.3 96z\", \"M172.2 226.82c75.5 15 129.9 89.3 112.5 172.2-11.4 54.3-55.3 98.3-109.7 109.7C82.1 528.22 0 457.52 0 368V120a23.94 23.94 0 0 1 24-24h48a23.94 23.94 0 0 1 24 24v248a48 48 0 1 0 64.7-45c-9.6-3.6-16.7-11.8-16.7-22v-50.4c0-14.9 13.6-26.7 28.2-23.8z\"]]\n};\nvar faBold = {\n prefix: 'fad',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", [\"M32 32h32v80H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16zm32 368v80H32a16 16 0 0 1-16-16v-48a16 16 0 0 1 16-16z\", \"M332.53 237.78c12.86-15.8 24.9-44.81 26.93-65C366.85 96.48 306.81 32 232 32H64v448h183.62C322.94 480 384 419.11 384 344a135.36 135.36 0 0 0-51.47-106.22zM144 112h88a48 48 0 1 1 0 96h-88zm88 288h-88V288h88a56 56 0 1 1 0 112z\"]]\n};\nvar faBolt = {\n prefix: 'fad',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", [\"M224 24.19a23.89 23.89 0 0 1-.79 6L180.61 160l-37.9 128H24a24 24 0 0 1-24-24 24.45 24.45 0 0 1 .21-3.2l32-240A24 24 0 0 1 56 0h144a24.09 24.09 0 0 1 24 24.19z\", \"M319.93 184.07a23.93 23.93 0 0 1-3.22 11.93l-176 304a24 24 0 0 1-44.1-17.5l46.1-194.5 37.9-128H296a24 24 0 0 1 23.93 24.07z\"]]\n};\nvar faBomb = {\n prefix: 'fad',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", [\"M500 60h-24a12 12 0 0 0 0 24h24a12 12 0 0 0 0-24zM440 0a12 12 0 0 0-12 12v24a12 12 0 0 0 24 0V12a12 12 0 0 0-12-12zm33.9 55l17-17a12 12 0 0 0-17-17l-17 17a12 12 0 0 0 17 17zm-67.8 0a12 12 0 0 0 17-17l-17-17a12 12 0 0 0-17 17zm67.8 34a12 12 0 0 0-17 17l17 17a12 12 0 0 0 17-17zm-102.5 34.5l17.1 17 52-52-17.1-17z\", \"M415 200.9a23.9 23.9 0 0 0 0-33.9l-70.1-70a23.9 23.9 0 0 0-33.9 0l-17.4 17.4A207.35 207.35 0 0 0 208 96C93.1 96 0 189.1 0 304s93.1 207.9 208 207.9 208-93.1 208-208a207.35 207.35 0 0 0-18.4-85.6zM176 208a64.06 64.06 0 0 0-64 64 16 16 0 0 1-32 0 96.15 96.15 0 0 1 96-96 16 16 0 0 1 0 32z\"]]\n};\nvar faBone = {\n prefix: 'fad',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", [\"M598.88 244.56a12.79 12.79 0 0 0 0 22.88A74.38 74.38 0 0 1 640 334v7.64a74.38 74.38 0 0 1-145 23.5c-6.53-19.6-10.73-45.14-38.11-45.14H183.06c-26.51 0-30.43 22.11-38.11 45.14A74.38 74.38 0 0 1 0 341.61V334a74.39 74.39 0 0 1 41.12-66.53 12.79 12.79 0 0 0 0-22.88A74.39 74.39 0 0 1 0 178v-7.64a74.38 74.38 0 0 1 145-23.53c6.53 19.6 10.73 45.14 38.11 45.14h273.82c26.51 0 30.43-22.11 38.11-45.14a74.39 74.39 0 0 1 145 23.53V178a74.39 74.39 0 0 1-41.12 66.53z\", \"\"]]\n};\nvar faBoneBreak = {\n prefix: 'fad',\n iconName: 'bone-break',\n icon: [640, 512, [], \"f5d8\", [\"M598.88 171.44A74.38 74.38 0 0 1 640 238v7.64a74.38 74.38 0 0 1-144.94 23.53l-7.75-23.26A32 32 0 0 0 457 224H352l32-64-32-64h105a32 32 0 0 0 30.36-21.88l7.75-23.26A74.38 74.38 0 0 1 640 74.39V82a74.39 74.39 0 0 1-41.12 66.53 12.79 12.79 0 0 0 0 22.91z\", \"M320 282.51L256 256l-26.5-64-63 63a32 32 0 0 1-36.94 6l-21.93-11a74.39 74.39 0 0 0-85.84 119.13l5.4 5.4a74.39 74.39 0 0 0 76.12 18 12.79 12.79 0 0 1 16.18 16.18 74.39 74.39 0 0 0 18 76.12l5.4 5.4A74.39 74.39 0 0 0 262 404.33l-11-21.93a32 32 0 0 1 6-36.94z\"]]\n};\nvar faBong = {\n prefix: 'fad',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", [\"M48 384c0-25.42 5.87-46.53 14.74-64h258.52c8.87 17.47 14.74 38.58 14.74 64a143 143 0 0 1-19.08 71.36A16.86 16.86 0 0 1 302.5 464h-221a16.86 16.86 0 0 1-14.42-8.64A143 143 0 0 1 48 384z\", \"M443.31 217.37l-52.69-52.69a16 16 0 0 0-22.63 0L356.68 176a16 16 0 0 0 0 22.63l9.38 9.38-39.41 39.41A193.53 193.53 0 0 0 288 217.9V63.74h16a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16L80 .26a16 16 0 0 0-16 16V48a16 16 0 0 0 16 16h16v153.89C38.67 251.1 0 313 0 384a190.15 190.15 0 0 0 25.5 95.34 64.77 64.77 0 0 0 56 32.66h221a64.75 64.75 0 0 0 56-32.66 191 191 0 0 0-1.94-194l43.44-43.4 9.38 9.38a16 16 0 0 0 22.63 0l11.3-11.32a16 16 0 0 0 0-22.63zm-126.39 238A16.86 16.86 0 0 1 302.5 464h-221a16.86 16.86 0 0 1-14.42-8.64A143 143 0 0 1 48 384c0-93.78 79.85-129.09 96-138.44V64.19h96v181.37c16.15 9.35 96 44.66 96 138.44a143 143 0 0 1-19.08 71.36z\"]]\n};\nvar faBook = {\n prefix: 'fad',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zm32-250a6 6 0 0 1 6-6h212a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6H134a6 6 0 0 1-6-6zm0 64a6 6 0 0 1 6-6h212a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6H134a6 6 0 0 1-6-6z\"]]\n};\nvar faBookAlt = {\n prefix: 'fad',\n iconName: 'book-alt',\n icon: [448, 512, [], \"f5d9\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32z\"]]\n};\nvar faBookDead = {\n prefix: 'fad',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M208 136a16 16 0 1 0-16-16 16 16 0 0 0 16 16zM96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7a8 8 0 0 1 10.5-4.2l98.3 42.1 98.4-42.1a8 8 0 0 1 10.5 4.2l6.3 14.7a8 8 0 0 1-4.2 10.5L280.6 264l70.3 30.1a8 8 0 0 1 4.2 10.5l-6.3 14.7a8 8 0 0 1-10.5 4.2L240 281.4l-98.3 42.2a8 8 0 0 1-10.5-4.2l-6.3-14.7a8 8 0 0 1 4.2-10.5l70.4-30.1-70.5-30.3a8 8 0 0 1-4.2-10.5zM272 136a16 16 0 1 0-16-16 16 16 0 0 0 16 16z\"]]\n};\nvar faBookHeart = {\n prefix: 'fad',\n iconName: 'book-heart',\n icon: [448, 512, [], \"f499\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zm53.8-274.9c24-20 59.7-16.4 81.6 5.8l8.6 8.7 8.6-8.7c22-22.2 57.7-25.8 81.6-5.8a60.65 60.65 0 0 1 4.3 89.1l-84.7 85.6a13.94 13.94 0 0 1-19.8 0l-84.7-85.6a60.74 60.74 0 0 1 4.5-89.1z\"]]\n};\nvar faBookMedical = {\n prefix: 'fad',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zm48-216a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8z\"]]\n};\nvar faBookOpen = {\n prefix: 'fad',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", [\"M576 62.75v337.84c0 16.23-13.13 29.77-30 30.66-49.47 2.6-149.52 12.1-218.7 46.92-10.65 5.36-23.28-1.94-23.28-13.49V100.81a15.37 15.37 0 0 1 7.27-13.17c67.24-41.16 176.16-52.48 231-55.59C560.64 31 576 45 576 62.75z\", \"M264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31 0 45 0 62.75V400.6c0 16.24 13.13 29.78 30 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63a15.05 15.05 0 0 0-7.25-12.99z\"]]\n};\nvar faBookReader = {\n prefix: 'fad',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", [\"M256 192a96 96 0 1 1 96-96 96 96 0 0 1-96 96z\", \"M233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.06 43.66 2.29 132 10.68 193 41.43 9.37 4.72 20.48-1.71 20.48-11.87v-246a13.31 13.31 0 0 0-6.38-11.46zm248.61-49c-48.35 2.74-144.46 12.73-203.78 49a13.56 13.56 0 0 0-6.42 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61-30.72 149.32-39.11 193-41.4C500.42 468.24 512 456.29 512 442V219.14c0-15.63-13.55-28.01-29.8-27.09z\"]]\n};\nvar faBookSpells = {\n prefix: 'fad',\n iconName: 'book-spells',\n icon: [448, 512, [], \"f6b8\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zm176-224l26.66 53.33L352 240l-53.34 26.67L272 320l-26.66-53.33L192 240l53.34-26.67zM160 96l16-32 16 32 32 16-32 16-16 32-16-32-32-16z\"]]\n};\nvar faBookUser = {\n prefix: 'fad',\n iconName: 'book-user',\n icon: [448, 512, [], \"f7e7\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zM240 64a64 64 0 1 1-64 64 64 64 0 0 1 64-64zM128 281.6c0-31.81 30.09-57.6 67.2-57.6h5a103.22 103.22 0 0 0 79.7 0h5c37.11 0 67.2 25.79 67.2 57.6v19.2c0 10.61-10 19.2-22.4 19.2H150.4c-12.4 0-22.4-8.6-22.4-19.2z\"]]\n};\nvar faBookmark = {\n prefix: 'fad',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", [\"M384 48v464L192 400 0 512V48A48 48 0 0 1 48 0h32v326.11a16 16 0 0 0 23.16 14.31L192 296l88.84 44.42A16 16 0 0 0 304 326.11V0h32a48 48 0 0 1 48 48z\", \"M304 0v326.11a16 16 0 0 1-23.16 14.31L192 296l-88.84 44.42A16 16 0 0 1 80 326.11V0z\"]]\n};\nvar faBooks = {\n prefix: 'fad',\n iconName: 'books',\n icon: [576, 512, [], \"f5db\", [\"M96 0H32A32 32 0 0 0 0 32v64h128V32A32 32 0 0 0 96 0zM0 384h128V128H0zm0 96a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64H0zm513.62-17.78L401.08 42.71l-60.26 16.14 112.35 418.8c.11.39.2.79.29 1.18l60.29-16.15c-.04-.15-.09-.3-.13-.46zM160 480a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64H160zM256 0h-64a32 32 0 0 0-32 32v64h124.79l-8-29.65a23.94 23.94 0 0 1 11.17-27V32A32 32 0 0 0 256 0zm-96 384h128V128H160z\", \"M0 416h128v-32H0zm0-288h128V96H0zm575.17 317.65L460.39 17.78a23.89 23.89 0 0 0-29.18-17h-.09L415.73 5a24 24 0 0 0-16.9 29.36l114.79 427.86a23.89 23.89 0 0 0 29.18 17h.09l15.38-4.22a24 24 0 0 0 16.9-29.35zM160 416h128v-32H160zM338.39 49.78a23.89 23.89 0 0 0-29.18-17h-.09L293.73 37a24 24 0 0 0-16.9 29.36l8 29.65H160v32h128V108l103.62 386.22a23.89 23.89 0 0 0 29.18 17h.09l15.38-4.22a24 24 0 0 0 16.9-29.33z\"]]\n};\nvar faBooksMedical = {\n prefix: 'fad',\n iconName: 'books-medical',\n icon: [640, 512, [], \"f7e8\", [\"M160 0H96a32 32 0 0 0-32 32v76.33a160.25 160.25 0 0 1 128 0V32a32 32 0 0 0-32-32zm64 480a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64H224zm353.62-17.78L465.08 42.71l-60.26 16.14 112.35 418.8c.11.39.2.79.29 1.18l60.29-16.15c-.04-.15-.09-.3-.13-.46zM64 401.68V480a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-78.32a160.33 160.33 0 0 1-128 0zm191-49.36A160.35 160.35 0 0 1 224 383v1h128V127.84l-126.7.16A160 160 0 0 1 255 352.32zM320 0h-64a32 32 0 0 0-32 32v64h124.79l-8-29.65a23.94 23.94 0 0 1 11.17-27V32A32 32 0 0 0 320 0z\", \"M128 127a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm64 144a5.33 5.33 0 0 1-5.33 5.33h-37.34v37.34A5.33 5.33 0 0 1 144 319h-32a5.33 5.33 0 0 1-5.33-5.33v-37.33H69.33A5.33 5.33 0 0 1 64 271v-32a5.33 5.33 0 0 1 5.33-5.33h37.34v-37.33A5.33 5.33 0 0 1 112 191h32a5.33 5.33 0 0 1 5.33 5.33v37.34h37.34A5.33 5.33 0 0 1 192 239zM402.39 49.78a23.89 23.89 0 0 0-29.18-17h-.09L357.73 37a24 24 0 0 0-16.9 29.36l8 29.65H224v32h128V108l103.62 386.22a23.89 23.89 0 0 0 29.18 17h.09l15.38-4.22a24 24 0 0 0 16.9-29.33zm236.78 395.87L524.39 17.78a23.89 23.89 0 0 0-29.18-17h-.09L479.73 5a24 24 0 0 0-16.9 29.36l114.79 427.86a23.89 23.89 0 0 0 29.18 17h.09l15.38-4.22a24 24 0 0 0 16.9-29.35zM224 416h128v-32H224z\"]]\n};\nvar faBoombox = {\n prefix: 'fad',\n iconName: 'boombox',\n icon: [640, 512, [], \"f8a5\", [\"M592 160H48a48 48 0 0 0-48 48v256a48 48 0 0 0 48 48h544a48 48 0 0 0 48-48V208a48 48 0 0 0-48-48zM176 448a112 112 0 1 1 112-112 112.12 112.12 0 0 1-112 112zm288 0a112 112 0 1 1 112-112 112.12 112.12 0 0 1-112 112z\", \"M552 0H88a56.07 56.07 0 0 0-56 56v106.94A47.5 47.5 0 0 1 48 160h32V56a8 8 0 0 1 8-8h464a8 8 0 0 1 8 8v104h32a47.5 47.5 0 0 1 16 2.94V56a56.06 56.06 0 0 0-56-56zM256 144a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16h64zm192 0a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16h64zm-96 0a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16h64zm112 80a112 112 0 1 0 112 112 112.12 112.12 0 0 0-112-112zm0 176a64 64 0 1 1 64-64 64.07 64.07 0 0 1-64 64zM176 224a112 112 0 1 0 112 112 112.12 112.12 0 0 0-112-112zm0 176a64 64 0 1 1 64-64 64.07 64.07 0 0 1-64 64z\"]]\n};\nvar faBoot = {\n prefix: 'fad',\n iconName: 'boot',\n icon: [512, 512, [], \"f782\", [\"M0 448v32l32 32h64l32-32 32 32h64l32-32 32 32h64l32-32 32 32h64l32-32v-32zM352 80V16a16 16 0 0 0-16-16H16A16 16 0 0 0 0 16v80h336a16 16 0 0 0 16-16z\", \"M439.3 285.8L320 256h-56a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h56v-32h-56a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h56v-32H0v288h512v-37a96.07 96.07 0 0 0-72.7-93.2z\"]]\n};\nvar faBoothCurtain = {\n prefix: 'fad',\n iconName: 'booth-curtain',\n icon: [512, 512, [], \"f734\", [\"M480 0h-32v496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V32a32 32 0 0 0-32-32zM0 32v464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h32V0H32A32 32 0 0 0 0 32z\", \"M416 0v400a48 48 0 0 1-84.7 31 15.07 15.07 0 0 0-22.6 0 48.11 48.11 0 0 1-73.4 0 15.07 15.07 0 0 0-22.6 0 48 48 0 0 1-84.7-31V0z\"]]\n};\nvar faBorderAll = {\n prefix: 'fad',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", [\"M384 288H256v128h-64V288H64v-64h128V96h64v128h128z\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 384H64V96h320z\"]]\n};\nvar faBorderBottom = {\n prefix: 'fad',\n iconName: 'border-bottom',\n icon: [448, 512, [], \"f84d\", [\"M208 288h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm96 0h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm128-64h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-320 64h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm320 32h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM208 384h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-192h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-96h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm96 0h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm128-64h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM16 288h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 96h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-192h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-96h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16zm96 0h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faBorderCenterH = {\n prefix: 'fad',\n iconName: 'border-center-h',\n icon: [448, 512, [], \"f89c\", [\"M208 480h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm96 0h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm128-64h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-320 64h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm320-160h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM208 384h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-192h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-96h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm96 0h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm128-64h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM16 480h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-96h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-192h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-96h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16zm96 0h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M448 240v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16z\"]]\n};\nvar faBorderCenterV = {\n prefix: 'fad',\n iconName: 'border-center-v',\n icon: [448, 512, [], \"f89d\", [\"M0 240v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16zm0 96v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16zm64 128v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16zM0 144v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16zm160 320v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16zm192 0v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16zM96 240v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16zm192 0v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16zm96 0v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16zm0 96v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16zm64 128v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16zM0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48zm96 0v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16zm192 0v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16zm96 0v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16zm0 96v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16z\", \"M256 48v416a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\"]]\n};\nvar faBorderInner = {\n prefix: 'fad',\n iconName: 'border-inner',\n icon: [448, 512, [], \"f84e\", [\"M48 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 192h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm288-96h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM48 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm64-224h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-96 0h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16zm320 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM144 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm288-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M432 224H256V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v176H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h176v176a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V288h176a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faBorderLeft = {\n prefix: 'fad',\n iconName: 'border-left',\n icon: [448, 512, [], \"f84f\", [\"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M48 32H16A16 16 0 0 0 0 48v416a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faBorderNone = {\n prefix: 'fad',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", [\"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"\"]]\n};\nvar faBorderOuter = {\n prefix: 'fad',\n iconName: 'border-outer',\n icon: [448, 512, [], \"f851\", [\"M208 288h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm96 0h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm96 96h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-192h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 384H64V96h320z\"]]\n};\nvar faBorderRight = {\n prefix: 'fad',\n iconName: 'border-right',\n icon: [448, 512, [], \"f852\", [\"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M432 32h-32a16 16 0 0 0-16 16v416a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faBorderStyle = {\n prefix: 'fad',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", [\"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M432 32H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faBorderStyleAlt = {\n prefix: 'fad',\n iconName: 'border-style-alt',\n icon: [448, 512, [], \"f854\", [\"M208 96h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm96 0h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 288h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-96h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0-96h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16zm0 288h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M432 32h-32a16 16 0 0 0-16 16v368H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h400a32 32 0 0 0 32-32V48a16 16 0 0 0-16-16z\"]]\n};\nvar faBorderTop = {\n prefix: 'fad',\n iconName: 'border-top',\n icon: [448, 512, [], \"f855\", [\"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faBowArrow = {\n prefix: 'fad',\n iconName: 'bow-arrow',\n icon: [512, 512, [], \"f6b9\", [\"M282.33 150.47l46.61-46.61a255.3 255.3 0 0 0-275.1.73l-3.9-3.9a16 16 0 0 0-22.63 0L4.69 123.31a16 16 0 0 0 0 22.63L145.78 287 191 241.78l-90.54-90.58a192.49 192.49 0 0 1 181.87-.73zm125.08 307a255.3 255.3 0 0 0 .73-275.1L361.53 229a192.51 192.51 0 0 1-.73 181.88l-90.58-90.58L225 365.56l141.72 141.76a16 16 0 0 0 22.63 0L412 484.69a16 16 0 0 0 0-22.63z\", \"M511.71 18.78L486 147.37a15.7 15.7 0 0 1-26.49 8L425 120.92 174.39 371.56l16.61 49.7a20.56 20.56 0 0 1-5 21L122.32 506a20.56 20.56 0 0 1-34-8l-18.59-55.72-55.66-18.55a20.56 20.56 0 0 1-8-34L69.7 326a20.58 20.58 0 0 1 21-5l49.7 16.57L391.08 87l-34.47-34.48a15.7 15.7 0 0 1 8-26.49L493.22.31a15.72 15.72 0 0 1 18.49 18.47z\"]]\n};\nvar faBowlingBall = {\n prefix: 'fad',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", [\"M232,240a32,32,0,1,1,32-32A32,32,0,0,1,232,240ZM216,64a32,32,0,1,0,32,32A32,32,0,0,0,216,64ZM120,192a32,32,0,1,0-32-32A32,32,0,0,0,120,192Z\", \"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM120,192a32,32,0,1,1,32-32A32,32,0,0,1,120,192Zm64-96a32,32,0,1,1,32,32A32,32,0,0,1,184,96Zm48,144a32,32,0,1,1,32-32A32,32,0,0,1,232,240Z\"]]\n};\nvar faBowlingPins = {\n prefix: 'fad',\n iconName: 'bowling-pins',\n icon: [448, 512, [], \"f437\", [\"M133.17 160c.8-35.8 20.9-59.1 18.8-96C150.07 29.8 129.27.1 96 0 62.6.1 41.9 29.8 40 64c-2.1 36.9 18 60.2 18.8 96zm181.6 0h74.4c.8-35.7 20.9-59.1 18.8-96-1.9-34.3-22.6-63.9-56-64-33.3.1-54.1 29.8-56 64-2.1 36.9 18 60.2 18.8 96zm128.9 160c-10.8-48.1-39.9-82.8-50.7-128h-81.9c-10.8 45.2-39.9 79.9-50.7 128-11.5 51.1.6 140.5 26.7 192h130c26-51.5 38-141 26.6-192zm-306.8-128h-81.8c-10.8 45.2-40 79.9-50.7 128-11.5 51.1.5 140.5 26.6 192H161c26.1-51.5 38.1-140.9 26.7-192-10.83-48.1-40.03-82.8-50.83-128z\", \"M59 160l-4 32h82l-4-32zm330 0h-74l-4 32h82z\"]]\n};\nvar faBox = {\n prefix: 'fad',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", [\"M512 224v240a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V224z\", \"M53.1 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0H98.6a47.87 47.87 0 0 0-45.5 32.8zm456.4 151.8L458.9 32.8A47.87 47.87 0 0 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4z\"]]\n};\nvar faBoxAlt = {\n prefix: 'fad',\n iconName: 'box-alt',\n icon: [448, 512, [], \"f49a\", [\"M256 32l32 128v112a16 16 0 0 1-16 16h-96a16 16 0 0 1-16-16V160l32-128z\", \"M446.7 160c.4-.5.5-.7.9-1.2L391.3 53.9A32 32 0 0 0 360.9 32H256l32 128zM160 160l32-128H87.1a32 32 0 0 0-30.4 21.9L.4 158.8c.4.5.5.7.9 1.2zm128 32v80a16 16 0 0 1-16 16h-96a16 16 0 0 1-16-16v-80H0v256a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192z\"]]\n};\nvar faBoxBallot = {\n prefix: 'fad',\n iconName: 'box-ballot',\n icon: [576, 512, [], \"f735\", [\"M144 192l-.5-175.8A16.2 16.2 0 0 1 159.7 0l255.8.6a16 16 0 0 1 16 16L432 192z\", \"M0 320v160a32 32 0 0 0 32 32h512a32 32 0 0 0 32-32V320zm574.7-32a8.34 8.34 0 0 0 .8-1.2L520 148.2a32.07 32.07 0 0 0-29.7-20.1h-26.6l.2 64 16 32H95.5l16-32h.5l-.2-64H85.7A32.07 32.07 0 0 0 56 148.2L.4 286.8c.3.5.5.7.8 1.2z\"]]\n};\nvar faBoxCheck = {\n prefix: 'fad',\n iconName: 'box-check',\n icon: [640, 512, [], \"f467\", [\"M448 128c-106 0-192 86-192 192s86 192 192 192 192-86 192-192-86-192-192-192zm114.1 147.8l-131 130a11 11 0 0 1-15.6-.1l-75.7-76.3a11 11 0 0 1 .1-15.6l26-25.8a11 11 0 0 1 15.6.1l42.1 42.5 97.2-96.4a11 11 0 0 1 15.6.1l25.8 26a11 11 0 0 1-.1 15.5z\", \"M240 0H98.6a47.87 47.87 0 0 0-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240zm208 80a221.93 221.93 0 0 1 27.2 1.7l-16.3-48.8A47.83 47.83 0 0 0 413.4 0H272v157.4C315.9 109.9 378.4 80 448 80zM208 320a238.53 238.53 0 0 1 20.2-96H0v240a48 48 0 0 0 48 48h256.6C246.1 468.2 208 398.6 208 320zm354.2-59.7l-25.8-26a11 11 0 0 0-15.6-.1l-97.2 96.4-42.1-42.5a11 11 0 0 0-15.6-.1l-26 25.8a11 11 0 0 0-.1 15.6l75.7 76.3a11 11 0 0 0 15.6.1l131-130a11 11 0 0 0 .1-15.5z\"]]\n};\nvar faBoxFragile = {\n prefix: 'fad',\n iconName: 'box-fragile',\n icon: [448, 512, [], \"f49b\", [\"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-96 160c0 47.5-34.6 86.7-80 94.4V384h40a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h40v-97.6a95.78 95.78 0 0 1-80-94.4v-80a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16z\", \"M320 192c0 47.5-34.6 86.7-80 94.4V384h40a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h40v-97.6a95.78 95.78 0 0 1-80-94.4v-80a16 16 0 0 1 16-16h60.4l24.5 27.6-64 32 91 68.4-37-59.6 64-32L260.1 96H304a16 16 0 0 1 16 16z\"]]\n};\nvar faBoxFull = {\n prefix: 'fad',\n iconName: 'box-full',\n icon: [640, 512, [], \"f49c\", [\"M439 382.1L576 343v82a32.07 32.07 0 0 1-24.2 31l-216.4 54.1a65 65 0 0 1-31 0L88.24 456A31.9 31.9 0 0 1 64 425v-82l137.1 39.2c28.6 8.2 48.3-10.9 54.7-21.6L320 254l64.3 106.6c6.54 10.8 26.24 29.7 54.7 21.5z\", \"M194.24 143.7A63.28 63.28 0 0 1 192 128a64 64 0 1 1 128 0 62.84 62.84 0 0 1-8.2 30.7l8.2 1L475.34 140 511 41.7a16 16 0 0 0-9.6-20.5L445.94 1a16 16 0 0 0-20.5 9.6L383.74 125C382 55.7 325.74 0 256 0a128 128 0 0 0-128 128c0 2.5.6 4.9.7 7.4zm444.1 128.1L586.84 169a16.33 16.33 0 0 0-16.7-8.9L320 192l91.7 152.1a16.44 16.44 0 0 0 18.5 7.3l197.9-56.5a16.47 16.47 0 0 0 10.24-23.1zM53.24 169L1.74 271.8a16.3 16.3 0 0 0 10.1 23l197.9 56.5a16.44 16.44 0 0 0 18.5-7.3L320 192 69.84 160.1a16.34 16.34 0 0 0-16.6 8.9z\"]]\n};\nvar faBoxHeart = {\n prefix: 'fad',\n iconName: 'box-heart',\n icon: [448, 512, [], \"f49d\", [\"M0 192v256a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192zm305.1 149.2l-72.6 71.4a12.2 12.2 0 0 1-17 0l-72.6-71.4a49.59 49.59 0 0 1 3.7-74.2c20.5-16.7 51.1-13.7 70 4.8l7.4 7.3 7.4-7.3c18.8-18.5 49.4-21.5 70-4.8a49.66 49.66 0 0 1 3.7 74.2z\", \"M301.4 267c-20.6-16.7-51.2-13.7-70 4.8l-7.4 7.3-7.4-7.3c-18.9-18.5-49.5-21.5-70-4.8a49.59 49.59 0 0 0-3.7 74.2l72.6 71.4a12.2 12.2 0 0 0 17 0l72.6-71.4a49.66 49.66 0 0 0-3.7-74.2zm89.9-213.1A32 32 0 0 0 360.9 32H240v128h206.7c.4-.5.5-.7.9-1.2zM208 32H87.1a32 32 0 0 0-30.4 21.9L.4 158.8c.4.5.5.7.9 1.2H208z\"]]\n};\nvar faBoxOpen = {\n prefix: 'fad',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", [\"M439 254.14L576 215v178a32.07 32.07 0 0 1-24.2 31l-216.4 54.1a65 65 0 0 1-31 0L88.24 424A31.9 31.9 0 0 1 64 393V215l137 39.2a46 46 0 0 0 13.3 1.9 48.64 48.64 0 0 0 41.5-23.5L320 126l64.3 106.6a48.47 48.47 0 0 0 41.4 23.4 46 46 0 0 0 13.3-1.86z\", \"M638.34 143.84L586.84 41a16.33 16.33 0 0 0-16.7-8.9L320 64l91.7 152.1a16.44 16.44 0 0 0 18.5 7.3l197.9-56.5a16.47 16.47 0 0 0 10.24-23.06zM53.24 41L1.74 143.84a16.3 16.3 0 0 0 10.1 23l197.9 56.5a16.44 16.44 0 0 0 18.5-7.3L320 64 69.84 32.14A16.34 16.34 0 0 0 53.24 41z\"]]\n};\nvar faBoxTissue = {\n prefix: 'fad',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", [\"M384,288,448,96H338.6A70.2,70.2,0,0,1,272,48,70.19,70.19,0,0,0,205.4,0H64l64,288Z\", \"M0,480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V416H0ZM480,224H439.06l-21.33,64H432a16,16,0,0,1,0,32H80a16,16,0,0,1,0-32H95.22L81,224H32A32,32,0,0,0,0,256V384H512V256A32,32,0,0,0,480,224Z\"]]\n};\nvar faBoxUp = {\n prefix: 'fad',\n iconName: 'box-up',\n icon: [448, 512, [], \"f49f\", [\"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zM57.8 179l64-80a8.28 8.28 0 0 1 12.5 0l64 80a8 8 0 0 1-6.2 13h-32v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V192H64a8 8 0 0 1-6.2-13zM384 408a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h304a8 8 0 0 1 8 8zm0-216h-32v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V192h-32a8 8 0 0 1-6.2-13l64-80a8.28 8.28 0 0 1 12.5 0l64 80a8.05 8.05 0 0 1-6.3 13z\", \"M134.3 99a8.28 8.28 0 0 0-12.5 0l-64 80a8 8 0 0 0 6.2 13h32.1v112a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V192h32a8 8 0 0 0 6.2-13zm256 80l-64-80a8.28 8.28 0 0 0-12.5 0l-64 80a8 8 0 0 0 6.2 13h32v112a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V192h32a8.05 8.05 0 0 0 6.3-13z\"]]\n};\nvar faBoxUsd = {\n prefix: 'fad',\n iconName: 'box-usd',\n icon: [448, 512, [], \"f4a0\", [\"M0 192v256a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192zm240 223.9V432a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16.3a57.66 57.66 0 0 1-31.4-11.3 8 8 0 0 1-.6-12.1l11.8-11.2a8.13 8.13 0 0 1 10.1-.7 24.4 24.4 0 0 0 12.8 3.7h28.1c6.5 0 11.8-5.9 11.8-13.2 0-6-3.6-11.2-8.8-12.7l-45-13.5c-18.6-5.6-31.6-23.4-31.6-43.4 0-24.5 19-44.4 42.7-45.1V240a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16.3a57.66 57.66 0 0 1 31.4 11.3 8 8 0 0 1 .6 12.1L260.2 291a8.13 8.13 0 0 1-10.1.7 24.4 24.4 0 0 0-12.8-3.7h-28.1c-6.5 0-11.8 5.9-11.8 13.2 0 6 3.6 11.2 8.8 12.7l45 13.5c18.6 5.6 31.6 23.4 31.6 43.4-.1 24.5-19.2 44.5-42.8 45.1z\", \"M208 32H87.1a32 32 0 0 0-30.4 21.9L.4 158.8c.4.5.5.7.9 1.2H208zm43.2 295.4l-45-13.5c-5.2-1.5-8.8-6.7-8.8-12.7 0-7.3 5.3-13.2 11.8-13.2h28.1a24.4 24.4 0 0 1 12.8 3.7 8.13 8.13 0 0 0 10.1-.7l11.7-11.3a8 8 0 0 0-.6-12.1 57.66 57.66 0 0 0-31.4-11.3V240a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16.2c-23.7.7-42.7 20.6-42.7 45.1 0 20 13 37.8 31.6 43.4l45 13.5c5.2 1.5 8.8 6.7 8.8 12.7 0 7.3-5.3 13.2-11.8 13.2h-28.1a24.4 24.4 0 0 1-12.8-3.7 8.13 8.13 0 0 0-10.1.7L176 392.3a8 8 0 0 0 .6 12.1 57.66 57.66 0 0 0 31.4 11.3V432a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-16.1c23.6-.6 42.7-20.6 42.8-45.1 0-20-13-37.8-31.6-43.4zM391.3 53.9A32 32 0 0 0 360.9 32H240v128h206.7c.4-.5.5-.7.9-1.2z\"]]\n};\nvar faBoxes = {\n prefix: 'fad',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", [\"M480 288v96l-32-21.3-32 21.3v-96zM320 0v96l-32-21.3L256 96V0zM160 288v96l-32-21.3L96 384v-96z\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16zm-384-64h224a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-80v96l-32-21.3L256 96V0h-80a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16z\"]]\n};\nvar faBoxesAlt = {\n prefix: 'fad',\n iconName: 'boxes-alt',\n icon: [576, 512, [], \"f4a1\", [\"M320 0v88a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V0zm160 288v88a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-88zm-320 0v88a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-88z\", \"M176 224h224a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-80v88a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V0h-80a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16zm384 64h-80v88a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-88h-80a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16zm-320 0h-80v88a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-88H16a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16z\"]]\n};\nvar faBoxingGlove = {\n prefix: 'fad',\n iconName: 'boxing-glove',\n icon: [448, 512, [], \"f438\", [\"M352 400v80a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32v-80h133.3l-40.5 30.4a8.09 8.09 0 0 0-1.6 11.2l9.6 12.8A8 8 0 0 0 144 456l48-36 48 36a8 8 0 0 0 11.2-1.6l9.6-12.8a8.08 8.08 0 0 0-1.6-11.2L218.7 400z\", \"M15.8 286.7A1161.36 1161.36 0 0 1 0 95.9C0 43.1 43.3 0 96 0h192a96 96 0 0 1 96 96v32.2c-29.1 0-67.6-5.6-96 32.5v-.5H141.2a92.8 92.8 0 0 1-60.5-22.3 8 8 0 0 0-10.9.4l-11.3 11.3a8 8 0 0 0 .4 11.7 124.45 124.45 0 0 0 82.3 30.8h132.5a84.28 84.28 0 0 0-1.6 16 80.12 80.12 0 0 0 71.2 79.5 8 8 0 0 0 8.8-8v-16a8.17 8.17 0 0 0-6.9-8.1 47.9 47.9 0 0 1-41.1-48.4c.5-26.3 22.5-47.1 48.8-47.1H384a64.06 64.06 0 0 1 64 64c0 13.8 2.8 61.1-37.5 101.5L352 384v16H218.7l40.5-30.4a8.09 8.09 0 0 0 1.6-11.2l-9.6-12.8A8 8 0 0 0 240 344l-48 36-48-36a8 8 0 0 0-11.2 1.6l-9.6 12.8a8 8 0 0 0 1.6 11.2l40.5 30.4H32v-16z\"]]\n};\nvar faBrackets = {\n prefix: 'fad',\n iconName: 'brackets',\n icon: [448, 512, [], \"f7e9\", [\"M448 64v384a32 32 0 0 1-32 32H304a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h80V96h-80a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h112a32 32 0 0 1 32 32z\", \"M144 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h112a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H64V96h80a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faBracketsCurly = {\n prefix: 'fad',\n iconName: 'brackets-curly',\n icon: [576, 512, [], \"f7ea\", [\"M566.64 233.37a32 32 0 0 1 0 45.25l-45.25 45.25a32 32 0 0 0-9.39 22.64V384a96 96 0 0 1-96 96h-48a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h48a32 32 0 0 0 32-32v-37.48a96 96 0 0 1 28.13-67.89L498.76 256l-22.62-22.62A96 96 0 0 1 448 165.47V128a32 32 0 0 0-32-32h-48a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h48a96 96 0 0 1 96 96v37.48a32 32 0 0 0 9.38 22.65l45.25 45.24z\", \"M208 32h-48a96 96 0 0 0-96 96v37.48a32.12 32.12 0 0 1-9.38 22.65L9.38 233.37a32 32 0 0 0 0 45.25l45.25 45.25A32.05 32.05 0 0 1 64 346.51V384a96 96 0 0 0 96 96h48a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-48a32 32 0 0 1-32-32v-37.48a96 96 0 0 0-28.13-67.89L77.26 256l22.63-22.63A96 96 0 0 0 128 165.48V128a32 32 0 0 1 32-32h48a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faBraille = {\n prefix: 'fad',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", [\"M64 400a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm160-160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0 160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm224-160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0 160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm160-160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0 160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0-256a32 32 0 1 0-32-32 32 32 0 0 0 32 32z\", \"M64 208a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0-160a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm160 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm224 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64z\"]]\n};\nvar faBrain = {\n prefix: 'fad',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", [\"M272 439.93a71.81 71.81 0 0 1-140 22.78 70.91 70.91 0 0 1-84-70.77 72.51 72.51 0 0 1 1.42-14.1A80 80 0 0 1 0 304c0-29.66 16.34-55.26 40.34-69.07A79.05 79.05 0 0 1 32 200a80 80 0 0 1 49.66-74A63.6 63.6 0 0 1 144 48c.75 0 1.45.2 2.2.22A63.87 63.87 0 0 1 272 64zM576 304c0-29.66-16.34-55.26-40.34-69.07A79.05 79.05 0 0 0 544 200a80 80 0 0 0-49.66-74A63.6 63.6 0 0 0 432 48c-.75 0-1.45.2-2.2.22A63.87 63.87 0 0 0 304 64v375.9a71.81 71.81 0 0 0 140 22.78 71.73 71.73 0 0 0 82.61-84.87A80 80 0 0 0 576 304z\", \"M304 439.93a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V72a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8z\"]]\n};\nvar faBreadLoaf = {\n prefix: 'fad',\n iconName: 'bread-loaf',\n icon: [640, 512, [], \"f7eb\", [\"M420 256h-4v192a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V256h-4c-33.14 0-60-28.65-60-64C0 103.63 107.45 32 240 32s240 71.63 240 160c0 35.35-26.86 64-60 64z\", \"M640 192c0 35.35-26.86 64-60 64h-4v192a32 32 0 0 1-32 32H439.1a63.25 63.25 0 0 0 8.9-32V283.46c37.08-12.4 64-48.71 64-91.46 0-67.38-46.8-125.61-119.19-159.76 2.41 0 4.76-.24 7.19-.24 132.55 0 240 71.63 240 160z\"]]\n};\nvar faBreadSlice = {\n prefix: 'fad',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", [\"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0zM152 448a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-96a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm96 96a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M152 400a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm0-96a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm96 96a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faBriefcase = {\n prefix: 'fad',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", [\"M320 288h192v144c0 25.6-22.4 48-48 48H48c-25.6 0-48-22.4-48-48V288h192v48a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16z\", \"M464 128h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128z\"]]\n};\nvar faBriefcaseMedical = {\n prefix: 'fad',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", [\"M192 128h-64V80a48 48 0 0 1 48-48h160a48 48 0 0 1 48 48v48h-64V96H192z\", \"M464 128H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V176a48 48 0 0 0-48-48zM352 344a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]]\n};\nvar faBringForward = {\n prefix: 'fad',\n iconName: 'bring-forward',\n icon: [512, 512, [], \"f856\", [\"M512 208v256a48 48 0 0 1-48 48H208a48 48 0 0 1-48-48V352h64v96h224V224h-96v-64h112a48 48 0 0 1 48 48z\", \"M304 352H48a48 48 0 0 1-48-48V48A48 48 0 0 1 48 0h256a48 48 0 0 1 48 48v256a48 48 0 0 1-48 48z\"]]\n};\nvar faBringFront = {\n prefix: 'fad',\n iconName: 'bring-front',\n icon: [640, 512, [], \"f857\", [\"M224 0H32A32 32 0 0 0 0 32v192a32 32 0 0 0 32 32h128v-64H64V64h128v34.74A47.92 47.92 0 0 1 208 96h48V32a32 32 0 0 0-32-32zm384 256H480v64h96v128H448v-34.74a47.92 47.92 0 0 1-16 2.74h-48v64a32 32 0 0 0 32 32h192a32 32 0 0 0 32-32V288a32 32 0 0 0-32-32z\", \"M480 144v224a48 48 0 0 1-48 48H208a48 48 0 0 1-48-48V144a48 48 0 0 1 48-48h224a48 48 0 0 1 48 48z\"]]\n};\nvar faBroadcastTower = {\n prefix: 'fad',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", [\"M184.67 64h-33.73a16 16 0 0 0-15.41 11.23 188.52 188.52 0 0 0 0 105.53A16 16 0 0 0 150.94 192h33.73a15.76 15.76 0 0 0 14.86-21.18 125.2 125.2 0 0 1 0-85.64A15.75 15.75 0 0 0 184.67 64zM89.92 23.34A15.83 15.83 0 0 0 76 0H40.63a16.18 16.18 0 0 0-14.74 9.31A285.66 285.66 0 0 0 0 128c0 24.75 3.12 68.33 26.69 118.86A16.1 16.1 0 0 0 41.3 256h34.84a15.84 15.84 0 0 0 14-23.37c-49.83-93.32-16.76-178.15-.22-209.29zm524.14-14A16.17 16.17 0 0 0 599.33 0h-35.42a15.81 15.81 0 0 0-14 23.25c18.27 34.29 48.42 119.42.28 209.23A15.87 15.87 0 0 0 564.08 256h35.23a16.17 16.17 0 0 0 14.69-9.29 284.5 284.5 0 0 0 0-237.42zM489.06 64h-33.73a15.76 15.76 0 0 0-14.86 21.18 125.2 125.2 0 0 1 0 85.64A15.75 15.75 0 0 0 455.33 192h33.73a16 16 0 0 0 15.41-11.24 188.48 188.48 0 0 0 0-105.52A15.94 15.94 0 0 0 489.06 64z\", \"M503.26 477.53l-130.5-313.41a64 64 0 1 0-105.52 0l-130.5 313.41a16 16 0 0 0 8.61 20.92l29.51 12.31a16 16 0 0 0 20.91-8.61L245 384h150l49.2 118.15a16 16 0 0 0 20.91 8.61l29.51-12.31a16 16 0 0 0 8.64-20.92zM271.62 320L320 203.81 368.38 320z\"]]\n};\nvar faBroom = {\n prefix: 'fad',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", [\"M636.53 31A16 16 0 0 1 634 53.47l-232.5 177.8-39.72-50L594.26 3.47A15.94 15.94 0 0 1 616.67 6l19.86 25z\", \"M93.17 257.71c-21.88 17.43-40.17 55.81-54.6 97.47L99 333.09a6 6 0 0 1 6.65 9.5L11 454.76c-7.2 32.29-11 55.43-11 55.43s206.66 13.66 266.63-34.12S343.2 326 343.2 326l-86.73-109.23S153.14 210 93.17 257.71zm342.42 16.48L327.64 138.3a11 11 0 0 0-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45a11 11 0 0 0 6.34-17.6z\"]]\n};\nvar faBrowser = {\n prefix: 'fad',\n iconName: 'browser',\n icon: [512, 512, [], \"f37e\", [\"M76 160h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12zM0 224v208a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V224z\", \"M464 32H48A48 48 0 0 0 0 80v144h512V80a48 48 0 0 0-48-48zM128 148a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm320 0a12 12 0 0 1-12 12H188a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h248a12 12 0 0 1 12 12z\"]]\n};\nvar faBrush = {\n prefix: 'fad',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", [\"M384 32v224H0V32A32 32 0 0 1 32 0h320a32 32 0 0 1 32 32z\", \"M0 288v32a64 64 0 0 0 64 64h64v64a64 64 0 0 0 128 0v-64h64a64 64 0 0 0 64-64v-32zm192 184a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faBug = {\n prefix: 'fad',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", [\"M369 112H145a112 112 0 0 1 224 0z\", \"M512 288.9c-.48 17.43-15.22 31.1-32.66 31.1H424v16a143.4 143.4 0 0 1-13.6 61.14l60.23 60.23a32 32 0 0 1-45.26 45.26l-54.73-54.74A143.42 143.42 0 0 1 280 480V236a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v244a143.42 143.42 0 0 1-90.64-32.11l-54.73 54.74a32 32 0 0 1-45.26-45.26l60.23-60.23A143.4 143.4 0 0 1 88 336v-16H32.67C15.23 320 .49 306.33 0 288.9A32 32 0 0 1 32 256h56v-58.74l-46.63-46.63a32 32 0 0 1 45.26-45.26L141.25 160h229.49l54.63-54.63a32 32 0 0 1 45.26 45.26L424 197.26V256h56a32 32 0 0 1 32 32.9z\"]]\n};\nvar faBuilding = {\n prefix: 'fad',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", [\"M180 160h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12V76a12 12 0 0 0-12-12zm128 0h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12V76a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\", \"M436 480h-20V24a24 24 0 0 0-24-24H56a24 24 0 0 0-24 24v456H12a12 12 0 0 0-12 12v20h448v-20a12 12 0 0 0-12-12zM128 76a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12zm0 96a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12zm52 148h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12zm76 160h-64v-84a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm64-172a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12V76a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]]\n};\nvar faBullhorn = {\n prefix: 'fad',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", [\"M544 448c0 9.22-7.08 32-32 32a32 32 0 0 1-20-7l-85-68a242.82 242.82 0 0 0-119-50.79V125.84a242.86 242.86 0 0 0 119-50.79L492 7a31.93 31.93 0 0 1 20-7c25 0 32 23.26 32 32z\", \"M544 184.88v110.24a63.47 63.47 0 0 0 0-110.24zM0 192v96a64 64 0 0 0 64 64h33.7a243 243 0 0 0-2.18 32 253.32 253.32 0 0 0 25.56 110.94c5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56A127.35 127.35 0 0 1 223.51 384a121 121 0 0 1 4.41-32H256V128H64a64 64 0 0 0-64 64z\"]]\n};\nvar faBullseye = {\n prefix: 'fad',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", [\"M248,440A184,184,0,1,1,432,256,183.89818,183.89818,0,0,1,248,440Zm0-312A128,128,0,1,0,376,256,128.00313,128.00313,0,0,0,248,128Zm0,192a64,64,0,1,1,64-64A64.07211,64.07211,0,0,1,248,320Z\", \"M248,8C111.03,8,0,119.03,0,256S111.03,504,248,504,496,392.97,496,256,384.97,8,248,8Zm0,432A184,184,0,1,1,432,256,183.89818,183.89818,0,0,1,248,440Zm0-312A128,128,0,1,0,376,256,128.00313,128.00313,0,0,0,248,128Zm0,192a64,64,0,1,1,64-64A64.07211,64.07211,0,0,1,248,320Z\"]]\n};\nvar faBullseyeArrow = {\n prefix: 'fad',\n iconName: 'bullseye-arrow',\n icon: [496, 512, [], \"f648\", [\"M248,320a64.07,64.07,0,0,1-64-64c0-28.95,19.45-53.19,45.88-61.07L285,139.79l-2.12-6.38C271.73,130.24,260.18,128,248,128A128,128,0,1,0,376,256c0-12.18-2.24-23.73-5.42-34.89L364.21,219l-55.14,55.14A63.85,63.85,0,0,1,248,320ZM484.43,181.1l-35.5,35.5a52.13,52.13,0,0,1-19.17,12.07c15.9,101.19-53.24,196.1-154.43,212s-196.1-53.25-212-154.43,53.25-196.1,154.43-212a185.71,185.71,0,0,1,57.88.05A52,52,0,0,1,287.4,55.07l35.5-35.5A247.87,247.87,0,0,0,248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256A247.87,247.87,0,0,0,484.43,181.1Z\", \"M310,77.7,373.68,14a20.56,20.56,0,0,1,34,8l18.55,55.65L481.89,96.2a20.56,20.56,0,0,1,8,34L426.3,194a20.58,20.58,0,0,1-21,5l-49.7-16.57L265,273a24,24,0,0,1-34-34l90.59-90.59L305,98.71A20.58,20.58,0,0,1,310,77.7Z\"]]\n};\nvar faBullseyePointer = {\n prefix: 'fad',\n iconName: 'bullseye-pointer',\n icon: [496, 512, [], \"f649\", [\"M312,256a64,64,0,0,1-28.93,53.43L262.3,382.53C326.18,375.35,376,321.78,376,256A128,128,0,0,0,248,128c-65.78,0-119.35,49.82-126.53,113.7l73.11-20.78A63.91,63.91,0,0,1,312,256ZM248,8C111.08,8,.11,119,.11,256c0,8.39.44,16.67,1.26,24.85a48.57,48.57,0,0,1,18-10.08L64.21,258c0-.68-.1-1.33-.1-2a184,184,0,1,1,184,184c-.68,0-1.34-.09-2-.1l-12.75,44.87a48.53,48.53,0,0,1-10,18c8.16.81,16.44,1.25,24.82,1.25C385,504,496,393,496,256S385,8,248,8Z\", \"M242.21,240.65a17.13,17.13,0,0,1,21.16,21.17L202.51,476c-4.31,15.17-25.08,17-31.91,2.73l-32.88-68.47L48.57,499.41a15.51,15.51,0,0,1-21.95,0l-.05,0-22-22a15.52,15.52,0,0,1-.05-22h0l.05,0,89.15-89.15L25.36,333.45c-14.25-6.82-12.44-27.61,2.74-31.92l214.13-60.88Z\"]]\n};\nvar faBurgerSoda = {\n prefix: 'fad',\n iconName: 'burger-soda',\n icon: [640, 512, [], \"f858\", [\"M336 128H206.73l20-80H272a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-51.5a40 40 0 0 0-38.81 30.3L157.26 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-44.62 96H38.27l25.78 258.29A31.87 31.87 0 0 0 96 512h160a31.59 31.59 0 0 0 13.65-3.36A79.55 79.55 0 0 1 256 464a47.93 47.93 0 0 1 17-36.61 63.91 63.91 0 0 1 4.58-91.27 64 64 0 0 1-14-17.9 64.71 64.71 0 0 1 3.74-66.82c6.68-9.87 15.04-18.86 24.06-27.4z\", \"M624 448H304a16 16 0 0 0-16 16 48 48 0 0 0 48 48h256a48 48 0 0 0 48-48 16 16 0 0 0-16-16zM319.27 320h289.46c25.35 0 40-29.27 25.54-50.59C604.8 226.13 539.94 192.07 464 192s-140.79 34.13-170.26 77.41c-14.53 21.32.19 50.59 25.53 50.59zM544 240a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-80-16a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-80 16a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-64 176h288a32 32 0 0 0 0-64H320a32 32 0 0 0 0 64z\"]]\n};\nvar faBurn = {\n prefix: 'fad',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", [\"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm83 415.6c-21.15 20.9-50.64 32.4-83 32.4s-61.87-11.5-83-32.4-33-50.31-33-82.55c0-16.3 5.1-35.18 15.17-56.11 15-31.13 41-67 77.24-106.56L192 144.65l23.59 25.73c36.28 39.57 62.27 75.43 77.24 106.56C302.9 297.87 308 316.75 308 333.05c0 32.24-11.71 61.56-33 82.55z\", \"M276 333.05c0 48.83-34.56 82.95-84 82.95s-84-34.12-84-82.95c0-11.81 4-53.81 84-141 80 87.19 84 129.19 84 141z\"]]\n};\nvar faBurrito = {\n prefix: 'fad',\n iconName: 'burrito',\n icon: [512, 512, [], \"f7ed\", [\"M351.83 224c-15.22 0-30 2.53-44.54 6.32C278.33 310.45 201.65 368 111.57 368A207 207 0 0 1 .72 335.76c-3.72 33.8 6.86 68.88 32.74 94.74L81 478a116.21 116.21 0 0 0 164.22 0l216-215.73A175.25 175.25 0 0 0 351.83 224zm-64.07-64a174.85 174.85 0 0 0-38.33-109.28l-216 215.73A115.42 115.42 0 0 0 9 302.83 175.23 175.23 0 0 0 111.57 336c97.14 0 176.19-78.95 176.19-176z\", \"M505.26 153.88A80 80 0 0 1 512 186c0 22-9.37 42-24.29 56.75A207.26 207.26 0 0 0 351.83 192a210 210 0 0 0-35.22 3A204.24 204.24 0 0 0 269 24.26C283.8 9.37 303.74 0 325.8 0A80 80 0 0 1 358 6.73a74.19 74.19 0 0 1 101.69 45.53A74.13 74.13 0 0 1 512 123a73.17 73.17 0 0 1-6.74 30.88z\"]]\n};\nvar faBus = {\n prefix: 'fad',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", [\"M352 448v32a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-32zM64 480a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-32H64zm64-192h256a32 32 0 0 0 32-32V128a32 32 0 0 0-32-32H128a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32z\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h8v160a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V256h8a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zm-392 0a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32zm16 272a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm288 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faBusAlt = {\n prefix: 'fad',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", [\"M96 160v96a32 32 0 0 0 32 32h112V128H128a32 32 0 0 0-32 32zm320 96v-96a32 32 0 0 0-32-32H272v160h112a32 32 0 0 0 32-32zM64 480a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-32H64zm288-32v32a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-32z\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h8v160a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V256h8a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zM112 400a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128-112H128a32 32 0 0 1-32-32v-96a32 32 0 0 1 32-32h112zM168 96a8 8 0 0 1-8-8V72a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H168zm104 32h112a32 32 0 0 1 32 32v96a32 32 0 0 1-32 32H272zm128 272a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faBusSchool = {\n prefix: 'fad',\n iconName: 'bus-school',\n icon: [512, 512, [], \"f5dd\", [\"M64 480a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-32H64zm288-32v32a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-32zM112 160v64a32 32 0 0 0 32 32h96V128h-96a32 32 0 0 0-32 32zm288 64v-64a32 32 0 0 0-32-32h-96v128h96a32 32 0 0 0 32-32z\", \"M488 112h-24V80c0-44.8-92.11-80-208-80S48 35.2 48 80v32H24a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h24v20.9c-9.39 5.57-16 15.38-16 27.1v128a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V288c0-11.72-6.61-21.52-16-27.1V240h24a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zM160 72a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8zm-48 312a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128-128h-96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h96zm32-128h96a32 32 0 0 1 32 32v64a32 32 0 0 1-32 32h-96zm128 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faBusinessTime = {\n prefix: 'fad',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", [\"M496 224a144 144 0 1 0 144 144 143.92 143.92 0 0 0-144-144zm64 150.29a9.74 9.74 0 0 1-9.71 9.71h-60.57a9.74 9.74 0 0 1-9.71-9.71v-76.57a9.74 9.74 0 0 1 9.71-9.71h12.57a9.74 9.74 0 0 1 9.71 9.71V352h38.29a9.74 9.74 0 0 1 9.71 9.71z\", \"M326.82 320H208a16 16 0 0 1-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43a173.64 173.64 0 0 1-12.61-128zM512 192.81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12A174.92 174.92 0 0 1 496 192c5.4 0 10.72.33 16 .81zM320 96H192V64h128zm230.29 256H512v-54.28a9.74 9.74 0 0 0-9.71-9.71h-12.57a9.74 9.74 0 0 0-9.71 9.71v76.57a9.74 9.74 0 0 0 9.71 9.71h60.57a9.74 9.74 0 0 0 9.71-9.71v-12.58a9.74 9.74 0 0 0-9.71-9.71z\"]]\n};\nvar faCabinetFiling = {\n prefix: 'fad',\n iconName: 'cabinet-filing',\n icon: [512, 512, [], \"f64b\", [\"M0 480a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V256H0zm160-112a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v40a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-24H192v24a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8zM480 0H32A32 32 0 0 0 0 32v192h512V32a32 32 0 0 0-32-32zM352 152a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-24H192v24a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-40a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16z\", \"M336 96H176a16 16 0 0 0-16 16v40a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-24h128v24a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-40a16 16 0 0 0-16-16zm0 256H176a16 16 0 0 0-16 16v40a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-24h128v24a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-40a16 16 0 0 0-16-16z\"]]\n};\nvar faCactus = {\n prefix: 'fad',\n iconName: 'cactus',\n icon: [512, 512, [], \"f8a7\", [\"M224 144a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64 224a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm176-144a48 48 0 0 0-48 48v64a16 16 0 0 1-16 16h-48v96h48a112.14 112.14 0 0 0 112-112v-64a48 48 0 0 0-48-48zM96 208v-64a48 48 0 0 0-96 0v64a112.14 112.14 0 0 0 112 112h48v-96h-48a16 16 0 0 1-16-16z\", \"M352 96a96 96 0 0 0-192 0v416h192zm-128 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm64 224a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faCalculator = {\n prefix: 'fad',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", [\"M115.2 384H76.8c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8zm0-128H76.8c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8zm128 128h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8zm0-128h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8zm128 0h-38.4c-6.4 0-12.8 6.4-12.8 12.8v166.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8V268.8c0-6.4-6.4-12.8-12.8-12.8z\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8z\"]]\n};\nvar faCalculatorAlt = {\n prefix: 'fad',\n iconName: 'calculator-alt',\n icon: [512, 512, [], \"f64c\", [\"M192 0H32A32 32 0 0 0 0 32v160a32 32 0 0 0 32 32h160a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm-16 120a8 8 0 0 1-8 8H56a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8zm16 168H32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h160a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zm-29.09 140.29a8 8 0 0 1 0 11.31l-11.31 11.31a8 8 0 0 1-11.31 0L112 422.63l-28.29 28.29a8 8 0 0 1-11.31 0L61.09 439.6a8 8 0 0 1 0-11.31L89.37 400l-28.29-28.29a8 8 0 0 1 0-11.31l11.31-11.31a8 8 0 0 1 11.31 0l28.3 28.28 28.29-28.29a8 8 0 0 1 11.31 0l11.31 11.31a8 8 0 0 1 0 11.31L134.63 400zM480 0H320a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h160a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm-16 120a8 8 0 0 1-8 8h-40v40a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-40h-40a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h40V56a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v40h40a8 8 0 0 1 8 8z\", \"M162.91 360.39l-11.31-11.31a8 8 0 0 0-11.31 0L112 377.37l-28.3-28.28a8 8 0 0 0-11.31 0L61.08 360.4a8 8 0 0 0 0 11.31L89.37 400l-28.28 28.29a8 8 0 0 0 0 11.31l11.31 11.32a8 8 0 0 0 11.31 0L112 422.63l28.29 28.28a8 8 0 0 0 11.31 0l11.31-11.31a8 8 0 0 0 0-11.31L134.63 400l28.28-28.3a8 8 0 0 0 0-11.31zM344 128h40v40a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-40V56a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zM168 96H56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm312 192H320a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h160a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zm-16 152a8 8 0 0 1-8 8H344a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8zm0-64a8 8 0 0 1-8 8H344a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8z\"]]\n};\nvar faCalendar = {\n prefix: 'fad',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm304-64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M448 112v80H0v-80a48 48 0 0 1 48-48h48v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h128v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h48a48 48 0 0 1 48 48z\"]]\n};\nvar faCalendarAlt = {\n prefix: 'fad',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm128 244a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm128 128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm128 128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm-80-180h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M448 112v80H0v-80a48 48 0 0 1 48-48h48v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h128v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h48a48 48 0 0 1 48 48z\"]]\n};\nvar faCalendarCheck = {\n prefix: 'fad',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm345.26 113l-143 141.8a12 12 0 0 1-17 0l-82.6-83.26a12 12 0 0 1 .06-17l.08-.08 28.4-28.17a12 12 0 0 1 17 0l46 46.36 106-105.19a12 12 0 0 1 17 0L345.3 288a12 12 0 0 1-.04 17zM304 128h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M345.33 288l-28.2-28.4a12 12 0 0 0-17-.1l-106 105.19-46-46.36a12 12 0 0 0-17-.09l-28.4 28.17a12 12 0 0 0-.1 17l82.6 83.26a12 12 0 0 0 17 .1l143-141.8a12 12 0 0 0 .1-17zM400 64h-48v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H160v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H48a48 48 0 0 0-48 48v80h448v-80a48 48 0 0 0-48-48z\"]]\n};\nvar faCalendarDay = {\n prefix: 'fad',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm192 176a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h96a16 16 0 0 1 16 16zm112-240h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M448 112v80H0v-80a48 48 0 0 1 48-48h48v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h128v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h48a48 48 0 0 1 48 48z\"]]\n};\nvar faCalendarEdit = {\n prefix: 'fad',\n iconName: 'calendar-edit',\n icon: [448, 512, [], \"f333\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm274.43 163.57l-95 95L131.2 456a10.17 10.17 0 0 1-11.2-9 9.93 9.93 0 0 1 0-2.18l5.4-48.2 95-95a5.07 5.07 0 0 1 7.17 0l46.8 46.8a5.07 5.07 0 0 1 .06 7.15zm55.67-55.67l-26 26a5.07 5.07 0 0 1-7.17 0l-46.8-46.8a5.07 5.07 0 0 1 0-7.17l26-26a20.22 20.22 0 0 1 28.6 0l25.4 25.4a20.22 20.22 0 0 1-.03 28.57zM112 128h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M330.1 271.3l-25.4-25.4a20.22 20.22 0 0 0-28.6 0l-26 26a5.07 5.07 0 0 0 0 7.17l46.8 46.8a5.07 5.07 0 0 0 7.17 0l26-26a20.22 20.22 0 0 0 0-28.6zm-55.7 77.1l-46.8-46.8a5.07 5.07 0 0 0-7.17 0l-95 95-5.43 48.2a10.17 10.17 0 0 0 9 11.2 9.93 9.93 0 0 0 2.18 0l48.2-5.4 95-95a5.07 5.07 0 0 0 0-7.17zM400 64h-48v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H160v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H48a48 48 0 0 0-48 48v80h448v-80a48 48 0 0 0-48-48z\"]]\n};\nvar faCalendarExclamation = {\n prefix: 'fad',\n iconName: 'calendar-exclamation',\n icon: [448, 512, [], \"f334\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm196.18 48h55.02a12 12 0 0 1 12 12v.83l-7.2 112A12 12 0 0 1 244 376h-40a12 12 0 0 1-12-11.2l-7.2-112a12.1 12.1 0 0 1 11.38-12.8zM224 472a40 40 0 1 1 40-40 40 40 0 0 1-40 40zM112 128h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M224 392a40 40 0 1 0 40 40 40 40 0 0 0-40-40zm-20-16h40a12 12 0 0 0 12-11.2l7.2-112A12 12 0 0 0 252 240h-55.2a12.1 12.1 0 0 0-12 12.18v.62l7.2 112a12 12 0 0 0 12 11.2zM400 64h-48v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H160v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H48a48 48 0 0 0-48 48v80h448v-80a48 48 0 0 0-48-48z\"]]\n};\nvar faCalendarMinus = {\n prefix: 'fad',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm328 180a12 12 0 0 1-12 12H132a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h184a12 12 0 0 1 12 12zm-24-244h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M316 320H132a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h184a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm84-256h-48v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H160v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H48a48 48 0 0 0-48 48v80h448v-80a48 48 0 0 0-48-48z\"]]\n};\nvar faCalendarPlus = {\n prefix: 'fad',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm328 180a12 12 0 0 1-12 12h-60v60a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-60h-60a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h60v-60a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v60h60a12 12 0 0 1 12 12zm-24-244h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M316 320h-60v-60a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v60h-60a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h60v60a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-60h60a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm84-256h-48v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H160v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H48a48 48 0 0 0-48 48v80h448v-80a48 48 0 0 0-48-48z\"]]\n};\nvar faCalendarStar = {\n prefix: 'fad',\n iconName: 'calendar-star',\n icon: [448, 512, [], \"f736\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm324.13 141.91a11.92 11.92 0 0 1-3.53 6.89L281 379.4l9.4 54.6a12 12 0 0 1-17.4 12.6l-49-25.8-48.9 25.8a12 12 0 0 1-17.4-12.6l9.4-54.6-39.6-38.6a12 12 0 0 1 6.6-20.5l54.7-8 24.5-49.6a12 12 0 0 1 21.5 0l24.5 49.6 54.7 8a12 12 0 0 1 10.13 13.61zM304 128h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M314 320.3l-54.7-8-24.5-49.6a12 12 0 0 0-21.5 0l-24.5 49.6-54.7 8a12 12 0 0 0-6.6 20.5l39.6 38.6-9.4 54.6a12 12 0 0 0 17.4 12.6l48.9-25.8 49 25.8a12 12 0 0 0 17.4-12.6l-9.4-54.6 39.6-38.6a12 12 0 0 0-6.6-20.5zM400 64h-48v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H160v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H48a48 48 0 0 0-48 48v80h448v-80a48 48 0 0 0-48-48z\"]]\n};\nvar faCalendarTimes = {\n prefix: 'fad',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm317.4 208.1a12 12 0 0 1 0 17l-28.3 28.3a12 12 0 0 1-17 0L224 397.3l-48.1 48.1a12 12 0 0 1-17 0l-28.3-28.3a12 12 0 0 1 0-17l48.1-48.1-48.1-48.1a12 12 0 0 1 0-17l28.3-28.3a12 12 0 0 1 17 0l48.1 48.1 48.1-48.1a12 12 0 0 1 17 0l28.3 28.3a12 12 0 0 1 0 17L269.3 352zM304 128h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M317.43 286.93l-28.3-28.3a12 12 0 0 0-17 0L224 306.7l-48.1-48.1a12 12 0 0 0-17 0l-28.3 28.3a12 12 0 0 0 0 17l48.1 48.1-48.1 48.1a12 12 0 0 0 0 17l28.3 28.3a12 12 0 0 0 17 0l48.1-48.1 48.1 48.1a12 12 0 0 0 17 0l28.3-28.3a12 12 0 0 0 0-17L269.3 352l48.1-48.1a12 12 0 0 0 .03-16.97zM400 64h-48v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H160v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V64H48a48 48 0 0 0-48 48v80h448v-80a48 48 0 0 0-48-48z\"]]\n};\nvar faCalendarWeek = {\n prefix: 'fad',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", [\"M0 192v272a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V192zm384 144a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-64a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16zm-80-208h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm-192 0h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16z\", \"M448 112v80H0v-80a48 48 0 0 1 48-48h48v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h128v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h48a48 48 0 0 1 48 48z\"]]\n};\nvar faCamcorder = {\n prefix: 'fad',\n iconName: 'camcorder',\n icon: [576, 512, [], \"f8a8\", [\"M336.2 160H96v-32a32 32 0 0 1 32-32h176a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H128a96 96 0 0 0-96 96v34.89A47.66 47.66 0 0 0 0 207.8v224.4A47.81 47.81 0 0 0 47.8 480h288.4a47.81 47.81 0 0 0 47.8-47.8V207.8a47.81 47.81 0 0 0-47.8-47.8zM320 249.6a6.41 6.41 0 0 1-6.4 6.4H70.4a6.41 6.41 0 0 1-6.4-6.4v-19.2a6.41 6.41 0 0 1 6.4-6.4h243.2a6.41 6.41 0 0 1 6.4 6.4z\", \"M525.59 165.7L416 241.3v157.4l109.59 75.5c21.21 14.6 50.41-.29 50.41-25.79V191.5c0-25.41-29.09-40.41-50.41-25.8zM313.6 224H70.4a6.41 6.41 0 0 0-6.4 6.4v19.2a6.41 6.41 0 0 0 6.4 6.4h243.2a6.41 6.41 0 0 0 6.4-6.4v-19.2a6.41 6.41 0 0 0-6.4-6.4z\"]]\n};\nvar faCamera = {\n prefix: 'fad',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", [\"M344 288a88 88 0 1 1-88-88 88.13 88.13 0 0 1 88 88z\", \"M464 96h-88l-12.4-32.9A47.93 47.93 0 0 0 318.7 32H193.2a47.93 47.93 0 0 0-44.9 31.1L136 96H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V144a48 48 0 0 0-48-48zM256 408a120 120 0 1 1 120-120 120.1 120.1 0 0 1-120 120z\"]]\n};\nvar faCameraAlt = {\n prefix: 'fad',\n iconName: 'camera-alt',\n icon: [512, 512, [], \"f332\", [\"M256 200a88 88 0 1 0 88 88 88.13 88.13 0 0 0-88-88zm0 56a32.09 32.09 0 0 0-32 32 16 16 0 0 1-32 0 64.06 64.06 0 0 1 64-64 16 16 0 0 1 0 32z\", \"M464 96h-88l-12.4-32.9A47.93 47.93 0 0 0 318.7 32H193.2a47.93 47.93 0 0 0-44.9 31.1L136 96H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V144a48 48 0 0 0-48-48zM256 408a120 120 0 1 1 120-120 120.1 120.1 0 0 1-120 120z\"]]\n};\nvar faCameraHome = {\n prefix: 'fad',\n iconName: 'camera-home',\n icon: [448, 512, [], \"f8fe\", [\"M224,96h-.05a112,112,0,1,0,.05,0Zm0,80a32,32,0,0,0-32,32,16,16,0,0,1-32,0,64.06,64.06,0,0,1,64-64,16,16,0,0,1,0,32Z\", \"M384,0H64A64,64,0,0,0,0,64V352a64,64,0,0,0,64,64h72.71L76.53,450.83c-6.9,4.33-12.5,14.45-12.5,22.6v11.9A26.68,26.68,0,0,0,90.7,512H357.37A26.68,26.68,0,0,0,384,485.33V473.45c0-8.17-5.65-18.3-12.58-22.62L311.28,416H384a64,64,0,0,0,64-64V64A64,64,0,0,0,384,0ZM224,352h-.05a144,144,0,1,1,.05,0Z\"]]\n};\nvar faCameraMovie = {\n prefix: 'fad',\n iconName: 'camera-movie',\n icon: [576, 512, [], \"f8a9\", [\"M368.2 288H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h48v112.2a47.81 47.81 0 0 0 47.8 47.8h256.4a47.81 47.81 0 0 0 47.8-47.8V335.8a47.81 47.81 0 0 0-47.8-47.8zM128 192a64 64 0 1 0-64-64 64.07 64.07 0 0 0 64 64zm224 0a64 64 0 1 0-64-64 64.07 64.07 0 0 0 64 64z\", \"M535.68 260.59L448 321.07V447l87.68 60.4c17 11.68 40.32-.23 40.32-20.64V281.23c0-20.33-23.27-32.33-40.32-20.64zM352 0c-48.57 0-90.31 27.37-112 67.24C218.31 27.37 176.57 0 128 0a128 128 0 0 0 0 256h224a128 128 0 0 0 0-256zM128 192a64 64 0 1 1 64-64 64.07 64.07 0 0 1-64 64zm224 0a64 64 0 1 1 64-64 64.07 64.07 0 0 1-64 64z\"]]\n};\nvar faCameraPolaroid = {\n prefix: 'fad',\n iconName: 'camera-polaroid',\n icon: [576, 512, [], \"f8aa\", [\"M570.63 343.94L512 256V80a48 48 0 0 0-48-48H112a48 48 0 0 0-48 48v176L5.38 343.94A31.8 31.8 0 0 0 1.57 352h572.86a32.12 32.12 0 0 0-3.8-8.06zM288 256a64 64 0 1 1 64-64 64.1 64.1 0 0 1-64 64zm152-112a8 8 0 0 1-8 8h-32a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8z\", \"M574.43 352H1.57A31.76 31.76 0 0 0 0 361.69V448a32 32 0 0 0 32 32h512a32 32 0 0 0 32-32v-86.31a31.76 31.76 0 0 0-1.57-9.69zM480 408a8 8 0 0 1-8 8H104a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h368a8 8 0 0 1 8 8zM288 256a64 64 0 1 0-64-64 64.1 64.1 0 0 0 64 64z\"]]\n};\nvar faCameraRetro = {\n prefix: 'fad',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", [\"M256 232a88 88 0 1 0 88 88 88 88 0 0 0-88-88zm0 56a32.09 32.09 0 0 0-32 32 16 16 0 0 1-32 0 64.06 64.06 0 0 1 64-64 16 16 0 0 1 0 32zM480 32H256l-64 48H16A16 16 0 0 0 0 96v64h512V64a32.09 32.09 0 0 0-32-32z\", \"M176 48a16 16 0 0 0-16-16H64a16 16 0 0 0-16 16v32h128zM0 160v272a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V160zm256 280a120 120 0 1 1 120-120 120 120 0 0 1-120 120z\"]]\n};\nvar faCampfire = {\n prefix: 'fad',\n iconName: 'campfire',\n icon: [512, 512, [], \"f6ba\", [\"M320 32a377.71 377.71 0 0 0-36.14 37.48A489.51 489.51 0 0 0 220 0c-63.17 57-108 131.22-108 176a144 144 0 0 0 288 0c0-33.29-33.42-102-80-144zm-16.79 208.57A79.7 79.7 0 0 1 256 256c-44.11 0-80-30.49-80-80 0-24.66 14.86-46.39 44.5-83.52 4.23 5.09 60.42 80.06 60.42 80.06l35.84-42.72c2.53 4.37 4.83 8.65 6.89 12.76 16.71 33.33 9.66 75.99-20.44 97.99z\", \"M511.28 470.21l-9.35 30.55a15.61 15.61 0 0 1-19.62 10.5L256 439 29.69 511.26a15.61 15.61 0 0 1-19.62-10.5L.72 470.21a16.06 16.06 0 0 1 10.28-20l140-44.68-140-44.72a16.06 16.06 0 0 1-10.28-20l9.35-30.55a15.61 15.61 0 0 1 19.62-10.5L256 372l226.31-72.24a15.61 15.61 0 0 1 19.62 10.5l9.35 30.55a16.06 16.06 0 0 1-10.28 20l-140 44.68 140 44.68a16.06 16.06 0 0 1 10.28 20.04z\"]]\n};\nvar faCampground = {\n prefix: 'fad',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", [\"M640 464v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h608a16 16 0 0 1 16 16z\", \"M40.68 448l239.79-330.25-53.41-73.55a16 16 0 0 1 3.54-22.35l25.88-18.8a16 16 0 0 1 22.35 3.55L320 63.3l41.16-56.69a16 16 0 0 1 22.35-3.55l25.9 18.79A16 16 0 0 1 413 44.2l-53.41 73.55L599.32 448h-163L320 288 203.64 448z\"]]\n};\nvar faCandleHolder = {\n prefix: 'fad',\n iconName: 'candle-holder',\n icon: [448, 512, [], \"f6bc\", [\"M160 192c45.93 0 78-32.61 78-79.29 0-30-32.59-74.89-78-112.71-45.62 38-78 82.84-78 112.71 0 46.68 32.07 79.29 78 79.29zm216 176a72.08 72.08 0 0 0-72 72 71.11 71.11 0 0 0 4.42 24H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h360a72 72 0 0 0 0-144zm0 96a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M256 256v208H64V256a32 32 0 0 1 32-32h32v48a16 16 0 0 0 32 0v-48h64a32 32 0 0 1 32 32z\"]]\n};\nvar faCandyCane = {\n prefix: 'fad',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", [\"M86.71 355.33l122.12 76.32 75.66-45-122.1-76.31zM15.57 397.6a32 32 0 0 0-11 43.9l32.8 54.9a32.05 32.05 0 0 0 27.5 15.6 32.7 32.7 0 0 0 16.4-4.5l96.62-57.45-122.13-76.33zm249.3-259.8a32.05 32.05 0 0 0 27.5 15.6 32.7 32.7 0 0 0 16.4-4.5l18.91-11.27-41.13-123.38a160 160 0 0 0-16 8.35L243.07 39a32 32 0 0 0-11 43.9zm95.54-8.8l93.11-93.11A160.26 160.26 0 0 0 316.87 4l41.5 124.51c.69.14 1.37.28 2.04.49zm137.06-37a162.39 162.39 0 0 0-21.26-33.58l-92.74 92.73c.26.89.48 1.79.66 2.69l123.2 41.07c8.27-33.67 5.82-69.75-9.86-102.91zM193.34 292l122.09 76.3 75.65-45L269 247zm175.83-104.5L300 228.62l122 76.28 6.55-3.9a173 173 0 0 0 68.17-75.89l-123-41a32 32 0 0 1-4.55 3.39z\", \"M336.27 132.5a31.46 31.46 0 0 1 16.4-4.5 31.89 31.89 0 0 1 5.7.52L316.87 4a159.24 159.24 0 0 0-30.32 10.24l41.13 123.38zM55.76 373.72l122.13 76.33 30.94-18.4-122.12-76.32zM380.17 143.6a31.62 31.62 0 0 1 3.3 7.55l92.74-92.73a159.17 159.17 0 0 0-22.69-22.57L360.41 129a32 32 0 0 1 19.76 14.6zM162.39 310.36l122.1 76.31 30.94-18.4L193.34 292zM269 247l122.06 76.28L422 304.9l-122-76.28zm115.11-93.17a32.2 32.2 0 0 1-10.35 30.28l123 41a167.3 167.3 0 0 0 10.59-30.2z\"]]\n};\nvar faCandyCorn = {\n prefix: 'fad',\n iconName: 'candy-corn',\n icon: [640, 512, [], \"f6bd\", [\"M480 0C314.2 1.62 315.53 39.53 322.12 72.44c3.47 17.35 7.44 35.26 11.74 53.32 32.89-7 81.71-13.93 146.74-13.93 64.28 0 112.74 6.76 145.61 13.7 4.28-18 8.22-35.8 11.68-53.09C644.48 39.53 645.81 1.62 480 0zm-94 294.9c28.24 70.05 61.05 121 93.88 121h.12c32.87-.09 65.71-51.07 94-121.18-23.91-3.86-55-7-93.5-7-39.04.03-70.5 3.18-94.5 7.18zM288.81 409c-27.59 27.57-47.55 52-61.81 71.83 69.55 29.6 128.78 42.42 152 19.22l.08-.09c23.17-23.3 10.35-82.55-19.25-152.13C340.22 362 316 381.77 288.81 409zm-41-263.5c-18.62-27.94-44.5-55.68-162.89 60.38C-31.16 324.21-3.4 350.07 24.54 368.69c14.72 9.81 30.19 19.67 46 29.39 18.31-28.19 47.93-67.59 93.91-113.57C209.9 239.07 249 209.6 277.1 191.26c-9.69-15.74-19.5-31.12-29.28-45.78z\", \"M480.6 143.83c-61.87 0-108 6.6-139 13.15 12.58 48.29 27.69 96.43 44.41 137.92 24-3.92 55.46-7.11 94.5-7.11 38.49 0 69.59 3.1 93.5 7 16.73-41.47 31.85-89.63 44.44-138-31-6.57-76.75-13-137.85-13zM187.09 307.14c-43.75 43.74-71.7 81-89 107.55 43.06 25.31 87.8 48.62 128.91 66.14 14.24-19.76 34.2-44.23 61.79-71.82 27.22-27.21 51.41-47 71-61.18-17.5-41.15-40.87-85.89-66.15-129-26.42 17.25-63.36 45-106.57 88.27z\"]]\n};\nvar faCannabis = {\n prefix: 'fad',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", [\"M512 374.4a16 16 0 0 1-8.51 14.15c-2.49 1.29-60.77 31.72-133.49 31.72q-9.19 0-17.5-.31c11.36 22.23 16.52 38.31 16.81 39.22a16 16 0 0 1-20 20.1c-1.83-.58-37.72-12-77.3-39.29V280a8 8 0 0 0-8-8H248a8 8 0 0 0-8 8v160c-39.58 27.3-75.47 38.72-77.3 39.29a16 16 0 0 1-20-20.1c.29-.91 5.44-17 16.81-39.22-5.54.21-11.36.31-17.5.31-72.73 0-131-30.43-133.49-31.72a16 16 0 0 1 0-28.29c1.57-.82 32.39-16.89 76.78-25.81C21.06 259.32 1.26 172.77.38 168.8a16 16 0 0 1 19.05-19.09c3.89.86 86.55 19.6 160.58 79.76v-4.4c0-118.79 60-213.72 62.53-217.7a16 16 0 0 1 26.93 0c2.55 4 62.53 98.91 62.53 217.7v4.4c74-60.17 156.7-78.91 160.58-79.76a15.56 15.56 0 0 1 3.44-.38 16 16 0 0 1 15.62 19.47c-.88 4-20.68 90.52-84.93 165.64 44.39 8.92 75.22 25 76.78 25.81A16 16 0 0 1 512 374.4z\", \"M272 280v224a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V280a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8z\"]]\n};\nvar faCapsules = {\n prefix: 'fad',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", [\"M112 32A112 112 0 0 0 0 144v112h224V144A112 112 0 0 0 112 32zm312.2 80.8a114.33 114.33 0 0 0-159.3-28.1c-3.12 2.18-6.07 4.51-8.9 6.94v179.67l47 67.1 187.38-131.06z\", \"M0 368a112 112 0 0 0 224 0V256H0zm555.3-67.9l-64.92-92.75L303 338.41l65 92.79a114.31 114.31 0 1 0 187.3-131.1z\"]]\n};\nvar faCar = {\n prefix: 'fad',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", [\"M319.5 128a48 48 0 0 1 44.57 30.17L384 208H128l19.93-49.83A48 48 0 0 1 192.5 128zM80 384a63.82 63.82 0 0 1-47.57-21.2A31.82 31.82 0 0 0 32 368v48a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-32zm352 0h-48v32a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-48a31.82 31.82 0 0 0-.43-5.2A63.82 63.82 0 0 1 432 384z\", \"M500 176h-59.88l-16.64-41.6A111.43 111.43 0 0 0 319.5 64h-127a111.47 111.47 0 0 0-104 70.4L71.87 176H12A12 12 0 0 0 .37 190.91l6 24A12 12 0 0 0 18 224h20.08A63.55 63.55 0 0 0 16 272v48a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-48a63.58 63.58 0 0 0-22.07-48H494a12 12 0 0 0 11.64-9.09l6-24A12 12 0 0 0 500 176zm-352.07-17.83A48 48 0 0 1 192.5 128h127a48 48 0 0 1 44.57 30.17L384 208H128zM96 256c19.2 0 48 28.71 48 47.85s-28.8 15.95-48 15.95-32-12.8-32-31.9S76.8 256 96 256zm272 47.85c0-19.14 28.8-47.85 48-47.85s32 12.76 32 31.9-12.8 31.9-32 31.9-48 3.2-48-15.95z\"]]\n};\nvar faCarAlt = {\n prefix: 'fad',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", [\"M176.5,128h127a48,48,0,0,1,44.57,30.17L368,208H112l19.93-49.83A48,48,0,0,1,176.5,128ZM416,384H368v32a32,32,0,0,0,32,32h32a32,32,0,0,0,32-32V368a31.28,31.28,0,0,0-.43-5.2A63.81,63.81,0,0,1,416,384ZM64,384a63.81,63.81,0,0,1-47.57-21.2A31.28,31.28,0,0,0,16,368v48a32,32,0,0,0,32,32H80a32,32,0,0,0,32-32V384Z\", \"M438.66,212.33,407.49,134.4A111.47,111.47,0,0,0,303.5,64h-127a111.47,111.47,0,0,0-104,70.4L41.34,212.33A63.88,63.88,0,0,0,0,272v48a64,64,0,0,0,64,64H416a64,64,0,0,0,64-64V272A63.88,63.88,0,0,0,438.66,212.33ZM131.93,158.17A48,48,0,0,1,176.5,128h127a48,48,0,0,1,44.57,30.17L368,208H112ZM80,319.8c-19.2,0-32-12.76-32-31.9S60.8,256,80,256s48,28.71,48,47.85S99.2,319.8,80,319.8Zm320,0c-19.2,0-48,3.19-48-15.95S380.8,256,400,256s32,12.76,32,31.9S419.2,319.8,400,319.8Z\"]]\n};\nvar faCarBattery = {\n prefix: 'fad',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", [\"M176 64H80a16 16 0 0 0-16 16v48h128V80a16 16 0 0 0-16-16zm256 0h-96a16 16 0 0 0-16 16v48h128V80a16 16 0 0 0-16-16z\", \"M480 128H32a32 32 0 0 0-32 32v256a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zM192 264a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8zm256 0a8 8 0 0 1-8 8h-40v40a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-40h-40a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h40v-40a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v40h40a8 8 0 0 1 8 8z\"]]\n};\nvar faCarBuilding = {\n prefix: 'fad',\n iconName: 'car-building',\n icon: [640, 512, [], \"f859\", [\"M213.52 455.07A88.41 88.41 0 0 1 192 397.24v-28.69a89.11 89.11 0 0 1 42.09-75.84l7.55-20.71H220a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a11.79 11.79 0 0 1 9.43 4.92A131.1 131.1 0 0 1 352 162.18V32a32 32 0 0 0-32-32H32A32 32 0 0 0 0 32v464a16 16 0 0 0 16 16h205.06a59.85 59.85 0 0 1-7.54-28.69zM208 92a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12zm-64 296a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12V92a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\", \"M604.58 315.56L600 304.2l-17.87-49.08a99.92 99.92 0 0 0-93.2-63.12H375.07a99.94 99.94 0 0 0-93.24 63.12L264 304.2l-4.55 11.35a57.41 57.41 0 0 0-35.42 53v28.69a57.05 57.05 0 0 0 21.51 44.46v41.61A28.71 28.71 0 0 0 274.21 512h28.69a28.69 28.69 0 0 0 28.68-28.69V448h200.83v35.31A28.7 28.7 0 0 0 561.1 512h28.69a28.7 28.7 0 0 0 28.69-28.69V441.7A57 57 0 0 0 640 397.24v-28.69a57.39 57.39 0 0 0-35.42-52.99zM335.11 284c6.53-16.92 22.36-28 40-28h113.82c17.6 0 33.42 11.1 40 28L541 320H323zM300 407.85c-14.4 0-24-9.57-24-23.93S285.6 360 300 360s36 21.53 36 35.89-21.6 11.96-36 11.96zm264 0c-14.4 0-36 2.39-36-12S549.6 360 564 360s24 9.57 24 23.92-9.6 23.93-24 23.93z\"]]\n};\nvar faCarBump = {\n prefix: 'fad',\n iconName: 'car-bump',\n icon: [576, 512, [], \"f5e0\", [\"M329.76 150.49l-216.3 94.28L85.53 257l-2-55.14a49.27 49.27 0 0 1 29.79-46.89l65.2-28.42 56-24.39a50.64 50.64 0 0 1 55.26 9.83zM159.8 422.4l-45.79 20a67.43 67.43 0 0 1-54.33-.15 33.22 33.22 0 0 0 1.78 5.07l20.26 45.08a33.57 33.57 0 0 0 44 16.78l30.53-13.31a32.7 32.7 0 0 0 17-43.39zm326.48-166.12A65.93 65.93 0 0 1 449.84 296L404 316l13.55 30a33.58 33.58 0 0 0 44 16.77l30.53-13.3a32.71 32.71 0 0 0 17-43.39L488.88 261a32.85 32.85 0 0 0-2.6-4.72z\", \"M575.67 492.44c-9.07-43.75-48.42-76.67-95.58-76.67s-86.51 32.92-95.58 76.67c-2.06 9.92 5.84 19.27 16.13 19.27h158.9c10.28 0 18.19-9.36 16.13-19.27zm-91.78-283.23l-13.5-30.09-6.76-15c-11.53-25.7-37.74-40.31-64.62-38.9l-62.63-60.3a117.56 117.56 0 0 0-128.92-22.98L86.3 94.75c-43.95 19.16-71.23 62.11-69.51 109.43l3.15 86.22a65 65 0 0 0-14.25 73.29l6.75 15 13.5 30.08C40.86 442 80.29 457.06 114 442.36L449.84 296c33.72-14.71 48.97-53.57 34.05-86.79zM102.18 375.36c-18.32 8-35.92 1.31-44-16.69s-1.25-35.31 17.06-43.29 57.92 7 66 25-20.74 26.99-39.06 34.98zM85.53 257l-2-55.14a49.27 49.27 0 0 1 29.79-46.89l121.16-52.81a50.64 50.64 0 0 1 55.26 9.82l40 38.56zm322-14.66c-18.32 8-44.45 23-52.53 5s7.28-57 25.6-64.94 35.92-1.31 44 16.68 1.2 35.22-17.12 43.21z\"]]\n};\nvar faCarBus = {\n prefix: 'fad',\n iconName: 'car-bus',\n icon: [640, 512, [], \"f85a\", [\"M176 0C78 0 0 27.66 0 62.86v259.81A29.33 29.33 0 0 0 29.34 352H40v32a32 32 0 0 0 32 32h23.17a32 32 0 0 0 32-32v-32h67c4.63-24.49 18.73-46.08 40-59.29l18-49.48a134.44 134.44 0 0 1 9.6-19.23H192V80h81.34A14.67 14.67 0 0 1 288 94.67v98.07a131.26 131.26 0 0 1 64-30.56V62.86C352 27.66 274.05 0 176 0zM80 312a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm80-88H78.66A14.67 14.67 0 0 1 64 209.33V94.67A14.67 14.67 0 0 1 78.66 80H160z\", \"M604.58 315.56L600 304.2l-17.87-49.08a99.92 99.92 0 0 0-93.2-63.12H375.07a99.92 99.92 0 0 0-93.23 63.12L264 304.2l-4.55 11.36a57.39 57.39 0 0 0-35.42 53v28.69a57 57 0 0 0 21.52 44.46V480a32 32 0 0 0 32 32h22.07a32 32 0 0 0 32-32v-32h200.79v32a32 32 0 0 0 32 32h22.07a32 32 0 0 0 32-32v-38.3A57 57 0 0 0 640 397.24v-28.69a57.39 57.39 0 0 0-35.42-52.99zM335.11 284c6.53-16.92 22.36-28 40-28h113.82c17.6 0 33.42 11.1 40 28L541 320H323zM300 407.85c-14.4 0-24-9.57-24-23.92S285.6 360 300 360s36 21.53 36 35.89-21.6 11.96-36 11.96zm264 0c-14.4 0-36 2.39-36-12S549.6 360 564 360s24 9.57 24 23.93-9.6 23.92-24 23.92z\"]]\n};\nvar faCarCrash = {\n prefix: 'fad',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", [\"M545.44 262.61l-247.93-63.75 31.71-43.3a48 48 0 0 1 50.68-18.12l123 31.62a48 48 0 0 1 35.66 40.32zm-334.1-109.53l10.71-14.32 32.15-43c2.48-3.31 5.2-6.35 7.91-9.4l11.33-56.16a9 9 0 0 0-14.62-8.77l-60.4 49.71a9.06 9.06 0 0 1-13.29-2l-43.3-65.09a9.05 9.05 0 0 0-16.55 4.14l-7.55 77.86a9.05 9.05 0 0 1-10.8 8L30.25 78.61a9.05 9.05 0 0 0-8.78 14.62l49.71 60.41a9.06 9.06 0 0 1-2 13.29l-65.13 43.3a9 9 0 0 0 4.14 16.54l77.86 7.55a9 9 0 0 1 8 10.79l-15.44 76.68a9 9 0 0 0 14.62 8.77l35.2-29a94.29 94.29 0 0 1 2.41-34.39l12.42-46.37a96.46 96.46 0 0 1 68.08-67.72zM548.11 445l-46.49-12-8 31a32 32 0 0 0 23 39l31 8a32 32 0 0 0 39-23l12-46.49a32.9 32.9 0 0 0 .88-5.14 63.82 63.82 0 0 1-51.39 8.63zM207.2 357.36A63.8 63.8 0 0 1 166.4 325a32.23 32.23 0 0 0-1.71 4.93l-11.95 46.47a32 32 0 0 0 23 39l31 8a32 32 0 0 0 39-23l8-31z\", \"M612.8 284.4L602 201.16a111.45 111.45 0 0 0-83.18-94.08l-123-31.62a111.47 111.47 0 0 0-118.25 42.28L228 185.46A63.85 63.85 0 0 0 173.1 233l-4 15.5-8 31a64 64 0 0 0 46 77.92L548.11 445A64 64 0 0 0 626 399l8-31 4-15.5a63.84 63.84 0 0 0-25.2-68.1zM329.22 155.56a48 48 0 0 1 50.68-18.12l123 31.63a48 48 0 0 1 35.65 40.31l6.9 53.23-247.94-63.75zm-90.55 143.61c-18.59-4.78-27.81-20.33-23-38.87s20.34-27.7 38.93-22.92 39.34 39.76 34.57 58.29-31.9 8.33-50.5 3.5zm309.92 79.68c-18.59-4.78-47.28-8.86-42.51-27.4s39.81-39.17 58.4-34.39 27.82 20.33 23 38.87-20.29 27.7-38.89 22.92z\"]]\n};\nvar faCarGarage = {\n prefix: 'fad',\n iconName: 'car-garage',\n icon: [640, 512, [], \"f5e2\", [\"M428.07 254.18L441.6 288H198.4l13.53-33.82A48 48 0 0 1 256.5 224h127a48 48 0 0 1 44.57 30.18zM152 448a63.71 63.71 0 0 1-40-14.06V480a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-32zm479.76-279.77L331.67 3a24 24 0 0 0-23.34 0L8.24 168.23A16 16 0 0 0 2 190l7.8 14a16 16 0 0 0 21.79 6.22L320 51.53l288.41 158.73A16 16 0 0 0 630.2 204l7.8-14a16 16 0 0 0-6.24-21.77zM488 448h-56v32a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-46.06A63.71 63.71 0 0 1 488 448z\", \"M512.49 292.91l-5.07-12.67-19.93-49.83a111.47 111.47 0 0 0-104-70.4h-127a111.46 111.46 0 0 0-104 70.4l-19.93 49.82-5.07 12.67A64 64 0 0 0 88 352v32a64 64 0 0 0 64 64h336a64 64 0 0 0 64-64v-32a64 64 0 0 0-39.51-59.09zm-300.56-38.73A48 48 0 0 1 256.5 224h127a48 48 0 0 1 44.57 30.17L441.6 288H198.4zM160 399.8c-19.2 0-32-12.76-32-31.9s12.8-31.9 32-31.9 48 28.71 48 47.85-28.8 15.95-48 15.95zm352-31.9c0 19.14-12.8 31.9-32 31.9s-48 3.19-48-15.95S460.8 336 480 336s32 12.76 32 31.9z\"]]\n};\nvar faCarMechanic = {\n prefix: 'fad',\n iconName: 'car-mechanic',\n icon: [512, 512, [], \"f5e3\", [\"M144 448v32a32 32 0 0 1-32 32H80a32 32 0 0 1-32-32v-46.06A63.71 63.71 0 0 0 88 448zm175.5-224h-127a48 48 0 0 0-44.57 30.17L134.4 288h243.2l-13.53-33.82A48 48 0 0 0 319.5 224zM424 448h-56v32a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-46.06A63.71 63.71 0 0 1 424 448zm79.91-344h-56l-24-24 24-24h56a8.09 8.09 0 0 0 7.25-11.64 79.52 79.52 0 0 0-86.85-42.87c-25.65 4.86-46.72 23-57.05 46.51H145C132.63 19.83 104.81 0 72.07 0A79.48 79.48 0 0 0 .84 44.37 8.09 8.09 0 0 0 8.09 56h56l24 24-24 24h-56a8.09 8.09 0 0 0-7.25 11.64 79.52 79.52 0 0 0 86.84 42.87c25.65-4.86 46.73-23 57-46.51H367c12.38 28.17 40.2 48 72.94 48a79.48 79.48 0 0 0 71.23-44.37 8.08 8.08 0 0 0-7.26-11.63z\", \"M448.49 292.91l-5.07-12.67-19.93-49.83a111.47 111.47 0 0 0-104-70.4h-127a111.46 111.46 0 0 0-104 70.4l-19.91 49.82-5.07 12.67A64 64 0 0 0 24 352v32a64 64 0 0 0 64 64h336a64 64 0 0 0 64-64v-32a64 64 0 0 0-39.51-59.09zm-300.56-38.73A48 48 0 0 1 192.5 224h127a48 48 0 0 1 44.57 30.17L377.6 288H134.4zM96 399.8c-19.2 0-32-12.76-32-31.9S76.8 336 96 336s48 28.71 48 47.85-28.8 15.95-48 15.95zm352-31.9c0 19.14-12.8 31.9-32 31.9s-48 3.19-48-15.95S396.8 336 416 336s32 12.76 32 31.9z\"]]\n};\nvar faCarSide = {\n prefix: 'fad',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", [\"M144 320a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm352 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80zM369.24 96H280v96h166zm-252.31 96H232V96h-76.67z\", \"M16 384h17.14a112 112 0 0 1 221.72 0h130.28a112 112 0 0 1 221.72 0H624a16 16 0 0 0 16-16v-80a96 96 0 0 0-96-96h-16L419.22 56a64 64 0 0 0-50-24H155.33a64 64 0 0 0-59.42 40.23L48 194.26A63.85 63.85 0 0 0 0 256v112a16 16 0 0 0 16 16zM280 96h89.24L446 192H280zm-124.67 0H232v96H116.93z\"]]\n};\nvar faCarTilt = {\n prefix: 'fad',\n iconName: 'car-tilt',\n icon: [640, 512, [], \"f5e5\", [\"M519.94 131a32.28 32.28 0 0 1 4 3.37l33.94 33.94a32 32 0 0 1 0 45.26l-22.63 22.62a32 32 0 0 1-45.25 0l-22.63-22.62 33.94-33.95A63.78 63.78 0 0 0 519.94 131zM293.57 68a48 48 0 0 0-52.85 10.18L150.92 168a48 48 0 0 0-10.18 52.85l21.14 49.32 181-181zM624 448H317.27a32 32 0 0 0-8.27-30.79l-22.63-22.62-33.94 33.94a63.86 63.86 0 0 1-48.62 18.65c.2.27.4.55.61.82H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M501.29 89.11l-22.63-22.62-11.31-11.32a63.86 63.86 0 0 0-71.42-13L318.78 9.15A111.44 111.44 0 0 0 195.47 32.9l-89.8 89.8A111.47 111.47 0 0 0 81.91 246L115 323.16a63.88 63.88 0 0 0 13 71.43l11.31 11.31 22.63 22.63a64 64 0 0 0 90.51 0l248.9-248.91a64 64 0 0 0-.06-90.51zm-283 282.71c-13.58 13.58-31.65 13.6-45.19.07s-13.5-31.61.07-45.18 54.24-13.64 67.78-.11-9.07 31.64-22.64 45.22zm-56.41-101.69l-21.14-49.32A48 48 0 0 1 150.92 168l89.8-89.81A48 48 0 0 1 293.57 68l49.33 21.11zm282.7-124.59c-13.58 13.58-31.69 36.2-45.22 22.67s-13.47-54.2.11-67.78 31.65-13.6 45.18-.07 13.51 31.64-.07 45.18z\"]]\n};\nvar faCarWash = {\n prefix: 'fad',\n iconName: 'car-wash',\n icon: [464, 512, [], \"f5e6\", [\"M349.33,85.33C349.33,61.77,392,0,392,0s42.67,61.77,42.67,85.33a42.67,42.67,0,0,1-85.34,0ZM400,448H344v32a32,32,0,0,0,32,32h32a32,32,0,0,0,32-32V433.94A63.67,63.67,0,0,1,400,448ZM232,128a42.66,42.66,0,0,0,42.67-42.65v0C274.67,61.76,232,0,232,0s-42.67,61.77-42.67,85.33A42.69,42.69,0,0,0,232,128ZM340.07,254.18A48,48,0,0,0,295.5,224h-127a48,48,0,0,0-44.57,30.17L110.4,288H353.6ZM72,128a42.66,42.66,0,0,0,42.67-42.65v0C114.67,61.76,72,0,72,0S29.33,61.77,29.33,85.33A42.69,42.69,0,0,0,72,128ZM64,448a63.67,63.67,0,0,1-40-14.06V480a32,32,0,0,0,32,32H88a32,32,0,0,0,32-32V448Z\", \"M424.49,292.91l-5.07-12.67-19.93-49.83a111.47,111.47,0,0,0-104-70.4h-127a111.45,111.45,0,0,0-104,70.4L44.58,280.23,39.51,292.9A64,64,0,0,0,0,352v32a64,64,0,0,0,64,64H400a64,64,0,0,0,64-64V352A64,64,0,0,0,424.49,292.91ZM123.93,254.18A48,48,0,0,1,168.5,224h127a48,48,0,0,1,44.57,30.17L353.6,288H110.4ZM72,399.8c-19.2,0-32-12.76-32-31.9S52.8,336,72,336s48,28.71,48,47.85S91.2,399.8,72,399.8Zm352-31.9c0,19.14-12.8,31.9-32,31.9s-48,3.19-48-15.95S372.8,336,392,336,424,348.76,424,367.9Z\"]]\n};\nvar faCaravan = {\n prefix: 'fad',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", [\"M256,192V128a32,32,0,0,0-32-32H96a32,32,0,0,0-32,32v64a32,32,0,0,0,32,32H224A32,32,0,0,0,256,192ZM416,96H352a32,32,0,0,0-32,32V283.71A171.28,171.28,0,0,1,343.42,320H448V128A32,32,0,0,0,416,96Zm0,144a16,16,0,1,1,16-16A16,16,0,0,1,416,240ZM192,304a88,88,0,1,0,88,88A88,88,0,0,0,192,304Z\", \"M624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64h8.81C77,321.53,128.47,272,192,272s115,49.53,119.19,112H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM256,192a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H343.42A171.28,171.28,0,0,0,320,283.71V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]]\n};\nvar faCaravanAlt = {\n prefix: 'fad',\n iconName: 'caravan-alt',\n icon: [640, 512, [], \"e000\", [\"M256,192V128a32,32,0,0,0-32-32H96a32,32,0,0,0-32,32v64a32,32,0,0,0,32,32H224A32,32,0,0,0,256,192ZM416,96H352a32,32,0,0,0-32,32v64a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V128A32,32,0,0,0,416,96ZM192,304a88,88,0,1,0,88,88A88,88,0,0,0,192,304Z\", \"M624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64h8.81C77,321.53,128.47,272,192,272s115,49.53,119.19,112H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM256,192a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32Zm192,0a32,32,0,0,1-32,32H352a32,32,0,0,1-32-32V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]]\n};\nvar faCaretCircleDown = {\n prefix: 'fad',\n iconName: 'caret-circle-down',\n icon: [512, 512, [], \"f32d\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm131.5 220.5l-123 123a12 12 0 0 1-17 0l-123-123A12 12 0 0 1 133 208h246a12 12 0 0 1 8.5 20.5z\", \"M387.5 228.5l-123 123a12 12 0 0 1-17 0l-123-123A12 12 0 0 1 133 208h246a12 12 0 0 1 8.5 20.5z\"]]\n};\nvar faCaretCircleLeft = {\n prefix: 'fad',\n iconName: 'caret-circle-left',\n icon: [512, 512, [], \"f32e\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm48 371a12 12 0 0 1-20.5 8.5l-123-123a12 12 0 0 1 0-17l123-123A12 12 0 0 1 304 133z\", \"M304 379a12 12 0 0 1-20.5 8.5l-123-123a12 12 0 0 1 0-17l123-123A12 12 0 0 1 304 133z\"]]\n};\nvar faCaretCircleRight = {\n prefix: 'fad',\n iconName: 'caret-circle-right',\n icon: [512, 512, [], \"f330\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm95.5 256.5l-123 123A12 12 0 0 1 208 379V133a12 12 0 0 1 20.5-8.5l123 123a12 12 0 0 1 0 17z\", \"M351.5 264.5l-123 123A12 12 0 0 1 208 379V133a12 12 0 0 1 20.5-8.5l123 123a12 12 0 0 1 0 17z\"]]\n};\nvar faCaretCircleUp = {\n prefix: 'fad',\n iconName: 'caret-circle-up',\n icon: [512, 512, [], \"f331\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm123 296H133a12 12 0 0 1-8.5-20.5l123-123a12 12 0 0 1 17 0l123 123A12 12 0 0 1 379 304z\", \"M379 304H133a12 12 0 0 1-8.5-20.5l123-123a12 12 0 0 1 17 0l123 123A12 12 0 0 1 379 304z\"]]\n};\nvar faCaretDown = {\n prefix: 'fad',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", [\"M160 168h128.92c17.85 0 26.8 22.48 14.17 35.63L174.17 337.89c-.26.28-.53.54-.8.8A19.41 19.41 0 0 1 160 344z\", \"M160 344a19.41 19.41 0 0 1-13.37-5.29c-.27-.26-.54-.52-.8-.8L16.91 203.63C4.28 190.48 13.23 168 31.08 168H160z\"]]\n};\nvar faCaretLeft = {\n prefix: 'fad',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", [\"M184 256v128.91c0 17.85-22.48 26.8-35.63 14.17L14.1 270.16l-.8-.8A19.41 19.41 0 0 1 8 256z\", \"M8 256a19.39 19.39 0 0 1 5.29-13.36c.26-.28.53-.55.8-.81L148.36 112.9c13.15-12.63 35.63-3.68 35.63 14.17V256z\"]]\n};\nvar faCaretRight = {\n prefix: 'fad',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", [\"M184 256a19.41 19.41 0 0 1-5.29 13.37l-.8.8L43.64 399.08C30.49 411.71 8 402.76 8 384.91V256z\", \"M8 256V127.07c0-17.85 22.48-26.8 35.63-14.17L177.9 241.82c.27.26.54.53.8.81A19.39 19.39 0 0 1 184 256z\"]]\n};\nvar faCaretSquareDown = {\n prefix: 'fad',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-51.37 182.31L232.06 348.16a10.38 10.38 0 0 1-16.12 0L99.37 214.31C92.17 206 97.28 192 107.43 192h233.14c10.15 0 15.26 14 8.06 22.31z\", \"M348.63 214.31L232.06 348.16a10.38 10.38 0 0 1-16.12 0L99.37 214.31C92.17 206 97.28 192 107.43 192h233.14c10.15 0 15.26 14 8.06 22.31z\"]]\n};\nvar faCaretSquareLeft = {\n prefix: 'fad',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM288 372.6c0 10.14-14.07 15.21-22.29 8L131.82 264a10.38 10.38 0 0 1 0-16.08l133.89-116.57c8.22-7.16 22.29-2.09 22.29 8.05z\", \"M288 372.6c0 10.14-14.07 15.21-22.29 8L131.82 264a10.38 10.38 0 0 1 0-16.08l133.89-116.57c8.22-7.16 22.29-2.09 22.29 8.05z\"]]\n};\nvar faCaretSquareRight = {\n prefix: 'fad',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-83.82 232L182.29 380.65c-8.22 7.16-22.29 2.09-22.29-8V139.4c0-10.14 14.06-15.21 22.29-8.05L316.18 248a10.38 10.38 0 0 1 0 16z\", \"M316.18 264L182.29 380.65c-8.22 7.16-22.29 2.09-22.29-8V139.4c0-10.14 14.07-15.21 22.29-8.05L316.18 248a10.38 10.38 0 0 1 0 16z\"]]\n};\nvar faCaretSquareUp = {\n prefix: 'fad',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-59.4 288H107.4c-10.14 0-15.21-14.07-8.05-22.29L216 163.82a10.38 10.38 0 0 1 16.08 0l116.57 133.89c7.16 8.22 2.09 22.29-8.05 22.29z\", \"M340.6 320H107.4c-10.14 0-15.21-14.07-8.05-22.29L216 163.82a10.38 10.38 0 0 1 16.08 0l116.57 133.89c7.16 8.22 2.09 22.29-8.05 22.29z\"]]\n};\nvar faCaretUp = {\n prefix: 'fad',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", [\"M160 168a19.41 19.41 0 0 1 13.37 5.29c.27.26.54.53.8.8l128.92 134.26c12.63 13.15 3.68 35.65-14.17 35.65H160z\", \"M160 344H31.08c-17.85 0-26.8-22.48-14.17-35.63l128.92-134.28c.26-.27.53-.54.8-.8A19.41 19.41 0 0 1 160 168z\"]]\n};\nvar faCarrot = {\n prefix: 'fad',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", [\"M298.15 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2a16 16 0 1 1-22.6 22.6l-50.2-50.2L2.25 479.7a22.68 22.68 0 0 0 0 19.7 22.48 22.48 0 0 0 30 10.3l133.6-65.2-49.2-49.2a15.87 15.87 0 0 1 0-22.6 16.06 16.06 0 0 1 22.6 0l57 57 102-49.8a124.23 124.23 0 0 0-.1-223.3z\", \"M390.25 121.7c40.7-19.5 88.8-9.4 121.7 30.3-41.6 50.3-107.5 52.5-151.9 7.9l-8-8C307.45 107.5 309.65 41.7 360 0c39.7 32.9 49.8 81 30.3 121.7z\"]]\n};\nvar faCars = {\n prefix: 'fad',\n iconName: 'cars',\n icon: [640, 512, [], \"f85b\", [\"M252.13 243.23A131.77 131.77 0 0 1 375.07 160h38.41a57.49 57.49 0 0 0-32.9-36.44L376 112.2l-17.84-49.08A99.92 99.92 0 0 0 264.93 0H151.07a99.92 99.92 0 0 0-93.23 63.12L40 112.2l-4.55 11.36A57.39 57.39 0 0 0 0 176.55v28.69a57 57 0 0 0 21.52 44.46V288a32 32 0 0 0 32 32h22.07a32 32 0 0 0 32-32v-32h139.88zM111.11 92c6.53-16.92 22.36-28 40-28h113.82c17.6 0 33.42 11.1 40 28L317 128H99zM76 215.85c-14.4 0-24-9.57-24-23.92S61.6 168 76 168s36 21.53 36 35.89-21.6 11.96-36 11.96z\", \"M604.58 315.56L600 304.2l-17.87-49.08a99.92 99.92 0 0 0-93.2-63.12H375.07a99.92 99.92 0 0 0-93.23 63.12L264 304.2l-4.55 11.36a57.39 57.39 0 0 0-35.42 53v28.69a57 57 0 0 0 21.52 44.46V480a32 32 0 0 0 32 32h22.07a32 32 0 0 0 32-32v-32h200.79v32a32 32 0 0 0 32 32h22.07a32 32 0 0 0 32-32v-38.3A57 57 0 0 0 640 397.24v-28.69a57.39 57.39 0 0 0-35.42-52.99zM335.11 284c6.53-16.92 22.36-28 40-28h113.82c17.6 0 33.42 11.1 40 28L541 320H323zM300 407.85c-14.4 0-24-9.57-24-23.93S285.6 360 300 360s36 21.53 36 35.89-21.6 11.96-36 11.96zm264 0c-14.4 0-36 2.39-36-12S549.6 360 564 360s24 9.57 24 23.92-9.6 23.93-24 23.93z\"]]\n};\nvar faCartArrowDown = {\n prefix: 'fad',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", [\"M552 64H159.21l52.36 256h293.15a24 24 0 0 0 23.4-18.68l47.27-208a24 24 0 0 0-18.08-28.72A23.69 23.69 0 0 0 552 64zM444.42 196.48l-67.83 72a12.27 12.27 0 0 1-17.18 0l-67.83-72c-7.65-7.55-2.23-20.48 8.59-20.48h43.54v-52a12.07 12.07 0 0 1 12.14-12h24.29a12.07 12.07 0 0 1 12.15 12v52h43.54c10.82 0 16.24 12.93 8.59 20.48z\", \"M504.42 405.6l5.52-24.28a24 24 0 0 0-23.4-29.32H218.12L150 19.19A24 24 0 0 0 126.53 0H24A24 24 0 0 0 0 24v16a24 24 0 0 0 24 24h69.88l70.25 343.43a56 56 0 1 0 67.05 8.57h209.64a56 56 0 1 0 63.6-10.4zm-145-137.12a12.27 12.27 0 0 0 17.18 0l67.83-72c7.65-7.55 2.23-20.48-8.59-20.48h-43.55v-52a12.07 12.07 0 0 0-12.15-12h-24.29a12.07 12.07 0 0 0-12.14 12v52h-43.54c-10.82 0-16.24 12.93-8.59 20.48z\"]]\n};\nvar faCartPlus = {\n prefix: 'fad',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", [\"M552 64H159.21l52.36 256h293.15a24 24 0 0 0 23.4-18.68l47.27-208a24 24 0 0 0-18.08-28.72A23.69 23.69 0 0 0 552 64zM448 200a16 16 0 0 1-16 16h-40v40a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-40h-40a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h40v-40a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v40h40a16 16 0 0 1 16 16z\", \"M504.42 405.6l5.52-24.28a24 24 0 0 0-23.4-29.32H218.12L150 19.19A24 24 0 0 0 126.53 0H24A24 24 0 0 0 0 24v16a24 24 0 0 0 24 24h69.88l70.25 343.43a56 56 0 1 0 67.05 8.57h209.64a56 56 0 1 0 63.6-10.4zM304 216h40v40a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-40h40a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-40v-40a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v40h-40a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\"]]\n};\nvar faCashRegister = {\n prefix: 'fad',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", [\"M296.1 232a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-48 128h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-16-112a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm-96 0a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm48 96v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm160 88h-176a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm16-120h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm48-80h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM144 192l64 .1v-64h96a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h96zM82 84V44h188v40z\", \"M511.2 378.8l-26.7-160a32 32 0 0 0-31.6-26.7L208 192v.06l-47.54-.06H59.2a32.09 32.09 0 0 0-31.6 26.7L.9 378.7a62 62 0 0 0-.9 10.5V480a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-90.7a53.09 53.09 0 0 0-.8-10.5zM280.1 248a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16zm-32 64h16a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16zm-64-64a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16zm-64 32h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16zm16 64v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16zm216 112a8 8 0 0 1-8 8h-176a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8zm24-112a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16zm48-80a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16z\"]]\n};\nvar faCassetteTape = {\n prefix: 'fad',\n iconName: 'cassette-tape',\n icon: [512, 512, [], \"f8ab\", [\"M147.78 384l-32 64h280.44l-32-64zM464 64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h32l48-96h256l48 96h32a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zm-96 224H144a64 64 0 0 1 0-128h224a64 64 0 0 1 0 128z\", \"M368 160H144a64 64 0 0 0 0 128h224a64 64 0 0 0 0-128zm-224 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm61.73 0a57.52 57.52 0 0 0 0-32h100.54a57.52 57.52 0 0 0 0 32zM368 240a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faCat = {\n prefix: 'fad',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", [\"M448 96h-64l-64-64v134.4a96 96 0 0 0 192 0V32zm-72 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm80 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm-165.41 16a204.07 204.07 0 0 0-34.59 2.89V272l-43.15-64.73a183.93 183.93 0 0 0-44.37 26.17L192 304l-60.94-30.47L128 272v-80a96.1 96.1 0 0 0-96-96 32 32 0 0 0 0 64 32 32 0 0 1 32 32v256a64.06 64.06 0 0 0 64 64h176a16 16 0 0 0 16-16v-16a32 32 0 0 0-32-32h-32l128-96v144a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V289.86a126.78 126.78 0 0 1-32 4.54c-61.81 0-113.52-44.05-125.41-102.4z\", \"M376 144a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm80 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zM131.06 273.53L192 304l-23.52-70.56a192.06 192.06 0 0 0-37.42 40.09zM256 272v-77.11a198.62 198.62 0 0 0-43.15 12.38z\"]]\n};\nvar faCatSpace = {\n prefix: 'fad',\n iconName: 'cat-space',\n icon: [640, 512, [], \"e001\", [\"M448,0A160,160,0,1,0,608,160,159.99917,159.99917,0,0,0,448,0Zm96,176a96,96,0,0,1-192,0V48l64,64h64l64-64ZM285.03125,59.22852l-39.71484-16.5586L228.75781,2.957a5.325,5.325,0,0,0-9.53906,0l-16.5625,39.71289-39.71094,16.5586a5.336,5.336,0,0,0,0,9.541l39.71094,16.56055,16.5625,39.71094a5.32345,5.32345,0,0,0,9.53906,0l16.5586-39.71094,39.71484-16.56055a5.336,5.336,0,0,0,0-9.541Z\", \"M291.89062,194.30273v.01172C256.05469,199.65625,200.10156,217.57227,160,277.95312V192A96.105,96.105,0,0,0,64,96a32,32,0,0,0,0,64,32.04169,32.04169,0,0,1,32,32V448a64.06328,64.06328,0,0,0,64,64H336a15.9908,15.9908,0,0,0,16-16V480a32.00158,32.00158,0,0,0-32-32H288l128-96V496a15.9908,15.9908,0,0,0,16,16h32a15.9908,15.9908,0,0,0,16-16V316.77539A160.63434,160.63434,0,0,1,448,320C371.4375,320,307.62109,266.14453,291.89062,194.30273ZM480,112H416L352,48V176a96,96,0,0,0,192,0V48Zm-72,80a16,16,0,1,1,16-16A15.9908,15.9908,0,0,1,408,192Zm80,0a16,16,0,1,1,16-16A15.9908,15.9908,0,0,1,488,192Z\"]]\n};\nvar faCauldron = {\n prefix: 'fad',\n iconName: 'cauldron',\n icon: [448, 512, [], \"f6bf\", [\"M160 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm112 32a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM96 288a32 32 0 0 0 64 0V160H96z\", \"M434 224h-19.79c21.4 38.52 33.79 81.28 33.79 121.6 0 39.08-11.82 70.65-32 95.53V488a24 24 0 0 1-48 0v-7.49C329.05 501.81 278.86 512 224 512s-105-10.19-144-31.49V488a24 24 0 0 1-48 0v-46.87C11.82 416.25 0 384.68 0 345.6c0-40.32 12.39-83.08 33.79-121.6H14c-7.73 0-14-5.37-14-12v-40c0-6.63 6.27-12 14-12h82v128a32 32 0 0 0 64 0V160h274c7.73 0 14 5.37 14 12v40c0 6.63-6.27 12-14 12z\"]]\n};\nvar faCctv = {\n prefix: 'fad',\n iconName: 'cctv',\n icon: [576, 512, [], \"f8ac\", [\"M564.8 259.9l-57.2-25.15-153.78 96.11 150.68 66.25a18.74 18.74 0 0 0 24.69-9.61l45.22-102.91a18.74 18.74 0 0 0-9.61-24.69zM137.81 400H64v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h96a32 32 0 0 0 30-20.77l46.85-124.94-59.17-24.51z\", \"M4.23 183L99.57 16.13a32 32 0 0 1 39.67-13.84l378.2 166.29c24.33 9.73 27.29 43 5.08 56.85l-189.29 118.3a32 32 0 0 1-27.89 2.94L21.08 228.93A32 32 0 0 1 4.23 183z\"]]\n};\nvar faCertificate = {\n prefix: 'fad',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", [\"M458.63 255.92l46-45c13.71-13 7.34-36-10.66-40.34l-62.66-16 17.69-62c5-17.85-11.84-34.67-29.69-29.67l-62 17.65-16-62.67C337.09.2 313.75-6.28 301 7.23l-45 46.35-45-46.35C198.37-6.13 175 0 170.69 17.89l-16 62.67-62-17.65c-17.82-5-34.63 11.82-29.69 29.67l17.69 62-62.66 16c-18 4.3-24.37 27.36-10.66 40.34l46 45-46 45C-6.31 313.91.06 337 18.06 341.27l62.66 16-17.72 62c-5 17.84 11.84 34.67 29.69 29.67l62-17.67 16 62.67c4.43 18.58 27.68 24 40.31 10.67l45-46 45 46c12.5 13.49 36 7.49 40.31-10.67l16-62.67 62 17.67c17.85 5 34.66-11.83 29.66-29.67l-17.66-62 62.66-16c18-4.31 24.37-27.38 10.66-40.35zm-39.84 32.79a12 12 0 0 1-5.43 20.2l-45.95 11.73 12.71 44.63a12 12 0 0 1-14.83 14.83l-44.58-12.71-11.74 46a12 12 0 0 1-20.2 5.43L256 385.34l-32.75 33.47a12 12 0 0 1-20.25-5.43l-11.74-46-44.53 12.72a12 12 0 0 1-14.83-14.83l12.74-44.63-46-11.73a12 12 0 0 1-5.43-20.2L126.67 256 93.2 223.21A12 12 0 0 1 98.63 203l46-11.73-12.73-44.67a12 12 0 0 1 14.83-14.83l44.61 12.71L203 99a12 12 0 0 1 20.24-5.4L256 127.39l32.82-33.81A12 12 0 0 1 309.06 99l11.61 45.5 44.58-12.7a12 12 0 0 1 14.83 14.83l-12.71 44.63 46 11.74a12 12 0 0 1 5.43 20.2L385.34 256z\", \"M418.79 288.71a12 12 0 0 1-5.43 20.2l-45.95 11.73 12.71 44.63a12 12 0 0 1-14.83 14.83l-44.58-12.71-11.74 46a12 12 0 0 1-20.2 5.43L256 385.34l-32.75 33.47a12 12 0 0 1-20.25-5.43l-11.74-46-44.53 12.72a12 12 0 0 1-14.83-14.83l12.74-44.63-46-11.73a12 12 0 0 1-5.43-20.2L126.67 256 93.2 223.21A12 12 0 0 1 98.63 203l46-11.73-12.73-44.67a12 12 0 0 1 14.83-14.83l44.61 12.71L203 99a12 12 0 0 1 20.24-5.4L256 127.39l32.82-33.81A12 12 0 0 1 309.06 99l11.61 45.5 44.58-12.7a12 12 0 0 1 14.83 14.83l-12.71 44.63 46 11.74a12 12 0 0 1 5.43 20.2L385.34 256z\"]]\n};\nvar faChair = {\n prefix: 'fad',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", [\"M112 256H64V128A128 128 0 0 1 192 0h64a128 128 0 0 1 128 128v128h-48V128c0-29.5-16.2-55-40-68.9V256h-48V48h-48v208h-48V59.1C128.24 73 112 98.5 112 128z\", \"M416.05 384v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V384H96v112a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V384a32.07 32.07 0 0 1-30.4-42.1l10.7-32A32 32 0 0 1 42.71 288h362.54a32 32 0 0 1 30.4 21.9l10.71 32a32 32 0 0 1-30.31 42.1z\"]]\n};\nvar faChairOffice = {\n prefix: 'fad',\n iconName: 'chair-office',\n icon: [448, 512, [], \"f6c1\", [\"M352 256H96V64a64 64 0 0 1 64-64h128a64 64 0 0 1 64 64z\", \"M64 224v-64a32 32 0 0 0-64 0v64a32 32 0 0 0 64 0zm352-96a32 32 0 0 0-32 32v64a32 32 0 0 0 64 0v-64a32 32 0 0 0-32-32zm-12.33 181.88A32 32 0 0 0 373.31 288H74.69a32 32 0 0 0-30.36 21.88l-10.67 32A32 32 0 0 0 64 384h128v67.36c-28.27 6-51 19.69-61.85 37.21-6.41 10.34 2.41 23.43 15 23.43h157.68c12.61 0 21.44-13.09 15-23.43-10.83-17.52-33.57-31.2-61.83-37.21V384h128a32 32 0 0 0 30.36-42.12z\"]]\n};\nvar faChalkboard = {\n prefix: 'fad',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", [\"M624 448h-16V40a40 40 0 0 0-40-40H72a40 40 0 0 0-40 40v408H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-528 0V64h448v384z\", \"M544 64v384h-64v-64H288v64H96V64z\"]]\n};\nvar faChalkboardTeacher = {\n prefix: 'fad',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", [\"M640 49.59v316.82c0 27.34-21.53 49.59-48 49.59H343.79c-.9-2.53-1.86-5.05-2.9-7.54A144.52 144.52 0 0 0 298.51 352H576V64H224v49.1a127 127 0 0 0-59.46-17h-.33c-1.4 0-2.8-.08-4.21-.08V49.59C160 22.25 181.53 0 208 0h384c26.47 0 48 22.25 48 49.59z\", \"M208 352a22.88 22.88 0 0 0-7.06 1.09A131.91 131.91 0 0 1 160 360a132 132 0 0 1-40.95-6.91 22.82 22.82 0 0 0-7-1.09A112 112 0 0 0 0 464.62C.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 208 352zm-48-32a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm64-256v49.09a129 129 0 0 1 26.51 20.4 128 128 0 0 1 0 181 132.13 132.13 0 0 1-10.14 9.14A143.89 143.89 0 0 1 298.51 352H384v-64h128v64h64V64z\"]]\n};\nvar faChargingStation = {\n prefix: 'fad',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", [\"M256 0H96a64 64 0 0 0-64 64v384h288V64a64 64 0 0 0-64-64zm4.09 175.76l-93.7 139A12.41 12.41 0 0 1 156 320c-7.67 0-13.47-6.28-11.67-12.92l23-83.08H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 118 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\", \"M336 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108 224h59.33l-23 83.08c-1.8 6.64 4 12.92 11.67 12.92a12.41 12.41 0 0 0 10.39-5.24l93.7-139c4.62-7-1.15-15.76-10.39-15.76H192l11.6-50.79c2-6.67-3.72-13.21-11.6-13.21h-68c-6 0-11.1 3.9-11.89 9.11l-16 107c-.96 6.3 4.64 11.89 11.89 11.89zm452-96h-16V80a16 16 0 0 0-32 0v48h-32V80a16 16 0 0 0-32 0v48h-16a16 16 0 0 0-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19A28 28 0 0 1 416 372v-28a88 88 0 0 0-88-88h-8v48h8a40 40 0 0 1 40 40v24.61c0 39.67 28.92 75.16 68.41 79a76.08 76.08 0 0 0 83.22-68.18c.24-2.47.37-4.95.37-7.43V251.93c32.38-10.24 56-40.17 56-75.93v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faChartArea = {\n prefix: 'fad',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", [\"M500 384a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12H12a12 12 0 0 1-12-12V76a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v308z\", \"M390.1 164.2L480 352H96V248l86.8-144.7a12 12 0 0 1 19.9-1L288 216l84.7-56.5a12 12 0 0 1 17.4 4.7z\"]]\n};\nvar faChartBar = {\n prefix: 'fad',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", [\"M512 400v32a16 16 0 0 1-16 16H32a32 32 0 0 1-32-32V80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v304h432a16 16 0 0 1 16 16z\", \"M275.2 96h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8zm-96 128h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8zm288-160h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8zm-96 96h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8z\"]]\n};\nvar faChartLine = {\n prefix: 'fad',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", [\"M512 400v32a16 16 0 0 1-16 16H32a32 32 0 0 1-32-32V80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v304h432a16 16 0 0 1 16 16z\", \"M480 112v118.05c0 21.38-25.85 32.09-41 17l-32.4-32.4-96 96a32 32 0 0 1-45.25 0L192 237.25l-46.06 46.07a16 16 0 0 1-22.63 0l-22.62-22.62a16 16 0 0 1 0-22.63l68.69-68.69a32 32 0 0 1 45.25 0L288 242.75l73.37-73.38L329 137c-15.12-15.12-4.41-41 17-41h118a16 16 0 0 1 16 16z\"]]\n};\nvar faChartLineDown = {\n prefix: 'fad',\n iconName: 'chart-line-down',\n icon: [512, 512, [], \"f64d\", [\"M512 400v32a16 16 0 0 1-16 16H32a32 32 0 0 1-32-32V80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v304h432a16 16 0 0 1 16 16z\", \"M464 320H346c-21.38 0-32.09-25.85-17-41l32.4-32.4-73.4-73.35-73.37 73.38a32 32 0 0 1-45.25 0l-68.69-68.69a16 16 0 0 1 0-22.63l22.62-22.62a16 16 0 0 1 22.63 0L192 178.75l73.38-73.38a32 32 0 0 1 45.25 0l96 96L439 169c15.12-15.12 41-4.41 41 17v118a16 16 0 0 1-16 16z\"]]\n};\nvar faChartNetwork = {\n prefix: 'fad',\n iconName: 'chart-network',\n icon: [640, 512, [], \"f78a\", [\"M64 240a64 64 0 1 0 64 64 64.06 64.06 0 0 0-64-64zm88 80h48v-32h-48zm294.4-106.8l19.2 25.6 48-36-19.2-25.6zM576 64a64 64 0 1 0 64 64 64.06 64.06 0 0 0-64-64z\", \"M576 384a63.84 63.84 0 0 0-38.3 13l-96-57.6a109.91 109.91 0 0 0 6.3-35.5 111.94 111.94 0 0 0-112-112 108.64 108.64 0 0 0-24.4 2.9l-40.8-87.4A63.84 63.84 0 1 0 224 128c1.1 0 2.1-.3 3.2-.3l41 87.8C241.5 235.9 224 267.8 224 304a111.71 111.71 0 0 0 193.2 76.7l95.8 57.5a63.87 63.87 0 1 0 63-54.2zm-240-32a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faChartPie = {\n prefix: 'fad',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", [\"M379.86 443.87c6.85 6.85 6.33 18.48-1.57 24.08A238.14 238.14 0 0 1 243 512C114.83 513.59 4.5 408.51.14 280.37-4.1 155.6 87 51.49 206.16 34.65c9.45-1.34 17.84 6.51 17.84 16.06V288z\", \"M512 223.2C503.72 103.74 408.26 8.28 288.8 0 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.23-16.8zm15.79 64.8H290.5l158 158c6 6 16 6.53 22.19.68a239.5 239.5 0 0 0 73.13-140.86c1.37-9.43-6.48-17.82-16.03-17.82z\"]]\n};\nvar faChartPieAlt = {\n prefix: 'fad',\n iconName: 'chart-pie-alt',\n icon: [512, 512, [], \"f64e\", [\"M461.29 288c9.54 0 17.39 8.39 16.06 17.84C460.53 424.92 356.57 516 231.93 511.87 107.91 507.8 4.2 404.1.13 280.07c-4.09-124.64 87-228.6 206-245.42 9.48-1.33 17.87 6.51 17.87 16.06V288z\", \"M512 223.2c.62 9.11-7 16.8-16.19 16.8H272V16.24C272 7.1 279.68-.59 288.8 0 408.26 8.28 503.72 103.74 512 223.2z\"]]\n};\nvar faChartScatter = {\n prefix: 'fad',\n iconName: 'chart-scatter',\n icon: [512, 512, [], \"f7ee\", [\"M512 400v32a16 16 0 0 1-16 16H32a32 32 0 0 1-32-32V80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v304h432a16 16 0 0 1 16 16z\", \"M160 256a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM416 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-224 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm192 160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-96-64a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faCheck = {\n prefix: 'fad',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", [\"M504.5 144.42L264.75 385.5 192 312.59l240.11-241a25.49 25.49 0 0 1 36.06-.14l.14.14L504.5 108a25.86 25.86 0 0 1 0 36.42z\", \"M264.67 385.59l-54.57 54.87a25.5 25.5 0 0 1-36.06.14l-.14-.14L7.5 273.1a25.84 25.84 0 0 1 0-36.41l36.2-36.41a25.49 25.49 0 0 1 36-.17l.16.17z\"]]\n};\nvar faCheckCircle = {\n prefix: 'fad',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm155.31 195.31l-184 184a16 16 0 0 1-22.62 0l-104-104a16 16 0 0 1 0-22.62l22.62-22.63a16 16 0 0 1 22.63 0L216 308.12l150.06-150.06a16 16 0 0 1 22.63 0l22.62 22.63a16 16 0 0 1 0 22.62z\", \"M227.31 387.31a16 16 0 0 1-22.62 0l-104-104a16 16 0 0 1 0-22.62l22.62-22.63a16 16 0 0 1 22.63 0L216 308.12l150.06-150.06a16 16 0 0 1 22.63 0l22.62 22.63a16 16 0 0 1 0 22.62l-184 184z\"]]\n};\nvar faCheckDouble = {\n prefix: 'fad',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", [\"M166.57 282.71L44 159.21a17.87 17.87 0 0 1 .18-25.2l42.1-41.77a17.87 17.87 0 0 1 25.2.18l68.23 68.77L336.87 5.11a17.88 17.88 0 0 1 25.21.18L404 47.41a17.88 17.88 0 0 1-.18 25.21L191.78 282.89a17.88 17.88 0 0 1-25.21-.18z\", \"M504.5 172a25.86 25.86 0 0 1 0 36.42L210.1 504.46a25.48 25.48 0 0 1-36.2 0L7.5 337.1a25.84 25.84 0 0 1 0-36.41l36.2-36.41a25.48 25.48 0 0 1 36.2 0L192 377l240.1-241.46a25.5 25.5 0 0 1 36.2 0L504.5 172z\"]]\n};\nvar faCheckSquare = {\n prefix: 'fad',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-20.69 165.94l-184 184a16 16 0 0 1-22.62 0l-104-104a16 16 0 0 1 0-22.63l22.62-22.62a16 16 0 0 1 22.63 0L184 302.75l150.06-150.06a16 16 0 0 1 22.63 0l22.62 22.62a16 16 0 0 1 0 22.63z\", \"M195.31 381.94a16 16 0 0 1-22.62 0l-104-104a16 16 0 0 1 0-22.63l22.62-22.62a16 16 0 0 1 22.63 0L184 302.74l150.06-150a16 16 0 0 1 22.63 0l22.62 22.62a16 16 0 0 1 0 22.63l-184 184z\"]]\n};\nvar faCheese = {\n prefix: 'fad',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", [\"M299.83 32C418 38.22 512 136.13 512 256H0L278.7 39a32 32 0 0 1 21.13-7z\", \"M512 288v160a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32V288z\"]]\n};\nvar faCheeseSwiss = {\n prefix: 'fad',\n iconName: 'cheese-swiss',\n icon: [512, 512, [], \"f7f0\", [\"M299.83 32C418 38.22 512 136.13 512 256H0l141.84-110.44a47.91 47.91 0 0 0 75.1-58.48L278.7 39a32 32 0 0 1 21.13-7z\", \"M416 288a48 48 0 0 1-96 0H0v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM176 432a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faCheeseburger = {\n prefix: 'fad',\n iconName: 'cheeseburger',\n icon: [512, 512, [], \"f7f1\", [\"M58.6 224h394.7c34.6 0 54.6-43.9 34.8-75.9C448 83.2 359.5 32.1 256 32c-103.5.1-192 51.2-232.2 116.1-19.8 32 .3 75.9 34.8 75.9zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm352 272H32a16 16 0 0 0-16 16v16a64.06 64.06 0 0 0 64 64h352a64.06 64.06 0 0 0 64-64v-16a16 16 0 0 0-16-16z\", \"M512 304a48 48 0 0 1-48 48H48a48 48 0 0 1 0-96h176l96 64 96-64h48a48 48 0 0 1 48 48z\"]]\n};\nvar faChess = {\n prefix: 'fad',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", [\"M247.16 459.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.84 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm256 0L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.16 11.58a16 16 0 0 0-8.84 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\", \"M200.91 96H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62L74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38A16 16 0 0 0 200.91 96zM490 192h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4l24.57 20.76-3.29 82.24h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6z\"]]\n};\nvar faChessBishop = {\n prefix: 'fad',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", [\"M304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88z\"]]\n};\nvar faChessBishopAlt = {\n prefix: 'fad',\n iconName: 'chess-bishop-alt',\n icon: [256, 512, [], \"f43b\", [\"M247.16 459.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\", \"M64 288h14.89A535.84 535.84 0 0 1 64 384h128a535.84 535.84 0 0 1-14.89-96H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-11.67c16-6.67 26.48-25.09 26.48-50.43 0-19.32-7.2-42.34-17.73-63.33l-48.59 48.59a4 4 0 0 1-5.66 0l-5.66-5.66a4 4 0 0 1 0-5.65L181 111.7c-10.22-16.81-22.2-31.22-33.86-39.33C155.31 69.59 160 61.85 160 52.73 160 41.28 151.92 32 140.47 32h-24.94C104.08 32 96 41.28 96 52.73c0 9.12 4.69 16.86 12.87 19.64-28.58 19.87-59.68 76.75-59.68 117.2 0 25.34 10.49 43.76 26.48 50.43H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\"]]\n};\nvar faChessBoard = {\n prefix: 'fad',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", [\"M512 256v-64h-64v64zM448 0h-64v64h64zm64 128V64h-64v64zm-256 64h-64v64h64zM320 0h-64v64h64zm192 384v-64h-64v64zm0 128v-64h-64v64zM256 128V64h-64v64zM64 512h64v-64H64zm128 0h64v-64h-64zM0 384v64h64v-64zm320 128h64v-64h-64zM0 128v64h64v-64zM0 0v64h64V0zm0 256v64h64v-64zM192 0h-64v64h64zm192 320h64v-64h-64zm-128-64v64h64v-64zm-128-64H64v64h64zm64 128v64h64v-64zm128 0v64h64v-64zm-192 0H64v64h64zm0-256H64v64h64zm256 128h64v-64h-64zM128 384v64h64v-64zm192-128h64v-64h-64zm128 128h-64v64h64zM192 256h-64v64h64zm128-64v-64h-64v64zm-64 192v64h64v-64zm128-256V64h-64v64zm-192 0h-64v64h64z\", \"M256 0h-64v64h64zM0 64v64h64V64zM128 0H64v64h64zm64 256v64h64v-64zM0 192v64h64v-64zM384 0h-64v64h64zm128 0h-64v64h64zM128 256H64v64h64zm384 192v-64h-64v64zm0-128v-64h-64v64zM384 512h64v-64h-64zm128-320v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm256 0h64v-64h-64zM0 320v64h64v-64zm320-192V64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-128h64v-64h-64zm0 192v64h64v-64zm-256 0v64h64v-64zm128-256V64h-64v64zm192 256h64v-64h-64zM256 192v-64h-64v64zM384 64v64h64V64zM256 320v64h64v-64zm-64-128h-64v64h64zm192 64h64v-64h-64zM128 128H64v64h64zm0 192v64h64v-64z\"]]\n};\nvar faChessClock = {\n prefix: 'fad',\n iconName: 'chess-clock',\n icon: [640, 512, [], \"f43d\", [\"M519.48 243a12 12 0 0 0-17 0l-50.9 50.89a12 12 0 0 0 0 17l5.66 5.66a12 12 0 0 0 17 0l50.9-50.9a12 12 0 0 0 0-17zm-339.19-18.86h-8a12 12 0 0 0-12 12v72a12 12 0 0 0 12 12h8a12 12 0 0 0 12-12v-72a12 12 0 0 0-12-12zM240.06 32h-128a16 16 0 0 0-16 16v15.94a16 16 0 0 0 16 16h40.19V128h48V79.94h39.81a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM528 96H400a16 16 0 0 0-16 16v16h160v-16a16 16 0 0 0-16-16z\", \"M600 128H40a40 40 0 0 0-40 40v272a40 40 0 0 0 40 40h560a40 40 0 0 0 40-40V168a40 40 0 0 0-40-40zM176.29 416.06a112 112 0 1 1 112-111.95 111.95 111.95 0 0 1-112 111.95zm288 0a112 112 0 1 1 112-111.95 111.95 111.95 0 0 1-112 111.95z\"]]\n};\nvar faChessClockAlt = {\n prefix: 'fad',\n iconName: 'chess-clock-alt',\n icon: [640, 512, [], \"f43e\", [\"M231.12 243a12 12 0 0 0-17 0l-50.89 50.89a12 12 0 0 0 0 17l5.65 5.66a12 12 0 0 0 17 0l50.89-50.9a12 12 0 0 0 0-17zm236.7-18.84h-8a12 12 0 0 0-12 12v72a12 12 0 0 0 12 12h8a12 12 0 0 0 12-12v-72a12 12 0 0 0-12-12.02zM239.91 96h-128a16 16 0 0 0-16 16v16h160v-16a16 16 0 0 0-16-16zM528 32H400a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h39.75v48h48V80H528a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M600 128H40a40.17 40.17 0 0 0-40 40.11V440a40 40 0 0 0 40 40h560a40 40 0 0 0 40-40V168.11A40.17 40.17 0 0 0 600 128zM175.93 416.06a112 112 0 1 1 112-111.95 111.95 111.95 0 0 1-112 111.95zm287.89 0a112 112 0 1 1 112-111.95 111.95 111.95 0 0 1-112 111.95z\"]]\n};\nvar faChessKing = {\n prefix: 'fad',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", [\"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M416 160H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]]\n};\nvar faChessKingAlt = {\n prefix: 'fad',\n iconName: 'chess-king-alt',\n icon: [320, 512, [], \"f440\", [\"M279.16 459.58L256 448v-16a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v16l-23.15 11.58A16 16 0 0 0 32 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\", \"M106 208H96a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 96 384h128a535.78 535.78 0 0 1-15.94-128H224a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H176V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24h-24a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H87.09a16 16 0 0 0-15 21.62z\"]]\n};\nvar faChessKnight = {\n prefix: 'fad',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", [\"M368 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M159.94 32H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26l40.63 18.06a32 32 0 0 0 24.88.47l12.79-5.12a32 32 0 0 0 18.75-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94L76.2 329.92A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192zM52 168a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]]\n};\nvar faChessKnightAlt = {\n prefix: 'fad',\n iconName: 'chess-knight-alt',\n icon: [320, 512, [], \"f442\", [\"M320 473.89V496a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-22.11a16 16 0 0 1 8.85-14.31L32 448v-16a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16v16l23.16 11.58a16 16 0 0 1 8.84 14.31z\", \"M45.55 235.52l28.83 12.86a22.59 22.59 0 0 0 17.67.34l9.09-3.65a22.79 22.79 0 0 0 13.33-14.62l6.53-21.87a17.09 17.09 0 0 1 8.92-11.15l14.2-5.43v37.21a28.58 28.58 0 0 1-16.9 26.09L80.68 279C40.87 299.22 32.42 352.42 64 384h192c7-7.85 16-18.31 16-32V203.16C272 126.62 209.38 64 132.84 64H40.52A8.54 8.54 0 0 0 32 72.56 12.14 12.14 0 0 0 33.27 78l10.1 20.28-6.37 6.35a17.21 17.21 0 0 0-5 12.11v97.9a22.86 22.86 0 0 0 13.55 20.88zM80.07 128a16 16 0 1 1-15.94 16 16 16 0 0 1 15.94-16z\"]]\n};\nvar faChessPawn = {\n prefix: 'fad',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", [\"M304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88z\"]]\n};\nvar faChessPawnAlt = {\n prefix: 'fad',\n iconName: 'chess-pawn-alt',\n icon: [256, 512, [], \"f444\", [\"M247.16 459.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\", \"M64 288h14.89A535.84 535.84 0 0 1 64 384h128a535.84 535.84 0 0 1-14.89-96H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16.44a80 80 0 1 0-95.12 0H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\"]]\n};\nvar faChessQueen = {\n prefix: 'fad',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", [\"M432 448H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm248.88 72.16l-28.52-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.85 9.91a48 48 0 0 1-94 0c-1.24-5.92-6.81-9.91-12.85-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.49 47.49 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.58 16a16 16 0 0 0-5.43 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.43-20.47z\"]]\n};\nvar faChessQueenAlt = {\n prefix: 'fad',\n iconName: 'chess-queen-alt',\n icon: [256, 512, [], \"f446\", [\"M256 473.89V496a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-22.11a16 16 0 0 1 8.85-14.31L32 448v-16a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v16l23.16 11.58a16 16 0 0 1 8.84 14.31z\", \"M128 48a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm102.84 39.65l-10.06-6.71c-3.13-2.08-7.12-1-9.38 2a20.05 20.05 0 0 1-19.89 7.67c-9.74-1.81-16.35-11-16.35-21a5.65 5.65 0 0 0-5.64-5.61h-16.33a5.45 5.45 0 0 0-5.41 4.17 20.22 20.22 0 0 1-39.56 0 5.45 5.45 0 0 0-5.41-4.17H86.49a5.65 5.65 0 0 0-5.65 5.64c0 10.82-8 20.53-18.81 21.26a20 20 0 0 1-17.49-8.06 6.81 6.81 0 0 0-9.3-1.91l-10.08 6.72a6.73 6.73 0 0 0-2.29 8.62L67.37 192H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16v14a535.76 535.76 0 0 1-16 130h128a535.76 535.76 0 0 1-16-130v-14h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-3.37l44.5-95.73a6.73 6.73 0 0 0-2.29-8.62z\"]]\n};\nvar faChessRook = {\n prefix: 'fad',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", [\"M368 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M384 48a16 16 0 0 0-16-16h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32zM224 320h-64v-64a32 32 0 0 1 64 0z\"]]\n};\nvar faChessRookAlt = {\n prefix: 'fad',\n iconName: 'chess-rook-alt',\n icon: [320, 512, [], \"f448\", [\"M320 473.89V496a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-22.11a16 16 0 0 1 8.85-14.31L32 448v-16a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16v16l23.16 11.58a16 16 0 0 1 8.84 14.31z\", \"M71.81 210.32L57.33 384h205.34l-14.48-173.7 30.62-31.11a32 32 0 0 0 9.19-22.45V72a8 8 0 0 0-8-8h-35.18a8 8 0 0 0-8 8v40h-32.94V72a8 8 0 0 0-8-8h-71.75a8 8 0 0 0-8 8v40H83.19V72a8 8 0 0 0-8-8H40a8 8 0 0 0-8 8v84.82a32 32 0 0 0 9.21 22.47zm64.6 21.27a23.59 23.59 0 0 1 47.18 0v47.18h-47.18z\"]]\n};\nvar faChevronCircleDown = {\n prefix: 'fad',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm152.5 226.4L273 369.9a24 24 0 0 1-34 0L103.5 234.4a23.9 23.9 0 0 1 0-33.9l17-17a23.9 23.9 0 0 1 33.9 0L256 285.1l101.6-101.6a23.9 23.9 0 0 1 33.9 0l17 17a23.9 23.9 0 0 1 0 33.9z\", \"M239 369.9L103.5 234.4a23.9 23.9 0 0 1 0-33.9l17-17a23.9 23.9 0 0 1 33.9 0L256 285.1l101.6-101.6a23.9 23.9 0 0 1 33.9 0l17 17a23.9 23.9 0 0 1 0 33.9L273 369.9a24 24 0 0 1-34 0z\"]]\n};\nvar faChevronCircleLeft = {\n prefix: 'fad',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm72.5 349.6a23.9 23.9 0 0 1 0 33.9l-17 17a23.9 23.9 0 0 1-33.9 0L142.1 273a24 24 0 0 1 0-34l135.5-135.5a23.9 23.9 0 0 1 33.9 0l17 17a23.9 23.9 0 0 1 0 33.9L226.9 256z\", \"M142.1 239l135.5-135.5a23.9 23.9 0 0 1 33.9 0l17 17a23.9 23.9 0 0 1 0 33.9L226.9 256l101.6 101.6a23.9 23.9 0 0 1 0 33.9l-17 17a23.9 23.9 0 0 1-33.9 0L142.1 273a24 24 0 0 1 0-34z\"]]\n};\nvar faChevronCircleRight = {\n prefix: 'fad',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm113.9 265L234.4 408.5a23.9 23.9 0 0 1-33.9 0l-17-17a23.9 23.9 0 0 1 0-33.9L285.1 256 183.5 154.4a23.9 23.9 0 0 1 0-33.9l17-17a23.9 23.9 0 0 1 33.9 0L369.9 239a24 24 0 0 1 0 34z\", \"M369.9 273L234.4 408.5a23.9 23.9 0 0 1-33.9 0l-17-17a23.9 23.9 0 0 1 0-33.9L285.1 256 183.5 154.4a23.9 23.9 0 0 1 0-33.9l17-17a23.9 23.9 0 0 1 33.9 0L369.9 239a24 24 0 0 1 0 34z\"]]\n};\nvar faChevronCircleUp = {\n prefix: 'fad',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm152.5 303.5l-17 17a23.9 23.9 0 0 1-33.9 0L256 226.9 154.4 328.5a23.9 23.9 0 0 1-33.9 0l-17-17a23.9 23.9 0 0 1 0-33.9L239 142.1a24 24 0 0 1 34 0l135.5 135.5a23.9 23.9 0 0 1 0 33.9z\", \"M273 142.1l135.5 135.5a23.9 23.9 0 0 1 0 33.9l-17 17a23.9 23.9 0 0 1-33.9 0L256 226.9 154.4 328.5a23.9 23.9 0 0 1-33.9 0l-17-17a23.9 23.9 0 0 1 0-33.9L239 142.1a24 24 0 0 1 34 0z\"]]\n};\nvar faChevronDoubleDown = {\n prefix: 'fad',\n iconName: 'chevron-double-down',\n icon: [448, 512, [], \"f322\", [\"M207 285.54L12.7 91.14a23.9 23.9 0 0 1 0-33.9l22.7-22.7a24.08 24.08 0 0 1 33.9 0l154.7 154 154.7-154a23.9 23.9 0 0 1 33.9 0l22.7 22.7a23.9 23.9 0 0 1 0 33.9L241 285.54a24.2 24.2 0 0 1-34 0z\", \"M207 477.54L12.7 283.14a23.9 23.9 0 0 1 0-33.9l22.7-22.7a23.9 23.9 0 0 1 33.9 0l154.7 154 154.7-154a24.08 24.08 0 0 1 33.9 0l22.7 22.7a23.9 23.9 0 0 1 0 33.9L241 477.54a24.2 24.2 0 0 1-34 0z\"]]\n};\nvar faChevronDoubleLeft = {\n prefix: 'fad',\n iconName: 'chevron-double-left',\n icon: [512, 512, [], \"f323\", [\"M226.56 239l194-194a23.84 23.84 0 0 1 33.73-.1l.1.1L477 67.7a24.06 24.06 0 0 1 0 33.85L323.36 256l153.58 154.45a23.87 23.87 0 0 1 .1 33.75l-.1.1-22.65 22.7a23.84 23.84 0 0 1-33.73.1l-.1-.1-193.9-194a24.17 24.17 0 0 1 0-34z\", \"M35 239L229 45a23.84 23.84 0 0 1 33.73-.1l.1.1 22.61 22.7a23.87 23.87 0 0 1 .1 33.75l-.1.1L131.76 256l153.68 154.45a24.06 24.06 0 0 1 0 33.85L262.79 467a23.84 23.84 0 0 1-33.73.1l-.1-.1L35 273a24.17 24.17 0 0 1 0-34z\"]]\n};\nvar faChevronDoubleRight = {\n prefix: 'fad',\n iconName: 'chevron-double-right',\n icon: [512, 512, [], \"f324\", [\"M285.6 273L90.79 467a24 24 0 0 1-33.88.1l-.1-.1-22.74-22.7a24 24 0 0 1 0-33.85L188.39 256 34.07 101.55A23.8 23.8 0 0 1 34 67.8l.11-.1L56.81 45a24 24 0 0 1 33.88-.1l.1.1L285.6 239a24.09 24.09 0 0 1 0 34z\", \"M478 273L283.19 467a24 24 0 0 1-33.87.1l-.1-.1-22.75-22.7a23.81 23.81 0 0 1-.1-33.75l.1-.1L380.8 256 226.47 101.55a24 24 0 0 1 0-33.85L249.22 45a24 24 0 0 1 33.87-.1.94.94 0 0 1 .1.1L478 239a24.09 24.09 0 0 1 0 34z\"]]\n};\nvar faChevronDoubleUp = {\n prefix: 'fad',\n iconName: 'chevron-double-up',\n icon: [448, 512, [], \"f325\", [\"M435 420.86a24 24 0 0 1 0 33.94l-22.63 22.67a23.93 23.93 0 0 1-33.85 0L224 323.5l-154.5 154a23.93 23.93 0 0 1-33.85 0L13 454.8a24 24 0 0 1 0-33.94l194-194.33a23.93 23.93 0 0 1 33.88 0z\", \"M435 228.86a24 24 0 0 1 0 33.94l-22.63 22.67a23.93 23.93 0 0 1-33.85 0L224 131.5l-154.5 154a23.93 23.93 0 0 1-33.85 0L13 262.8a24 24 0 0 1 0-33.94L207 34.53a23.93 23.93 0 0 1 33.88 0z\"]]\n};\nvar faChevronDown = {\n prefix: 'fad',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", [\"M224.1 284.64l-56.89 56.78-154-154.31a24 24 0 0 1 0-33.94l22.65-22.7a23.93 23.93 0 0 1 33.84 0z\", \"M435 187.15L241 381.48a23.94 23.94 0 0 1-33.84 0l-40-40 211.34-211a23.93 23.93 0 0 1 33.84 0L435 153.21a24 24 0 0 1 0 33.94z\"]]\n};\nvar faChevronLeft = {\n prefix: 'fad',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", [\"M285.59 410.4a23.93 23.93 0 0 1 0 33.84l-22.7 22.65a24 24 0 0 1-33.94 0l-154.31-154L131.42 256z\", \"M262.85 45.06l22.7 22.65a23.93 23.93 0 0 1 0 33.84L74.58 312.9l-40-40a23.94 23.94 0 0 1 0-33.84l194.33-194a24 24 0 0 1 33.94 0z\"]]\n};\nvar faChevronRight = {\n prefix: 'fad',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", [\"M188.74 256l56.78 56.89L91.21 466.9a24 24 0 0 1-33.94 0l-22.7-22.65a23.93 23.93 0 0 1 0-33.84z\", \"M91.25 45.06l194.33 194a23.93 23.93 0 0 1 0 33.84l-40 40-211-211.34a23.92 23.92 0 0 1 0-33.84l22.7-22.65a24 24 0 0 1 33.97-.01z\"]]\n};\nvar faChevronSquareDown = {\n prefix: 'fad',\n iconName: 'chevron-square-down',\n icon: [448, 512, [], \"f329\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-23.51 194.43L241 361.94a24 24 0 0 1-33.94 0L71.52 226.43a24 24 0 0 1 0-33.94l17-17a24 24 0 0 1 33.94 0L224 277.09l101.57-101.58a24 24 0 0 1 33.95 0l17 17a24 24 0 0 1-.03 33.92z\", \"M71.52 192.49l17-17a24 24 0 0 1 33.94 0L224 277.09l101.57-101.58a24 24 0 0 1 33.95 0l17 17a24 24 0 0 1 0 34L241 361.94a24 24 0 0 1-33.94 0L71.52 226.43a24 24 0 0 1 0-33.94z\"]]\n};\nvar faChevronSquareLeft = {\n prefix: 'fad',\n iconName: 'chevron-square-left',\n icon: [448, 512, [], \"f32a\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-95.51 325.57a24 24 0 0 1 0 33.95l-17 17a24 24 0 0 1-33.95 0L118.06 273a24 24 0 0 1 0-33.94l135.51-135.54a24 24 0 0 1 33.95 0l17 17a24 24 0 0 1 0 33.94L202.91 256z\", \"M118.06 239l135.51-135.48a24 24 0 0 1 33.95 0l17 17a24 24 0 0 1 0 33.94L202.91 256l101.58 101.57a24 24 0 0 1 0 33.95l-17 17a24 24 0 0 1-33.95 0L118.06 273a24 24 0 0 1 0-34z\"]]\n};\nvar faChevronSquareRight = {\n prefix: 'fad',\n iconName: 'chevron-square-right',\n icon: [448, 512, [], \"f32b\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-70.06 241L194.43 408.48a24 24 0 0 1-33.94 0l-17-17a24 24 0 0 1 0-33.94L245.09 256 143.52 154.43a24 24 0 0 1 0-33.94l17-17a24 24 0 0 1 33.94 0L329.94 239a24 24 0 0 1 0 34z\", \"M143.52 154.43a24 24 0 0 1 0-33.94l17-17a24 24 0 0 1 33.94 0L329.94 239a24 24 0 0 1 0 33.94L194.43 408.48a24 24 0 0 1-33.94 0l-17-17a24 24 0 0 1 0-33.94L245.09 256z\"]]\n};\nvar faChevronSquareUp = {\n prefix: 'fad',\n iconName: 'chevron-square-up',\n icon: [448, 512, [], \"f32c\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-23.52 287.51l-17 17a24 24 0 0 1-33.94 0L224 234.91 122.43 336.48a24 24 0 0 1-33.94 0l-17-17a24 24 0 0 1 0-33.94L207 150.06a24 24 0 0 1 33.94 0l135.54 135.51a24 24 0 0 1 0 33.94z\", \"M71.52 285.57L207 150.06a24 24 0 0 1 33.94 0l135.54 135.51a24 24 0 0 1 0 33.94l-17 17a24 24 0 0 1-33.94 0L224 234.91 122.43 336.48a24 24 0 0 1-33.94 0l-17-17a24 24 0 0 1 .03-33.91z\"]]\n};\nvar faChevronUp = {\n prefix: 'fad',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", [\"M69.66 381.49a23.93 23.93 0 0 1-33.84 0l-22.65-22.7a24 24 0 0 1 0-33.94l154.04-154.31 56.89 56.78z\", \"M435 358.75l-22.65 22.7a23.92 23.92 0 0 1-33.84 0l-211.34-211 40-40a23.93 23.93 0 0 1 33.84 0L435 324.81a24 24 0 0 1 0 33.94z\"]]\n};\nvar faChild = {\n prefix: 'fad',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", [\"M120 72a72 72 0 1 1 72 72 72 72 0 0 1-72-72z\", \"M9.37 118.63a32 32 0 0 1 45.26-45.26L141.25 160h101.5l86.62-86.63a32 32 0 0 1 45.26 45.26L280 213.25V480a32 32 0 0 1-32 32h-16a32 32 0 0 1-32-32V368h-16v112a32 32 0 0 1-32 32h-16a32 32 0 0 1-32-32V213.25z\"]]\n};\nvar faChimney = {\n prefix: 'fad',\n iconName: 'chimney',\n icon: [512, 512, [], \"f78b\", [\"M160 224H32v128h128zM32 512h288V384H32zm320 0h128V384H352zM192 224v128h288V224z\", \"M0 160V32A32 32 0 0 1 32 0h448a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32z\"]]\n};\nvar faChurch = {\n prefix: 'fad',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", [\"M620.61 366.54L512 320v192h112a16 16 0 0 0 16-16V396a32 32 0 0 0-19.39-29.46zM0 396v100a16 16 0 0 0 16 16h112V320L19.39 366.54A32 32 0 0 0 0 396z\", \"M480 274.12V512h-96v-96a64 64 0 0 0-128 0v96h-96V274.12a32 32 0 0 1 15.54-27.44L288 179.2V128h-48a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h48V16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v48h48a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-48v51.2l112.46 67.48A32 32 0 0 1 480 274.12z\"]]\n};\nvar faCircle = {\n prefix: 'fad',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 424c-97.06 0-176-79-176-176S158.94 80 256 80s176 79 176 176-78.94 176-176 176z\", \"M256 432c-97.06 0-176-79-176-176S158.94 80 256 80s176 79 176 176-78.94 176-176 176z\"]]\n};\nvar faCircleNotch = {\n prefix: 'fad',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", [\"M504 257.28v.23C503.42 394 392.44 504.24 256 504v-64a184.09 184.09 0 0 0 177.16-134.42c27.44-97.84-29.63-199.41-127.47-226.85A24 24 0 0 1 288 55.66V39a24 24 0 0 1 30-23.22c107.4 27.65 186.61 125.38 186 241.5z\", \"M256 439.93v64C119.56 504.24 8.58 394 8 257.51v-.23C7.39 141.16 86.6 43.43 194 15.78A24 24 0 0 1 224 39v16.66a24 24 0 0 1-17.69 23.07c-97.84 27.44-154.91 129-127.47 226.85A184.07 184.07 0 0 0 256 439.93z\"]]\n};\nvar faCity = {\n prefix: 'fad',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", [\"M116 352H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm128 192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm320 192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\", \"M616 192H480V24a24 24 0 0 0-24-24H312a24 24 0 0 0-24 24v72h-64V16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v80h-64V16A16 16 0 0 0 96 0H80a16 16 0 0 0-16 16v80H24a24 24 0 0 0-24 24v360a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V216a24 24 0 0 0-24-24zM128 404a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm128 192a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm160 96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12V76a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm160 288a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]]\n};\nvar faClarinet = {\n prefix: 'fad',\n iconName: 'clarinet',\n icon: [640, 512, [], \"f8ad\", [\"M630.13 129.22a16 16 0 0 0-17.44 3.47L569.38 176H101.2a32 32 0 0 0-10.13 1.64l-80.13 26.71A16 16 0 0 0 0 219.53v72.94a16 16 0 0 0 10.94 15.18l80.13 26.71A32 32 0 0 0 101.2 336h468.18l43.31 43.31A16 16 0 0 0 640 368V144a16 16 0 0 0-9.87-14.78zM272 280a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm96 0a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm96 0a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M368 232a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm-96 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm232-120H232a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32h32v-32h64v32h32v-32h64v32h32v-32h24a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-40 120a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faClawMarks = {\n prefix: 'fad',\n iconName: 'claw-marks',\n icon: [512, 512, [], \"f6c2\", [\"M7 224.51c-5-2.37-9.4 4.09-5.49 8l85.12 85.13A32 32 0 0 1 96 340.27V384h43.74a32 32 0 0 1 22.63 9.37l117.14 117.16c3.86 3.86 10.32-.56 8-5.49C206.4 333.11 63.36 251.26 7 224.51zM511.51 281C430.4 109.11 287.36 27.26 231 .51c-5-2.37-9.4 4.09-5.49 8l21.13 21.12A32 32 0 0 1 256 52.26V96h43.74a32 32 0 0 1 22.63 9.37l52.26 52.26a32 32 0 0 1 9.37 22.63V224h43.73a32 32 0 0 1 22.63 9.37l53.16 53.16c3.86 3.86 10.32-.53 7.99-5.53z\", \"M2.67 15.13C-4.28 8.18 3.54-3.3 12.42.91A1010.5 1010.5 0 0 1 116.89 59 32.4 32.4 0 0 0 134 64h58v31.29a31.44 31.44 0 0 0 12.27 25c105.31 81.65 224.13 204 306.86 379.3 4.14 8.77-7.34 16.62-14.2 9.76l-84-84a32 32 0 0 0-22.64-9.35H352v-38.29a32 32 0 0 0-9.37-22.63l-89.71-89.71a32 32 0 0 0-22.63-9.37H192v-38.28a32 32 0 0 0-9.37-22.63z\"]]\n};\nvar faClinicMedical = {\n prefix: 'fad',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", [\"M288 115L69.48 307.72c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16H496a16 16 0 0 0 16-16V311.11c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\", \"M570.7 236.29l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.59l21.41 23.82a16 16 0 0 0 22.59 1.21L277.43 81.64a16 16 0 0 1 21.17 0l229.32 202.27a16 16 0 0 0 22.6-1.2l21.4-23.82a16 16 0 0 0-1.22-22.6zM376 320h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8z\"]]\n};\nvar faClipboard = {\n prefix: 'fad',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", [\"M336 63h-80v1a64 64 0 0 1 64 64H64a64 64 0 0 1 64-64v-1H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V111a48 48 0 0 0-48-48z\", \"M256 64a64 64 0 0 0-128 0 64 64 0 0 0-64 64h256a64 64 0 0 0-64-64zm-64 24a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faClipboardCheck = {\n prefix: 'fad',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", [\"M336 64h-80a64 64 0 0 1 64 64H64a64 64 0 0 1 64-64H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zm-22.8 207.8l-143 141.8a12 12 0 0 1-17-.1l-82.6-83.3a12 12 0 0 1 .1-17L99.1 285a12 12 0 0 1 17 .1l46 46.4 106-105.2a12 12 0 0 1 17 .1l28.2 28.4a12 12 0 0 1-.1 17z\", \"M285.1 226.4a12 12 0 0 0-17-.1l-106 105.2-46-46.4a12 12 0 0 0-17-.1l-28.4 28.2a12 12 0 0 0-.1 17l82.6 83.3a12 12 0 0 0 17 .1l143-141.8a12 12 0 0 0 .1-17zM256 64a64 64 0 0 0-128 0 64 64 0 0 0-64 64h256a64 64 0 0 0-64-64zm-64 24a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faClipboardList = {\n prefix: 'fad',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", [\"M336 64h-80a64 64 0 0 1 64 64H64a64 64 0 0 1 64-64H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM96 424a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm0-96a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm0-96a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm224 176a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8z\", \"M96 376a24 24 0 1 0 24 24 23.94 23.94 0 0 0-24-24zm0-96a24 24 0 1 0 24 24 23.94 23.94 0 0 0-24-24zm0-96a24 24 0 1 0 24 24 23.94 23.94 0 0 0-24-24zM256 64a64 64 0 0 0-128 0 64 64 0 0 0-64 64h256a64 64 0 0 0-64-64zm-64 24a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faClipboardListCheck = {\n prefix: 'fad',\n iconName: 'clipboard-list-check',\n icon: [384, 512, [], \"f737\", [\"M336 64h-80a64 64 0 0 1 64 64H64a64 64 0 0 1 64-64H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM65.6 241.4l12.7-12.6a5.37 5.37 0 0 1 7.6 0l20.6 20.8 47.6-47.2a5.37 5.37 0 0 1 7.6 0l12.6 12.7a5.37 5.37 0 0 1 0 7.6l-64.2 63.6a5.37 5.37 0 0 1-7.6 0L65.6 249a5.37 5.37 0 0 1 0-7.6zM96 392a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm224-16a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-96c0 4.4-4.3 8-9.6 8H154.1l32.3-32h124c5.3 0 9.6 3.6 9.6 8z\", \"M96 344a24 24 0 1 0 24 24 23.94 23.94 0 0 0-24-24zm65.7-141.6a5.37 5.37 0 0 0-7.6 0l-47.6 47.2-20.6-20.8a5.37 5.37 0 0 0-7.6 0l-12.7 12.6a5.37 5.37 0 0 0 0 7.6l36.9 37.3a5.37 5.37 0 0 0 7.6 0l64.2-63.6a5.37 5.37 0 0 0 0-7.6zM256 64a64 64 0 0 0-128 0 64 64 0 0 0-64 64h256a64 64 0 0 0-64-64zm-64 24a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faClipboardPrescription = {\n prefix: 'fad',\n iconName: 'clipboard-prescription',\n icon: [384, 512, [], \"f5e8\", [\"M336 63h-80a64 64 0 0 1 64 64H64a64 64 0 0 1 64-64H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V111a48 48 0 0 0-48-48zm-32 369l-11.31 11.31a16 16 0 0 1-22.63 0L240 413.25l-30.06 30.06a16 16 0 0 1-22.63 0L176 432a16 16 0 0 1 0-22.63l30.06-30.06L146.74 320H128v48a16 16 0 0 1-16 16H96a16 16 0 0 1-16-16V208a16 16 0 0 1 16-16h80a63.8 63.8 0 0 1 30.54 119.92L240 345.38l29.9-29.9a16 16 0 0 1 22.63 0l11.3 11.31a16 16 0 0 1 0 22.63l-29.9 29.9L304 409.38a16 16 0 0 1 0 22.62zM192 256a16 16 0 0 1-16 16h-48v-32h48a16 16 0 0 1 16 16z\", \"M273.93 379.32l29.9-29.9a16 16 0 0 0 0-22.63l-11.3-11.31a16 16 0 0 0-22.63 0l-29.9 29.9-33.46-33.46A63.8 63.8 0 0 0 176 192H96a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-48h18.74l59.32 59.31L176 409.37a16 16 0 0 0 0 22.63l11.31 11.31a16 16 0 0 0 22.63 0L240 413.25l30.06 30.06a16 16 0 0 0 22.63 0L304 432a16 16 0 0 0 0-22.62zM176 272h-48v-32h48a16 16 0 0 1 0 32zm80-209a64 64 0 0 0-128 0 64 64 0 0 0-64 64h256a64 64 0 0 0-64-64zm-64 24a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faClipboardUser = {\n prefix: 'fad',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", [\"M336 63h-80v1a64 64 0 0 1 64 64H64a64 64 0 0 1 64-64v-1H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V111a48 48 0 0 0-48-48zM192 192a64 64 0 1 1-64 64 64 64 0 0 1 64-64zm112 236.8c0 10.61-10 19.2-22.4 19.2H102.4C90 448 80 439.4 80 428.8v-19.2c0-31.81 30.09-57.6 67.2-57.6h5a103.22 103.22 0 0 0 79.7 0h5c37.11 0 67.2 25.79 67.2 57.6z\", \"M236.9 352h-5a103.22 103.22 0 0 1-79.7 0h-5c-37.11 0-67.2 25.79-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2h179.2c12.4 0 22.4-8.59 22.4-19.2l.1-19.2c0-31.81-30.1-57.6-67.2-57.6zM128 256a64 64 0 1 0 64-64 64 64 0 0 0-64 64zM256 64a64 64 0 0 0-128 0 64 64 0 0 0-64 64h256a64 64 0 0 0-64-64zm-64 24a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faClock = {\n prefix: 'fad',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", [\"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\", \"M348.49,321h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]]\n};\nvar faClone = {\n prefix: 'fad',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", [\"M48 512a48 48 0 0 1-48-48V176a48 48 0 0 1 48-48h48v208a80.09 80.09 0 0 0 80 80h208v48a48 48 0 0 1-48 48H48z\", \"M512 48v288a48 48 0 0 1-48 48H176a48 48 0 0 1-48-48V48a48 48 0 0 1 48-48h288a48 48 0 0 1 48 48z\"]]\n};\nvar faClosedCaptioning = {\n prefix: 'fad',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", [\"M464 64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM246.3 324c-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-.11.18-.24.36-.37.54a6.23 6.23 0 0 1-8.73 1.16c-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6a6.47 6.47 0 0 1 .57-.47 6.19 6.19 0 0 1 8.63 1.37l19.5 27.7a6 6 0 0 1-.5 7.7zm162.2-36.3a6.47 6.47 0 0 1 .57-.47 6.19 6.19 0 0 1 8.63 1.37l19.5 27.7a6 6 0 0 1-.5 7.7C383.2 380.9 264 356.1 264 256.1c0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-.11.18-.24.36-.37.54a6.23 6.23 0 0 1-8.73 1.16c-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\", \"M227.3 288.6a6.19 6.19 0 0 0-8.63-1.37 6.47 6.47 0 0 0-.57.47c-41.2 37.9-92.2 15.4-92.3-32.6 0-46.1 53.8-63.2 94.6-31.2a6.23 6.23 0 0 0 8.73-1.16c.13-.18.26-.36.37-.54l17.5-30.5c1.5-2.5 1.1-3.7-1-5.7-50.8-49.4-172.5-27.2-172.5 70.1 0 100 119.2 124.7 172.8 67.9a6 6 0 0 0 .5-7.7zm190.4 0a6.19 6.19 0 0 0-8.63-1.37 6.47 6.47 0 0 0-.57.47c-41.2 37.9-92.2 15.4-92.2-32.6 0-46.1 53.8-63.2 94.6-31.2a6.23 6.23 0 0 0 8.73-1.16c.13-.18.26-.36.37-.54l17.5-30.5c1.5-2.5 1.1-3.7-1-5.7-50.8-49.4-172.5-27.2-172.5 70.1 0 100 119.2 124.8 172.7 67.9a6 6 0 0 0 .5-7.7z\"]]\n};\nvar faCloud = {\n prefix: 'fad',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", [\"\", \"M640 352a128 128 0 0 1-128 128H144a144 144 0 0 1-47.8-279.9c-.1-2.7-.2-5.4-.2-8.1a160 160 0 0 1 298.7-79.8A95.95 95.95 0 0 1 544 192a96.66 96.66 0 0 1-6.4 34.6A128 128 0 0 1 640 352z\"]]\n};\nvar faCloudDownload = {\n prefix: 'fad',\n iconName: 'cloud-download',\n icon: [640, 512, [], \"f0ed\", [\"M537.6 226.6A96.11 96.11 0 0 0 448 96a95.51 95.51 0 0 0-53.3 16.2A160 160 0 0 0 96 192c0 2.7.1 5.4.2 8.1A144 144 0 0 0 144 480h368a128 128 0 0 0 25.6-253.4zm-139.9 93L305 412.3a23.9 23.9 0 0 1-33.9 0l-92.7-92.7a23.9 23.9 0 0 1 0-33.9l10.8-10.8a24.09 24.09 0 0 1 34.5.5l32.4 34.5V184a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v125.9l32.4-34.5a24 24 0 0 1 34.5-.5l10.8 10.8a24.18 24.18 0 0 1-.1 33.9z\", \"M397.7 319.6L305 412.3a23.9 23.9 0 0 1-33.9 0l-92.7-92.7a23.9 23.9 0 0 1 0-33.9l10.8-10.8a24.09 24.09 0 0 1 34.5.5l32.4 34.5V184a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v125.9l32.4-34.5a24 24 0 0 1 34.5-.5l10.8 10.8a24.18 24.18 0 0 1-.1 33.9z\"]]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fad',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", [\"M537.6 226.6A96.11 96.11 0 0 0 448 96a95.51 95.51 0 0 0-53.3 16.2A160 160 0 0 0 96 192c0 2.7.1 5.4.2 8.1A144 144 0 0 0 144 480h368a128 128 0 0 0 25.6-253.4zm-132.9 88.7L299.3 420.7a16.06 16.06 0 0 1-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176a16 16 0 0 1 16-16h48a16 16 0 0 1 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\", \"M404.7 315.3L299.3 420.7a16.06 16.06 0 0 1-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176a16 16 0 0 1 16-16h48a16 16 0 0 1 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]]\n};\nvar faCloudDrizzle = {\n prefix: 'fad',\n iconName: 'cloud-drizzle',\n icon: [512, 512, [], \"f738\", [\"M48 360a16 16 0 0 0-16 16v40a16 16 0 0 0 32 0v-40a16 16 0 0 0-16-16zm96 80a16 16 0 0 0-16 16v40a16 16 0 0 0 32 0v-40a16 16 0 0 0-16-16zm96-80a16 16 0 0 0-16 16v40a16 16 0 0 0 32 0v-40a16 16 0 0 0-16-16zm96 80a16 16 0 0 0-16 16v40a16 16 0 0 0 32 0v-40a16 16 0 0 0-16-16zm96-80a16 16 0 0 0-16 16v40a16 16 0 0 0 32 0v-40a16 16 0 0 0-16-16z\", \"M512 224a96 96 0 0 1-96 96H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 96 96z\"]]\n};\nvar faCloudHail = {\n prefix: 'fad',\n iconName: 'cloud-hail',\n icon: [512, 512, [], \"f739\", [\"M384 352a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-192 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm128 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-64-96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM64 448a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm64-96a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\", \"M512 224a96 96 0 0 1-96 96H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 96 96z\"]]\n};\nvar faCloudHailMixed = {\n prefix: 'fad',\n iconName: 'cloud-hail-mixed',\n icon: [512, 512, [], \"f73a\", [\"M183.89 370.13a15.88 15.88 0 0 0-21.8 6l-64 112a15.91 15.91 0 0 0 6 21.79 16 16 0 0 0 21.8-6l64-112a16 16 0 0 0-6-21.79zm95.3-.4a16 16 0 0 0-21.5 7.2l-16 32a16 16 0 0 0 7.2 21.5 16.88 16.88 0 0 0 7.2 1.7 16 16 0 0 0 14.3-8.8l16-32a16.23 16.23 0 0 0-7.2-21.6zm-192 0a16 16 0 0 0-21.5 7.2l-16 32a16 16 0 0 0 7.2 21.5 16.88 16.88 0 0 0 7.2 1.7 16 16 0 0 0 14.3-8.8l16-32a16.23 16.23 0 0 0-7.19-21.6zm384 0a16 16 0 0 0-21.5 7.2l-16 32a16 16 0 0 0 7.19 21.5 16.88 16.88 0 0 0 7.2 1.7 16 16 0 0 0 14.3-8.8l16-32a16.23 16.23 0 0 0-7.2-21.6zm-95.29.4a15.88 15.88 0 0 0-21.8 6l-64 112a15.91 15.91 0 0 0 6 21.79 16 16 0 0 0 21.8-6l64-112a16 16 0 0 0-6.01-21.79zM32 448a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm192 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm192 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\", \"M512 224a96 96 0 0 1-96 96H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 96 96z\"]]\n};\nvar faCloudMeatball = {\n prefix: 'fad',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", [\"M48 352a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm416 0a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3s-27.8-14.4-42.3-9.9c-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9s-14.4 27.8-9.9 42.3c-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3a41.79 41.79 0 0 0 29.7 12.3 39.21 39.21 0 0 0 12.6-2.5c7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5a41.79 41.79 0 0 0 29.7-12.3c11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9z\", \"M416 320h-43.4a70.78 70.78 0 0 0-14.8-21.8 72.44 72.44 0 0 0-50.8-21.3 72.67 72.67 0 0 0-102 0 71.9 71.9 0 0 0-65.6 43.1H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 0 192z\"]]\n};\nvar faCloudMoon = {\n prefix: 'fad',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", [\"M574 313.47A191.54 191.54 0 0 1 436.9 384a110.41 110.41 0 0 0-53.5-52.7 94.83 94.83 0 0 0 .6-10.72c0-53-43.1-96.17-96-96.17a95.1 95.1 0 0 0-36.4 7.21 124.78 124.78 0 0 0-16.7-14.22 188.15 188.15 0 0 1-1.8-25.05C233.1 86.06 319.1 0 425 0a197.47 197.47 0 0 1 35.1 3.21c8.2 1.6 10.1 12.62 2.8 16.73a150.63 150.63 0 0 0-76.1 131c0 94.17 85.4 165.7 178.5 148a9 9 0 0 1 8.7 14.53z\", \"M416 432a80 80 0 0 1-80 80H96a96 96 0 0 1-96-96c0-41.9 27.1-77.2 64.6-90.3-.1-1.9-.6-3.7-.6-5.7a96 96 0 0 1 96-96c36.2 0 67.4 20.3 83.7 49.9a63.83 63.83 0 0 1 99.1 78.8c40.9 3.5 73.2 37.4 73.2 79.3z\"]]\n};\nvar faCloudMoonRain = {\n prefix: 'fad',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", [\"M567.9 223.8c-70.4 13.3-135-40.3-135-110.8a112.62 112.62 0 0 1 57.5-98.1 6.74 6.74 0 0 0-2.1-12.5A146.75 146.75 0 0 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9a111.46 111.46 0 0 1 58.9 61.7 111.81 111.81 0 0 1 70.2 86.8c5.1.5 10 1.5 15.2 1.5a145 145 0 0 0 112.6-53.3c4.2-4.8-.2-12-6.4-10.8zM364.5 418.1a16 16 0 0 0-21.8 6l-36.6 64a15.94 15.94 0 0 0 6 21.8 16 16 0 0 0 21.8-6l36.6-64a16 16 0 0 0-6-21.8zm-96 0a16 16 0 0 0-21.8 6l-36.6 64a15.94 15.94 0 0 0 6 21.8 16 16 0 0 0 21.8-6l36.6-64a16 16 0 0 0-6-21.8zm-96 0a16 16 0 0 0-21.8 6l-36.6 64a15.94 15.94 0 0 0 6 21.8 16 16 0 0 0 21.8-6l36.6-64a16 16 0 0 0-6-21.8zm-96 0a16 16 0 0 0-21.8 6l-36.6 64a15.94 15.94 0 0 0 6 21.8 16 16 0 0 0 21.8-6l36.6-64a16 16 0 0 0-6-21.8z\", \"M416 304a80 80 0 0 1-80 80H80a80 80 0 0 1-15.8-158.4c0-.5-.2-1.1-.2-1.6a95.82 95.82 0 0 1 173.7-56 79 79 0 0 1 34.3-8 80 80 0 0 1 78.5 65.5A79.79 79.79 0 0 1 416 304z\"]]\n};\nvar faCloudMusic = {\n prefix: 'fad',\n iconName: 'cloud-music',\n icon: [640, 512, [], \"f8ae\", [\"M537.59 226.59a96 96 0 0 0-142.9-114.39A160 160 0 0 0 96 192c0 2.7.09 5.41.19 8.09A144 144 0 0 0 144 480h368a128 128 0 0 0 25.59-253.41zM384 352c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-76.36l-96 37.52V384c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2V239.25A16 16 0 0 1 235.19 224l128-47.25A16 16 0 0 1 384 192z\", \"M208 352a69.82 69.82 0 0 1 16 2V239.25A16 16 0 0 1 235.19 224l128-47.25A16 16 0 0 1 384 192v160c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-76.36l-96 37.52V384c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32z\"]]\n};\nvar faCloudRain = {\n prefix: 'fad',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", [\"M88 374.22c-12.8 44.4-40 56.39-40 87.69C48 489.6 69.5 512 96 512s48-22.4 48-50.09c0-31.4-27.2-43.09-40-87.69a8.26 8.26 0 0 0-16 0zm160 0c-12.8 44.4-40 56.39-40 87.69 0 27.69 21.5 50.09 48 50.09s48-22.4 48-50.09c0-31.4-27.2-43.09-40-87.69a8.26 8.26 0 0 0-16 0zm176 0a8.26 8.26 0 0 0-16 0c-12.8 44.4-40 56.39-40 87.69 0 27.69 21.5 50.09 48 50.09s48-22.4 48-50.09c0-31.4-27.2-43.09-40-87.69z\", \"M512 224a96 96 0 0 1-96 96H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 96 96z\"]]\n};\nvar faCloudRainbow = {\n prefix: 'fad',\n iconName: 'cloud-rainbow',\n icon: [576, 512, [], \"f73e\", [\"M430.8 304.9a125.07 125.07 0 0 1 26.9 20.3C487.1 292.8 529 272 576 272v-64a223.38 223.38 0 0 0-156.8 64.3 94.09 94.09 0 0 1 11.6 32.6zM238.6 173.6a142.8 142.8 0 0 1 56.6 31C359.6 119.4 461.3 64 576 64V0C437.1 0 314.2 68.7 238.6 173.6zm87.2 51.5c7.4-.8 36.7-5.4 68.4 18.9A255.37 255.37 0 0 1 576 168v-64c-101.3 0-191.6 47.4-250.2 121.1z\", \"M399.2 325.6c37.6 13 64.8 48.4 64.8 90.4a96 96 0 0 1-96 96H96a96 96 0 0 1-96-96c0-50.6 39.2-91.6 88.9-95.3-.2-2.9-.9-5.7-.9-8.7a111.87 111.87 0 0 1 213.9-46 63.81 63.81 0 0 1 98.1 54 53.91 53.91 0 0 1-.8 5.6z\"]]\n};\nvar faCloudShowers = {\n prefix: 'fad',\n iconName: 'cloud-showers',\n icon: [512, 512, [], \"f73f\", [\"M48 368a16 16 0 0 0-16 16v80a16 16 0 0 0 32 0v-80a16 16 0 0 0-16-16zm96 32a16 16 0 0 0-16 16v80a16 16 0 0 0 32 0v-80a16 16 0 0 0-16-16zm96-32a16 16 0 0 0-16 16v80a16 16 0 0 0 32 0v-80a16 16 0 0 0-16-16zm96 32a16 16 0 0 0-16 16v80a16 16 0 0 0 32 0v-80a16 16 0 0 0-16-16zm96-32a16 16 0 0 0-16 16v80a16 16 0 0 0 32 0v-80a16 16 0 0 0-16-16z\", \"M512 224a96 96 0 0 1-96 96H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 96 96z\"]]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fad',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", [\"M183.9 370.1a15.88 15.88 0 0 0-21.8 6l-64 112a15.92 15.92 0 0 0 6 21.8 16 16 0 0 0 21.8-6l64-112a16 16 0 0 0-6-21.8zm96 0a15.88 15.88 0 0 0-21.8 6l-64 112a15.92 15.92 0 0 0 6 21.8 16 16 0 0 0 21.8-6l64-112a16 16 0 0 0-6-21.8zm-192 0a15.88 15.88 0 0 0-21.8 6l-64 112a15.92 15.92 0 0 0 6 21.8 16 16 0 0 0 21.8-6l64-112a16 16 0 0 0-5.99-21.8zm384 0a15.88 15.88 0 0 0-21.8 6l-64 112a15.92 15.92 0 0 0 6 21.8 16 16 0 0 0 21.8-6l64-112a16 16 0 0 0-6.01-21.8zm-96 0a15.88 15.88 0 0 0-21.8 6l-64 112a15.92 15.92 0 0 0 6 21.8 16 16 0 0 0 21.8-6l64-112a16 16 0 0 0-6.01-21.8z\", \"M512 224a96 96 0 0 1-96 96H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 112 112 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 96 96z\"]]\n};\nvar faCloudSleet = {\n prefix: 'fad',\n iconName: 'cloud-sleet',\n icon: [512, 512, [], \"f741\", [\"M87.2 353.7a16.12 16.12 0 0 0-21.5 7.2l-64 128a16 16 0 0 0 7.2 21.5 16.88 16.88 0 0 0 7.2 1.7 16 16 0 0 0 14.3-8.8l64-128a16.23 16.23 0 0 0-7.2-21.6zm256 0a16.12 16.12 0 0 0-21.5 7.2l-64 128a16 16 0 0 0 7.2 21.5 16.88 16.88 0 0 0 7.2 1.7 16 16 0 0 0 14.3-8.8l64-128a16.23 16.23 0 0 0-7.2-21.6zM492 432l-27.9-16 27.9-16a8 8 0 0 0 2.9-10.9l-8-13.9a8 8 0 0 0-10.9-2.9l-28 16.1V360a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v28.4l-28-16.1a8 8 0 0 0-10.9 2.9l-8 13.9A8 8 0 0 0 372 400l27.9 16-27.9 16a8 8 0 0 0-2.9 10.9l8 13.9a8 8 0 0 0 10.9 2.9l28-16.1V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-28.4l28 16.1a8 8 0 0 0 10.9-2.9l8-13.9A8 8 0 0 0 492 432zm-253.1-42.9l-8-13.9a8 8 0 0 0-10.9-2.9l-28 16.1V360a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v28.4l-28-16.1a8 8 0 0 0-10.9 2.9l-8 13.9A8 8 0 0 0 116 400l27.9 16-27.9 16a8 8 0 0 0-2.9 10.9l8 13.9a8 8 0 0 0 10.9 2.9l28-16.1V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-28.4l28 16.1a8 8 0 0 0 10.9-2.9l8-13.9A8 8 0 0 0 236 432l-27.9-16 27.9-16a8 8 0 0 0 2.9-10.9z\", \"M416 320H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 0 192z\"]]\n};\nvar faCloudSnow = {\n prefix: 'fad',\n iconName: 'cloud-snow',\n icon: [512, 512, [], \"f742\", [\"M126.9 389.1l-8-13.9a8 8 0 0 0-10.9-2.9l-28 16.1V360a8 8 0 0 0-8-8H56a8 8 0 0 0-8 8v28.4l-28-16.1a8 8 0 0 0-10.9 2.9l-8 13.9A8 8 0 0 0 4 400l27.9 16L4 432a8 8 0 0 0-2.9 10.9l8 13.9a8 8 0 0 0 10.9 2.9l28-16.1V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-28.4l28 16.1a8 8 0 0 0 10.9-2.9l8-13.9A8 8 0 0 0 124 432l-27.9-16 27.9-16a8 8 0 0 0 2.9-10.9zm192 32l-8-13.9a8 8 0 0 0-10.9-2.9l-28 16.1V392a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v28.4l-28-16.1a8 8 0 0 0-10.9 2.9l-8 13.9A8 8 0 0 0 196 432l27.9 16-27.9 16a8 8 0 0 0-2.9 10.9l8 13.9a8 8 0 0 0 10.9 2.9l28-16.1V504a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-28.4l28 16.1a8 8 0 0 0 10.9-2.9l8-13.9A8 8 0 0 0 316 464l-27.9-16 27.9-16a8 8 0 0 0 2.9-10.9zM508 432l-27.9-16 27.9-16a8 8 0 0 0 2.9-10.9l-8-13.9a8 8 0 0 0-10.9-2.9l-28 16.1V360a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v28.4l-28-16.1a8 8 0 0 0-10.9 2.9l-8 13.9A8 8 0 0 0 388 400l27.9 16-27.9 16a8 8 0 0 0-2.9 10.9l8 13.9a8 8 0 0 0 10.9 2.9l28-16.1V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-28.4l28 16.1a8 8 0 0 0 10.9-2.9l8-13.9A8 8 0 0 0 508 432z\", \"M0 224c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 0 192H96a96 96 0 0 1-96-96z\"]]\n};\nvar faCloudSun = {\n prefix: 'fad',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", [\"M366.8 61.89L279 91.18 237.5 8.4a15.13 15.13 0 0 0-27.1 0L169 91.18 81.1 61.89a15.23 15.23 0 0 0-19.2 19.19l29.3 87.79-82.8 41.49a15.12 15.12 0 0 0 0 27.09l82.8 41.4-29.3 87.78a15.16 15.16 0 0 0 19.2 19.19l76.1-25.29A129 129 0 0 1 180.8 327a110.27 110.27 0 0 1-36-24 112 112 0 1 1 180.7-125.53 143.5 143.5 0 0 1 30.7-7.5L386 81.08a15.16 15.16 0 0 0-19.2-19.19zM224 140a83.85 83.85 0 0 0-16.1 166.17 128.29 128.29 0 0 1 25.2-11.7 144.12 144.12 0 0 1 67.4-105A84.15 84.15 0 0 0 224 140z\", \"M575.2 325.64c37.6 13 64.8 48.29 64.8 90.38a96 96 0 0 1-96 96H272a96 96 0 0 1-96-96c0-50.59 39.3-91.58 88.9-95.28-.2-2.9-.9-5.7-.9-8.7a112 112 0 0 1 112-112c45.4 0 84.3 27.2 101.9 66A63.81 63.81 0 0 1 576 320a53.91 53.91 0 0 1-.8 5.6z\"]]\n};\nvar faCloudSunRain = {\n prefix: 'fad',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", [\"M322 96.2l8.9-26.7a13 13 0 0 0-16.5-16.4l-75.3 25.1-35.5-71a13 13 0 0 0-23.3 0l-35.5 71-75.3-25.1a13 13 0 0 0-16.4 16.5l25.1 75.3-71 35.5a13 13 0 0 0 0 23.3l71 35.5-25.1 75.3A13.06 13.06 0 0 0 69.6 331l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2a110.52 110.52 0 0 1 6.2-35.9 92.22 92.22 0 0 1-10.2-8.3 96.21 96.21 0 0 1 0-135.8c34.6-34.6 89.1-36.8 126.7-7.4A127.12 127.12 0 0 1 320 96c.7 0 1.3.2 2 .2zm-96.2 41.7A63.13 63.13 0 0 0 192 128a64.06 64.06 0 0 0-64 64 63.4 63.4 0 0 0 21.1 47.1 112.14 112.14 0 0 1 44.8-37.2 127.52 127.52 0 0 1 31.9-64zm298.7 280.2a16 16 0 0 0-21.8 6l-36.6 64a15.94 15.94 0 0 0 6 21.8 16 16 0 0 0 21.8-6l36.6-64a16 16 0 0 0-6-21.8zm-96 0a16 16 0 0 0-21.8 6l-36.6 64a15.94 15.94 0 0 0 6 21.8 16 16 0 0 0 21.8-6l36.6-64a16 16 0 0 0-6-21.8zm-96 0a16 16 0 0 0-21.8 6l-36.6 64a15.94 15.94 0 0 0 6 21.8 16 16 0 0 0 21.8-6l36.6-64a16 16 0 0 0-6-21.8zm-96 0a16 16 0 0 0-21.8 6l-36.6 64a15.94 15.94 0 0 0 6 21.8 16 16 0 0 0 21.8-6l36.6-64a16 16 0 0 0-6-21.8z\", \"M576 304a80 80 0 0 1-80 80H240a80 80 0 0 1-15.8-158.4c0-.5-.2-1.1-.2-1.6a95.82 95.82 0 0 1 173.7-56 79 79 0 0 1 34.3-8 80 80 0 0 1 78.5 65.5A79.79 79.79 0 0 1 576 304z\"]]\n};\nvar faCloudUpload = {\n prefix: 'fad',\n iconName: 'cloud-upload',\n icon: [640, 512, [], \"f0ee\", [\"M537.6 226.6A96.11 96.11 0 0 0 448 96a95.51 95.51 0 0 0-53.3 16.2A160 160 0 0 0 96 192c0 2.7.1 5.4.2 8.1A144 144 0 0 0 144 480h368a128 128 0 0 0 25.6-253.4zm-139.9 63.7l-10.8 10.8a24.09 24.09 0 0 1-34.5-.5L320 266.1V392a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V266.1l-32.4 34.5a24 24 0 0 1-34.5.5l-10.8-10.8a23.9 23.9 0 0 1 0-33.9l92.7-92.7a23.9 23.9 0 0 1 33.9 0l92.7 92.7a24 24 0 0 1 .1 33.9z\", \"M397.7 290.3l-10.8 10.8a24.09 24.09 0 0 1-34.5-.5L320 266.1V392a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24V266.1l-32.4 34.5a24 24 0 0 1-34.5.5l-10.8-10.8a23.9 23.9 0 0 1 0-33.9l92.7-92.7a23.9 23.9 0 0 1 33.9 0l92.7 92.7a24 24 0 0 1 .1 33.9z\"]]\n};\nvar faCloudUploadAlt = {\n prefix: 'fad',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", [\"M537.6 226.6A96.11 96.11 0 0 0 448 96a95.51 95.51 0 0 0-53.3 16.2A160 160 0 0 0 96 192c0 2.7.1 5.4.2 8.1A144 144 0 0 0 144 480h368a128 128 0 0 0 25.6-253.4zM393.4 288H328v112a16 16 0 0 1-16 16h-48a16 16 0 0 1-16-16V288h-65.4a16 16 0 0 1-11.3-27.3l105.4-105.4a16.06 16.06 0 0 1 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\", \"M393.4 288H328v112a16 16 0 0 1-16 16h-48a16 16 0 0 1-16-16V288h-65.4a16 16 0 0 1-11.3-27.3l105.4-105.4a16.06 16.06 0 0 1 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]]\n};\nvar faClouds = {\n prefix: 'fad',\n iconName: 'clouds',\n icon: [640, 512, [], \"f744\", [\"M161.6 288H96a96 96 0 0 1 0-192c.6 0 1.1.2 1.6.2C105.3 41.9 151.6 0 208 0a111.61 111.61 0 0 1 104.5 72.7A95.07 95.07 0 0 1 352 64a96 96 0 0 1 96 96 93 93 0 0 1-7 34.7 110.5 110.5 0 0 0-31.6 11.8A142.54 142.54 0 0 0 304 160c-73.9 0-134.3 56.2-142.4 128z\", \"M640 416a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 192 304a111.94 111.94 0 0 1 112-112c43.2 0 80.4 24.9 99 60.8 14.7-17.5 36.4-28.8 61-28.8a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 96 96z\"]]\n};\nvar faCloudsMoon = {\n prefix: 'fad',\n iconName: 'clouds-moon',\n icon: [640, 512, [], \"f745\", [\"M638.48 257.87A159.19 159.19 0 0 1 534.56 320a124.64 124.64 0 0 0-61.37-27.16 111.65 111.65 0 0 0-88.77-62.12 113.15 113.15 0 0 0-32.06-62.37c0-.7-.24-1.3-.27-2C349.13 77.53 418.1 3.12 506 .09a155.62 155.62 0 0 1 29.15 1.72A7.56 7.56 0 0 1 538 15.69a126.31 126.31 0 0 0-59.51 111.7c2.62 78.77 75.59 136.11 152.4 118.57 6.75-1.54 11.76 6.24 7.59 11.91z\", \"M448 320h-1.6a79.68 79.68 0 0 0-139.44-35.2c-18.61-35.9-55.82-60.8-99-60.8-58.38 0-105.7 44.7-110.96 101.6-37.85 12.9-65.16 48.3-65.16 90.4a96 96 0 0 0 96 96H448a96 96 0 1 0 0-192zM68 303.41c14.79-64.66 71.51-111.31 139-111.31a141.46 141.46 0 0 1 104.88 46.55 110.61 110.61 0 0 1 36.91-12.92c-6.76-37.34-39.1-65.66-78.11-65.66h-17.54a79.53 79.53 0 0 0-156 0H79.6c-44 0-79.6 35.83-79.6 80.08a80 80 0 0 0 50.75 74.47A131.22 131.22 0 0 1 68 303.41z\"]]\n};\nvar faCloudsSun = {\n prefix: 'fad',\n iconName: 'clouds-sun',\n icon: [640, 512, [], \"f746\", [\"M314.45 53.1l-75.29 25.1-35.49-71a13 13 0 0 0-23.3 0l-35.49 71-75.29-25.1a13.06 13.06 0 0 0-16.5 16.5l25.1 75.3-71 35.5a13 13 0 0 0 0 23.3l71 35.5-25.1 75.3a13.06 13.06 0 0 0 16.5 16.5l42.69-14.2a124.47 124.47 0 0 1 20.1-13.6 141.91 141.91 0 0 1 10.5-29.1 94.9 94.9 0 0 1-18.7-150 96.18 96.18 0 0 1 135.78 0 93.93 93.93 0 0 1 24.1 42.4 110.08 110.08 0 0 1 20.59-18.6L331 69.5a13 13 0 0 0-16.55-16.4zM192.07 128a63.78 63.78 0 0 0-32.3 118.9A141.32 141.32 0 0 1 256 193.4c0-.5.1-.9.1-1.4a64.06 64.06 0 0 0-64.03-64z\", \"M512 320h-1.6a80 80 0 0 0-78.4-64c-24.6 0-46.3 11.3-61 28.8-18.6-35.9-55.8-60.8-99-60.8-58.3 0-105.6 44.7-110.9 101.6C123.3 338.5 96 373.9 96 416a96 96 0 0 0 96 96h320a96 96 0 0 0 0-192zm48-160h-17.58a80 80 0 0 0-156.78 0H368a79.77 79.77 0 0 0-66.19 35.1 142.52 142.52 0 0 1 75.59 43.3 110.34 110.34 0 0 1 54.6-14.5 112.41 112.41 0 0 1 102.09 65.9 127.06 127.06 0 0 1 55 24.4A79.81 79.81 0 0 0 560 160z\"]]\n};\nvar faClub = {\n prefix: 'fad',\n iconName: 'club',\n icon: [512, 512, [], \"f327\", [\"M512 292a124 124 0 0 1-124 124c-41.36 0-77.55-20.54-100-51.69V272a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v92.31C201.55 395.46 165.36 416 124 416a124 124 0 0 1 0-248c5.8 0 11.36.94 16.95 1.71a124 124 0 1 1 230.1 0c5.59-.77 11.15-1.71 16.95-1.71a124 124 0 0 1 124 124z\", \"M367.31 486.59A32 32 0 0 1 336 512H176a32 32 0 0 1-13-61.3c52.19-23.2 60.91-38.9 61-75.61V272a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v103.09c.19 37.5 9.41 52.61 61 75.61a32.09 32.09 0 0 1 18.31 35.89z\"]]\n};\nvar faCocktail = {\n prefix: 'fad',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", [\"M208 280.27L264.28 224H151.72zM432 0c-62.6 0-115.34 40.2-135.17 96h52.53C366 67.45 396.63 48 432 48a96 96 0 0 1 0 192 95 95 0 0 1-39.32-8.64l-35.26 35.26A144 144 0 1 0 432 0z\", \"M408.75 170.05c15.52-15.52 4.53-42.05-17.42-42.05H24.69c-22 0-32.94 26.53-17.42 42.05L176 338.78V464h-56a40 40 0 0 0-40 40 8 8 0 0 0 8 8h240a8 8 0 0 0 8-8 40 40 0 0 0-40-40h-56V338.78zM208 280.27L119.73 192h176.55z\"]]\n};\nvar faCode = {\n prefix: 'fad',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", [\"M422.12 18.16a12 12 0 0 1 8.2 14.9l-136.5 470.2a12 12 0 0 1-14.89 8.2l-61-17.7a12 12 0 0 1-8.2-14.9l136.5-470.2a12 12 0 0 1 14.89-8.2z\", \"M636.23 247.26l-144.11-135.2a12.11 12.11 0 0 0-17 .5L431.62 159a12 12 0 0 0 .81 17.2L523 256l-90.59 79.7a11.92 11.92 0 0 0-.81 17.2l43.5 46.4a12 12 0 0 0 17 .6l144.11-135.1a11.94 11.94 0 0 0 .02-17.54zm-427.8-88.2l-43.5-46.4a12 12 0 0 0-17-.5l-144.11 135a11.94 11.94 0 0 0 0 17.5l144.11 135.1a11.92 11.92 0 0 0 17-.5l43.5-46.4a12 12 0 0 0-.81-17.2L117 256l90.6-79.7a11.92 11.92 0 0 0 .83-17.24z\"]]\n};\nvar faCodeBranch = {\n prefix: 'fad',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", [\"M328 220.33V224c0 32-6.69 47.26-20 63.8-28.2 35-76 39.5-118.2 43.4-25.7 2.4-49.9 4.6-66.1 12.8-3.82 1.94-9.25 6.44-13.44 13.94A80.16 80.16 0 0 0 56 355.67V156.33a80.31 80.31 0 0 0 48 0v144c23.9-11.5 53.1-14.3 81.3-16.9 35.9-3.3 69.8-6.5 85.2-25.7 6.34-7.83 9.5-17.7 9.5-33.7v-3.67a80.31 80.31 0 0 0 48 0z\", \"M80 0a80 80 0 1 0 80 80A80 80 0 0 0 80 0zm0 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0 256a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM304 64a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faCodeCommit = {\n prefix: 'fad',\n iconName: 'code-commit',\n icon: [640, 512, [], \"f386\", [\"M628 224H509.4a189.29 189.29 0 0 1 2.6 32 200.23 200.23 0 0 1-2.6 32H628a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm-616 0a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h118.6a198.22 198.22 0 0 1 0-64z\", \"M320 96a160 160 0 1 0 160 160A160 160 0 0 0 320 96zm0 202a42 42 0 1 1 42-42 42 42 0 0 1-42 42z\"]]\n};\nvar faCodeMerge = {\n prefix: 'fad',\n iconName: 'code-merge',\n icon: [384, 512, [], \"f387\", [\"M227.06 293.9A199.9 199.9 0 0 1 104 225.83v129.84a80.31 80.31 0 0 0-48 0V156.33a80.24 80.24 0 0 0 58.73-4.24 152.51 152.51 0 0 0 113.78 93.41 80 80 0 0 0-1.45 48.4z\", \"M80 0a80 80 0 1 0 80 80A80 80 0 0 0 80 0zm0 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0 256a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm224-256a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faCoffee = {\n prefix: 'fad',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", [\"M559.76 480H48.36c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\", \"M512.06 32h-392a23.94 23.94 0 0 0-24 24v232a96 96 0 0 0 96 96h192a96 96 0 0 0 96-96h32a128 128 0 0 0 0-256zm0 192h-32V96h32a64 64 0 0 1 0 128z\"]]\n};\nvar faCoffeePot = {\n prefix: 'fad',\n iconName: 'coffee-pot',\n icon: [512, 512, [], \"e002\", [\"M424.06,171.86l-271.86.63C98.63,212.07,64,274.39,64,344.62c0,51.47,18.62,84.77,49.64,117.71A57.17,57.17,0,0,0,155.16,480H420.84a57.08,57.08,0,0,0,41.45-17.6c31-32.95,49.69-66.24,49.71-117.72C512,275.13,478.41,211.82,424.06,171.86Zm-6,244.14H158c-22.34-24.35-30-42.72-30-71.38,0-41.12,17-79.62,47.3-108.18l225.81-.53A148.57,148.57,0,0,1,448,344.66C448,373.3,440.37,391.67,418.05,416Z\", \"M130.55,320A146,146,0,0,0,128,344.62c0,28.66,7.62,47,30,71.38H418.05C440.37,391.67,448,373.3,448,344.66A150.45,150.45,0,0,0,445.5,320ZM424.06,171.86,480,32H88A88,88,0,0,0,0,120v88a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V136a40,40,0,0,1,40-40h17.6l30.6,76.49Z\"]]\n};\nvar faCoffeeTogo = {\n prefix: 'fad',\n iconName: 'coffee-togo',\n icon: [448, 512, [], \"f6c5\", [\"M48 160h352l-8 96H56zm330.67 256H69.33l-11-131.76 16.56 198.42A32 32 0 0 0 106.78 512h234.44a32 32 0 0 0 31.89-29.34l16.54-198.42z\", \"M69.33 416h309.34L392 256H56zM432 64h-16l-23.16-46.31A32 32 0 0 0 364.22 0H83.78a32 32 0 0 0-28.62 17.69L32 64H16A16 16 0 0 0 0 80v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]]\n};\nvar faCoffin = {\n prefix: 'fad',\n iconName: 'coffin',\n icon: [384, 512, [], \"f6c6\", [\"M237.53,48l96.65,94.92L252.44,464H131.57L49.83,142.91,146.45,48h91.08\", \"M237.53,48l96.65,94.92L252.44,464H131.57L49.83,142.91,146.45,48h91.08m6.14-48H140.32a32.93,32.93,0,0,0-23,9.37L9.54,115.19A31.61,31.61,0,0,0,1,145.58L88.08,487.76A32.47,32.47,0,0,0,119.69,512H264.31a32.5,32.5,0,0,0,31.62-24.24L383,145.58a31.65,31.65,0,0,0-8.59-30.39h0L266.7,9.37a32.89,32.89,0,0,0-23-9.37Z\"]]\n};\nvar faCoffinCross = {\n prefix: 'fad',\n iconName: 'coffin-cross',\n icon: [384, 512, [], \"e051\", [\"M288 192a16 16 0 0 1-16 16h-56v128a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16V208h-56a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h56v-48a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v48h56a16 16 0 0 1 16 16z\", \"M374.44 115.19L266.71 9.37a32.93 32.93 0 0 0-23-9.37H140.33a32.89 32.89 0 0 0-23 9.37L9.54 115.19A31.61 31.61 0 0 0 1 145.58l87.1 342.18A32.49 32.49 0 0 0 119.69 512h144.62a32.47 32.47 0 0 0 31.61-24.24L383 145.58a31.67 31.67 0 0 0-8.56-30.39zM288 192a16 16 0 0 1-16 16h-56v128a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16V208h-56a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h56v-48a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v48h56a16 16 0 0 1 16 16z\"]]\n};\nvar faCog = {\n prefix: 'fad',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", [\"M487.75 315.6l-42.6-24.6a192.62 192.62 0 0 0 0-70.2l42.6-24.6a12.11 12.11 0 0 0 5.5-14 249.2 249.2 0 0 0-54.7-94.6 12 12 0 0 0-14.8-2.3l-42.6 24.6a188.83 188.83 0 0 0-60.8-35.1V25.7A12 12 0 0 0 311 14a251.43 251.43 0 0 0-109.2 0 12 12 0 0 0-9.4 11.7v49.2a194.59 194.59 0 0 0-60.8 35.1L89.05 85.4a11.88 11.88 0 0 0-14.8 2.3 247.66 247.66 0 0 0-54.7 94.6 12 12 0 0 0 5.5 14l42.6 24.6a192.62 192.62 0 0 0 0 70.2l-42.6 24.6a12.08 12.08 0 0 0-5.5 14 249 249 0 0 0 54.7 94.6 12 12 0 0 0 14.8 2.3l42.6-24.6a188.54 188.54 0 0 0 60.8 35.1v49.2a12 12 0 0 0 9.4 11.7 251.43 251.43 0 0 0 109.2 0 12 12 0 0 0 9.4-11.7v-49.2a194.7 194.7 0 0 0 60.8-35.1l42.6 24.6a11.89 11.89 0 0 0 14.8-2.3 247.52 247.52 0 0 0 54.7-94.6 12.36 12.36 0 0 0-5.6-14.1zm-231.4 36.2a95.9 95.9 0 1 1 95.9-95.9 95.89 95.89 0 0 1-95.9 95.9z\", \"M256.35 319.8a63.9 63.9 0 1 1 63.9-63.9 63.9 63.9 0 0 1-63.9 63.9z\"]]\n};\nvar faCogs = {\n prefix: 'fad',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", [\"M638.41 387a12.34 12.34 0 0 0-12.2-10.3h-16.5a86.33 86.33 0 0 0-15.9-27.4L602 335a12.42 12.42 0 0 0-2.8-15.7 110.5 110.5 0 0 0-32.1-18.6 12.36 12.36 0 0 0-15.1 5.4l-8.2 14.3a88.86 88.86 0 0 0-31.7 0l-8.2-14.3a12.36 12.36 0 0 0-15.1-5.4 111.83 111.83 0 0 0-32.1 18.6 12.3 12.3 0 0 0-2.8 15.7l8.2 14.3a86.33 86.33 0 0 0-15.9 27.4h-16.5a12.43 12.43 0 0 0-12.2 10.4 112.66 112.66 0 0 0 0 37.1 12.34 12.34 0 0 0 12.2 10.3h16.5a86.33 86.33 0 0 0 15.9 27.4l-8.2 14.3a12.42 12.42 0 0 0 2.8 15.7 110.5 110.5 0 0 0 32.1 18.6 12.36 12.36 0 0 0 15.1-5.4l8.2-14.3a88.86 88.86 0 0 0 31.7 0l8.2 14.3a12.36 12.36 0 0 0 15.1 5.4 111.83 111.83 0 0 0 32.1-18.6 12.3 12.3 0 0 0 2.8-15.7l-8.2-14.3a86.33 86.33 0 0 0 15.9-27.4h16.5a12.43 12.43 0 0 0 12.2-10.4 112.66 112.66 0 0 0 .01-37.1zm-136.8 44.9c-29.6-38.5 14.3-82.4 52.8-52.8 29.59 38.49-14.3 82.39-52.8 52.79zm136.8-343.8a12.34 12.34 0 0 0-12.2-10.3h-16.5a86.33 86.33 0 0 0-15.9-27.4l8.2-14.3a12.42 12.42 0 0 0-2.8-15.7 110.5 110.5 0 0 0-32.1-18.6A12.36 12.36 0 0 0 552 7.19l-8.2 14.3a88.86 88.86 0 0 0-31.7 0l-8.2-14.3a12.36 12.36 0 0 0-15.1-5.4 111.83 111.83 0 0 0-32.1 18.6 12.3 12.3 0 0 0-2.8 15.7l8.2 14.3a86.33 86.33 0 0 0-15.9 27.4h-16.5a12.43 12.43 0 0 0-12.2 10.4 112.66 112.66 0 0 0 0 37.1 12.34 12.34 0 0 0 12.2 10.3h16.5a86.33 86.33 0 0 0 15.9 27.4l-8.2 14.3a12.42 12.42 0 0 0 2.8 15.7 110.5 110.5 0 0 0 32.1 18.6 12.36 12.36 0 0 0 15.1-5.4l8.2-14.3a88.86 88.86 0 0 0 31.7 0l8.2 14.3a12.36 12.36 0 0 0 15.1 5.4 111.83 111.83 0 0 0 32.1-18.6 12.3 12.3 0 0 0 2.8-15.7l-8.2-14.3a86.33 86.33 0 0 0 15.9-27.4h16.5a12.43 12.43 0 0 0 12.2-10.4 112.66 112.66 0 0 0 .01-37.1zm-136.8 45c-29.6-38.5 14.3-82.5 52.8-52.8 29.59 38.49-14.3 82.39-52.8 52.79z\", \"M420 303.79L386.31 287a173.78 173.78 0 0 0 0-63.5l33.7-16.8c10.1-5.9 14-18.2 10-29.1-8.9-24.2-25.9-46.4-42.1-65.8a23.93 23.93 0 0 0-30.3-5.3l-29.1 16.8a173.66 173.66 0 0 0-54.9-31.7V58a24 24 0 0 0-20-23.6 228.06 228.06 0 0 0-76 .1A23.82 23.82 0 0 0 158 58v33.7a171.78 171.78 0 0 0-54.9 31.7L74 106.59a23.91 23.91 0 0 0-30.3 5.3c-16.2 19.4-33.3 41.6-42.2 65.8a23.84 23.84 0 0 0 10.5 29l33.3 16.9a173.24 173.24 0 0 0 0 63.4L12 303.79a24.13 24.13 0 0 0-10.5 29.1c8.9 24.1 26 46.3 42.2 65.7a23.93 23.93 0 0 0 30.3 5.3l29.1-16.7a173.66 173.66 0 0 0 54.9 31.7v33.6a24 24 0 0 0 20 23.6 224.88 224.88 0 0 0 75.9 0 23.93 23.93 0 0 0 19.7-23.6v-33.6a171.78 171.78 0 0 0 54.9-31.7l29.1 16.8a23.91 23.91 0 0 0 30.3-5.3c16.2-19.4 33.7-41.6 42.6-65.8a24 24 0 0 0-10.5-29.1zm-151.3 4.3c-77 59.2-164.9-28.7-105.7-105.7 77-59.2 164.91 28.7 105.71 105.7z\"]]\n};\nvar faCoin = {\n prefix: 'fad',\n iconName: 'coin',\n icon: [512, 512, [], \"f85c\", [\"M0 208C0 128.44 114.67 64 256 64s256 64.44 256 144-114.67 144-256 144S0 287.56 0 208z\", \"M0 320c0 27.77 18 53.37 48 74.33V330c-18.85-12-35.4-25.36-48-40.38zm80 92.51c27.09 12.89 59.66 22.81 96 28.8V377c-35.39-6-67.81-15.88-96-29zM464 330v64.32c30.05-21 48-46.56 48-74.33v-30.36C499.4 304.65 482.85 318 464 330zM336 441.31c36.34-6 68.91-15.91 96-28.8V348c-28.19 13.12-60.61 23-96 29zM208 381.2v64.09c15.62 1.51 31.49 2.71 48 2.71s32.38-1.2 48-2.71V381.2a477.2 477.2 0 0 1-48 2.8 477.2 477.2 0 0 1-48-2.8z\"]]\n};\nvar faCoins = {\n prefix: 'fad',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", [\"M416 311.4c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5zm-4.7-95.1c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2zM512 64c0-35.3-86-64-192-64S128 28.7 128 64s86 64 192 64 192-28.7 192-64z\", \"M192 320c106 0 192-35.8 192-80s-86-80-192-80S0 195.8 0 240s86 80 192 80zM0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zm0-104.9V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4z\"]]\n};\nvar faColumns = {\n prefix: 'fad',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", [\"M288 160v256h160V160zM64 416h160V160H64z\", \"M464 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM224 416H64V160h160zm224 0H288V160h160z\"]]\n};\nvar faComet = {\n prefix: 'fad',\n iconName: 'comet',\n icon: [512, 512, [], \"e003\", [\"M491.12794.70921c-38.6972,11.5936-111.77976,34.29644-187.67439,61.2961-2.09343-6.99991-3.99939-13.49983-5.5929-18.59351a16.058,16.058,0,0,0-22.90274-9.49988c-42.39976,22.09347-152.77349,82.59271-214.37343,142.4982-1.09359,1-2.49962,2-3.49947,3A194.83045,194.83045,0,1,0,332.6522,454.90662c.99985-1,1.9997-2.40622,2.99954-3.49995,59.78772-61.6086,120.3722-172.10721,142.47819-214.40356a16.06158,16.06158,0,0,0-9.49854-22.906c-5.20233-1.59373-11.6076-3.5-18.60653-5.59368,26.99587-75.999,49.69552-148.99813,61.30311-187.70077A16.18325,16.18325,0,0,0,491.12794.70921ZM315.33454,300.35583l-50.586,49.33337,11.92787,69.72764a15.3022,15.3022,0,0,1-22.19583,16.13651L191.9589,402.626l-62.52168,32.92732c-11.07253,5.93743-24.32831-3.5312-22.19582-16.13651l11.99816-69.72764L68.64574,300.35583a15.31416,15.31416,0,0,1,8.46746-26.13639l69.85258-10.19714,31.26475-63.46795a15.29578,15.29578,0,0,1,27.45673,0L236.952,264.0223l69.85259,10.19714A15.34634,15.34634,0,0,1,315.33454,300.35583Z\", \"M77.1132,274.21944l69.85258-10.19714,31.26475-63.46795a15.29578,15.29578,0,0,1,27.45673,0L236.952,264.0223l69.85259,10.19714a15.34634,15.34634,0,0,1,8.52994,26.13639l-50.586,49.33337,11.92787,69.72764a15.3022,15.3022,0,0,1-22.19583,16.13651L191.9589,402.626l-62.52168,32.92732c-11.07253,5.93743-24.32831-3.5312-22.19582-16.13651l11.99816-69.72764L68.64574,300.35583A15.31416,15.31416,0,0,1,77.1132,274.21944Z\"]]\n};\nvar faComment = {\n prefix: 'fad',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\", \"\"]]\n};\nvar faCommentAlt = {\n prefix: 'fad',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", [\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\", \"\"]]\n};\nvar faCommentAltCheck = {\n prefix: 'fad',\n iconName: 'comment-alt-check',\n icon: [512, 512, [], \"f4a2\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zm-77.9 163.8l-131 130a11 11 0 0 1-15.6-.1l-75.7-76.3a11 11 0 0 1 .1-15.6l26-25.8a11 11 0 0 1 15.6.1l42.1 42.5 97.2-96.4a11 11 0 0 1 15.6.1l25.8 26a11 11 0 0 1-.1 15.5z\", \"M370.1 163.8l-131 130a11 11 0 0 1-15.6-.1l-75.7-76.3a11 11 0 0 1 .1-15.6l26-25.8a11 11 0 0 1 15.6.1l42.1 42.5 97.2-96.4a11 11 0 0 1 15.6.1l25.8 26a11 11 0 0 1-.1 15.5z\"]]\n};\nvar faCommentAltDollar = {\n prefix: 'fad',\n iconName: 'comment-alt-dollar',\n icon: [512, 512, [], \"f650\", [\"M448 0H64A64 64 0 0 0 0 64v288a64 64 0 0 0 64 64h96v84a12 12 0 0 0 19.13 9.65L304 416h144a64 64 0 0 0 64-64V64a64 64 0 0 0-64-64zM280 302.44V320a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-17.73a73 73 0 0 1-31.78-11.46c-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2a24.52 24.52 0 0 0 10.26 2.22h32.78a8.43 8.43 0 0 0 2.32-16.53l-50.07-14.3c-22.25-6.35-40-24.71-42.91-47.67a56.27 56.27 0 0 1 49.32-63V96a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v17.73a73 73 0 0 1 31.78 11.46c6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2a24.54 24.54 0 0 0-10.26-2.22h-32.78a8.43 8.43 0 0 0-2.32 16.53l50.07 14.3c22.25 6.36 40 24.71 42.91 47.67A56.27 56.27 0 0 1 280 302.44z\", \"M280 302.44V320a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-17.73a73 73 0 0 1-31.78-11.46c-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2a24.52 24.52 0 0 0 10.26 2.22h32.78a8.43 8.43 0 0 0 2.32-16.53l-50.07-14.3c-22.25-6.35-40-24.71-42.91-47.67a56.27 56.27 0 0 1 49.32-63V96a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v17.73a73 73 0 0 1 31.78 11.46c6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2a24.54 24.54 0 0 0-10.26-2.22h-32.78a8.43 8.43 0 0 0-2.32 16.53l50.07 14.3c22.25 6.36 40 24.71 42.91 47.67A56.27 56.27 0 0 1 280 302.44z\"]]\n};\nvar faCommentAltDots = {\n prefix: 'fad',\n iconName: 'comment-alt-dots',\n icon: [512, 512, [], \"f4a3\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zM128 240a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M384 176a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-128 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-128 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faCommentAltEdit = {\n prefix: 'fad',\n iconName: 'comment-alt-edit',\n icon: [512, 512, [], \"f4a4\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zM215.4 310.6l-48.2 5.4a10.17 10.17 0 0 1-11.2-11.2l5.4-48.2 96.3-96.3 54 54zm150.7-150.7l-31.8 31.8-54-54 31.8-31.8a20.22 20.22 0 0 1 28.6 0l25.4 25.4a20.22 20.22 0 0 1 0 28.6z\", \"M161.4 256.6l-5.4 48.2a10.17 10.17 0 0 0 11.2 11.2l48.2-5.4 96.3-96.3-54-54zm204.7-125.3l-25.4-25.4a20.22 20.22 0 0 0-28.6 0l-31.8 31.8 54 54 31.8-31.8a20.22 20.22 0 0 0 0-28.6z\"]]\n};\nvar faCommentAltExclamation = {\n prefix: 'fad',\n iconName: 'comment-alt-exclamation',\n icon: [512, 512, [], \"f4a5\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zM256 336a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.2-238.4l-12.8 128a16 16 0 0 1-15.9 14.4h-19a16 16 0 0 1-15.9-14.4l-12.8-128A16.06 16.06 0 0 1 233.7 80h44.6a16 16 0 0 1 15.9 17.6z\", \"M256 272a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm22.3-192h-44.6a16.06 16.06 0 0 0-15.9 17.6l12.8 128a16 16 0 0 0 15.9 14.4h19a16 16 0 0 0 15.9-14.4l12.8-128A16 16 0 0 0 278.3 80z\"]]\n};\nvar faCommentAltLines = {\n prefix: 'fad',\n iconName: 'comment-alt-lines',\n icon: [512, 512, [], \"f4a6\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zM288 264a8 8 0 0 1-8 8H136a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm96-96a8 8 0 0 1-8 8H136a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h240a8 8 0 0 1 8 8z\", \"M280 240H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h144a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm96-96H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faCommentAltMedical = {\n prefix: 'fad',\n iconName: 'comment-alt-medical',\n icon: [512, 512, [], \"f7f4\", [\"M448 0H64A64 64 0 0 0 0 64v288a64 64 0 0 0 64 64h96v84a12 12 0 0 0 19.13 9.65L304 416h144a64 64 0 0 0 64-64V64a64 64 0 0 0-64-64zm-96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\", \"M160 184a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8z\"]]\n};\nvar faCommentAltMinus = {\n prefix: 'fad',\n iconName: 'comment-alt-minus',\n icon: [512, 512, [], \"f4a7\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zm-80 216a16 16 0 0 1-16 16H160a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\", \"M144 200a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16H160a16 16 0 0 1-16-16z\"]]\n};\nvar faCommentAltMusic = {\n prefix: 'fad',\n iconName: 'comment-alt-music',\n icon: [512, 512, [], \"f8af\", [\"M448 0H64A64.05 64.05 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.09 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.05 64.05 0 0 0-64-64zm-96 256c0 17.68-21.5 32-48 32s-48-14.32-48-32 21.5-32 48-32a69.27 69.27 0 0 1 16 1.95v-76.32l-96 37.52V288c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.27 69.27 0 0 1 16 2V143.24A16 16 0 0 1 203.19 128l128-47.24A16 16 0 0 1 352 96z\", \"M176 256a69.82 69.82 0 0 1 16 2V143.25A16 16 0 0 1 203.19 128l128-47.25A16 16 0 0 1 352 96v160c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-76.36l-96 37.52V288c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32z\"]]\n};\nvar faCommentAltPlus = {\n prefix: 'fad',\n iconName: 'comment-alt-plus',\n icon: [512, 512, [], \"f4a8\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zm-80 216a16 16 0 0 1-16 16h-72v72a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-72h-72a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h72v-72a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v72h72a16 16 0 0 1 16 16z\", \"M144 200a16 16 0 0 1 16-16h72v-72a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v72h72a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16h-72v72a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-72h-72a16 16 0 0 1-16-16z\"]]\n};\nvar faCommentAltSlash = {\n prefix: 'fad',\n iconName: 'comment-alt-slash',\n icon: [640, 512, [], \"f4a9\", [\"M75.89 26.89A64 64 0 0 1 128 0h384a64.06 64.06 0 0 1 64 64v288a63.75 63.75 0 0 1-19.81 46.23zM64 352a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L368 416h2L64 179.5z\", \"M636.67 480.52l-19.6 25.31a16.06 16.06 0 0 1-22.5 2.8L6.17 53.79a15.94 15.94 0 0 1-2.8-22.41L23 6.17a16.06 16.06 0 0 1 22.5-2.8l588.3 454.84a15.86 15.86 0 0 1 2.87 22.31z\"]]\n};\nvar faCommentAltSmile = {\n prefix: 'fad',\n iconName: 'comment-alt-smile',\n icon: [512, 512, [], \"f4aa\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zM320 133.2a26.8 26.8 0 1 1-26.8 26.8 26.8 26.8 0 0 1 26.8-26.8zm-128 0a26.8 26.8 0 1 1-26.8 26.8 26.8 26.8 0 0 1 26.8-26.8zm164.2 140.9a132.32 132.32 0 0 1-200.4 0 16 16 0 0 1 24.3-20.7 100.23 100.23 0 0 0 151.6-.1 16.07 16.07 0 0 1 24.5 20.8z\", \"M320 186.8a26.8 26.8 0 1 0-26.8-26.8 26.8 26.8 0 0 0 26.8 26.8zm-128 0a26.8 26.8 0 1 0-26.8-26.8 26.8 26.8 0 0 0 26.8 26.8zm162.3 64.7a16.11 16.11 0 0 0-22.6 1.8 100.23 100.23 0 0 1-151.6.1 16 16 0 0 0-24.3 20.7 132.32 132.32 0 0 0 200.4 0 16 16 0 0 0-1.9-22.6z\"]]\n};\nvar faCommentAltTimes = {\n prefix: 'fad',\n iconName: 'comment-alt-times',\n icon: [512, 512, [], \"f4ab\", [\"M448 0H64A64.06 64.06 0 0 0 0 64v288a64.06 64.06 0 0 0 64 64h96v84a12 12 0 0 0 19.1 9.7L304 416h144a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zM340.9 281.5l-11.3 11.3a16.06 16.06 0 0 1-22.6 0l-51-50.9-50.9 50.9a16.06 16.06 0 0 1-22.6 0l-11.3-11.3a16.06 16.06 0 0 1 0-22.6l50.9-50.9-50.9-50.9a16.06 16.06 0 0 1 0-22.6l11.3-11.3a16.06 16.06 0 0 1 22.6 0l50.9 50.9 50.9-50.9a16.06 16.06 0 0 1 22.6 0l11.3 11.3a16.06 16.06 0 0 1 0 22.6L289.9 208l51 50.9a16.06 16.06 0 0 1 0 22.6z\", \"M340.9 281.5l-11.3 11.3a16.06 16.06 0 0 1-22.6 0l-51-50.9-50.9 50.9a16.06 16.06 0 0 1-22.6 0l-11.3-11.3a16.06 16.06 0 0 1 0-22.6l50.9-50.9-50.9-50.9a16.06 16.06 0 0 1 0-22.6l11.3-11.3a16.06 16.06 0 0 1 22.6 0l50.9 50.9 50.9-50.9a16.06 16.06 0 0 1 22.6 0l11.3 11.3a16.06 16.06 0 0 1 0 22.6L289.9 208l51 50.9a16.06 16.06 0 0 1 0 22.6z\"]]\n};\nvar faCommentCheck = {\n prefix: 'fad',\n iconName: 'comment-check',\n icon: [512, 512, [], \"f4ac\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm114.1 163.8l-131 130a11 11 0 0 1-15.6-.1l-75.7-76.3a11 11 0 0 1 .1-15.6l26-25.8a11 11 0 0 1 15.6.1l42.1 42.5 97.2-96.4a11 11 0 0 1 15.6.1l25.8 26a11 11 0 0 1-.1 15.5z\", \"M370.1 195.8l-131 130a11 11 0 0 1-15.6-.1l-75.7-76.3a11 11 0 0 1 .1-15.6l26-25.8a11 11 0 0 1 15.6.1l42.1 42.5 97.2-96.4a11 11 0 0 1 15.6.1l25.8 26a11 11 0 0 1-.1 15.5z\"]]\n};\nvar faCommentDollar = {\n prefix: 'fad',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", [\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-17.73a73 73 0 0 1-31.78-11.46c-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2a24.52 24.52 0 0 0 10.26 2.22h32.78a8.43 8.43 0 0 0 2.32-16.53l-50.07-14.3c-22.25-6.35-40-24.71-42.91-47.67a56.27 56.27 0 0 1 49.32-63V128a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v17.73a73 73 0 0 1 31.78 11.46c6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2a24.54 24.54 0 0 0-10.26-2.22h-32.78a8.43 8.43 0 0 0-2.32 16.53l50.07 14.3c22.25 6.36 40 24.71 42.91 47.67A56.27 56.27 0 0 1 280 334.44z\", \"M280 334.44V352a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-17.73a73 73 0 0 1-31.78-11.46c-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2a24.52 24.52 0 0 0 10.26 2.22h32.78a8.43 8.43 0 0 0 2.32-16.53l-50.07-14.3c-22.25-6.35-40-24.71-42.91-47.67a56.27 56.27 0 0 1 49.32-63V128a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v17.73a73 73 0 0 1 31.78 11.46c6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2a24.54 24.54 0 0 0-10.26-2.22h-32.78a8.43 8.43 0 0 0-2.32 16.53l50.07 14.3c22.25 6.36 40 24.71 42.91 47.67A56.27 56.27 0 0 1 280 334.44z\"]]\n};\nvar faCommentDots = {\n prefix: 'fad',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M128 208a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm128 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm128 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faCommentEdit = {\n prefix: 'fad',\n iconName: 'comment-edit',\n icon: [512, 512, [], \"f4ae\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm-40.6 310.6l-48.2 5.4a10.17 10.17 0 0 1-11.2-11.2l5.4-48.2 96.3-96.3 54 54zm150.7-150.7l-31.8 31.8-54-54 31.8-31.8a20.22 20.22 0 0 1 28.6 0l25.4 25.4a20.22 20.22 0 0 1 0 28.6z\", \"M366.1 163.3l-25.4-25.4a20.22 20.22 0 0 0-28.6 0l-31.8 31.8 54 54 31.8-31.8a20.22 20.22 0 0 0 0-28.6zM161.4 288.6l-5.4 48.2a10.17 10.17 0 0 0 11.2 11.2l48.2-5.4 96.3-96.3-54-54z\"]]\n};\nvar faCommentExclamation = {\n prefix: 'fad',\n iconName: 'comment-exclamation',\n icon: [512, 512, [], \"f4af\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 336a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.2-238.4l-12.8 128a16 16 0 0 1-15.9 14.4h-19a16 16 0 0 1-15.9-14.4l-12.8-128a16.06 16.06 0 0 1 15.9-17.6h44.6a16 16 0 0 1 15.9 17.6z\", \"M256 304a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm22.3-192h-44.6a16.06 16.06 0 0 0-15.9 17.6l12.8 128a16 16 0 0 0 15.9 14.4h19a16 16 0 0 0 15.9-14.4l12.8-128a16 16 0 0 0-15.9-17.6z\"]]\n};\nvar faCommentLines = {\n prefix: 'fad',\n iconName: 'comment-lines',\n icon: [512, 512, [], \"f4b0\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm32 264a8 8 0 0 1-8 8H136a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm96-96a8 8 0 0 1-8 8H136a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h240a8 8 0 0 1 8 8z\", \"M376 176H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-96 96H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h144a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faCommentMedical = {\n prefix: 'fad',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", [\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.64 304.64 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\", \"M160 216a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8z\"]]\n};\nvar faCommentMinus = {\n prefix: 'fad',\n iconName: 'comment-minus',\n icon: [512, 512, [], \"f4b1\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm112 216a16 16 0 0 1-16 16H160a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\", \"M368 248a16 16 0 0 1-16 16H160a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]]\n};\nvar faCommentMusic = {\n prefix: 'fad',\n iconName: 'comment-music',\n icon: [512, 512, [], \"f8b0\", [\"M256 32C114.59 32 0 125.09 0 240c0 49.59 21.41 95 57 130.7C44.5 421.09 2.69 466 2.19 466.5a8 8 0 0 0-1.5 8.7A7.87 7.87 0 0 0 8 480c66.31 0 116-31.8 140.59-51.41A304.63 304.63 0 0 0 256 448c141.41 0 256-93.09 256-208S397.41 32 256 32zm96 256c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-76.36l-96 37.52V320c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2V175.25A16 16 0 0 1 203.19 160l128-47.25A16 16 0 0 1 352 128z\", \"M176 288a69.82 69.82 0 0 1 16 2V175.25A16 16 0 0 1 203.19 160l128-47.25A16 16 0 0 1 352 128v160c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-76.36l-96 37.52V320c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32z\"]]\n};\nvar faCommentPlus = {\n prefix: 'fad',\n iconName: 'comment-plus',\n icon: [512, 512, [], \"f4b2\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm112 216a16 16 0 0 1-16 16h-72v72a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-72h-72a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h72v-72a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v72h72a16 16 0 0 1 16 16z\", \"M368 248a16 16 0 0 1-16 16h-72v72a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-72h-72a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h72v-72a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v72h72a16 16 0 0 1 16 16z\"]]\n};\nvar faCommentSlash = {\n prefix: 'fad',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", [\"M150.21 84.35C195.39 51.79 254.84 32 320 32c141.4 0 256 93.1 256 208 0 49.23-21 94.46-56.23 130.08zM64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8A8 8 0 0 0 72 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 320 448a312.39 312.39 0 0 0 78.4-10L72.87 186.37A171.62 171.62 0 0 0 64 240z\", \"M636.67 480.52l-19.6 25.31a16.06 16.06 0 0 1-22.5 2.8L6.17 53.79a15.94 15.94 0 0 1-2.8-22.41L23 6.17a16.06 16.06 0 0 1 22.5-2.8l588.3 454.84a15.86 15.86 0 0 1 2.87 22.31z\"]]\n};\nvar faCommentSmile = {\n prefix: 'fad',\n iconName: 'comment-smile',\n icon: [512, 512, [], \"f4b4\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm64 133.2a26.8 26.8 0 1 1-26.8 26.8 26.8 26.8 0 0 1 26.8-26.8zm-128 0a26.8 26.8 0 1 1-26.8 26.8 26.8 26.8 0 0 1 26.8-26.8zm164.2 140.9a132.32 132.32 0 0 1-200.4 0 16 16 0 1 1 24.3-20.7 100.23 100.23 0 0 0 151.6-.1 16.07 16.07 0 0 1 24.5 20.8z\", \"M320 218.8a26.8 26.8 0 1 0-26.8-26.8 26.8 26.8 0 0 0 26.8 26.8zm-128 0a26.8 26.8 0 1 0-26.8-26.8 26.8 26.8 0 0 0 26.8 26.8zm162.3 64.7a16.11 16.11 0 0 0-22.6 1.8 100.23 100.23 0 0 1-151.6.1 16 16 0 1 0-24.3 20.7 132.32 132.32 0 0 0 200.4 0 16 16 0 0 0-1.9-22.6z\"]]\n};\nvar faCommentTimes = {\n prefix: 'fad',\n iconName: 'comment-times',\n icon: [512, 512, [], \"f4b5\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm84.9 281.5l-11.3 11.3a16.06 16.06 0 0 1-22.6 0l-51-50.9-50.9 50.9a16.06 16.06 0 0 1-22.6 0l-11.3-11.3a16.06 16.06 0 0 1 0-22.6l50.9-50.9-50.9-50.9a16.06 16.06 0 0 1 0-22.6l11.3-11.3a16.06 16.06 0 0 1 22.6 0l50.9 50.9 50.9-50.9a16.06 16.06 0 0 1 22.6 0l11.3 11.3a16.06 16.06 0 0 1 0 22.6L289.9 240l51 50.9a16.06 16.06 0 0 1 0 22.6z\", \"M340.9 313.5l-11.3 11.3a16.06 16.06 0 0 1-22.6 0l-51-50.9-50.9 50.9a16.06 16.06 0 0 1-22.6 0l-11.3-11.3a16.06 16.06 0 0 1 0-22.6l50.9-50.9-50.9-50.9a16.06 16.06 0 0 1 0-22.6l11.3-11.3a16.06 16.06 0 0 1 22.6 0l50.9 50.9 50.9-50.9a16.06 16.06 0 0 1 22.6 0l11.3 11.3a16.06 16.06 0 0 1 0 22.6L289.9 240l51 50.9a16.06 16.06 0 0 1 0 22.6z\"]]\n};\nvar faComments = {\n prefix: 'fad',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", [\"M208 352c-41 0-79.1-9.3-111.3-25-21.8 12.7-52.1 25-88.7 25a7.83 7.83 0 0 1-7.3-4.8 8 8 0 0 1 1.5-8.7c.3-.3 22.4-24.3 35.8-54.5-23.9-26.1-38-57.7-38-92C0 103.6 93.1 32 208 32s208 71.6 208 160-93.1 160-208 160z\", \"M576 320c0 34.3-14.1 66-38 92 13.4 30.3 35.5 54.2 35.8 54.5a8 8 0 0 1 1.5 8.7 7.88 7.88 0 0 1-7.3 4.8c-36.6 0-66.9-12.3-88.7-25-32.2 15.8-70.3 25-111.3 25-86.2 0-160.2-40.4-191.7-97.9A299.82 299.82 0 0 0 208 384c132.3 0 240-86.1 240-192a148.61 148.61 0 0 0-1.3-20.1C522.5 195.8 576 253.1 576 320z\"]]\n};\nvar faCommentsAlt = {\n prefix: 'fad',\n iconName: 'comments-alt',\n icon: [576, 512, [], \"f4b6\", [\"M352 287.9H162.3L79.5 350a9.7 9.7 0 0 1-15.5-7.8V288a64.06 64.06 0 0 1-64-64V64A64.06 64.06 0 0 1 64 0h288a64.06 64.06 0 0 1 64 64v160a63.91 63.91 0 0 1-64 63.9z\", \"M576 224v160a64.06 64.06 0 0 1-64 64h-32v54.3a9.7 9.7 0 0 1-15.5 7.8L381.7 448H256a64.06 64.06 0 0 1-64-64v-64h160a96.15 96.15 0 0 0 96-96v-64h64a64.06 64.06 0 0 1 64 64z\"]]\n};\nvar faCommentsAltDollar = {\n prefix: 'fad',\n iconName: 'comments-alt-dollar',\n icon: [576, 512, [], \"f652\", [\"M416 224V64a64 64 0 0 0-64-64H64A64 64 0 0 0 0 64v160a64 64 0 0 0 64 64v54.23a9.75 9.75 0 0 0 15.54 7.84L162.33 288H352a64 64 0 0 0 64-64zm-192-.12V240a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16.29a57.26 57.26 0 0 1-31.37-11.35 8 8 0 0 1-.57-12.14L171.81 189a8.21 8.21 0 0 1 10.13-.73 24.08 24.08 0 0 0 12.82 3.73h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V48a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16.29a57.18 57.18 0 0 1 31.37 11.35 8 8 0 0 1 .57 12.14L244.18 99a8.21 8.21 0 0 1-10.13.73A24 24 0 0 0 221.23 96h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 6 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\", \"M512 160h-64v64a96.11 96.11 0 0 1-96 96H192v64a64 64 0 0 0 64 64h125.67l82.79 62.07a9.75 9.75 0 0 0 15.54-7.84V448h32a64 64 0 0 0 64-64V224a64 64 0 0 0-64-64zm-320 80a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-16.12c23.62-.63 42.67-20.54 42.67-45.07 0-20-13-37.81-31.58-43.39l-45-13.5c-5.16-1.54-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11a24 24 0 0 1 12.82 3.72 8.21 8.21 0 0 0 10.13-.72l11.75-11.21a8 8 0 0 0-.57-12.14A57.18 57.18 0 0 0 224 64.29V48a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 20 13 37.81 31.58 43.39l45 13.5c5.16 1.54 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.12a24.08 24.08 0 0 1-12.82-3.72 8.21 8.21 0 0 0-10.13.73l-11.75 11.21a8 8 0 0 0 .57 12.14A57.26 57.26 0 0 0 192 223.71z\"]]\n};\nvar faCommentsDollar = {\n prefix: 'fad',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", [\"M415.5 192c0-88.37-93.12-160-208-160S-.5 103.63-.5 192c0 34.27 14.13 65.95 38 92C24.11 314.22 2 338.16 1.7 338.5A8 8 0 0 0 7.5 352c36.58 0 66.93-12.25 88.73-25 32.2 15.74 70.29 25 111.27 25 114.88 0 208-71.63 208-160zm-224 96v-16.29a57.26 57.26 0 0 1-31.37-11.35 8 8 0 0 1-.57-12.14L171.31 237a8.21 8.21 0 0 1 10.13-.73 24.08 24.08 0 0 0 12.82 3.73h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16.29a57.18 57.18 0 0 1 31.37 11.35 8 8 0 0 1 .57 12.14L243.68 147a8.21 8.21 0 0 1-10.13.73 24 24 0 0 0-12.82-3.73h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8z\", \"M537.51 412c23.86-26 38-57.72 38-92 0-66.94-53.49-124.2-129.33-148.07A155.17 155.17 0 0 1 447.5 192c0 105.87-107.66 192-240 192a298.24 298.24 0 0 1-31.73-1.88C207.3 439.63 281.27 480 367.5 480c41 0 79.07-9.24 111.27-25 21.8 12.73 52.15 25 88.73 25a8 8 0 0 0 5.79-13.51c-.29-.33-22.42-24.24-35.78-54.49zm-346-124a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-16.12c23.62-.63 42.67-20.54 42.67-45.07 0-20-13-37.81-31.58-43.39l-45-13.5c-5.16-1.54-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11a24 24 0 0 1 12.82 3.72 8.21 8.21 0 0 0 10.13-.73l11.75-11.21a8 8 0 0 0-.57-12.14 57.18 57.18 0 0 0-31.37-11.35V96a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 20 13 37.81 31.58 43.39l45 13.5c5.16 1.54 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.12a24.08 24.08 0 0 1-12.82-3.72 8.21 8.21 0 0 0-10.13.73l-11.75 11.21a8 8 0 0 0 .57 12.14 57.26 57.26 0 0 0 31.37 11.35z\"]]\n};\nvar faCompactDisc = {\n prefix: 'fad',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM88,256H56C56,150.1,142.1,64,248,64V96C159.8,96,88,167.8,88,256Zm160,96a96,96,0,1,1,96-96A96,96,0,0,1,248,352Z\", \"M248,160a96,96,0,1,0,96,96A96,96,0,0,0,248,160Zm0,128a32,32,0,1,1,32-32A32,32,0,0,1,248,288Z\"]]\n};\nvar faCompass = {\n prefix: 'fad',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM374.14,156.05l-66,144.35a31.94,31.94,0,0,1-15.77,15.77L148,382.17c-16.65,7.61-33.81-9.55-26.2-26.2l66-144.35a31.94,31.94,0,0,1,15.77-15.77l144.34-66c16.66-7.6,33.81,9.55,26.2,26.2Z\", \"M348,129.85l-144.34,66a31.94,31.94,0,0,0-15.77,15.77L121.89,356c-7.61,16.65,9.55,33.81,26.2,26.2l144.34-66a32,32,0,0,0,15.77-15.8l66-144.35c7.55-16.65-9.6-33.8-26.2-26.2ZM270.63,278.62a32,32,0,1,1,0-45.25h0A32,32,0,0,1,270.63,278.62Z\"]]\n};\nvar faCompassSlash = {\n prefix: 'fad',\n iconName: 'compass-slash',\n icon: [640, 512, [], \"f5e9\", [\"M145 80.3A247.18 247.18 0 0 1 320 8c137 0 248 111 248 248a246.76 246.76 0 0 1-33.83 125.08l-141-109 53-116c7.61-16.65-9.54-33.8-26.19-26.2L287.46 190.4zm75 301.84c-16.65 7.61-33.81-9.55-26.2-26.2l25.7-56.24-139-107.41A247.45 247.45 0 0 0 72 256c0 137 111 248 248 248a246.64 246.64 0 0 0 122.1-32.29L286.77 351.65z\", \"M636.64 480.55L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45z\"]]\n};\nvar faCompress = {\n prefix: 'fad',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", [\"M436 128h-84V44a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v124a23.94 23.94 0 0 0 24 24h124a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM136 320H12a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h84v84a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12V344a23.94 23.94 0 0 0-24-24z\", \"M436 320H312a23.94 23.94 0 0 0-24 24v124a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-84h84a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM148 32h-40a12 12 0 0 0-12 12v84H12a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h124a23.94 23.94 0 0 0 24-24V44a12 12 0 0 0-12-12z\"]]\n};\nvar faCompressAlt = {\n prefix: 'fad',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", [\"M224 280v112c0 21.38-25.8 32.09-40.92 17L152 376l-99.31 99.31a16 16 0 0 1-22.63 0L4.69 449.94a16 16 0 0 1 0-22.63L104 328l-32.92-31c-15.12-15.12-4.41-41 17-41h112A24 24 0 0 1 224 280z\", \"M443.31 62.06a16 16 0 0 1 0 22.63L344 184l32.92 31c15.12 15.12 4.41 41-17 41H248a24 24 0 0 1-24-24V120c0-21.38 25.8-32.09 40.92-17L296 136l99.31-99.31a16 16 0 0 1 22.63 0z\"]]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fad',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", [\"M507.25 30.05l-25.4-25.4a16.06 16.06 0 0 0-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112a23.94 23.94 0 0 0 24 24h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3a16.06 16.06 0 0 0-.05-22.65zM200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3a16.06 16.06 0 0 0 0 22.6l25.4 25.4a16.06 16.06 0 0 0 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312a23.94 23.94 0 0 0-24-24z\", \"M183 71.05L152 104 52.65 4.65a16.06 16.06 0 0 0-22.6 0l-25.4 25.4a16.06 16.06 0 0 0 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112a23.94 23.94 0 0 0 24-24V88c0-21.35-25.95-32-41-16.95zm324.3 388.3L408 360l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312a23.94 23.94 0 0 0-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3a16.06 16.06 0 0 0 22.6 0l25.4-25.4a16.06 16.06 0 0 0-.05-22.65z\"]]\n};\nvar faCompressWide = {\n prefix: 'fad',\n iconName: 'compress-wide',\n icon: [512, 512, [], \"f326\", [\"M500 160h-84V76a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v124a23.94 23.94 0 0 0 24 24h124a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM136 288H12a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h84v84a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12V312a23.94 23.94 0 0 0-24-24z\", \"M500 288H376a23.94 23.94 0 0 0-24 24v124a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-84h84a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM148 64h-40a12 12 0 0 0-12 12v84H12a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h124a23.94 23.94 0 0 0 24-24V76a12 12 0 0 0-12-12z\"]]\n};\nvar faComputerClassic = {\n prefix: 'fad',\n iconName: 'computer-classic',\n icon: [448, 512, [], \"f8b1\", [\"M32 496a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-48H32zM416 0H32A32 32 0 0 0 0 32v368a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V32a32 32 0 0 0-32-32zM80 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm304-12a8 8 0 0 1-8 8H232a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-120a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32z\", \"M384 224a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32z\"]]\n};\nvar faComputerSpeaker = {\n prefix: 'fad',\n iconName: 'computer-speaker',\n icon: [640, 512, [], \"f8b2\", [\"M64 320h224V96H64zM592 32H368a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM480 96a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm0 320a96 96 0 1 1 96-96 96 96 0 0 1-96 96z\", \"M288 416H128a32 32 0 0 0 0 64h176.41A79.24 79.24 0 0 1 288 432zM0 80v256a48 48 0 0 0 48 48h240v-64H64V96h224V80a79.24 79.24 0 0 1 16.41-48H48A48 48 0 0 0 0 80zm480 80a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm0 64a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 144a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faConciergeBell = {\n prefix: 'fad',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", [\"M512 400v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16zM208 112h16v18.29a224.73 224.73 0 0 1 64 0V112h16a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\", \"M480 352H32c0-123.71 100.29-224 224-224s224 100.29 224 224z\"]]\n};\nvar faConstruction = {\n prefix: 'fad',\n iconName: 'construction',\n icon: [640, 512, [], \"f85d\", [\"M634.66 460.17L349.5 15.92c-13.62-21.23-45.38-21.23-59 0L5.34 460.17C-9.14 482.73 7.52 512 34.85 512h570.3c27.33 0 43.99-29.27 29.51-51.83zM308 160a28 28 0 1 1-28 28 28 28 0 0 1 28-28zm-4 272a16 16 0 0 1-32 0v-32.77l-46.31-29.92-18.25 66.89A16 16 0 0 1 192 448a15.64 15.64 0 0 1-4.22-.56 16 16 0 0 1-11.24-19.64l29.75-109.11 83.07 53.67A31.92 31.92 0 0 1 304 399.23zm48 16l12-29.94A16 16 0 0 1 378.83 408h35.64l-94.8-58.34s-.08 0-.11-.07l-103.95-64a16 16 0 0 1-4.41-23.22l11.61-15.49a47.88 47.88 0 0 1 48.83-18l24.58 7.28c17.45 3.82 31.84 18.53 35.56 37.14l10.55 52.7L430 380l21.16-42.44a16 16 0 0 1 27.78-1.5L550.8 448z\", \"M308 216a28 28 0 1 0-28-28 28 28 0 0 0 28 28zm-18.62 156.36l-83.07-53.67-29.75 109.11a16 16 0 0 0 11.24 19.64 15.64 15.64 0 0 0 4.2.56 16 16 0 0 0 15.42-11.8l18.25-66.89L272 399.23V432a16 16 0 0 0 32 0v-32.77a31.92 31.92 0 0 0-14.62-26.87zm74.6 45.7L352 448h198.8l-71.88-112a16 16 0 0 0-27.78 1.5L430 380l-87.67-54-10.55-52.7c-3.72-18.61-18.11-33.32-35.56-37.14l-24.58-7.28a47.88 47.88 0 0 0-48.83 18l-11.61 15.53a16 16 0 0 0 4.41 23.22l104 64 .11.07 94.75 58.3h-35.64A16 16 0 0 0 364 418.06z\"]]\n};\nvar faContainerStorage = {\n prefix: 'fad',\n iconName: 'container-storage',\n icon: [640, 512, [], \"f4b7\", [\"M16 96v320h608V96zm96 288H80V128h32zm112 0h-32V128h32zm112 0h-32V128h32zm112 0h-32V128h32zm112 0h-32V128h32z\", \"M624 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-384H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faConveyorBelt = {\n prefix: 'fad',\n iconName: 'conveyor-belt',\n icon: [640, 512, [], \"f46e\", [\"M128 240V16a16 16 0 0 1 16-16h352a16 16 0 0 1 16 16v224a16 16 0 0 1-16 16H144a16 16 0 0 1-16-16z\", \"M544 320H96a96 96 0 0 0 0 192h448a96 96 0 0 0 0-192zM128 448a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm192 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm192 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32zM384 128V0H256v128l64-32z\"]]\n};\nvar faConveyorBeltAlt = {\n prefix: 'fad',\n iconName: 'conveyor-belt-alt',\n icon: [640, 512, [], \"f46f\", [\"M304 0H80a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zm256 64H400a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\", \"M544 320H96a96 96 0 0 0 0 192h448a96 96 0 0 0 0-192zM128 448a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm192 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm192 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faCookie = {\n prefix: 'fad',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", [\"M510.37 254.78l-12.08-76.26a132.53 132.53 0 0 0-37.16-73l-54.76-54.7a132 132 0 0 0-72.7-37L257 1.62a131.88 131.88 0 0 0-80.52 12.76l-69.14 35.21a132.35 132.35 0 0 0-57.79 57.8l-35.1 68.88a132.63 132.63 0 0 0-12.82 80.94l12.08 76.28a132.56 132.56 0 0 0 37.16 72.95l54.76 54.75a132.12 132.12 0 0 0 72.7 37.05L255 510.38a132 132 0 0 0 80.52-12.75l69.11-35.21a132.35 132.35 0 0 0 57.79-57.8l35.1-68.87a132.72 132.72 0 0 0 12.85-80.97zM176 368a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-160a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm160 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M368 272a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM208 144a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-32 160a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faCookieBite = {\n prefix: 'fad',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", [\"M510.52 255.81A127.93 127.93 0 0 1 384.05 128 127.92 127.92 0 0 1 256.19 1.51a132 132 0 0 0-79.72 12.81l-69.13 35.22a132.32 132.32 0 0 0-57.79 57.81l-35.1 68.88a132.64 132.64 0 0 0-12.82 81l12.08 76.27a132.56 132.56 0 0 0 37.16 73l54.77 54.76a132.1 132.1 0 0 0 72.71 37.06l76.71 12.15a131.92 131.92 0 0 0 80.53-12.76l69.13-35.21a132.32 132.32 0 0 0 57.79-57.81l35.1-68.88a132.59 132.59 0 0 0 12.91-80zM176 368a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-160a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm160 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M368 272a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM208 144a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-32 160a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faCopy = {\n prefix: 'fad',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", [\"M352 96V0H152a24 24 0 0 0-24 24v368a24 24 0 0 0 24 24h272a24 24 0 0 0 24-24V96z\", \"M96 392V96H24a24 24 0 0 0-24 24v368a24 24 0 0 0 24 24h272a24 24 0 0 0 24-24v-40H152a56.06 56.06 0 0 1-56-56zM441 73L375 7a24 24 0 0 0-17-7h-6v96h96v-6.06A24 24 0 0 0 441 73z\"]]\n};\nvar faCopyright = {\n prefix: 'fad',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm117.13 346.75c-1.59 1.87-39.77 45.73-109.85 45.73-84.69 0-144.48-63.26-144.48-145.56 0-81.31 62-143.4 143.76-143.4 67 0 102 37.31 103.42 38.9a12 12 0 0 1 1.24 14.58l-22.38 34.7a12 12 0 0 1-16.59 3.57 11.79 11.79 0 0 1-1.64-1.27c-.24-.21-26.53-23.88-61.88-23.88-46.12 0-73.92 33.58-73.92 76.08 0 39.61 25.52 79.7 74.28 79.7 38.7 0 65.28-28.34 65.54-28.63a12 12 0 0 1 16.95-.73h.05a12.2 12.2 0 0 1 1.55 1.74l24.55 33.58a12 12 0 0 1-.6 14.85z\", \"M373.13 354.75c-1.59 1.87-39.77 45.73-109.85 45.73-84.69 0-144.48-63.26-144.48-145.56 0-81.31 62-143.4 143.76-143.4 67 0 102 37.31 103.42 38.9a12 12 0 0 1 1.24 14.58l-22.38 34.7a12 12 0 0 1-16.59 3.57 11.79 11.79 0 0 1-1.64-1.27c-.24-.21-26.53-23.88-61.88-23.88-46.12 0-73.92 33.58-73.92 76.08 0 39.61 25.52 79.7 74.28 79.7 38.7 0 65.28-28.34 65.54-28.63a12 12 0 0 1 16.95-.73h.05a12.2 12.2 0 0 1 1.55 1.74l24.55 33.58a12 12 0 0 1-.6 14.85z\"]]\n};\nvar faCorn = {\n prefix: 'fad',\n iconName: 'corn',\n icon: [512, 512, [], \"f6c7\", [\"M206.68 111.08a39.13 39.13 0 0 1 45.42-13 40.21 40.21 0 0 1 57.28-32.95 39.86 39.86 0 0 1 61.13-26.57A40.07 40.07 0 0 1 398 11.7a39.12 39.12 0 0 1 38.41 9.6 40.13 40.13 0 0 1 75.51 20.8v3.2a40.51 40.51 0 0 1-22.1 34.53 40.33 40.33 0 0 1 9 38.41 41.29 41.29 0 0 1-27.2 27.19 39.49 39.49 0 0 1 2.88 37.77 40.2 40.2 0 0 1-30.08 23.05 39 39 0 0 1-1.59 37.44 39.79 39.79 0 0 1-31.69 19.85 39.15 39.15 0 0 1-4.79 36.8 39.86 39.86 0 0 1-4.87 5.31c-51.23-28.5-110.09-37.49-166.48-28.13a256.52 256.52 0 0 0-28.32-166.44z\", \"M423.85 360c-88-76.52-221.49-72.92-305.21 10.79l-67.88 67.83L96 483.88a96 96 0 0 0 135.76 0l90.51-90.51 97.66-19.53c6.44-1.29 8.86-9.59 3.92-13.84zM201 284.85c15.42-67.76-.79-141.26-49-196.71-4.29-4.94-12.58-2.51-13.87 3.91l-19.54 97.68-90.47 90.51a96 96 0 0 0 0 135.77L96 348.12a254.29 254.29 0 0 1 105-63.27z\"]]\n};\nvar faCouch = {\n prefix: 'fad',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", [\"M96 160H64a96 96 0 0 1 96-96h320a96 96 0 0 1 96 96h-32a64.06 64.06 0 0 0-64 64v64H160v-64a64.06 64.06 0 0 0-64-64z\", \"M640 256a63.84 63.84 0 0 1-32 55.1V432a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16v-16H128v16a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V311.1A63.79 63.79 0 0 1 64 192h32a32 32 0 0 1 32 32v96h384v-96a32 32 0 0 1 32-32h32a64.06 64.06 0 0 1 64 64z\"]]\n};\nvar faCow = {\n prefix: 'fad',\n iconName: 'cow',\n icon: [640, 512, [], \"f6c8\", [\"M97.37 114.78A40.06 40.06 0 0 0 72 152v104a64 64 0 0 1-64 64H0v-32a63.61 63.61 0 0 1 24-49.59V152a88.1 88.1 0 0 1 88-88h48a64 64 0 0 0-62.63 50.78zm236.36 186.33A79.83 79.83 0 0 0 272 272c-49.29 0-78.11 40.73-79.9 75.89-.06 1.36-.1 2.73-.1 4.11a109 109 0 0 0 32 21.87v25.68c0 8.62 6.63 16 15.23 16.43A16 16 0 0 0 256 400v-17.31c9.1 1.12 12.81 2.36 32 0v16.87c0 8.62 6.63 16 15.23 16.43A16 16 0 0 0 320 400v-26.18A108.92 108.92 0 0 0 352 352a79.7 79.7 0 0 0-18.27-50.89z\", \"M634 276.72l-10-13.81v-77a16 16 0 0 0-23-14.39c-10.89 5.41-19.6 13.62-26.47 23.09l-65.82-90.9A96 96 0 0 0 431 64H160a64 64 0 0 0-64 64v304a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-80a80 80 0 0 1 160 0v80.79A16 16 0 0 0 368 448h64a16 16 0 0 0 16-16V256l32 32v41.48A64 64 0 0 0 490.71 365L532 427a47.24 47.24 0 0 0 85.66-17l21.73-108.6a31.56 31.56 0 0 0-5.39-24.68zM377.23 167.36l-22.89 22.76A116.65 116.65 0 0 1 272.08 224h-.16a116.66 116.66 0 0 1-82.26-33.88l-22.89-22.76C151.05 151.73 164.47 128 189 128h166c24.53 0 38 23.73 22.23 39.36zM576 352a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faCowbell = {\n prefix: 'fad',\n iconName: 'cowbell',\n icon: [448, 512, [], \"f8b3\", [\"M176.32 96H112.2V48a48.1 48.1 0 0 1 48.09-48h128.23a48.1 48.1 0 0 1 48.09 48v48h-64.12V64h-96.17z\", \"M447.49 474.35A32 32 0 0 1 415.93 512H32.07A32 32 0 0 1 .51 474.35l63.29-352A32.06 32.06 0 0 1 95.36 96h257.28a32.06 32.06 0 0 1 31.56 26.35z\"]]\n};\nvar faCowbellMore = {\n prefix: 'fad',\n iconName: 'cowbell-more',\n icon: [640, 512, [], \"f8b4\", [\"M480 192a160 160 0 1 0 160 160 160 160 0 0 0-160-160zm80 168a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zM336.81 96V48a48.05 48.05 0 0 0-48-48h-128a48.05 48.05 0 0 0-48 48v48h64V64h96v32z\", \"M552 336h-56v-56a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM394.7 180.24l-10.41-57.89A32.06 32.06 0 0 0 352.73 96H95.38a32 32 0 0 0-31.56 26.35l-63.31 352A32 32 0 0 0 32.07 512h342c-51.93-34.42-86.27-93.26-86.27-160-.02-75.21 43.64-140.27 106.9-171.76z\"]]\n};\nvar faCreditCard = {\n prefix: 'fad',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", [\"M0 432a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V256H0zm192-68a12 12 0 0 1 12-12h136a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12H204a12 12 0 0 1-12-12zm-128 0a12 12 0 0 1 12-12h72a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12zM528 32H48A48 48 0 0 0 0 80v48h576V80a48 48 0 0 0-48-48z\", \"M576 256H0V128h576z\"]]\n};\nvar faCreditCardBlank = {\n prefix: 'fad',\n iconName: 'credit-card-blank',\n icon: [576, 512, [], \"f389\", [\"M340 352H204a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h136a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm-192 0H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h72a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\", \"M528 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM160 404a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h72a12 12 0 0 1 12 12zm192 0a12 12 0 0 1-12 12H204a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h136a12 12 0 0 1 12 12z\"]]\n};\nvar faCreditCardFront = {\n prefix: 'fad',\n iconName: 'credit-card-front',\n icon: [576, 512, [], \"f38a\", [\"M268 256h-64a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h64a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm-104 0H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h88a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm208 0h-64a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h64a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm128 0h-88a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h88a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\", \"M528 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM192 268a12 12 0 0 1 12-12h64a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-64a12 12 0 0 1-12-12zm-32 136a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h72a12 12 0 0 1 12 12zm16-96a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h88a12 12 0 0 1 12 12zm176 96a12 12 0 0 1-12 12H204a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h136a12 12 0 0 1 12 12zm32-96a12 12 0 0 1-12 12h-64a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h64a12 12 0 0 1 12 12zm128 0a12 12 0 0 1-12 12h-88a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h88a12 12 0 0 1 12 12zm0-140a23.94 23.94 0 0 1-24 24h-80a23.94 23.94 0 0 1-24-24v-48a23.94 23.94 0 0 1 24-24h80a23.94 23.94 0 0 1 24 24z\"]]\n};\nvar faCricket = {\n prefix: 'fad',\n iconName: 'cricket',\n icon: [640, 512, [], \"f449\", [\"M421.48 321.52L158 506c-8.9 6.2-20.5 7.9-30.4 3.5A216.24 216.24 0 0 1 .08 327.42c-.8-10.8 4.8-21.2 13.7-27.4l263.5-184.5-30.9 175.1z\", \"M496 352a80 80 0 1 0 80 80 80 80 0 0 0-80-80zM635.7 30.4l-15.2-20.2A24.14 24.14 0 0 0 587 4.32l-144 100.5a32.07 32.07 0 0 1-44.6-7.9l-21.9-31.3a16 16 0 0 0-22.3-3.9l-21.3 14.9-30.9 175.1 175.1 30.9 21.3-14.9a16 16 0 0 0 3.9-22.3l-24.5-35a32.07 32.07 0 0 1 7.9-44.6l144.1-101.9a24.14 24.14 0 0 0 5.88-33.5z\"]]\n};\nvar faCroissant = {\n prefix: 'fad',\n iconName: 'croissant',\n icon: [512, 512, [], \"f7f6\", [\"M13.15 265.48a62.71 62.71 0 0 1-8.55-3.57 215.11 215.11 0 0 0 39.6 173.5 32 32 0 0 0 21.38 12.33 32.43 32.43 0 0 0 4.06.26 32 32 0 0 0 19.76-6.83l122.32-96c5.1-4 8.11-9.58 10.05-15.6-.21-.06-.42 0-.62-.09zM447.71 65.63a32 32 0 0 0-12.33-21.43A214.91 214.91 0 0 0 261.17 4.48c1.41 2.93 3.3 5.52 4.28 8.7l64 208c.06.2 0 .41.09.62 6-1.93 11.62-5 15.61-10l96-122.32a32.06 32.06 0 0 0 6.56-23.85z\", \"M509.89 180.66A215.77 215.77 0 0 0 465.7 110l-77.79 99.1 86.8 14.47a32 32 0 0 0 35.18-42.91zm-275-158.07A32 32 0 0 0 196.52 1 268.34 268.34 0 0 0 1 196.55a32 32 0 0 0 21.56 38.35l208 64a32 32 0 0 0 32-8l28.32-28.31a32 32 0 0 0 8-32zm-25.8 365.35L110 465.73a215.37 215.37 0 0 0 70.67 44.19 32 32 0 0 0 42.91-35.18z\"]]\n};\nvar faCrop = {\n prefix: 'fad',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", [\"M512 376v48a24 24 0 0 1-24 24h-40v-96h40a24 24 0 0 1 24 24zM416 64a32 32 0 0 1 32 32v13.25l59.31-59.31a16 16 0 0 0 0-22.63L484.69 4.69a16 16 0 0 0-22.63 0L402.75 64zm-64 141.25V160h-45.25L160 306.75V24a24 24 0 0 0-24-24H88a24 24 0 0 0-24 24v392a32 32 0 0 0 32 32h224v-96H205.25z\", \"M416 64H192v96h160v328a24 24 0 0 0 24 24h48a24 24 0 0 0 24-24V96a32 32 0 0 0-32-32zM0 88v48a24 24 0 0 0 24 24h40V64H24A24 24 0 0 0 0 88z\"]]\n};\nvar faCropAlt = {\n prefix: 'fad',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", [\"M160 24a24 24 0 0 0-24-24H88a24 24 0 0 0-24 24v392a32 32 0 0 0 32 32h224v-96H160zm328 328h-40v96h40a24 24 0 0 0 24-24v-48a24 24 0 0 0-24-24z\", \"M416 64H192v96h160v328a24 24 0 0 0 24 24h48a24 24 0 0 0 24-24V96a32 32 0 0 0-32-32zM0 88v48a24 24 0 0 0 24 24h40V64H24A24 24 0 0 0 0 88z\"]]\n};\nvar faCross = {\n prefix: 'fad',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", [\"M384 160v64a32 32 0 0 1-32 32h-96v224a32 32 0 0 1-32 32h-64a32 32 0 0 1-32-32V256H32a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h96V32a32 32 0 0 1 32-32h64a32 32 0 0 1 32 32v96h96a32 32 0 0 1 32 32z\", \"\"]]\n};\nvar faCrosshairs = {\n prefix: 'fad',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", [\"M256 40C136.71 40 40 136.71 40 256s96.71 216 216 216 216-96.71 216-216S375.29 40 256 40zm107.48 323.48A152 152 0 1 1 408 256a151 151 0 0 1-44.52 107.48z\", \"M256 224a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm16 128h-32a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V368a16 16 0 0 0-16-16zM144 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm352 0H368a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM272 0h-32a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16z\"]]\n};\nvar faCrow = {\n prefix: 'fad',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", [\"M447.27 487.67a12 12 0 0 1-7.17 15.38l-22.55 8.21a12 12 0 0 1-15.38-7.17l-44.65-120.17a192 192 0 0 0 48.73-7.7zM312.87 384H261l45.22 120.1a12 12 0 0 0 15.38 7.17l22.55-8.21a12 12 0 0 0 7.17-15.38zM640 96c0-35.35-43-64-96-64h-16a79.67 79.67 0 0 1 16 48v32z\", \"M464 0a80 80 0 0 0-80 80v21L12.09 393.57a30.22 30.22 0 0 0 31.64 51.2L165.27 384H352c106 0 192-86 192-192V80a80 80 0 0 0-80-80zm0 104a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faCrown = {\n prefix: 'fad',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", [\"M544 464v32a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16z\", \"M640 176a48 48 0 0 1-48 48 49 49 0 0 1-7.7-.8L512 416H128L55.7 223.2a49 49 0 0 1-7.7.8 48.36 48.36 0 1 1 43.7-28.2l72.3 43.4a32 32 0 0 0 44.2-11.6L289.7 85a48 48 0 1 1 60.6 0l81.5 142.6a32 32 0 0 0 44.2 11.6l72.4-43.4A47 47 0 0 1 544 176a48 48 0 0 1 96 0z\"]]\n};\nvar faCrutch = {\n prefix: 'fad',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", [\"M281 49.91a16 16 0 0 1 0-22.63l22.69-22.6a16 16 0 0 1 22.62 0l181 181a16 16 0 0 1-.06 22.6l-22.62 22.63a16 16 0 0 1-22.63 0z\", \"M382.91 197l-55.1 55.12-67.89-67.92L315 129.1l-45.23-45.25L160.1 193.52a96.05 96.05 0 0 0-25.67 46.29l-27.74 120.26-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.85 95.85 0 0 0 46.29-25.65l109.68-109.68zM273.24 306.66a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.23 32.23 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]]\n};\nvar faCrutches = {\n prefix: 'fad',\n iconName: 'crutches',\n icon: [640, 512, [], \"f7f8\", [\"M635.28 185.7l-181-181a16 16 0 0 0-22.62 0L409 27.3a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .03-22.6zm-128 276.36L441 395.75a128 128 0 0 1-33.67 13L371.71 417 462 507.31a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 0-22.62zM231 49.93a16 16 0 0 0 0-22.62L208.3 4.68a16 16 0 0 0-22.62 0l-181 181a16 16 0 0 0 0 22.62l22.6 22.7a16 16 0 0 0 22.63 0l11.32-11.31 132.29 132.24c.68.68 1.57 1.06 2.27 1.71l9.69-9.69 13.22-57.32-112.22-112.24 67.89-67.89 78.75 78.75a128.23 128.23 0 0 1 12.29-14.34L297.34 139l-77.72-77.75z\", \"M510.84 197l-55.1 55.12-67.89-67.89 55.1-55.1-45.25-45.26L288 193.54a96.13 96.13 0 0 0-25.67 46.29l-27.71 120.26-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.85 95.85 0 0 0 46.29-25.65l109.68-109.68zM401.17 306.68a31.94 31.94 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.31 32.31 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]]\n};\nvar faCube = {\n prefix: 'fad',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", [\"M480.85 85.58l-208-78a47.17 47.17 0 0 0-33.7-.1l-208 78a48.06 48.06 0 0 0-31.1 45v225.1a48 48 0 0 0 26.5 42.9l208 104a47.66 47.66 0 0 0 42.9 0l208-104a47.91 47.91 0 0 0 26.5-42.9v-225.1a47.93 47.93 0 0 0-31.1-44.9zM448 345.16l-160 80v-148.9l160-65zm.05-202.48l-192 78-192-78v-1.1l192-72 192 72z\", \"M448 345.16l-160 80v-148.9l160-65z\"]]\n};\nvar faCubes = {\n prefix: 'fad',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", [\"M488.6 250.2L392 214V105.52a36 36 0 0 0-23.4-33.7l-100-37.5a35.68 35.68 0 0 0-25.3 0l-100 37.5a36 36 0 0 0-23.4 33.7V214l-96.6 36.2A36 36 0 0 0 0 283.9V394a36 36 0 0 0 19.9 32.2l100 50a35.86 35.86 0 0 0 32.2 0l103.9-52 103.9 52a35.86 35.86 0 0 0 32.2 0l100-50A36 36 0 0 0 512 394V283.9a36 36 0 0 0-23.4-33.7zM238 395.18l-85 42.5v-79.09l85-38.8zm0-112l-102 41.41L34 283.2v-.6l102-38.2 102 38.2zm-84-178.46v-.6l102-38.2 102 38.2v.6l-102 41.39zm119 73.79l85-37v73.29l-85 31.9zm205 216.67l-85 42.5v-79.09l85-38.8zm0-112l-102 41.41-102-41.39v-.6l102-38.2 102 38.2z\", \"M153 437.68l85-42.5v-75.39l-85 38.8zm240-79.09v79.09l85-42.5v-75.39zM273 246.7l85-31.9v-73.29l-85 37z\"]]\n};\nvar faCurling = {\n prefix: 'fad',\n iconName: 'curling',\n icon: [640, 512, [], \"f44a\", [\"M0 416a96 96 0 0 0 96 96h448a96 96 0 0 0 96-96v-32H0zm544-176H96a96 96 0 0 0-96 96v16h640v-16a96 96 0 0 0-96-96z\", \"M554.1 192H85.9c13.2-37.2 48.4-64 90.1-64h48v-16A111.94 111.94 0 0 1 336 0h128a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16c-117.7 0-176-11.4-176 48v16h176c41.7 0 76.9 26.8 90.1 64z\"]]\n};\nvar faCut = {\n prefix: 'fad',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", [\"M96 224a96.49 96.49 0 0 0 13.36-.93L142.29 256l67.88-67.88-24.85-24.86A96 96 0 1 0 96 224zm0-128a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm348.48 326.43a12 12 0 0 1 0 17 84 84 0 0 1-118.79 0L210.17 323.88 278.06 256z\", \"M444.48 89.57a12 12 0 0 0 0-17 84 84 0 0 0-118.79 0L109.36 288.93a95.9 95.9 0 1 0 76 59.81zM96 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faDagger = {\n prefix: 'fad',\n iconName: 'dagger',\n icon: [384, 512, [], \"f6cb\", [\"M128 428.84V224h128v204.84l-50.68 76a16 16 0 0 1-26.63 0z\", \"M290.94 192H93.06A47.92 47.92 0 1 1 48 128h112V16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v112h112a48 48 0 1 1-45.06 64z\"]]\n};\nvar faDatabase = {\n prefix: 'fad',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", [\"M447 73.14v45.72C447 159.14 346.67 192 223 192S-1 159.14-1 118.86V73.14C-1 32.86 99.33 0 223 0s224 32.86 224 73.14z\", \"M-1 336v102.86C-1 479.14 99.33 512 223 512s224-32.86 224-73.14V336c-48.13 33.14-136.21 48.57-224 48.57S47.12 369.14-1 336zm224-111.43c-87.79 0-175.88-15.43-224-48.57v102.86C-1 319.14 99.33 352 223 352s224-32.86 224-73.14V176c-48.13 33.14-136.21 48.57-224 48.57z\"]]\n};\nvar faDeaf = {\n prefix: 'fad',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", [\"M508.48 31.8L480.2 3.51a12 12 0 0 0-17 0l-87 87a12 12 0 0 0 0 17l28.28 28.29a12 12 0 0 0 17 0l87-87a12 12 0 0 0 0-17zM169 314.74a12 12 0 0 0-17 0L3.51 463.23a12 12 0 0 0 0 17l28.29 28.25a12 12 0 0 0 17 0L197.26 360a12 12 0 0 0 0-17z\", \"M240 84c-97 0-176 79-176 176a28 28 0 0 0 56 0 120 120 0 0 1 240 0c0 75.16-71 70.31-72 143.62v.38a52.06 52.06 0 0 1-52 52 28 28 0 0 0 0 56 108.13 108.13 0 0 0 108-107.77c.59-34.43 72-48.23 72-144.23 0-97-78.95-176-176-176zm0 152a24 24 0 0 1 24 24 28 28 0 0 0 56 0 80 80 0 0 0-160 0 28 28 0 0 0 56 0 24 24 0 0 1 24-24z\"]]\n};\nvar faDebug = {\n prefix: 'fad',\n iconName: 'debug',\n icon: [512, 512, [], \"f7f9\", [\"M159.12 338.69l24.8-16.54a78.87 78.87 0 0 1-6.77-22.72l-30.88 4.41a16 16 0 0 1-4.54-31.68l34.27-4.9v-.76l98.94 98.95a76.89 76.89 0 0 1-71.68-17.73l-26.39 17.59c-.15.11-.31.21-.47.31a16 16 0 0 1-17.28-26.93zm224.72-48.42a16 16 0 0 0-13.57-18.11l-34.27-4.9V244.9l34.27-4.9a16 16 0 1 0-4.54-31.68l-30.54 4.36a79.31 79.31 0 0 0-6.85-22.85l24.54-16.36a16 16 0 1 0-17.29-26.93l-.46.31-26 17.34a79.9 79.9 0 0 0-102.64-3l139.83 139.88 19.41 2.77a16 16 0 0 0 18.11-13.57z\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 432c-101.46 0-184-82.54-184-184a182.84 182.84 0 0 1 33.38-105.37l256 256A182.86 182.86 0 0 1 256 440zm150.62-78.63l-256-256A182.84 182.84 0 0 1 256 72c101.46 0 184 82.54 184 184a182.84 182.84 0 0 1-33.38 105.37z\"]]\n};\nvar faDeer = {\n prefix: 'fad',\n iconName: 'deer',\n icon: [512, 512, [], \"f78e\", [\"M223.9 55.8V8a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v47.8a16 16 0 0 0 11.7 15.4l16.1 4.5 16.8-20.9a16 16 0 0 0 3.5-10V8a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v36.8a48.05 48.05 0 0 1-10.5 30l-8.3 10.3 33.8 9.5 42.6-21.3A47 47 0 0 0 412.1 57l18-27.2a7.94 7.94 0 0 1 11.1-2.2l13.3 8.9a7.94 7.94 0 0 1 2.2 11.1l-18.1 27.2a80.24 80.24 0 0 1-30.7 27.1l-12 5.59-19.19-5.33A32 32 0 0 0 339.36 119l-2.36 4.82L258.9 102a48 48 0 0 1-35-46.2z\", \"M488.7 133.3l-112-31.14A32 32 0 0 0 339.36 119L304 192H64a64 64 0 0 0-64 64v64l32-20v47.6l-11.9 31.8a64.08 64.08 0 0 0-2.2 38l24.9 82.5A16 16 0 0 0 58.3 512h63.8a16 16 0 0 0 15.5-19.9l-26.3-88.4 19.4-51.7H288v144a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V288l32-64h64a32 32 0 0 0 32-32v-27.9a32.13 32.13 0 0 0-23.3-30.8zM416 176a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faDeerRudolph = {\n prefix: 'fad',\n iconName: 'deer-rudolph',\n icon: [512, 512, [], \"f78f\", [\"M191.9 55.8V8a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v47.8a16 16 0 0 0 11.7 15.4l16.1 4.5 16.8-20.9a16 16 0 0 0 3.5-10V8a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v36.8a48.05 48.05 0 0 1-10.5 30l-8.3 10.3 33.8 9.5 42.6-21.3A47 47 0 0 0 380.1 57l18-27.2a7.94 7.94 0 0 1 11.1-2.2l13.3 8.9a7.94 7.94 0 0 1 2.2 11.1l-18.1 27.2a80.24 80.24 0 0 1-30.7 27.1l-12 5.59-19.19-5.33A32 32 0 0 0 307.36 119l-2.36 4.82L226.9 102a48 48 0 0 1-35-46.2zM480 96a32 32 0 0 0-32 32c0 1 .05 2 .14 2.92l8.56 2.38a32.15 32.15 0 0 1 23 26.69h.3a32 32 0 0 0 0-64z\", \"M456.7 133.3l-112-31.14A32 32 0 0 0 307.36 119L272 192H64a64 64 0 0 0-64 64v64l32-20v47.6l-11.9 31.8a64.08 64.08 0 0 0-2.2 38l24.9 82.5A16 16 0 0 0 58.3 512h63.8a16 16 0 0 0 15.5-19.9l-26.3-88.4 19.4-51.7H256v144a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V288l32-64h64a32 32 0 0 0 32-32v-27.9a32.13 32.13 0 0 0-23.3-30.8zM384 176a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faDemocrat = {\n prefix: 'fad',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", [\"M544 352v144a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16v-80H288v80a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16V352z\", \"M637.29 256.86l-19.6-29.4A151.18 151.18 0 0 0 491.59 160H256l-81.2-81.2a58.73 58.73 0 0 0 7.5-73.9 9.87 9.87 0 0 0-15.2-1.5l-41.8 41.8L82.39 2.36A8.07 8.07 0 0 0 70 3.56 48.08 48.08 0 0 0 76.09 64c3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4l-74.6 99.3a32 32 0 0 0-3 33.5l14.3 28.6a32.05 32.05 0 0 0 28.6 17.7h31a31.94 31.94 0 0 0 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3a16 16 0 0 0 22.2 4.4l26.6-17.7a16.18 16.18 0 0 0 4.39-22.34zm-341.1-13.6l-16.5 16.1 3.9 22.7a5 5 0 0 1-7.2 5.3L256 276.66l-20.4 10.7a5 5 0 0 1-7.2-5.3l3.9-22.7-16.5-16.1a5 5 0 0 1 2.8-8.5l22.8-3.3 10.2-20.7a5 5 0 0 1 9 0l10.2 20.7 22.8 3.3a5 5 0 0 1 2.59 8.5zm112 0l-16.5 16.1 3.9 22.7a5 5 0 0 1-7.2 5.3L368 276.66l-20.4 10.7a5 5 0 0 1-7.2-5.3l3.9-22.7-16.5-16.1a5 5 0 0 1 2.8-8.5l22.8-3.3 10.2-20.7a5 5 0 0 1 9 0l10.2 20.7 22.8 3.3a5 5 0 0 1 2.59 8.5zm112 0l-16.5 16.1 3.9 22.7a5 5 0 0 1-7.2 5.3L480 276.66l-20.4 10.7a5 5 0 0 1-7.2-5.3l3.9-22.7-16.5-16.1a5 5 0 0 1 2.8-8.5l22.8-3.3 10.2-20.7a5 5 0 0 1 9 0l10.2 20.7 22.8 3.3a5 5 0 0 1 2.59 8.5z\"]]\n};\nvar faDesktop = {\n prefix: 'fad',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", [\"M528 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h448z\", \"M424 464h-72l-16-48h-96l-16 48h-72a24 24 0 0 0 0 48h272a24 24 0 0 0 0-48zM64 64v288h448V64z\"]]\n};\nvar faDesktopAlt = {\n prefix: 'fad',\n iconName: 'desktop-alt',\n icon: [576, 512, [], \"f390\", [\"M528 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 288H64V64h448z\", \"M64 64v224h448V64zm360 400h-72l-16-48h-96l-16 48h-72a24 24 0 0 0 0 48h272a24 24 0 0 0 0-48z\"]]\n};\nvar faDewpoint = {\n prefix: 'fad',\n iconName: 'dewpoint',\n icon: [512, 512, [], \"f748\", [\"M416 0a96 96 0 1 0 96 96 96.15 96.15 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M384 333.9c0 98.4-85.9 178.1-192 178.1S0 432.3 0 333.9C0 222.69 109.1 179.79 160.1 22.09c9.8-30.1 55.1-28.8 63.8 0 51.2 158.5 160.1 200 160.1 311.81z\"]]\n};\nvar faDharmachakra = {\n prefix: 'fad',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", [\"M162.5 277.84l-64.42 4a161.92 161.92 0 0 1 0-51.74l64.42 4q-.6 2.55-1.06 5.18l-.09.6c-.11.64-.22 1.29-.31 1.95l-.12.82c-.08.58-.16 1.17-.23 1.75 0 .31-.07.62-.1.93-.07.56-.12 1.12-.17 1.68l-.09 1c-.05.56-.08 1.13-.12 1.69l-.06 1c0 .6-.06 1.2-.08 1.81v7c0 .61.05 1.21.08 1.81l.06 1c0 .56.07 1.13.12 1.69l.09 1c.05.56.1 1.12.17 1.68 0 .31.07.62.1.93.07.58.15 1.17.23 1.75l.12.82c.09.66.2 1.31.31 1.95l.09.6q.47 2.55 1.06 5.1zm11.95-72.5a96.68 96.68 0 0 1 8.09-11.13 96.52 96.52 0 0 1 22.79-19.74L162.63 126A161.73 161.73 0 0 0 126 162.62zM256 96a162 162 0 0 0-25.87 2.08l4 64.42c1.7-.4 3.43-.75 5.17-1.05l.62-.11c.64-.11 1.28-.21 1.93-.3l.84-.12 1.74-.23.94-.1c.55-.07 1.11-.12 1.67-.17l1-.09c.56-.05 1.13-.08 1.69-.12l1-.06 1.81-.08h7l1.81.08 1 .06c.56 0 1.13.07 1.69.12l1 .09c.56.05 1.12.1 1.67.17l.94.1 1.74.23.84.12c.65.09 1.29.19 1.93.3l.62.11c1.74.3 3.47.65 5.17 1.05l4-64.42A162 162 0 0 0 256 96zm25.87 317.92l-4-64.42c-1.7.4-3.43.75-5.17 1.05l-.62.11c-.64.11-1.28.21-1.93.3l-.84.12-1.74.23-.93.1-1.68.17-1 .09c-.56.05-1.13.08-1.69.12l-1 .06-1.81.08h-7l-1.81-.08-1-.06c-.56 0-1.13-.07-1.69-.12l-1-.09-1.69-.17-.92-.1-1.77-.23-.8-.12c-.66-.09-1.32-.2-2-.31l-.58-.09q-2.61-.46-5.18-1.06l-4 64.42a162 162 0 0 0 51.75 0zm68.69-174.58l.09.6c.11.64.22 1.29.31 1.95l.12.82c.08.58.16 1.17.23 1.75 0 .31.07.62.1.93.07.56.12 1.12.17 1.68l.09 1c.05.56.08 1.13.12 1.69l.06 1c0 .6.06 1.2.08 1.81v7c0 .6-.05 1.2-.08 1.81l-.06 1c0 .56-.07 1.12-.12 1.68l-.09 1c-.05.56-.1 1.12-.17 1.67 0 .32-.07.63-.1.94-.07.58-.15 1.16-.23 1.73 0 .28-.07.57-.12.85-.09.64-.19 1.28-.3 1.91 0 .21-.07.43-.11.64-.14.84-.3 1.68-.47 2.52-.18.89-.37 1.77-.58 2.64l64.42 4a161.92 161.92 0 0 0 0-51.74l-64.42 4q.6 2.49 1.06 5.12zm83.53-119.2l12.78-11.27a16 16 0 0 0 .73-23.31L426.44 64.4a16 16 0 0 0-23.31.73l-11.28 12.78a224.93 224.93 0 0 1 42.24 42.23zm-228.76 217.4a96.39 96.39 0 0 1-30.88-30.88L126 349.37a161.82 161.82 0 0 0 16.82 19.77 163.52 163.52 0 0 0 19.8 16.86l42.71-48.41zm132.23-30.89a96.64 96.64 0 0 1-19.75 22.8 94.54 94.54 0 0 1-11.14 8.1L349.38 386a163.52 163.52 0 0 0 19.76-16.82A161.82 161.82 0 0 0 386 349.37zM32 256a226.63 226.63 0 0 1 2-29.88l-17-1.06A16 16 0 0 0 0 241v30a16 16 0 0 0 17 16l17-1.06A226.63 226.63 0 0 1 32 256zm414.88 147.12l-12.78-11.28a225 225 0 0 1-42.24 42.25l11.27 12.78a16 16 0 0 0 23.31.73l21.17-21.17a16 16 0 0 0-.73-23.31zM495 225.06l-17 1.06a225.32 225.32 0 0 1 0 59.76l17 1.06a16 16 0 0 0 17-16V241a16 16 0 0 0-17-15.94zM285.88 478a225.32 225.32 0 0 1-59.76 0l-1.06 17a16 16 0 0 0 16 17H271a16 16 0 0 0 16-17zm63.49-352l-42.71 48.41a96.33 96.33 0 0 1 22.79 19.75 95.58 95.58 0 0 1 8.1 11.13L386 162.62A161.73 161.73 0 0 0 349.37 126zM226.12 34a225.32 225.32 0 0 1 59.76 0l1.06-17A16 16 0 0 0 271 0h-30a16 16 0 0 0-16 17zm-161 74.88l12.78 11.27a225.58 225.58 0 0 1 42.25-42.25l-11.27-12.77a16 16 0 0 0-23.31-.73L64.4 85.56a16 16 0 0 0 .73 23.31zm12.77 283l-12.76 11.24a16 16 0 0 0-.73 23.31l21.17 21.17a16 16 0 0 0 23.31-.73l11.27-12.77a225.39 225.39 0 0 1-42.25-42.25z\", \"M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zm113.14 337.14A160 160 0 1 1 416 256a159 159 0 0 1-46.86 113.14zM256 160a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faDiagnoses = {\n prefix: 'fad',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", [\"M320 176a88 88 0 1 0-88-88 88.13 88.13 0 0 0 88 88zm268 116.3c-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364a31.88 31.88 0 0 0 42.9 9.8A599.33 599.33 0 0 1 208 325.2V416h224v-90.7a591.93 591.93 0 0 1 105.3 48.6 32.08 32.08 0 0 0 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1zM272 296a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm96 64a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\", \"M112 256a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm384 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm128 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faDiamond = {\n prefix: 'fad',\n iconName: 'diamond',\n icon: [448, 512, [], \"f219\", [\"M442.14 240.34l-200-232a24 24 0 0 0-36.36 0l-200 232a23.84 23.84 0 0 0 0 31.3l200 232a24 24 0 0 0 36.36 0l200-232a23.84 23.84 0 0 0 0-31.3zm-94.05 26l-111.9 128.15a16.23 16.23 0 0 1-24.38 0L99.91 266.38a15.74 15.74 0 0 1 0-20.76l111.9-128.11a16.23 16.23 0 0 1 24.38 0l111.9 128.11a15.74 15.74 0 0 1 0 20.76z\", \"M348.09 245.62a15.74 15.74 0 0 1 0 20.76l-111.9 128.11a16.23 16.23 0 0 1-24.38 0L99.91 266.38a15.74 15.74 0 0 1 0-20.76l111.9-128.11a16.23 16.23 0 0 1 24.38 0z\"]]\n};\nvar faDice = {\n prefix: 'fad',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", [\"M433.63 189.3L258.7 14.37a49.07 49.07 0 0 0-69.39 0L14.37 189.3a49.07 49.07 0 0 0 0 69.39L189.3 433.63a49.07 49.07 0 0 0 69.39 0L433.63 258.7a49.08 49.08 0 0 0 0-69.4zM96 248a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm128 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm128 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M592 192H473.26a81.07 81.07 0 0 1-17 89.32L320 417.58V464a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48V240a48 48 0 0 0-48-48zM480 376a24 24 0 1 1 24-24 24 24 0 0 1-24 24zM96 200a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm256 48a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm-128 80a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm0-256a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm0 128a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faDiceD10 = {\n prefix: 'fad',\n iconName: 'dice-d10',\n icon: [512, 512, [], \"f6cd\", [\"M509 240.86L317.19 7c-6-7.37-17.39-.66-14.46 8.55L370.52 228l130.38 27.29c7.89 1.71 13.32-8.04 8.1-14.43zM194.8 7L3 240.86c-5.24 6.39.2 16.08 8.08 14.42L141.47 228l67.78-212.5c2.95-9.17-8.4-15.89-14.45-8.5zM248 6l-73.4 230.12 81.4 56.74 81.43-56.71L264 6a8.36 8.36 0 0 0-16 0z\", \"M505.19 292.27l-144.06-30.11-88.2 61.44v179.54c0 7.59 8.55 11.65 14 6.66l222.15-202.2c5.31-4.82 3-13.89-3.89-15.33zm-498.38 0c-6.89 1.44-9.2 10.51-3.9 15.33l222.14 202.19c5.48 5 14 .93 14-6.67V323.6l-88.2-61.44z\"]]\n};\nvar faDiceD12 = {\n prefix: 'fad',\n iconName: 'dice-d12',\n icon: [512, 512, [], \"f6ce\", [\"M7.54 176.92l123.62 123.62L240 246.11V139.24L59 74.07zM453 74.07l-181 65.17v106.87l108.84 54.42 123.62-123.62zM333.51 6.76A63.87 63.87 0 0 0 304.89 0H207.1a63.91 63.91 0 0 0-28.62 6.76L89.72 51.14 256 111l166.28-59.86z\", \"M256 273.89l-108.59 54.29L206.23 512h99.53l58.82-183.82zM0 214.62v90.27a63.87 63.87 0 0 0 6.76 28.62l47.7 95.4a63.92 63.92 0 0 0 28.62 28.62L169 500.47l-55-171.91zm398.05 114L343 500.48l85.88-42.94a64 64 0 0 0 28.62-28.62l47.7-95.4a64.07 64.07 0 0 0 6.8-28.62v-90.27z\"]]\n};\nvar faDiceD20 = {\n prefix: 'fad',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", [\"M240 0a15.88 15.88 0 0 0-13.63 7.62L130.79 176h218.42L253.63 7.62A15.88 15.88 0 0 0 240 0zm-71.38 11.74L17.81 110.35a4 4 0 0 0 .13 6.78l81.53 48.69L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14zm293.57 98.6l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94 81.53-48.7a4 4 0 0 0 .13-6.78z\", \"M106.75 215.06L1.2 371a8 8 0 0 0 5.93 12.14l208.26 22.07zM7.41 315.43L82.7 193.08l-76.64-46A4 4 0 0 0 0 150.53v162.81a4 4 0 0 0 7.41 2.09zM18.25 423.6l194.4 87.66A8 8 0 0 0 224 504v-65.67L20.45 416a4 4 0 0 0-2.2 7.6zM139.57 208L240 383.75 340.43 208zM480 313.34V150.53a4 4 0 0 0-6.06-3.43l-76.64 46 75.29 122.35a4 4 0 0 0 7.41-2.11zM478.81 371L373.25 215.06l-108.63 190.1 208.26-22.07a8 8 0 0 0 5.93-12.09zm-19.26 45L256 438.32V504a8 8 0 0 0 11.35 7.26l194.4-87.66a4 4 0 0 0-2.2-7.6z\"]]\n};\nvar faDiceD4 = {\n prefix: 'fad',\n iconName: 'dice-d4',\n icon: [512, 512, [], \"f6d0\", [\"M239.81 8.53v494.94c0 7.15-7.87 11.11-13.17 6.64L3 321.3a8.82 8.82 0 0 1-1.35-11.82L225.28 3.34C230-3.1 239.8.4 239.81 8.53z\", \"M272.2 503.47V8.53c0-8.13 9.8-11.63 14.52-5.19l223.6 306.14A8.79 8.79 0 0 1 509 321.3L285.37 510.11c-5.3 4.47-13.17.51-13.17-6.64z\"]]\n};\nvar faDiceD6 = {\n prefix: 'fad',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", [\"M25.87 124.42a8.54 8.54 0 0 1-.06-14.42l166-100.88a61.72 61.72 0 0 1 64.43 0L422.19 110a8.54 8.54 0 0 1-.05 14.47L224 242.55z\", \"M0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7L184 509.71c10.67 6.48 24.05-1.54 24.05-14.44V271.46L12 154.58c-5.36-3.17-12 .85-12 7.25zm436-7.25L240 271.46v223.82c0 12.89 13.39 20.92 24.05 14.43l152.16-92.48c19.68-12 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.42-12-7.25z\"]]\n};\nvar faDiceD8 = {\n prefix: 'fad',\n iconName: 'dice-d8',\n icon: [512, 512, [], \"f6d2\", [\"M225.53 2.52L2.36 233.83a8.45 8.45 0 0 0 3.1 13.77l234.13 85.06V8.39a8.19 8.19 0 0 0-14.06-5.87zm284.11 231.31L286.47 2.52a8.19 8.19 0 0 0-14.06 5.88v324.27l234.13-85.06a8.46 8.46 0 0 0 3.1-13.78z\", \"M469.87 296.61l-197.46 71.68V503.6a8.19 8.19 0 0 0 14.06 5.88l192-199.1c6.12-6.38-.39-16.75-8.6-13.77zM33.53 310.38l192 199.1a8.19 8.19 0 0 0 14.06-5.88V368.29L42.13 296.61c-8.21-2.98-14.72 7.39-8.6 13.77z\"]]\n};\nvar faDiceFive = {\n prefix: 'fad',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", [\"M384 32H64A64 64 0 0 0 0 96v320a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V96a64 64 0 0 0-64-64zM128 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm0-192a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm0-192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M320 192a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm0 128a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-96-96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-96-96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0 192a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faDiceFour = {\n prefix: 'fad',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", [\"M384 32H64A64 64 0 0 0 0 96v320a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V96a64 64 0 0 0-64-64zM128 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm0-192a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm192 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm0-192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M128 320a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0-192a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm192 192a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0-128a32 32 0 1 0-32-32 32 32 0 0 0 32 32z\"]]\n};\nvar faDiceOne = {\n prefix: 'fad',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", [\"M384 32H64A64 64 0 0 0 0 96v320a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V96a64 64 0 0 0-64-64zM224 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M256 256a32 32 0 1 1-32-32 32 32 0 0 1 32 32z\"]]\n};\nvar faDiceSix = {\n prefix: 'fad',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", [\"M384 32H64A64 64 0 0 0 0 96v320a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V96a64 64 0 0 0-64-64zM128 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm0-96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm0-96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm192 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm0-96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm0-96a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M320 192a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm0 32a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM128 128a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faDiceThree = {\n prefix: 'fad',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", [\"M384 32H64A64 64 0 0 0 0 96v320a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V96a64 64 0 0 0-64-64zM128 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M320 320a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-96-96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-96-96a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faDiceTwo = {\n prefix: 'fad',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", [\"M384 32H64A64 64 0 0 0 0 96v320a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V96a64 64 0 0 0-64-64zM128 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm192 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M128 128a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm192 192a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faDigging = {\n prefix: 'fad',\n iconName: 'digging',\n icon: [576, 512, [], \"f85e\", [\"M311.07 416a32 32 0 0 0-30.36 21.88L256 512h320L474.07 305.68c-11.29-22.59-43.07-23.81-56.07-2.15L352 416z\", \"M272 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-62.24 261.36q-38.7-25.78-79.55-48.09l-71.56-39-57.42 201a32 32 0 1 0 61.56 17.59l36.6-128.16L160 401.11V480a32 32 0 0 0 64 0v-96a32 32 0 0 0-14.24-26.64zm176.39.46l-65.3-35.62-24-121.2a129.78 129.78 0 0 0-69.72-91.2c-1-.5-2.11-.66-3.11-1.13a31 31 0 0 0-7.22-2.67c-15.34-6.1-31.56-10-48.07-10H96a32 32 0 0 0-24.07 10.92l-56 64a25.89 25.89 0 0 0-2.3 3.16c-8.83 14.1-3 32.86 11.62 40.85l336.6 184.3zM105.9 205l-23.49-12.85L110.54 160h34.33zm93.74 51.13l34.73-41.23 13.5 67.54z\"]]\n};\nvar faDigitalTachograph = {\n prefix: 'fad',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", [\"M296 336H72a8 8 0 0 0-8 8v8a8 8 0 0 0 8 8h224a8 8 0 0 0 8-8v-8a8 8 0 0 0-8-8zm272 0H344a8 8 0 0 0-8 8v8a8 8 0 0 0 8 8h224a8 8 0 0 0 8-8v-8a8 8 0 0 0-8-8zM288 160H80a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h208a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16z\", \"M608 96H32a32 32 0 0 0-32 32v256a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V128a32 32 0 0 0-32-32zM304 352a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-8a8 8 0 0 1 8-8h224a8 8 0 0 1 8 8zM72 288v-16a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H80a8 8 0 0 1-8-8zm64 0v-16a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8zm64 0v-16a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8zm64 0v-16a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8zm40-64a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-48a16 16 0 0 1 16-16h208a16 16 0 0 1 16 16zm272 128a8 8 0 0 1-8 8H344a8 8 0 0 1-8-8v-8a8 8 0 0 1 8-8h224a8 8 0 0 1 8 8z\"]]\n};\nvar faDiploma = {\n prefix: 'fad',\n iconName: 'diploma',\n icon: [640, 512, [], \"f5ea\", [\"M608.64 63.56c-6.78-11.5-22-17.88-37-14.77l-127 42.78c-9.44 3.18-19 5.93-28.65 8.37v144.12L467 332l104.6 35.24c15 3.1 30.25-3.27 37-14.77 41.85-70.96 41.85-217.97.04-288.91zM68.39 48.78c-15-3.1-30.25 3.27-37 14.77-41.81 70.94-41.81 218 0 288.89 6.78 11.5 22 17.88 37 14.77L173 332l51-87.91V99.94c-9.64-2.45-19.21-5.19-28.65-8.37z\", \"M384 112v140.67l95.16 164A11.13 11.13 0 0 1 468.43 432h-36.64l-25.2 28.52a11.13 11.13 0 0 1-18.39-3.45L320 336l-68.19 121.07a11.13 11.13 0 0 1-18.39 3.45L208.21 432h-36.64a11.13 11.13 0 0 1-10.73-15.32l95.16-164V112z\"]]\n};\nvar faDirections = {\n prefix: 'fad',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", [\"M502.61 233.32L278.68 9.39a32.08 32.08 0 0 0-45.36 0L9.39 233.32a32.08 32.08 0 0 0 0 45.36L233.32 502.6a32.06 32.06 0 0 0 45.35 0l223.94-223.92a32.08 32.08 0 0 0 0-45.36zm-101 12.56l-84.21 77.73a8 8 0 0 1-13.4-5.88V264h-96v64a8 8 0 0 1-8 8h-32a8 8 0 0 1-8-8v-80a32 32 0 0 1 32-32h112v-53.73a8 8 0 0 1 13.43-5.88l84.21 77.73a8 8 0 0 1 .44 11.3c-.14.16-.29.31-.45.46z\", \"M401.63 245.88l-84.21 77.73a8 8 0 0 1-13.42-5.88V264h-96v64a8 8 0 0 1-8 8h-32a8 8 0 0 1-8-8v-80a32 32 0 0 1 32-32h112v-53.73a8 8 0 0 1 13.43-5.88l84.21 77.73a8 8 0 0 1 .44 11.3c-.14.16-.29.31-.45.46z\"]]\n};\nvar faDiscDrive = {\n prefix: 'fad',\n iconName: 'disc-drive',\n icon: [512, 512, [], \"f8b5\", [\"M256 96a160 160 0 1 0 160 160A160 160 0 0 0 256 96zm0 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M496 416h-16V96a64 64 0 0 0-64-64H96a64 64 0 0 0-64 64v320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-240 0a160 160 0 1 1 160-160 160 160 0 0 1-160 160z\"]]\n};\nvar faDisease = {\n prefix: 'fad',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", [\"M472.27 196l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.29c-13.26 13.71-33.54 20.93-54.2 19.31L68.88 113c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.72 47.44 440.34 98.09 429.28l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.74zM160 256.05a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M304 224.05a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-16 64a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faDivide = {\n prefix: 'fad',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", [\"M224 160a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm0 192a64 64 0 1 0 64 64 64 64 0 0 0-64-64z\", \"M0 240a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32v32a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32z\"]]\n};\nvar faDizzy = {\n prefix: 'fad',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM152,214.6l-28.7,28.7c-14.8,14.8-37.8-7.5-22.6-22.6L129.4,192l-28.7-28.7c-15-15,7.7-37.6,22.6-22.6L152,169.4l28.7-28.7c15-15,37.6,7.7,22.6,22.6L174.6,192l28.7,28.7c15.2,15.2-7.9,37.4-22.6,22.6ZM248,416a64,64,0,1,1,64-64A64,64,0,0,1,248,416ZM372.7,243.3,344,214.6l-28.7,28.7c-14.8,14.8-37.8-7.5-22.6-22.6L321.4,192l-28.7-28.7c-15-15,7.7-37.6,22.6-22.6L344,169.4l28.7-28.7c15-15,37.6,7.7,22.6,22.6L366.6,192l28.7,28.7C410.5,235.9,387.4,258.1,372.7,243.3Z\", \"M395.3,220.7,366.6,192l28.7-28.7c15-14.9-7.6-37.6-22.6-22.6L344,169.4l-28.7-28.7c-14.9-15-37.6,7.6-22.6,22.6L321.4,192l-28.7,28.7c-15.2,15.1,7.8,37.4,22.6,22.6L344,214.6l28.7,28.7c14.7,14.8,37.8-7.4,22.6-22.6ZM174.6,192l28.7-28.7c15-14.9-7.6-37.6-22.6-22.6L152,169.4l-28.7-28.7c-14.9-15-37.6,7.6-22.6,22.6L129.4,192l-28.7,28.7c-15.2,15.1,7.8,37.4,22.6,22.6L152,214.6l28.7,28.7c14.7,14.8,37.8-7.4,22.6-22.6Z\"]]\n};\nvar faDna = {\n prefix: 'fad',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", [\"M222.18 269.08a480.54 480.54 0 0 0 45.22-25.63Q253 235 237.72 227.37c-39.79-19.83-73.72-44.13-100.82-72.23A284.35 284.35 0 0 1 92.86 96H416V31H67.55C66 24.32 65 18.49 64.27 13.75A16 16 0 0 0 48.32 0L16.05.14A16 16 0 0 0 .12 18.1c2.34 18.82 8.65 50.68 25.65 87.38a342.64 342.64 0 0 0 63 92c30.64 32.23 68.34 60.09 112.14 82.91q10.18-5.76 21.27-11.31zM447.87 494c-2.35-18.84-8.71-50.72-25.82-87.43a342.8 342.8 0 0 0-63.45-92.12 383.16 383.16 0 0 0-30-28.12 515.71 515.71 0 0 1-58.47 35.61q8.53 6.35 16.51 13.06H96v48h236.71A272.08 272.08 0 0 1 362 430.47a238.2 238.2 0 0 1 21.27 67.77A16.11 16.11 0 0 0 399.2 512h32.68a16 16 0 0 0 15.99-18z\", \"M447.88 18c-2.35 18.84-8.68 50.72-25.72 87.44A342.76 342.76 0 0 1 359 197.51c-32.61 34.23-73.18 63.54-120.59 87.11C160.43 323.39 117.15 373 93.11 416h261.35q4 7.14 7.52 14.47A247.24 247.24 0 0 1 379.71 480H67.87c-1.69 7.1-2.79 13.25-3.49 18.21A16.06 16.06 0 0 1 48.45 512H16.09a16 16 0 0 1-16-18c2.35-18.84 8.68-50.72 25.72-87.44A342.76 342.76 0 0 1 89 314.49c32.61-34.23 73.18-63.54 120.59-87.11 32.21-16 58.49-33.89 79.95-52.38h-131.6q-11.12-9.58-21-19.86A295 295 0 0 1 113 127h221.7c35.39-47.16 45.84-91.55 48.92-113.21A16.06 16.06 0 0 1 399.55 0h32.36a16 16 0 0 1 15.97 18z\"]]\n};\nvar faDoNotEnter = {\n prefix: 'fad',\n iconName: 'do-not-enter',\n icon: [496, 512, [], \"f5ec\", [\"M56,288V224a16,16,0,0,1,16-16H424a16,16,0,0,1,16,16v64a16,16,0,0,1-16,16H72A16,16,0,0,1,56,288Z\", \"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM424,304H72a16,16,0,0,1-16-16V224a16,16,0,0,1,16-16H424a16,16,0,0,1,16,16v64A16,16,0,0,1,424,304Z\"]]\n};\nvar faDog = {\n prefix: 'fad',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", [\"M448,278,299,224l21-26,128,46Z\", \"M128,224a32,32,0,0,1-32-32,32,32,0,0,0-64,0c0,41.66,26.83,76.85,64,90.1V496a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V384H352V496a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V277.55L298.05,224ZM528,96H464l-7.16-14.31A32,32,0,0,0,428.22,64H374.6L347.32,36.72C337.23,26.64,320,33.78,320,48V197.87l128,45.71V208h32a64,64,0,0,0,64-64V112A16,16,0,0,0,528,96ZM416,128a16,16,0,1,1,16-16A16,16,0,0,1,416,128Z\"]]\n};\nvar faDogLeashed = {\n prefix: 'fad',\n iconName: 'dog-leashed',\n icon: [576, 512, [], \"f6d4\", [\"M448,244v34L320,231.61V384H272V224L38.17,41.25a16,16,0,0,1-2.8-22.45L45.19,6.18A16,16,0,0,1,67.64,3.37L320,192Z\", \"M96,192a32,32,0,0,0-64,0c0,41.66,26.83,76.85,64,90.1V496a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V384h80V224H128A32,32,0,0,1,96,192ZM320,384h32V496a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V277.55L320,231.84ZM528,96H464l-7.16-14.31A32,32,0,0,0,428.22,64H374.6L347.32,36.72C337.23,26.64,320,33.78,320,48V192l128,51.58V208h32a64,64,0,0,0,64-64V112A16,16,0,0,0,528,96ZM416,128a16,16,0,1,1,16-16A16,16,0,0,1,416,128Z\"]]\n};\nvar faDollarSign = {\n prefix: 'fad',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", [\"M176,64H112V16A16,16,0,0,1,128,0h32a16,16,0,0,1,16,16ZM112,448v48a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V448Z\", \"M281.72,375.1c-15.4,44.1-59.11,71.8-105.72,72.7l-64,.2a141.39,141.39,0,0,1-86.51-30c-7.9-6.1-8.9-17.6-1.8-24.5l34.81-34a15.6,15.6,0,0,1,19.5-2A61,61,0,0,0,112.19,368H178.5a29.49,29.49,0,0,0,8.3-57.8l-102.52-30c-44.4-13-79.61-50.5-83.81-96.6A109.57,109.57,0,0,1,99.55,64.46h0c3.3-.3,6.61-.46,9.92-.46H176a141.44,141.44,0,0,1,86.52,30c7.9,6.1,8.9,17.6,1.8,24.5l-34.81,34a15.6,15.6,0,0,1-19.5,2A61.1,61.1,0,0,0,175.8,144H109.49a29.49,29.49,0,0,0-8.3,57.8l108,31.6C267.12,250.3,303.23,313.5,281.72,375.1Z\"]]\n};\nvar faDolly = {\n prefix: 'fad',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", [\"M515.3 228.4L454.9 47.2a16 16 0 0 0-20.2-10.1l-183.4 61a16 16 0 0 0-10.1 20.2l53 159.4a145.7 145.7 0 0 1 49.5 24.7l161.5-53.8a16 16 0 0 0 10.1-20.2zM256 320a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M575.2 326.4L565 296a16 16 0 0 0-20.2-10.1l-181.38 60.49a127.12 127.12 0 0 1 20.27 60.76L565 346.6a16 16 0 0 0 10.2-20.2zM128 0H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h88.9l81.49 244.57a127.23 127.23 0 0 1 60.81-20.26L158.4 21.9A32 32 0 0 0 128 0zm245.6 57.5l-60.7 20.1L346 177l60.7-20.1z\"]]\n};\nvar faDollyEmpty = {\n prefix: 'fad',\n iconName: 'dolly-empty',\n icon: [576, 512, [], \"f473\", [\"M256 320a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M128 0H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h88.9l81.49 244.57a127.23 127.23 0 0 1 60.81-20.26L158.4 21.9A32 32 0 0 0 128 0zm447.2 326.4L565 296a16 16 0 0 0-20.2-10.1l-181.38 60.49a127.12 127.12 0 0 1 20.27 60.76L565 346.6a16 16 0 0 0 10.2-20.2z\"]]\n};\nvar faDollyFlatbed = {\n prefix: 'fad',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", [\"M450.74 448a48 48 0 1 0 90.52 0zm-288 0a48 48 0 1 0 90.52 0zM592 32H448v128l-48-32-48 32V32H208a16 16 0 0 0-16 16v256a16 16 0 0 0 16 16h384a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M448 160V32h-96v128l48-32zm176 224H128V16a16 16 0 0 0-16-16H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h48v368a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faDollyFlatbedAlt = {\n prefix: 'fad',\n iconName: 'dolly-flatbed-alt',\n icon: [640, 512, [], \"f475\", [\"M432 160h96a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zM368 32H208a16 16 0 0 0-16 16v256a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm224 160H432a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zM450.74 448a48 48 0 1 0 90.52 0zm-288 0a48 48 0 1 0 90.52 0z\", \"M640 400v32a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V64H16A16 16 0 0 1 0 48V16A16 16 0 0 1 16 0h96a16 16 0 0 1 16 16v368h496a16 16 0 0 1 16 16z\"]]\n};\nvar faDollyFlatbedEmpty = {\n prefix: 'fad',\n iconName: 'dolly-flatbed-empty',\n icon: [640, 512, [], \"f476\", [\"M162.74 448a48 48 0 1 0 90.52 0zm378.52 0h-90.52a48 48 0 1 0 90.52 0z\", \"M640 400v32a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V64H16A16 16 0 0 1 0 48V16A16 16 0 0 1 16 0h96a16 16 0 0 1 16 16v368h496a16 16 0 0 1 16 16z\"]]\n};\nvar faDonate = {\n prefix: 'fad',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", [\"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6A16.56 16.56 0 0 1 250.4 64h11.1a16.56 16.56 0 0 1 16.6 16.6v17a78.84 78.84 0 0 1 43 15.4 11.21 11.21 0 0 1 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1a32.91 32.91 0 0 0-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8a16.56 16.56 0 0 1-16.6 16.6h-11.1a16.56 16.56 0 0 1-16.6-16.6v-17a78.84 78.84 0 0 1-43-15.4 11.21 11.21 0 0 1-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1a32.91 32.91 0 0 0 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4z\", \"M218.4 219.9l62.3 18.7c7.1 2.1 12.1 9.4 12.1 17.6 0 10.1-7.3 18.3-16.3 18.3h-38.9a32.91 32.91 0 0 1-17.8-5.1c-4.5-2.8-10.2-2.7-14 1l-16.3 15.5a11.21 11.21 0 0 0 1.2 17.1 78.84 78.84 0 0 0 43 15.4v17a16.56 16.56 0 0 0 16.6 16.6h11.1a16.56 16.56 0 0 0 16.6-16.6v-16.8c32.7-.9 59.1-28.4 59.1-62.4 0-27.7-18-52.4-43.7-60.1l-62.3-18.7c-7.1-2.1-12.1-9.4-12.1-17.6 0-10.1 7.3-18.3 16.3-18.3h38.9a32.91 32.91 0 0 1 17.8 5.1c4.5 2.8 10.2 2.7 14-1l16.3-15.5a11.21 11.21 0 0 0-1.2-17.1 78.84 78.84 0 0 0-43-15.4v-17A16.56 16.56 0 0 0 261.5 64h-11.1a16.56 16.56 0 0 0-16.6 16.6v16.8c-32.7.9-59 28.4-59.1 62.4 0 27.7 18 52.4 43.7 60.1zM480 352h-32.5a242.37 242.37 0 0 1-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8a243.57 243.57 0 0 1-73-64H32a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32z\"]]\n};\nvar faDoorClosed = {\n prefix: 'fad',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", [\"M640 464v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h608a16 16 0 0 1 16 16z\", \"M464 0H176c-26.47 0-48 22.78-48 50.8V448h384V50.8C512 22.78 490.47 0 464 0zm-48 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faDoorOpen = {\n prefix: 'fad',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", [\"M0 464v32a16 16 0 0 0 16 16h336v-64H16a16 16 0 0 0-16 16zm624-16h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M312.24 1l-192 49.74C106 54.44 96 67.7 96 82.92V448h256V33.18C352 11.6 332.44-4.23 312.24 1zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]]\n};\nvar faDotCircle = {\n prefix: 'fad',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm124.45 372.45A176 176 0 1 1 432 256a174.85 174.85 0 0 1-51.55 124.45z\", \"M256 336a80 80 0 1 1 80-80 80.09 80.09 0 0 1-80 80z\"]]\n};\nvar faDove = {\n prefix: 'fad',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", [\"M400 64a80.07 80.07 0 0 0-80 80.1v59.4A271.57 271.57 0 0 1 87 41.75c-5.5-12.5-23.2-13.2-29-.9a269.8 269.8 0 0 0-26 115.7c0 70.8 34.1 136.9 85.1 185.9a406.94 406.94 0 0 0 38.9 32.8l-143.9 36a16.1 16.1 0 0 0-9.5 24.4C20 462.55 63 508.15 155.88 512a32.09 32.09 0 0 0 22.1-7.9l65.2-56.1H320a159.86 159.86 0 0 0 160-159.74V128l32-64zm.05 96.1H400a11.31 11.31 0 1 1 .05 0z\", \"M320 176.69v26.81a271.52 271.52 0 0 1-174.12-76.79c1.12-5.68 2.44-11.34 4-17A269.78 269.78 0 0 1 206.16 5.35C215.07-4.94 231.92.51 233.85 14A271.5 271.5 0 0 0 320 176.69z\"]]\n};\nvar faDownload = {\n prefix: 'fad',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", [\"M320 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3a19.37 19.37 0 0 1-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24a23.94 23.94 0 0 1 24-24h80a23.94 23.94 0 0 1 24 24z\", \"M488 352H341.3l-49 49a51.24 51.24 0 0 1-72.6 0l-49-49H24a23.94 23.94 0 0 0-24 24v112a23.94 23.94 0 0 0 24 24h464a23.94 23.94 0 0 0 24-24V376a23.94 23.94 0 0 0-24-24zm-120 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm64 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faDraftingCompass = {\n prefix: 'fad',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", [\"M12.5 249.86c-4.86-7.67-1.89-18 6.05-22.39l28.07-15.57c7.48-4.15 16.61-1.46 21.26 5.72a223.89 223.89 0 0 0 35.75 42.55L71 316.68a288.08 288.08 0 0 1-58.5-66.82zm487 0c4.86-7.67 1.89-18-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72a223.95 223.95 0 0 1-257.77 91.26l-32.53 56.35A287.42 287.42 0 0 0 256 384a288.42 288.42 0 0 0 243.5-134.14z\", \"M457.21 344.75a318.63 318.63 0 0 1-82.85 48.51l54.5 94.4 53.95 23A16 16 0 0 0 505 497.9l7-58.25zM340.9 143.3a96.5 96.5 0 1 0-169.29-.88L0 439.65l7 58.25a16 16 0 0 0 22.17 12.8l54-23 170.11-294.76c1.07 0 2.14.06 3.22.06h2.24l50.49 87.47a191.71 191.71 0 0 0 82.65-48.85zM256.5 128A31.5 31.5 0 1 1 288 96.5a31.5 31.5 0 0 1-31.5 31.5z\"]]\n};\nvar faDragon = {\n prefix: 'fad',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", [\"M320 194.35v42.27A247.35 247.35 0 0 0 334.73 320H112c-14.25 0-21.39-17.23-11.31-27.31L192 224 18.32 255.82C2.36 258.1-6.57 238 5.81 227.68l117.4-116.34a64 64 0 0 1 77.06-4.59z\", \"M575.19 289.88l-100.66-50.31A48 48 0 0 1 448 196.65V160h64l28.09 22.63a32 32 0 0 0 22.63 9.37h31a32 32 0 0 0 28.62-17.69l14.31-28.62a32 32 0 0 0-3-33.51l-74.58-99.42A32 32 0 0 0 533.47 0H296a8 8 0 0 0-5.66 13.61L352 64l-59.58 24.8a8 8 0 0 0 0 14.31L352 128v108.58A215.61 215.61 0 0 0 448 416c-195.59 6.81-344.56 41-434.1 60.91A17.78 17.78 0 0 0 17.76 512h499.08c63.29 0 119.61-47.56 123-110.76a116.7 116.7 0 0 0-64.65-111.36zm-86-223.63l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.97-.71-25.86-12.53-21.53-29.67z\"]]\n};\nvar faDrawCircle = {\n prefix: 'fad',\n iconName: 'draw-circle',\n icon: [512, 512, [], \"f5ed\", [\"M39.9 196.71A224.68 224.68 0 0 1 196.71 39.9a64 64 0 0 0 9.34 64.1A160.73 160.73 0 0 0 104 206.06a64 64 0 0 0-64.1-9.35zM320 64a63.76 63.76 0 0 1-14 40 160.73 160.73 0 0 1 102 102.06 64 64 0 0 1 64.1-9.35A224.68 224.68 0 0 0 315.29 39.9 63.73 63.73 0 0 1 320 64zm128 256a63.76 63.76 0 0 1-40-14 160.73 160.73 0 0 1-102 102 64 64 0 0 1 9.34 64.1A224.68 224.68 0 0 0 472.1 315.29 63.73 63.73 0 0 1 448 320zM192 448a63.76 63.76 0 0 1 14.05-40A160.73 160.73 0 0 1 104 306a64 64 0 0 1-64.1 9.34A224.68 224.68 0 0 0 196.71 472.1 63.73 63.73 0 0 1 192 448z\", \"M256 384a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-464a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM64 192a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm384-80a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faDrawPolygon = {\n prefix: 'fad',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", [\"M32 360.58V151.42a64 64 0 0 0 64 0v209.16a64 64 0 0 0-64 0zM119.42 64a64 64 0 0 1 0 64h208.06l-38.41 64A64 64 0 0 1 344 224.94l39-65a64 64 0 0 1-54.35-96zm209.16 384a64 64 0 0 1 54.35-96l-39-65a64 64 0 0 1-54.86 33l38.41 64H119.42a64 64 0 0 1 0 64z\", \"M64 32a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm320 48a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm0-80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM64 352a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm320-80a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm-32-176a64 64 0 1 0-64 64 64 64 0 0 0 64-64zm-64 16a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faDrawSquare = {\n prefix: 'fad',\n iconName: 'draw-square',\n icon: [448, 512, [], \"f5ef\", [\"M32 360.58V151.42a64 64 0 0 0 64 0v209.16a64 64 0 0 0-64 0zM119.42 64a64 64 0 0 1 0 64h209.16a64 64 0 0 1 0-64zM384 160a63.68 63.68 0 0 1-32-8.58v209.16a64 64 0 0 1 64 0V151.42a63.68 63.68 0 0 1-32 8.58zm-55.42 288a64 64 0 0 1 0-64H119.42a64 64 0 0 1 0 64z\", \"M64 32a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm320 48a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm0-80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm0 272a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM64 352a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faDreidel = {\n prefix: 'fad',\n iconName: 'dreidel',\n icon: [448, 512, [], \"f792\", [\"M443.3 82l-109 109 72 71.9a33.38 33.38 0 0 1 0 47.3l-68.7 68.7-236.4-236.45 68.7-68.7a33.38 33.38 0 0 1 47.3 0l71.9 71.9 109-109a16.06 16.06 0 0 1 22.6 0l22.6 22.6a16 16 0 0 1 0 22.75z\", \"M78.5 165.05l236.4 236.4-58.9 58.9A66.83 66.83 0 0 1 208.7 480H66.9A66.83 66.83 0 0 1 0 413.05v-141.8A66.49 66.49 0 0 1 19.6 224z\"]]\n};\nvar faDrone = {\n prefix: 'fad',\n iconName: 'drone',\n icon: [512, 512, [], \"f85f\", [\"M300.34 160l38.86-28.06a64.05 64.05 0 1 1 40.86 40.86L352 211.66v1.56A111.93 111.93 0 1 0 298.78 160zm-88.68 192L172 380.64a64.06 64.06 0 1 1-40.25-41.17L160 300.34v-1.08A111.93 111.93 0 1 0 212.22 352zM111 0a112 112 0 1 0 49 212.74v-1.08l-28.25-39.13A64 64 0 1 1 172 131.36L211.66 160h.56A112 112 0 0 0 111 0zm289 288a111.58 111.58 0 0 0-48 10.78v1.56l28.06 38.86a64.05 64.05 0 1 1-40.86 40.86L300.34 352h-1.56A112 112 0 1 0 400 288z\", \"M432 399.19a31.91 31.91 0 1 1-63.8 1.81l-67.86-49h-88.68l-67.86 49a31.91 31.91 0 1 1-32.8-32.8l49-67.86v-88.68l-49-67.86a31.91 31.91 0 1 1 32.8-32.8l67.86 49h88.68l67.86-49a31.91 31.91 0 1 1 32.8 32.8l-49 67.86v88.68l49 67.86a31.9 31.9 0 0 1 31 30.99z\"]]\n};\nvar faDroneAlt = {\n prefix: 'fad',\n iconName: 'drone-alt',\n icon: [640, 512, [], \"f860\", [\"M264 112H24a24 24 0 0 0 0 48h240a24 24 0 0 0 0-48zm352 0H376a24 24 0 0 0 0 48h240a24 24 0 0 0 0-48z\", \"M472 192v45.65l-96.83-29.05a191.93 191.93 0 0 0-110.34 0L168 237.65V192h-48v64.05a32 32 0 0 0 32 32h45.41a179 179 0 0 0-53.33 110.24 16.14 16.14 0 0 0 16 17.71h16.26c8.33 0 14.75-6.58 15.68-14.87a130 130 0 0 1 53.66-91.38l32.93 32.93a32 32 0 0 0 22.62 9.37h37.49a32 32 0 0 0 22.63-9.37l32.93-32.93A130 130 0 0 1 448 401.13c.93 8.29 7.35 14.85 15.68 14.87h16.22a16.13 16.13 0 0 0 16-17.71 178.94 178.94 0 0 0-53.32-110.24H488a32 32 0 0 0 32-32V192zM144 96a23.68 23.68 0 0 0-22.23 16h44.5A23.72 23.72 0 0 0 144 96zm352 0a23.68 23.68 0 0 0-22.23 16h44.5A23.72 23.72 0 0 0 496 96z\"]]\n};\nvar faDrum = {\n prefix: 'fad',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", [\"M256 352a24 24 0 0 0-24 24v103.47c7.91.32 15.9.53 24 .53s16.09-.21 24-.53V376a24 24 0 0 0-24-24zM96 320a24 24 0 0 0-24 24v101.76a327.89 327.89 0 0 0 48 17V344a24 24 0 0 0-24-24zm320 0a24 24 0 0 0-24 24v118.77a327.89 327.89 0 0 0 48-17V344a24 24 0 0 0-24-24zm93.31-267.56l-8.87-13.31a16 16 0 0 0-22.19-4.44L232.88 192.94a16 16 0 0 0-4.44 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44L504.88 74.63a16 16 0 0 0 4.43-22.19z\", \"M512 208v160c0 30.23-27.5 57.61-72 77.76V344a24 24 0 0 0-48 0v118.77c-33.05 9.1-71.07 15-112 16.7V376a24 24 0 0 0-48 0v103.47c-40.93-1.67-78.95-7.6-112-16.7V344a24 24 0 0 0-48 0v101.76C27.5 425.61 0 398.23 0 368V208a37.5 37.5 0 0 1 1.33-10.38C15.09 101.32 214.73 96 256 96c17.58 0 63.9 1 112.32 9.58l-62.55 40.34c-16-1.21-32.58-1.92-49.77-1.92-114.87 0-208 28.65-208 64s93.13 64 208 64 208-28.65 208-64c0-21.27-33.87-40.07-85.77-51.7l53.23-34.3c40.86 15 73.91 38.5 79.21 75.65A37.5 37.5 0 0 1 512 208z\"]]\n};\nvar faDrumSteelpan = {\n prefix: 'fad',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", [\"M172 90l25.6 44.34a73.16 73.16 0 0 1-20.94 96.53C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124-70zm116 70a64.07 64.07 0 0 0 64-64V83c-20.4-1.88-41.8-3-64-3s-43.6 1.08-64 3v13a64.07 64.07 0 0 0 64 64zm110.93 70.9C475.6 217.54 528 190.83 528 160c0-30.21-50.28-56.5-124.44-70.1l-25.65 44.42a73.13 73.13 0 0 0 21 96.58zm-50 6.4c-8.1-26.13-32.19-45.3-60.93-45.3s-52.83 19.17-60.89 45.3c19.48 1.7 39.81 2.7 60.89 2.7s41.41-1 60.89-2.7z\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-83 158.36a73 73 0 0 1-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124-70l25.6 44.34a73.39 73.39 0 0 1 7.4 56.02zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144a64 64 0 0 1-128 0V83c20.4-1.88 41.8-3 64-3s43.6 1.08 64 3zm46.93 134.9a73.13 73.13 0 0 1-21-96.58l25.63-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]]\n};\nvar faDrumstick = {\n prefix: 'fad',\n iconName: 'drumstick',\n icon: [512, 512, [], \"f6d6\", [\"M193.7 392.5c-9.7 9.8-11.1 24-6 36.8 12.4 30.9-2.6 66-33.6 78.4-22.4 9-48.1 3.7-65.2-13.4-15.3-15.3-19.6-36.5-15.1-56.1-19.6 4.5-40.8.2-56.1-15.1-23.6-23.5-23.7-61.7-.2-85.3 17.1-17.2 42.7-22.4 65.2-13.4 12.8 5.1 27 3.7 36.8-6l40.5-40.5V288c0 35.3 28.7 64 64 64h10.2l-40.5 40.5z\", \"M160.1 192c0-64 27.6-107 63.1-142.4 66.1-66.1 173.2-66 239.3 0s66 173.2 0 239.3C427 324.3 384 352 320.1 352H224c-35.3 0-64-28.7-64-64l.1-96z\"]]\n};\nvar faDrumstickBite = {\n prefix: 'fad',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", [\"M193.69 392.5c-9.72 9.75-11.09 24-6 36.75a60.32 60.32 0 0 1-98.73 65c-15.27-15.27-19.58-36.5-15.09-56.1-19.6 4.49-40.83.18-56.1-15.09a60.31 60.31 0 0 1 65-98.72c12.76 5.07 27.05 3.69 36.76-6L160 277.87V288a64 64 0 0 0 64 64h10.2z\", \"M160.06 192c0-64 27.7-107 63.18-142.43a169.5 169.5 0 0 1 239.55 0c34.32 34.28 50.44 79.6 49.14 124.56-42-22.66-94.38-17.56-128.77 16.8-40.88 40.84-40.69 107.17-1.05 151.07a187.7 187.7 0 0 1-61.9 10H224a64 64 0 0 1-64-64z\"]]\n};\nvar faDryer = {\n prefix: 'fad',\n iconName: 'dryer',\n icon: [448, 512, [], \"f861\", [\"M216 272c0-22.64-11.95-34.59-20.69-43.33-5.83-5.82-9.24-9.45-10.61-14.62A8 8 0 0 0 177 208h-16.29a8.17 8.17 0 0 0-8 9.53c2.77 16.64 12.51 26.38 19.93 33.8C180.53 259.17 184 263 184 272s-3.47 12.86-11.31 20.7C164 301.47 152 313.42 152 336.06s11.95 34.57 20.69 43.28c5.82 5.82 9.23 9.44 10.6 14.59A8 8 0 0 0 191 400h16.32a8.15 8.15 0 0 0 7.94-9.53c-2.76-16.61-12.5-26.35-19.92-33.75C187.47 348.88 184 345 184 336.06s3.47-12.86 11.31-20.7C204.05 306.63 216 294.67 216 272zm48 64c0-9 3.47-12.86 11.31-20.7 8.74-8.67 20.69-20.63 20.69-43.3s-11.95-34.59-20.69-43.33c-5.83-5.82-9.24-9.45-10.61-14.62A8 8 0 0 0 257 208h-16.29a8.17 8.17 0 0 0-8 9.53c2.77 16.64 12.51 26.38 19.93 33.8C260.53 259.17 264 263 264 272s-3.47 12.86-11.31 20.7C244 301.47 232 313.42 232 336.06s11.95 34.57 20.69 43.28c5.82 5.82 9.23 9.44 10.6 14.59A8 8 0 0 0 271 400h16.32a8.15 8.15 0 0 0 7.94-9.53c-2.76-16.61-12.5-26.35-19.92-33.75C267.47 348.88 264 345 264 336.06z\", \"M384 0H64A64 64 0 0 0 0 64v416a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a64 64 0 0 0-64-64zM184 64a24 24 0 1 1-24 24 24 24 0 0 1 24-24zM64 88a24 24 0 1 1 24 24 24 24 0 0 1-24-24zm160 360a144 144 0 1 1 144-144 144 144 0 0 1-144 144z\"]]\n};\nvar faDryerAlt = {\n prefix: 'fad',\n iconName: 'dryer-alt',\n icon: [448, 512, [], \"f862\", [\"M224 192a112 112 0 1 0 112 112 112 112 0 0 0-112-112zm0 192a80 80 0 0 1-78.39-64H184a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-38.39A80 80 0 1 1 224 384z\", \"M384 0H64A64 64 0 0 0 0 64v416a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a64 64 0 0 0-64-64zM184 64a24 24 0 1 1-24 24 24 24 0 0 1 24-24zM64 88a24 24 0 1 1 24 24 24 24 0 0 1-24-24zm160 360a144 144 0 1 1 144-144 144 144 0 0 1-144 144z\"]]\n};\nvar faDuck = {\n prefix: 'fad',\n iconName: 'duck',\n icon: [512, 512, [], \"f6d8\", [\"M512 128a96 96 0 0 1-96 96h-27c37.28-13.18 59-54.2 59-96z\", \"M401.31 277.43A41.38 41.38 0 0 1 384 243.8a39.9 39.9 0 0 1 5-19.8c37.28-13.18 59-54.2 59-96a96 96 0 0 0-192 0 94.05 94.05 0 0 0 22.1 60.59 41.44 41.44 0 0 1 9.9 26.53A40.88 40.88 0 0 1 247.13 256h-21.69c-31.51 0-80.18-13.2-101.68-36.24C113.74 209 96 216.17 96 230.63A153.38 153.38 0 0 0 249.38 384h-32c-76 0-138.67-55.44-150.82-128h-50.4C7 256-.63 263.66 0 272.75 8.62 388.64 105.36 480 223.43 480h107.2c55.51 0 110.81-44.52 116.72-99.71a111.23 111.23 0 0 0-46.04-102.86zM352 144a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faDumbbell = {\n prefix: 'fad',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", [\"M32 288H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h16zm352-64H256v64h128zm240 0h-16v64h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M232 32h-48a23.94 23.94 0 0 0-24 24v400a23.94 23.94 0 0 0 24 24h48a23.94 23.94 0 0 0 24-24V56a23.94 23.94 0 0 0-24-24zm224 0h-48a23.94 23.94 0 0 0-24 24v400a23.94 23.94 0 0 0 24 24h48a23.94 23.94 0 0 0 24-24V56a23.94 23.94 0 0 0-24-24zm128 64h-48a23.94 23.94 0 0 0-24 24v272a23.94 23.94 0 0 0 24 24h48a23.94 23.94 0 0 0 24-24V120a23.94 23.94 0 0 0-24-24zm-480 0H56a23.94 23.94 0 0 0-24 24v272a23.94 23.94 0 0 0 24 24h48a23.94 23.94 0 0 0 24-24V120a23.94 23.94 0 0 0-24-24z\"]]\n};\nvar faDumpster = {\n prefix: 'fad',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", [\"M576 240v32a16 16 0 0 1-16 16h-28l-20 160v16a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16H128v16a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-16L44 288H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h20l-4-32h512l-4 32h20a16 16 0 0 1 16 16z\", \"M24.5 44.1l-24 96A16 16 0 0 0 16 160h97.3l25.6-128H40a16 16 0 0 0-15.5 12.1zM145.9 160H272V32H171.5zM304 32v128h126.1L404.5 32zm271.5 108.1l-24-96A16 16 0 0 0 536 32h-98.9l25.6 128H560a16 16 0 0 0 15.5-19.9z\"]]\n};\nvar faDumpsterFire = {\n prefix: 'fad',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", [\"M288 321.6c0 48.5 18.6 92.7 48.8 126.4H128v16a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-16L44 288H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h20l-4-32h308.6c-32.7 46.7-52.6 93.7-52.6 129.6z\", \"M461.72 104.14a606.78 606.78 0 0 1 51.15 51.46c5.7-5.59 11.41-11.09 17.32-16.28l21.32-19 21.32 19c1.1.9 2.1 2.09 3.1 3.09a17.5 17.5 0 0 0 0-2.29l-24-95.93a15.85 15.85 0 0 0-15.44-12.09h-99l12.31 61.45zM146 160h126.24V32.1h-100.6zM24.5 44.19l-24 95.93A16 16 0 0 0 16 160h97.4L139 32.1H40a16.05 16.05 0 0 0-15.5 12.09zm526.7 119A419.31 419.31 0 0 0 511 204.4a538.72 538.72 0 0 0-71-76.4c-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zM532.6 392.6a89 89 0 0 1-52.5 17c-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8zM419.08 104.14l.2-.2L404.87 32h-100.6v127.9h60.86a543.28 543.28 0 0 1 53.95-55.76z\"]]\n};\nvar faDungeon = {\n prefix: 'fad',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", [\"M304 189.36V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V219.13a96.32 96.32 0 0 0-32-29.77zm-64-11.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V177.62a94.83 94.83 0 0 0-16-1.62 94.83 94.83 0 0 0-16 1.62zm-64 41.51V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V189.36a96.32 96.32 0 0 0-32 29.77z\", \"M112 288H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm16.73-92.68l-82.81-51.76c-8-5-19-2.17-22.93 6.45A254.32 254.32 0 0 0 .54 239.28C0 248.37 7.59 256 16.69 256h97.13c8 0 14.08-6.25 15-14.16a126.36 126.36 0 0 1 6.24-26.94c2.57-7.34.26-15.46-6.33-19.58zM453 93.11a257.4 257.4 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12 0 14.88 6.3 19.28a127.56 127.56 0 0 1 16.79 14c5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.1-4.98 10.32-16.14 4.22-23.46zM496 416h-96a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zM153 41.53c-3.53-8.83-14.13-13-22.42-8.31A257.4 257.4 0 0 0 59 93.11c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79a127.56 127.56 0 0 1 16.79-14c6.28-4.41 9.15-12.17 6.3-19.29zM112 416H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm384-128h-96a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm-97.82-32h97.13c9.1 0 16.74-7.63 16.15-16.72A254.05 254.05 0 0 0 489 150c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58a125.9 125.9 0 0 1 6.24 26.94c.94 7.92 7.06 14.17 15.02 14.17zM319 8a252.3 252.3 0 0 0-126 0c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104a16 16 0 0 0 15 10.58h41.8A16 16 0 0 0 292 133.42l37.47-104C332.94 20.6 328.2 10.36 319 8z\"]]\n};\nvar faEar = {\n prefix: 'fad',\n iconName: 'ear',\n icon: [384, 512, [], \"f5f0\", [\"M192 0C86 0 0 86 0 192v176a144 144 0 0 0 288 0v-9.9c57.33-33.21 96-95.1 96-166.1C384 86 298 0 192 0zm128 200a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-8a96 96 0 0 0-192 0 32 32 0 0 0 32 32h32a64 64 0 0 1 0 128h-8a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h8a32 32 0 0 0 0-64h-32a64.06 64.06 0 0 1-64-64 128 128 0 0 1 256 0z\", \"M320 200a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-8a96 96 0 0 0-192 0 32 32 0 0 0 32 32h32a64 64 0 0 1 0 128h-8a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h8a32 32 0 0 0 0-64h-32a64.06 64.06 0 0 1-64-64 128 128 0 0 1 256 0z\"]]\n};\nvar faEarMuffs = {\n prefix: 'fad',\n iconName: 'ear-muffs',\n icon: [640, 512, [], \"f795\", [\"M83.44 200.9C102.24 87.1 200.94 0 319.94 0s217.8 87.2 236.5 201a69.63 69.63 0 0 0-15.7-2 72.82 72.82 0 0 0-18 2.3 71.77 71.77 0 0 0-16.5-6.8C485.74 110.6 410.14 48 319.94 48s-165.8 62.6-186.3 146.6a73.62 73.62 0 0 0-16 6.5 72.82 72.82 0 0 0-18-2.3 67.89 67.89 0 0 0-16.2 2.1z\", \"M639 335a39.92 39.92 0 0 0-21.4-26.9 39 39 0 0 0-8-33.6 40.3 40.3 0 0 0-31.7-14.7 39.6 39.6 0 0 0-23.4-26.2c-12.7-5-26.1-2.5-36.8 4.5-7.3-8.4-17.8-14.1-29.9-14.1a40 40 0 0 0-40 40c0 10.1 4.1 19 10.2 26a39.5 39.5 0 0 0-10.2 26.1 39.05 39.05 0 0 0 9.6 25.9 39.74 39.74 0 0 0 0 51.8 39.05 39.05 0 0 0-9.6 25.9 39.5 39.5 0 0 0 10.2 26.1 39.63 39.63 0 0 0 59.1 52.8 40.47 40.47 0 0 0 22 6.5 33.57 33.57 0 0 0 14.7-2.9 38.75 38.75 0 0 0 23.4-25.9 41.17 41.17 0 0 0 32-14.4 40.39 40.39 0 0 0 8.3-33.6 40.36 40.36 0 0 0 21.1-26.9 39 39 0 0 0-7.4-33.3A39.19 39.19 0 0 0 639 335zM151.94 224a39.23 39.23 0 0 0-29.6 13.7c-10.6-6.9-23.8-9.3-36.4-4.4a41.06 41.06 0 0 0-23.7 26.2 39.81 39.81 0 0 0-40 48 39.93 39.93 0 0 0-13.7 60.2 39.79 39.79 0 0 0 13.7 60.5 38.59 38.59 0 0 0 8 33.3 40.3 40.3 0 0 0 31.7 14.7 40.26 40.26 0 0 0 23.4 26.2 42 42 0 0 0 15 2.9 39.46 39.46 0 0 0 22.1-6.8 39.35 39.35 0 0 0 29.5 13.5 40 40 0 0 0 40-40 39.3 39.3 0 0 0-10.1-25.9 39.3 39.3 0 0 0 10.1-25.9 39.84 39.84 0 0 0-9.6-26.2 39.74 39.74 0 0 0 0-51.8 39.05 39.05 0 0 0 9.6-25.9 39.5 39.5 0 0 0-10.2-26.1 39.65 39.65 0 0 0-29.8-66.2z\"]]\n};\nvar faEclipse = {\n prefix: 'fad',\n iconName: 'eclipse',\n icon: [640, 512, [], \"f749\", [\"M295.2 377.2c-44.2 14.3-94.6 4.4-129.7-30.7a128.13 128.13 0 0 1 0-181c35.1-35.1 85.5-45 129.8-30.7a203.26 203.26 0 0 1 25.1-28.9L271.5 9.6a17.31 17.31 0 0 0-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4a17.31 17.31 0 0 0 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7a17.31 17.31 0 0 0 31 0l47.3-94.7 5.3 1.8a205.94 205.94 0 0 1-28.8-32.3zM256 160a96 96 0 1 0 22.3 189.1 205.49 205.49 0 0 1 0-186.2A96.63 96.63 0 0 0 256 160z\", \"M640 256A176 176 0 1 1 464 80a176 176 0 0 1 176 176z\"]]\n};\nvar faEclipseAlt = {\n prefix: 'fad',\n iconName: 'eclipse-alt',\n icon: [512, 512, [], \"f74a\", [\"M502.42 240.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.41-94.8a17.31 17.31 0 0 0-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.51 100.4L9.6 240.5a17.31 17.31 0 0 0 0 31l94.71 47.3L70.8 419.3c-4.5 13.6 8.4 26.5 21.9 21.9l100.41-33.5 47.3 94.7a17.31 17.31 0 0 0 31 0l47.31-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3a17.33 17.33 0 0 0 .2-31.1zm-155.9 106c-49.91 49.9-131.11 49.9-181 0a128.13 128.13 0 0 1 0-181c49.9-49.9 131.1-49.9 181 0a128.13 128.13 0 0 1 0 181z\", \"M330.4 316.5A96 96 0 1 1 255.9 160a93.4 93.4 0 0 1 17.5 1.6 4.49 4.49 0 0 1 1.4 8.3 75.21 75.21 0 0 0-38 65.4c0 47.1 42.8 82.8 89.3 73.9a4.5 4.5 0 0 1 4.3 7.3z\"]]\n};\nvar faEdit = {\n prefix: 'fad',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", [\"M564.6 60.2l-48.8-48.8a39.11 39.11 0 0 0-55.2 0l-35.4 35.4a9.78 9.78 0 0 0 0 13.8l90.2 90.2a9.78 9.78 0 0 0 13.8 0l35.4-35.4a39.11 39.11 0 0 0 0-55.2zM427.5 297.6l-40 40a12.3 12.3 0 0 0-3.5 8.5v101.8H64v-320h229.8a12.3 12.3 0 0 0 8.5-3.5l40-40a12 12 0 0 0-8.5-20.5H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V306.1a12 12 0 0 0-20.5-8.5z\", \"M492.8 173.3a9.78 9.78 0 0 1 0 13.8L274.4 405.5l-92.8 10.3a19.45 19.45 0 0 1-21.5-21.5l10.3-92.8L388.8 83.1a9.78 9.78 0 0 1 13.8 0z\"]]\n};\nvar faEgg = {\n prefix: 'fad',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", [\"M304 320a112 112 0 0 1-224 0c0-18.32 4.26-44.4 11.69-71.56a471.69 471.69 0 0 1 33.84-88c14-27.45 29.29-49.88 44.29-64.87l.36-.36a31 31 0 0 1 43.64 0l.36.36c15 15 30.31 37.42 44.29 64.87a471.69 471.69 0 0 1 33.84 88C299.74 275.6 304 301.68 304 320z\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0zm0 432A112.12 112.12 0 0 1 80 320c0-18.32 4.26-44.4 11.69-71.56a471.69 471.69 0 0 1 33.84-88c14-27.45 29.29-49.88 44.29-64.87l.36-.36a31 31 0 0 1 43.64 0l.36.36c15 15 30.31 37.42 44.29 64.87a471.69 471.69 0 0 1 33.84 88C299.74 275.6 304 301.68 304 320a112.12 112.12 0 0 1-112 112z\"]]\n};\nvar faEggFried = {\n prefix: 'fad',\n iconName: 'egg-fried',\n icon: [512, 512, [], \"f7fc\", [\"M478.31 150.45c-39.5-40.71-100.74-46.29-144.41-82.24C284.09 27.2 245.77-9.25 175.34 2.1c-86.79 14-111.73 80-125 157.14-11.1 64.34-54.42 127-50 192.91s52.84 128.43 115 150.74c93 33.39 147-31.71 204.67-86.45 43.69-41.44 93.41-37.72 141-73.89 56.2-42.82 71.63-140.55 17.3-192.1zM224 352.38c-61.75 0-112-50.3-112-112.11s50.27-112.12 112-112.12 112 50.29 112 112.12a112.14 112.14 0 0 1-112 112.11z\", \"M224 128a112 112 0 1 0 112 112 112.15 112.15 0 0 0-112-112zm-8 63.78a40 40 0 0 0-40 40 16 16 0 0 1-32 0 72.05 72.05 0 0 1 72-71.92 16 16 0 1 1 0 32z\"]]\n};\nvar faEject = {\n prefix: 'fad',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", [\"M448 384v64a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32z\", \"M259.38 47.56l175.94 192c28.2 30.77 6.27 80.44-35.38 80.44H48.05c-41.73 0-63.52-49.73-35.38-80.44l176-192a48 48 0 0 1 70.71 0z\"]]\n};\nvar faElephant = {\n prefix: 'fad',\n iconName: 'elephant',\n icon: [640, 512, [], \"f6da\", [\"M512 32.15h-72.65A63.9 63.9 0 1 0 352 119.24v72.86a32 32 0 0 0 28.78 31.83H408a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8l-24 .12a64.06 64.06 0 0 1-64-64v-56.73a96 96 0 0 1-32-71.18 94.71 94.71 0 0 1 5.9-32H192c-106 0-192 86-192 191.94v112a16 16 0 0 0 16 16h16V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V388.19C160.35 405.73 198.72 416 240 416s79.65-10.3 112-27.84V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V288.07h64c23.44 0 45.11-6.76 64-17.74v97.31A16.26 16.26 0 0 1 560.14 384 16 16 0 0 1 544 368.19v-.14c0-8.78-7.64-16-16.42-16H496a16 16 0 0 0-16 16 80.07 80.07 0 0 0 88.36 79.54C610 443.34 640 405.14 640 363.32V160.11A128 128 0 0 0 512 32.15zm16 128a16 16 0 1 1 16-16 16 16 0 0 1-16 15.96z\", \"M528 128a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-176 64.16v-72.88A63.89 63.89 0 0 1 328.54 32l-34.64.16a94.77 94.77 0 0 0-5.9 32 96 96 0 0 0 32 71.2v56.8A64.07 64.07 0 0 0 379.74 256H408a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-27.22A32 32 0 0 1 352 192.16z\"]]\n};\nvar faEllipsisH = {\n prefix: 'fad',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", [\"M256 184a72 72 0 1 0 72 72 72 72 0 0 0-72-72z\", \"M432 184a72 72 0 1 0 72 72 72 72 0 0 0-72-72zm-352 0a72 72 0 1 0 72 72 72 72 0 0 0-72-72z\"]]\n};\nvar faEllipsisHAlt = {\n prefix: 'fad',\n iconName: 'ellipsis-h-alt',\n icon: [512, 512, [], \"f39b\", [\"M80 184a72 72 0 1 0 72 72 72 72 0 0 0-72-72zm0 96a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm352-96a72 72 0 1 0 72 72 72 72 0 0 0-72-72zm0 96a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm-176-96a72 72 0 1 0 72 72 72 72 0 0 0-72-72zm0 96a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M80 232a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm176 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm176 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faEllipsisV = {\n prefix: 'fad',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", [\"M96 184a72 72 0 1 0 72 72 72 72 0 0 0-72-72z\", \"M96 152a72 72 0 1 0-72-72 72 72 0 0 0 72 72zm0 208a72 72 0 1 0 72 72 72 72 0 0 0-72-72z\"]]\n};\nvar faEllipsisVAlt = {\n prefix: 'fad',\n iconName: 'ellipsis-v-alt',\n icon: [192, 512, [], \"f39c\", [\"M168 80a72 72 0 1 0-72 72 72 72 0 0 0 72-72zm-96 0a24 24 0 1 1 24 24 24 24 0 0 1-24-24zm96 352a72 72 0 1 0-72 72 72 72 0 0 0 72-72zm-96 0a24 24 0 1 1 24 24 24 24 0 0 1-24-24zm96-176a72 72 0 1 0-72 72 72 72 0 0 0 72-72zm-96 0a24 24 0 1 1 24 24 24 24 0 0 1-24-24z\", \"M120 80a24 24 0 1 0-24 24 24 24 0 0 0 24-24zm0 176a24 24 0 1 0-24 24 24 24 0 0 0 24-24zm0 176a24 24 0 1 0-24 24 24 24 0 0 0 24-24z\"]]\n};\nvar faEmptySet = {\n prefix: 'fad',\n iconName: 'empty-set',\n icon: [512, 512, [], \"f656\", [\"M76.6 390.15A223 223 0 0 1 32 256C32 132.29 132.29 32 256 32a223 223 0 0 1 134.15 44.6l-57.46 57.46a144.07 144.07 0 0 0-198.63 198.63zm301.34-210.83a144.07 144.07 0 0 1-198.62 198.62l-57.46 57.47A223 223 0 0 0 256 480c123.71 0 224-100.29 224-224a223 223 0 0 0-44.6-134.15z\", \"M507.31 50L50 507.32a16 16 0 0 1-22.63 0L4.69 484.69a16 16 0 0 1 0-22.63L462.06 4.69a16 16 0 0 1 22.63 0l22.62 22.62a16 16 0 0 1 0 22.69z\"]]\n};\nvar faEngineWarning = {\n prefix: 'fad',\n iconName: 'engine-warning',\n icon: [640, 512, [], \"f5f2\", [\"M320 32C196.3 32 96 132.3 96 256s100.3 224 224 224 224-100.24 224-224S443.7 32 320 32zm0 352a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.24-238.41l-12.8 128A16 16 0 0 1 329.52 288h-19a16 16 0 0 1-15.92-14.41l-12.8-128A16 16 0 0 1 297.68 128h44.64a16 16 0 0 1 15.92 17.59z\", \"M101.33 69.63l-12.2-10.41c-6.91-5.9-17.62-5.06-23.15 2.15a320.08 320.08 0 0 0 0 389.25c5.53 7.21 16.23 8.05 23.15 2.16l12.19-10.4a15.88 15.88 0 0 0 2-21.86 272.17 272.17 0 0 1 0-329 15.87 15.87 0 0 0-1.99-21.89zm471.4-9.92c-5.58-7.18-16.29-8-23.17-2l-12.15 10.51a15.87 15.87 0 0 0-1.88 21.87 272 272 0 0 1 0 331.86 15.87 15.87 0 0 0 1.88 21.87l12.15 10.5c6.87 5.95 17.59 5.18 23.17-2a320.08 320.08 0 0 0 0-392.61zM342.32 128h-44.64a16 16 0 0 0-15.92 17.59l12.8 128A16 16 0 0 0 310.48 288h19a16 16 0 0 0 15.92-14.41l12.8-128A16 16 0 0 0 342.32 128zM320 320a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faEnvelope = {\n prefix: 'fad',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", [\"M256.47 352h-.94c-30.1 0-60.41-23.42-82.54-40.52C169.39 308.7 24.77 202.7 0 183.33V400a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V183.36c-24.46 19.17-169.4 125.34-173 128.12-22.12 17.1-52.43 40.52-82.53 40.52zM464 64H48a48 48 0 0 0-48 48v19a24.08 24.08 0 0 0 9.2 18.9c30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4 23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7A23.93 23.93 0 0 0 512 131v-19a48 48 0 0 0-48-48z\", \"M512 131v52.36c-24.46 19.17-169.4 125.34-173 128.12-22.12 17.1-52.43 40.52-82.53 40.52h-.94c-30.1 0-60.41-23.42-82.54-40.52C169.39 308.7 24.77 202.7 0 183.33V131a24.08 24.08 0 0 0 9.2 18.9c30.6 23.9 40.7 32.4 173.4 128.7 16.69 12.12 49.75 41.4 72.93 41.4h.94c23.18 0 56.24-29.28 72.93-41.4 132.7-96.3 142.8-104.7 173.4-128.7A23.93 23.93 0 0 0 512 131z\"]]\n};\nvar faEnvelopeOpen = {\n prefix: 'fad',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", [\"M492.61 163c-24.89-19.52-45.51-35.38-164.2-121.51C311.6 29.17 278.2-.35 255 0c-23.2-.35-56.59 29.17-73.41 41.44C62.89 127.58 42.3 143.42 17.39 163 7.24 170.9-1 187.83-1 200.72V464a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V200.72c0-12.89-8.24-29.82-18.39-37.72zm-40 128.61c-22.89 16.9-55.46 40.69-105.31 76.87C327 383.23 290.72 416.24 255 416c-35.74.24-72-32.79-92.26-47.57-49.85-36.18-82.42-60-105.31-76.87a9 9 0 0 1-3.24-6.44 9.44 9.44 0 0 1 1.4-4.53l9.08-13.2a8 8 0 0 1 11.33-1.9c22.85 16.87 55.47 40.71 105.59 77.08 16.85 12.28 50.2 41.77 73.41 41.43 23.2.35 56.59-29.17 73.41-41.43 50.12-36.38 82.74-60.21 105.59-77.08a8 8 0 0 1 11.33 1.9l9.08 13.2a9.44 9.44 0 0 1 1.4 4.53 9 9 0 0 1-3.24 6.44z\", \"M455.81 285.12a9 9 0 0 1-3.24 6.44c-22.89 16.9-55.46 40.69-105.31 76.87C327 383.23 290.72 416.24 255 416c-35.74.24-72-32.79-92.26-47.57-49.85-36.18-82.42-60-105.31-76.87a9 9 0 0 1-3.24-6.44 9.44 9.44 0 0 1 1.4-4.53l9.08-13.2a8 8 0 0 1 11.33-1.9c22.85 16.87 55.47 40.71 105.59 77.08 16.85 12.28 50.2 41.77 73.41 41.43 23.2.35 56.59-29.17 73.41-41.43 50.12-36.38 82.74-60.21 105.59-77.08a8 8 0 0 1 11.33 1.9l9.08 13.2a9.44 9.44 0 0 1 1.4 4.53z\"]]\n};\nvar faEnvelopeOpenDollar = {\n prefix: 'fad',\n iconName: 'envelope-open-dollar',\n icon: [512, 512, [], \"f657\", [\"M64,257.62,227.91,376a47.9,47.9,0,0,0,56.21,0L448,257.62V96a32,32,0,0,0-32-32H96A32,32,0,0,0,64,96Zm176-122.5V119a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8v16.29a55.31,55.31,0,0,1,32.27,12.18c2.1,2.23,3.74,7.49-.34,11.31L292.18,170a8.19,8.19,0,0,1-10.13.73A24.15,24.15,0,0,0,269.23,167H241.12c-6.5,0-11.8,5.92-11.8,13.19,0,5.95,3.61,11.18,8.77,12.73l45,13.5c18.58,5.58,31.58,23.39,31.58,43.39,0,24.53-19.05,44.44-42.67,45.07V311a8,8,0,0,1-8,8H248a8,8,0,0,1-8-8V294.71c-19.83-1-32.35-12.18-32.22-12.18a8,8,0,0,1,.34-11.31L219.87,260a8.22,8.22,0,0,1,10.13-.73A24.07,24.07,0,0,0,242.77,263h28.11c6.5,0,11.8-5.92,11.8-13.19,0-5.95-3.61-11.18-8.77-12.73l-45-13.5c-18.58-5.58-31.58-23.39-31.58-43.39C197.33,155.67,216.38,135.75,240,135.12Z\", \"M329.4,41.44C312.6,29.18,279.2-.35,256,0c-23.2-.35-56.59,29.17-73.41,41.44L152,64H360ZM493.61,163c-2.94-2.3-21.73-16.26-45.61-33.93V257.61l64-46.24V200.72A48,48,0,0,0,493.61,163ZM64,129c-23.88,17.69-42.67,31.65-45.61,34A48,48,0,0,0,0,200.72v10.65l64,46.24ZM256,417.13a79.83,79.83,0,0,1-46.86-15.19L0,250.86V464a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V250.86L302.86,401.94A80,80,0,0,1,256,417.13Zm-16-282V119a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8v16.29a55.31,55.31,0,0,1,32.27,12.18c2.1,2.23,3.74,7.49-.34,11.31L292.18,170a8.19,8.19,0,0,1-10.13.73A24.15,24.15,0,0,0,269.23,167H241.12c-6.5,0-11.8,5.92-11.8,13.19,0,5.95,3.61,11.18,8.77,12.73l45,13.5c18.58,5.58,31.58,23.39,31.58,43.39,0,24.53-19.05,44.44-42.67,45.07V311a8,8,0,0,1-8,8H248a8,8,0,0,1-8-8V294.71c-19.83-1-32.35-12.18-32.22-12.18a8,8,0,0,1,.34-11.31L219.87,260a8.22,8.22,0,0,1,10.13-.73A24.07,24.07,0,0,0,242.77,263h28.11c6.5,0,11.8-5.92,11.8-13.19,0-5.95-3.61-11.18-8.77-12.73l-45-13.5c-18.58-5.58-31.58-23.39-31.58-43.39C197.33,155.67,216.38,135.75,240,135.12Z\"]]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fad',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", [\"M64,257.6,227.9,376a47.72,47.72,0,0,0,56.2,0L448,257.6V96a32,32,0,0,0-32-32H96A32,32,0,0,0,64,96ZM160,160a16,16,0,0,1,16-16H336a16,16,0,0,1,16,16v16a16,16,0,0,1-16,16H176a16,16,0,0,1-16-16Zm0,80a16,16,0,0,1,16-16H336a16,16,0,0,1,16,16v16a16,16,0,0,1-16,16H176a16,16,0,0,1-16-16Z\", \"M352,160a16,16,0,0,0-16-16H176a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16H336a16,16,0,0,0,16-16Zm-16,64H176a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16H336a16,16,0,0,0,16-16V240A16,16,0,0,0,336,224ZM329.4,41.4C312.6,29.2,279.2-.3,256,0c-23.2-.3-56.6,29.2-73.4,41.4L152,64H360ZM64,129c-23.9,17.7-42.7,31.6-45.6,34A48,48,0,0,0,0,200.7v10.7l64,46.2Zm429.6,34c-2.9-2.3-21.7-16.3-45.6-33.9V257.6l64-46.2V200.7A48,48,0,0,0,493.6,163ZM256,417.1a80,80,0,0,1-46.9-15.2L0,250.9V464a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V250.9l-209.1,151A80,80,0,0,1,256,417.1Z\"]]\n};\nvar faEnvelopeSquare = {\n prefix: 'fad',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 328a24 24 0 0 1-24 24H88a24 24 0 0 1-24-24V152a24 24 0 0 1 24-24h272a24 24 0 0 1 24 24z\", \"M224 320c-26.72.13-50.54-21.67-64.7-32C97.33 243 78 228.57 64 217.77V360a24 24 0 0 0 24 24h272a24 24 0 0 0 24-24V217.77c-14 10.8-33.33 25.24-95.28 70.2C275 298 250.88 320.13 224 320zm136-192H88a24 24 0 0 0-24 24v25.17c24.35 19 23.43 19.12 114.12 84.93 10.51 7.67 31.38 26.12 45.88 25.9 14.49.22 35.38-18.24 45.88-25.9 90.69-65.81 89.75-66 114.12-84.93V152a24 24 0 0 0-24-24z\"]]\n};\nvar faEquals = {\n prefix: 'fad',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", [\"M448 336v32a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32v-32a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32z\", \"M448 144v32a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32v-32a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32z\"]]\n};\nvar faEraser = {\n prefix: 'fad',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", [\"M512 428v40a12 12 0 0 1-12 12H144a48 48 0 0 1-33.94-14.06l-96-96a48 48 0 0 1 0-67.88l136-136 227.88 227.88L355.88 416H500a12 12 0 0 1 12 12z\", \"M377.94 393.94l120-120a48 48 0 0 0 0-67.88l-160-160a48 48 0 0 0-67.88 0l-120 120 45.25 45.25z\"]]\n};\nvar faEthernet = {\n prefix: 'fad',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", [\"M512 208v224a16 16 0 0 1-16 16h-80V320h-32v128h-64V320h-32v128h-64V320h-32v128h-64V320H96v128H16a16 16 0 0 1-16-16V208a16 16 0 0 1 16-16h48v-48a16 16 0 0 1 16-16h48V80a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16v48h48a16 16 0 0 1 16 16v48h48a16 16 0 0 1 16 16z\", \"M192 448h32V320h-32zm-96 0h32V320H96zm192 0h32V320h-32zm96-128v128h32V320z\"]]\n};\nvar faEuroSign = {\n prefix: 'fad',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", [\"M249.46 272H12a12 12 0 0 0-12 12v28.37a12 12 0 0 0 12 12h231.08a12 12 0 0 0 11.71-9.37l6.37-28.37a12.16 12.16 0 0 0 .29-2.62A12 12 0 0 0 249.46 272zm19-96H12a12 12 0 0 0-12 12v29.76a12 12 0 0 0 12 12h250a12 12 0 0 0 11.67-9.44l6.51-29.75a12.26 12.26 0 0 0 .28-2.57 12 12 0 0 0-12-12z\", \"M310.74 472.22a249.39 249.39 0 0 1-61.1 7.79c-287.91 0-290.74-448 0-448a290.17 290.17 0 0 1 52.68 5.21 12 12 0 0 1 9.53 14c-.06.29-.12.58-.2.87l-12 44.37a12 12 0 0 1-14 8.62c-234.25-48.79-225.48 354 10.63 299.3a12 12 0 0 1 14.36 9c0 .11.05.22.07.33l8.81 44.49a12 12 0 0 1-8.78 14.02z\"]]\n};\nvar faExchange = {\n prefix: 'fad',\n iconName: 'exchange',\n icon: [512, 512, [], \"f0ec\", [\"M488 384H106l30.47 27.73a24 24 0 0 1 .47 34.4L126.13 457a24 24 0 0 1-33.94 0L9.37 374.63a32 32 0 0 1 0-45.26L92.19 247a24 24 0 0 1 33.94 0L137 257.87a24 24 0 0 1-.47 34.4L106 320h382a24 24 0 0 1 24 24v16a24 24 0 0 1-24 24z\", \"M0 168v-16a24 24 0 0 1 24-24h382l-30.5-27.73a24 24 0 0 1-.47-34.4L385.87 55a24 24 0 0 1 33.94 0l82.82 82.34a32 32 0 0 1 0 45.26L419.81 265a24 24 0 0 1-33.94 0L375 254.13a24 24 0 0 1 .47-34.4L406 192H24a24 24 0 0 1-24-24z\"]]\n};\nvar faExchangeAlt = {\n prefix: 'fad',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", [\"M128 272v48h360a24 24 0 0 1 24 24v16a24 24 0 0 1-24 24H128v48c0 21.44-25.94 32-41 17L7 369a24 24 0 0 1 0-33.94l80-80c15.14-15.12 41-4.35 41 16.94z\", \"M505 143.05a24 24 0 0 1 0 33.95l-80 80c-15 15-41 4.49-41-17v-48H24a24 24 0 0 1-24-24v-16a24 24 0 0 1 24-24h360V80c0-21.36 25.9-32 41-17z\"]]\n};\nvar faExclamation = {\n prefix: 'fad',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", [\"M96 512a80 80 0 1 1 80-80 80.09 80.09 0 0 1-80 80z\", \"M49.22 0h93.56a24 24 0 0 1 24 25.2l-13.63 272a24 24 0 0 1-24 22.8H62.84a24 24 0 0 1-24-22.8l-13.59-272A24 24 0 0 1 49.22 0z\"]]\n};\nvar faExclamationCircle = {\n prefix: 'fad',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", [\"M256 8C119 8 8 119.08 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.24-238.41l-12.8 128A16 16 0 0 1 265.52 288h-19a16 16 0 0 1-15.92-14.41l-12.8-128A16 16 0 0 1 233.68 128h44.64a16 16 0 0 1 15.92 17.59z\", \"M278.32 128h-44.64a16 16 0 0 0-15.92 17.59l12.8 128A16 16 0 0 0 246.48 288h19a16 16 0 0 0 15.92-14.41l12.8-128A16 16 0 0 0 278.32 128zM256 320a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faExclamationSquare = {\n prefix: 'fad',\n iconName: 'exclamation-square',\n icon: [448, 512, [], \"f321\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM224 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.24-238.41l-12.8 128A16 16 0 0 1 233.52 288h-19a16 16 0 0 1-15.92-14.41l-12.8-128A16 16 0 0 1 201.68 128h44.64a16 16 0 0 1 15.92 17.59z\", \"M246.32 128h-44.64a16 16 0 0 0-15.92 17.59l12.8 128A16 16 0 0 0 214.48 288h19a16 16 0 0 0 15.92-14.41l12.8-128A16 16 0 0 0 246.32 128zM224 320a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faExclamationTriangle = {\n prefix: 'fad',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", [\"M569.52 440L329.58 24c-18.44-32-64.69-32-83.16 0L6.48 440c-18.42 31.94 4.64 72 41.57 72h479.89c36.87 0 60.06-40 41.58-72zM288 448a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.24-238.41l-12.8 128A16 16 0 0 1 297.52 352h-19a16 16 0 0 1-15.92-14.41l-12.8-128A16 16 0 0 1 265.68 192h44.64a16 16 0 0 1 15.92 17.59z\", \"M310.32 192h-44.64a16 16 0 0 0-15.92 17.59l12.8 128A16 16 0 0 0 278.48 352h19a16 16 0 0 0 15.92-14.41l12.8-128A16 16 0 0 0 310.32 192zM288 384a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faExpand = {\n prefix: 'fad',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", [\"M148 32H24A23.94 23.94 0 0 0 0 56v124a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12V96h84a12 12 0 0 0 12-12V44a12 12 0 0 0-12-12zm288 288h-40a12 12 0 0 0-12 12v84h-84a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h124a23.94 23.94 0 0 0 24-24V332a12 12 0 0 0-12-12z\", \"M148 416H64v-84a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12v124a23.94 23.94 0 0 0 24 24h124a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM424 32H300a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h84v84a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12V56a23.94 23.94 0 0 0-24-24z\"]]\n};\nvar faExpandAlt = {\n prefix: 'fad',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", [\"M0 456V344c0-21.38 25.8-32.09 40.92-17L72 360l92.69-92.69a16 16 0 0 1 22.62 0l25.38 25.38a16 16 0 0 1 0 22.62L120 408l32.92 31c15.12 15.12 4.41 41-17 41H24a24 24 0 0 1-24-24z\", \"M235.31 196.69L328 104l-32.92-31c-15.12-15.12-4.41-41 17-41h112A24 24 0 0 1 448 56v112c0 21.38-25.8 32.09-40.92 17L376 152l-92.69 92.69a16 16 0 0 1-22.62 0l-25.38-25.38a16 16 0 0 1 0-22.62z\"]]\n};\nvar faExpandArrows = {\n prefix: 'fad',\n iconName: 'expand-arrows',\n icon: [448, 512, [], \"f31d\", [\"M0 200V64a32 32 0 0 1 32-32h136a23.94 23.94 0 0 1 24 24v15.3a24 24 0 0 1-24.7 24L101 93.4l123 123-39.6 39.6-123-123 1.9 66.3a24 24 0 0 1-24 24.7H24a23.94 23.94 0 0 1-24-24zm424 88h-15.3a24 24 0 0 0-24 24.7l1.9 66.3-123-123-39.6 39.6 123 123-66.3-1.9a24 24 0 0 0-24.7 24V456a23.94 23.94 0 0 0 24 24h136a32 32 0 0 0 32-32V312a23.94 23.94 0 0 0-24-24z\", \"M101 418.6l66.3-1.9a24 24 0 0 1 24.7 24V456a23.94 23.94 0 0 1-24 24H32a32 32 0 0 1-32-32V312a23.94 23.94 0 0 1 24-24h15.3a24 24 0 0 1 24 24.7L61.4 379 347 93.4l-66.3 1.9a24 24 0 0 1-24.7-24V56a23.94 23.94 0 0 1 24-24h136a32 32 0 0 1 32 32v136a23.94 23.94 0 0 1-24 24h-15.3a24 24 0 0 1-24-24.7l1.9-66.3z\"]]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fad',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", [\"M.05 168V56a23.94 23.94 0 0 1 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2 107.2 107.2L184.4 256 77.15 148.75 41.05 185c-15.05 15.05-41 4.35-41-17zm407 159.1L371 363.25 263.7 256l-39.65 39.65 107.2 107.2-36.2 36.2c-15.1 15.1-4.4 41 17 41h112a23.94 23.94 0 0 0 24-24v-112c0-21.4-25.9-32.05-41-17z\", \"M370.9 148.8L116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2 254.1-254.1L295.1 73c-15.1-15.1-4.4-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.9 32.1-41 17z\"]]\n};\nvar faExpandWide = {\n prefix: 'fad',\n iconName: 'expand-wide',\n icon: [512, 512, [], \"f320\", [\"M148 64H24A23.94 23.94 0 0 0 0 88v124a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-84h84a12 12 0 0 0 12-12V76a12 12 0 0 0-12-12zm352 224h-40a12 12 0 0 0-12 12v84h-84a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h124a23.94 23.94 0 0 0 24-24V300a12 12 0 0 0-12-12z\", \"M148 384H64v-84a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12v124a23.94 23.94 0 0 0 24 24h124a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM488 64H364a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h84v84a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12V88a23.94 23.94 0 0 0-24-24z\"]]\n};\nvar faExternalLink = {\n prefix: 'fad',\n iconName: 'external-link',\n icon: [512, 512, [], \"f08e\", [\"M400 320h32a16 16 0 0 1 16 16v128a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V112a48 48 0 0 1 48-48h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H64v320h320V336a16 16 0 0 1 16-16z\", \"M484 224h-17.88a28 28 0 0 1-28-28v-.78L440 128 192.91 376.91A24 24 0 0 1 159 377l-.06-.06L135 353.09a24 24 0 0 1 0-33.94l.06-.06L384 72l-67.21 1.9A28 28 0 0 1 288 46.68V28a28 28 0 0 1 28-28h158.67A37.33 37.33 0 0 1 512 37.33V196a28 28 0 0 1-28 28z\"]]\n};\nvar faExternalLinkAlt = {\n prefix: 'fad',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", [\"M400 320h32a16 16 0 0 1 16 16v128a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V112a48 48 0 0 1 48-48h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H64v320h320V336a16 16 0 0 1 16-16z\", \"M512 24v128c0 21.47-26 32-41 17l-35.71-35.71L191.8 376.77a24 24 0 0 1-33.94 0l-22.63-22.63a24 24 0 0 1 0-33.94L378.76 76.68 343.05 41C328 25.9 338.66 0 360 0h128a24 24 0 0 1 24 24z\"]]\n};\nvar faExternalLinkSquare = {\n prefix: 'fad',\n iconName: 'external-link-square',\n icon: [448, 512, [], \"f14c\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 227.33a23.34 23.34 0 0 1-23.33 23.34h-14.91a23.34 23.34 0 0 1-23.32-24l1.59-56-205.94 207.42a20 20 0 0 1-28.33.05l-19.9-19.9a20 20 0 0 1 0-28.33L277.31 156l-56 1.59a23.34 23.34 0 0 1-24-23.32v-14.94A23.34 23.34 0 0 1 220.67 96h132.22A31.11 31.11 0 0 1 384 127.11z\", \"M69.91 361.91L277.31 156l-56 1.59a23.34 23.34 0 0 1-24-23.32v-14.94A23.34 23.34 0 0 1 220.67 96h132.22A31.11 31.11 0 0 1 384 127.11v132.22a23.34 23.34 0 0 1-23.33 23.34h-14.91a23.34 23.34 0 0 1-23.32-24l1.59-56-205.94 207.42a20 20 0 0 1-28.33.05l-19.9-19.9a20 20 0 0 1 .05-28.33z\"]]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fad',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 200c0 21.45-25.94 32-41 17l-32-32-195.48 195.48a12 12 0 0 1-17 0l-31-31a12 12 0 0 1 0-17L263 169l-32-32c-15.11-15.11-4.34-41 17-41h112a24 24 0 0 1 24 24z\", \"M384 232c0 21.44-25.94 32-41 17l-32-32-195.48 195.48a12 12 0 0 1-17 0l-31-31a12 12 0 0 1 0-17L263 169l-32-32c-15.11-15.11-4.34-41 17-41h112a24 24 0 0 1 24 24z\"]]\n};\nvar faEye = {\n prefix: 'fad',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", [\"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288.14 400H288a143.93 143.93 0 1 1 .14 0z\", \"M380.66 280.87a95.78 95.78 0 1 1-184.87-50.18 47.85 47.85 0 0 0 66.9-66.9 95.3 95.3 0 0 1 118 117.08z\"]]\n};\nvar faEyeDropper = {\n prefix: 'fad',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", [\"M32 512L0 480l32-56v-45.5c0-17 6.7-33.3 18.8-45.3l126.6-126.6 128 128-126.7 126.7c-12 12-28.3 18.7-45.2 18.7H88l-56 32z\", \"M483.9 163.9L406.8 241l13.1 13.1c9.4 9.4 9.4 24.6 0 33.9l-41 41c-9.4 9.3-24.5 9.3-33.9 0L183 167c-9.4-9.4-9.4-24.6 0-33.9l41-41c9.4-9.4 24.6-9.4 33.9 0l13.1 13.2 77.1-77.1c37.5-37.5 98.3-37.5 135.8 0s37.5 98.2 0 135.7z\"]]\n};\nvar faEyeEvil = {\n prefix: 'fad',\n iconName: 'eye-evil',\n icon: [640, 512, [], \"f6db\", [\"M344.35 222.25A81 81 0 0 1 352 256c-.49 42.66-32 64-32 64s-31.48-21.34-32-64a81.1 81.1 0 0 1 7.64-33.75 170.14 170.14 0 0 0 48.68 0z\", \"M627 239.08l-111.87-30.3c-4.79-6.56-10.15-13.4-16.13-20.45 1.35-2.07 55.18-88 55.18-88 8.98-14.33-6.06-31.33-22.41-25.4L412 118.29A215 215 0 0 0 381.36 106l-44.47-95.27c-6.68-14.31-27.08-14.31-33.76 0L258.66 106A213.81 213.81 0 0 0 228 118.29L108.24 74.93C91.89 69 76.86 86 85.79 100.35c0 0 53.84 85.92 55.18 88q-8.43 9.93-16.13 20.45L13 239.08c-17.29 4.68-17.29 29.15 0 33.83l111.87 30.3c4.78 6.54 10.11 13.35 16.07 20.38-1.34 2.09-55.12 88.05-55.12 88.05-8.97 14.36 6.07 31.36 22.42 25.43L228 393.71A213.81 213.81 0 0 0 258.66 406l44.47 95.24c6.68 14.31 27.08 14.31 33.76 0L381.36 406A213.81 213.81 0 0 0 412 393.71l119.77 43.36c16.35 5.92 31.39-11.11 22.45-25.43 0 0-53.78-86-55.12-88.05 6-7 11.29-13.84 16.07-20.38l111.87-30.3c17.29-4.68 17.29-29.14-.04-33.83zM320 352a96 96 0 0 1-80-149.08C261.92 216.1 289.72 224 320 224s58.08-7.9 80-21.08A96 96 0 0 1 320 352z\"]]\n};\nvar faEyeSlash = {\n prefix: 'fad',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", [\"M172.12 101.27A311.47 311.47 0 0 1 320 64c122.93 0 230.29 71.59 284.52 177.4a32.35 32.35 0 0 1 0 29.19 332.58 332.58 0 0 1-81 102.25l-72.81-56.27a144 144 0 0 0-222.2-171.73zm239 184.73c.55-1.68 1.07-3.38 1.54-5.11a95 95 0 0 0-118-117.08 47.73 47.73 0 0 1 8.21 38.55zM320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a143.62 143.62 0 0 1-26 2.61z\", \"M636.64 480.55L617 505.82a16 16 0 0 1-22.45 2.8L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.45-2.8L633.82 458.1a16 16 0 0 1 2.82 22.45z\"]]\n};\nvar faFan = {\n prefix: 'fad',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", [\"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 292a36 36 0 1 1 36-36 36 36 0 0 1-36 36z\", \"M256 292a36 36 0 1 1 36-36 36 36 0 0 1-36 36z\"]]\n};\nvar faFanTable = {\n prefix: 'fad',\n iconName: 'fan-table',\n icon: [448, 512, [], \"e004\", [\"M248,448.5V415c103.55-11.92,184-99.76,184-206.51C432,93.63,338.87.5,224,.5S16,93.63,16,208.5C16,315.25,96.45,403.09,200,415V448.5ZM119.67,335.3c-7.09-4.08-14.57-16.86-5.14-28.28l67.47-82c-57.17-20.29-69.18-77.3-59.64-113a93.78,93.78,0,0,1,44-57.34l0,0c13-7.39,24.25,2.35,27,9.73l37.08,99a94.36,94.36,0,0,1,155.45,72,18.84,18.84,0,0,1-21.91,18.57l-104.7-17.45a93.41,93.41,0,0,1-10.7,64.11A94.47,94.47,0,0,1,119.67,335.3Z\", \"M119.67,335.3a94.47,94.47,0,0,0,129-34.58,93.41,93.41,0,0,0,10.7-64.11l104.7,17.45A18.84,18.84,0,0,0,386,235.49a94.36,94.36,0,0,0-155.45-72l-37.08-99c-2.78-7.38-14-17.12-27-9.73l0,0a93.78,93.78,0,0,0-44,57.34c-9.54,35.67,2.47,92.68,59.64,113l-67.47,82C105.1,318.44,112.58,331.22,119.67,335.3ZM224,192.5a16,16,0,1,1-16,16A16,16,0,0,1,224,192.5Zm96,256H128c-28.42,0-54.95,18.53-63.3,44.16-3.22,9.88,5.17,19.84,15.56,19.84H367.74c10.38,0,18.78-10,15.56-19.84C375,467,348.42,448.5,320,448.5Z\"]]\n};\nvar faFarm = {\n prefix: 'fad',\n iconName: 'farm',\n icon: [576, 512, [], \"f864\", [\"M190.24 120.94l-55.48 111a64.35 64.35 0 0 0-6.76 28.6V512H0V112a111.93 111.93 0 0 1 221.87-21.09l-.37.17a64.12 64.12 0 0 0-31.26 29.86z\", \"M572.62 246.22l-55.49-111a32 32 0 0 0-15.62-14.93L381 66.76a32 32 0 0 0-26 0l-120.51 53.56a32 32 0 0 0-15.62 14.93l-55.49 111a32.08 32.08 0 0 0-3.38 14.29V512h128v-96h160v96h128V260.54a32.08 32.08 0 0 0-3.38-14.32zM416 320h-96v-96h96z\"]]\n};\nvar faFastBackward = {\n prefix: 'fad',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", [\"M64 285.31V436a12 12 0 0 1-12 12H12a12 12 0 0 1-12-12V76a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v209.3z\", \"M512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.31V416c0 27.4-31.9 41.7-52.5 24.6L96 314.28V198.71l139.5-127.3C256.1 54.31 288 68.61 288 96v131.9L459.5 71.41C480.1 54.31 512 68.61 512 96z\"]]\n};\nvar faFastForward = {\n prefix: 'fad',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", [\"M512 76v360a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12V76a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\", \"M416 313.31l-139.5 127.3c-20.6 17.2-52.5 2.8-52.5-24.6v-131.9L52.5 440.61C31.9 457.81 0 443.41 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.81V96c0-27.4 31.9-41.7 52.5-24.6L416 197.81z\"]]\n};\nvar faFaucet = {\n prefix: 'fad',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", [\"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74l32,3.38Z\", \"M384,112.89v30.22c0,10-8.17,17.8-17.59,16.8L224,144.88l-142.41,15c-9.42,1-17.59-6.81-17.59-16.8V112.89c0-10,8.17-17.8,17.59-16.8l142.41,15,142.41-15C375.83,95.09,384,102.9,384,112.89Z\"]]\n};\nvar faFaucetDrip = {\n prefix: 'fad',\n iconName: 'faucet-drip',\n icon: [512, 512, [], \"e006\", [\"M352,192H313.39c-15.71-13.44-35.46-23.07-57.39-28V116.44l-32-3.38-32,3.38V164c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,208v96a16,16,0,0,0,16,16h92.79C129.38,357.73,173,384,224,384s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,192ZM256,43.74V16A16,16,0,0,0,240,0H208a16,16,0,0,0-16,16V43.74l32,3.38Z\", \"M448,416s-32,46.33-32,64a32,32,0,0,0,64,0C480,462.33,448,416,448,416ZM366.41,32.09,224,47.12l-142.41-15C72.17,31.09,64,38.9,64,48.89V79.11c0,10,8.17,17.8,17.59,16.8L224,80.88l142.41,15c9.42,1,17.59-6.81,17.59-16.8V48.89C384,38.9,375.83,31.09,366.41,32.09Z\"]]\n};\nvar faFax = {\n prefix: 'fad',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", [\"M480 96v96H128V32a32 32 0 0 1 32-32h224v80a16 16 0 0 0 16 16z\", \"M64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zm416 64H128v288a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V224a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zM400 96h80v-4.58a17.92 17.92 0 0 0-5.25-12.67l-73.43-73.5A18 18 0 0 0 388.57 0H384v80a16 16 0 0 0 16 16z\"]]\n};\nvar faFeather = {\n prefix: 'fad',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", [\"M483.4 244.2L351.85 288h97.78c-9.92 10.68 3.68-3.07-46.3 46.86L255.75 384h98.19c-74.94 73.11-194.52 70.65-246.82 54.94l-.06-.05L305 241a24 24 0 0 0-34-34L73.19 404.87l-.2-.21c-12.13-40.37-26.12-166.28 56.11-248.43 24.78-24.74 7.15-7.14 85.75-85.66 90.61-90.51 189.73-88.21 252.28-25.73 50.58 50.52 61.7 124.9 16.27 199.36z\", \"M24 512a24 24 0 0 1-17-41l264-264a24 24 0 0 1 34 34L41 505a23.92 23.92 0 0 1-17 7z\"]]\n};\nvar faFeatherAlt = {\n prefix: 'fad',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", [\"M458.38 234.79L351.83 288H433a396.85 396.85 0 0 1-30.46 47.12L255.73 384h101c-35.57 30.07-79.11 51.1-132.59 56.54a1130.32 1130.32 0 0 1-125.99 7.36h-.06L305 241a24 24 0 0 0-34-34L64 414c.08-62.81 4-100.05 7-126.44C96.44 38.2 460.21 3.56 512 0c-1.81 26.26-11.71 132.86-53.62 234.79z\", \"M24 512a24 24 0 0 1-17-41l264-264a24 24 0 0 1 34 34L41 505a23.92 23.92 0 0 1-17 7z\"]]\n};\nvar faFemale = {\n prefix: 'fad',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", [\"M64 64a64 64 0 1 1 64 64 64 64 0 0 1-64-64z\", \"M80 144h11.37a87.91 87.91 0 0 0 73.28 0H176a24 24 0 0 1 23.28 18.18l48 192A24 24 0 0 1 224 384h-56v104a24 24 0 0 1-24 24h-32a24 24 0 0 1-24-24V384H32a24 24 0 0 1-23.27-29.82l48-192A24 24 0 0 1 80 144z\"]]\n};\nvar faFieldHockey = {\n prefix: 'fad',\n iconName: 'field-hockey',\n icon: [640, 512, [], \"f44c\", [\"M628 0h-67.3a11.57 11.57 0 0 0-8.4 3.6L479 76.9 592 190l44.5-44.6a12.3 12.3 0 0 0 3.5-8.5V12a12 12 0 0 0-12-12zM480.2 320a96 96 0 1 0 95.9 96 95.94 95.94 0 0 0-95.9-96z\", \"M0 319.2a190.68 190.68 0 0 1 56.2-135.8 79.94 79.94 0 0 1 113 113.1c-29.8 29.9 15.2 75.2 45.2 45.3l230.7-231 113 113.1-50.8 50.8c-99.6-19.1-187.4 68-168.1 168.5-14.9 14.8-61.3 68-147.4 68-106.2 0-191.8-86-191.8-192z\"]]\n};\nvar faFighterJet = {\n prefix: 'fad',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", [\"M168 192h176L227.16 44h39.51c11.66 0 21.33-2.62 21.33-6s-9.67-6-21.33-6H152v12h16zm0 128v148h-16v12h114.67c11.66 0 21.33-2.62 21.33-6s-9.67-6-21.33-6h-39.51L344 320z\", \"M640 256c0 5.42 0 10.67-96 32l-128 16-48 16H106.67l-53.34 64H18.67L8 373.33V304h8v-16h48v-2.67l-64-8v-42.66l64-8V224H16v-16H8v-69.33L18.67 128h34.66l53.34 64H368l48 16 128 16c96 21.33 96 26.58 96 32z\"]]\n};\nvar faFile = {\n prefix: 'fad',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", [\"M256 0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128H272a16 16 0 0 1-16-16z\", \"M384 121.9v6.1H272a16 16 0 0 1-16-16V0h6.1a24 24 0 0 1 17 7l97.9 98a23.9 23.9 0 0 1 7 16.9z\"]]\n};\nvar faFileAlt = {\n prefix: 'fad',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-96 244a12 12 0 0 1-12 12H108a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h168a12 12 0 0 1 12 12zm0-64a12 12 0 0 1-12 12H108a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h168a12 12 0 0 1 12 12zm0-64a12 12 0 0 1-12 12H108a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h168a12 12 0 0 1 12 12z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM276 352H108a12 12 0 0 0-12 12v8a12 12 0 0 0 12 12h168a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12zm0-64H108a12 12 0 0 0-12 12v8a12 12 0 0 0 12 12h168a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12zm0-64H108a12 12 0 0 0-12 12v8a12 12 0 0 0 12 12h168a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12z\"]]\n};\nvar faFileArchive = {\n prefix: 'fad',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", [\"M272 128a16 16 0 0 1-16-16V0h-96v32h-32V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM95.9 32h32v32h-32zm83.47 342.08a52.43 52.43 0 1 1-102.74-21L96 256v-32h32v-32H96v-32h32v-32H96V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.33a12.08 12.08 0 0 1 11.8 9.7l17.3 87.7a52.54 52.54 0 0 1-.06 20.68z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM127.9 32h-32v32h32zM96 160v32h32v-32zM160 0h-32v32h32zM96 96v32h32V96zm83.43 257.4l-17.3-87.7a12.08 12.08 0 0 0-11.8-9.7H128v-32H96v32l-19.37 97.1a52.43 52.43 0 1 0 102.8.3zm-51.1 36.6c-17.9 0-32.5-12-32.5-27s14.5-27 32.4-27 32.5 12.1 32.5 27-14.5 27-32.4 27zM160 192h-32v32h32zm0-64h-32v32h32zm0-64h-32v32h32z\"]]\n};\nvar faFileAudio = {\n prefix: 'fad',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM160 404a12 12 0 0 1-20.5 8.5L104 376H76a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h28l35.5-36.48A12 12 0 0 1 160 268zm33.24-51.13a24.05 24.05 0 0 0 0-33.57c-22.08-22.91 12.2-56.48 34.38-33.66a72.64 72.64 0 0 1 0 100.9c-21.78 22.38-56.86-10.48-34.38-33.7zm86.2 83.66c-21.67 22.4-56.66-10.31-34.19-33.52a96.39 96.39 0 0 0 0-133.85c-22-22.81 12.22-56.32 34.19-33.51 54.08 55.87 54.08 144.94 0 200.85z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM148 256a12 12 0 0 0-8.53 3.53L104 296H76a12 12 0 0 0-12 12v56a12 12 0 0 0 12 12h28l35.5 36.48A12 12 0 0 0 160 404V268a12 12 0 0 0-12-12zm79.59 29.61c-22.18-22.82-56.46 10.75-34.38 33.66a24.05 24.05 0 0 1 0 33.57c-22.48 23.22 12.6 56.08 34.38 33.67a72.64 72.64 0 0 0 .03-100.9zm51.82-50c-22-22.81-56.16 10.7-34.19 33.51a96.39 96.39 0 0 1 0 133.85c-22.47 23.21 12.52 55.92 34.19 33.52 54.08-55.91 54.08-145 0-200.88z\"]]\n};\nvar faFileCertificate = {\n prefix: 'fad',\n iconName: 'file-certificate',\n icon: [512, 512, [], \"f5f3\", [\"M512 128v360.12A23.94 23.94 0 0 1 488 512H224v-91.19a61.78 61.78 0 0 0 35.49-41.11c.38-1.42.72-2.72 1-3.94.66-2.56 1.4-5.39 1.89-7 1.14-1.23 3.12-3.24 4.92-5.06l2.91-2.94A62.5 62.5 0 0 0 286 301.38c-.37-1.41-.72-2.71-1-3.92-.69-2.61-1.46-5.5-1.84-7.16.38-1.68 1.16-4.6 1.86-7.25.31-1.18.65-2.45 1-3.83a62.45 62.45 0 0 0-15.63-59.28l-2.76-2.81c-1.85-1.88-3.9-3.95-5.05-5.2-.49-1.64-1.23-4.51-1.91-7.1q-.47-1.8-1-3.9a61.69 61.69 0 0 0-43.13-43.7h-.11l-3.75-1c-2.44-.66-5.13-1.39-6.75-1.88-1.23-1.18-3.22-3.21-5-5.05-.84-.86-1.73-1.78-2.71-2.77a60.88 60.88 0 0 0-59.47-16.31h-.05l-3.77 1c-2.4.66-5 1.39-6.69 1.79V23.88A23.94 23.94 0 0 1 152 0h232v112a16 16 0 0 0 16 16z\", \"M505 105L407.1 7a24 24 0 0 0-17-7H384v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM255 271.09a30.14 30.14 0 0 0-7.58-28.79c-14.86-15.12-13.42-12.61-18.86-33.3a29.57 29.57 0 0 0-20.71-21c-20.28-5.53-17.84-4.1-32.69-19.21a28.92 28.92 0 0 0-28.28-7.79c-20.32 5.54-17.46 5.53-37.75 0a28.94 28.94 0 0 0-28.28 7.71c-14.91 15.18-12.5 13.7-32.68 19.21A29.53 29.53 0 0 0 27.46 209c-5.46 20.74-4 18.13-18.87 33.27A30.15 30.15 0 0 0 1 271.09c5.45 20.71 5.42 17.79 0 38.41a30.12 30.12 0 0 0 7.58 28.78c14.86 15.11 13.42 12.61 18.88 33.27a29.52 29.52 0 0 0 20.71 21.07c14.3 3.9 11.52 3 15.83 5V512l64-32 64 32V397.63c4.31-2 1.52-1.1 15.84-5a29.53 29.53 0 0 0 20.7-21.07c5.47-20.74 4-18.13 18.88-33.27a30.12 30.12 0 0 0 7.58-28.78c-5.43-20.65-5.44-17.74 0-38.42zM128 352a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]]\n};\nvar faFileChartLine = {\n prefix: 'fad',\n iconName: 'file-chart-line',\n icon: [384, 512, [], \"f659\", [\"M272 128a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-70.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm96 0c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V236.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm96 0c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V300.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM115.2 352H76.8c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8zm96-128h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8V236.8c0-6.4-6.4-12.8-12.8-12.8zm96 64h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8V300.8c0-6.4-6.4-12.8-12.8-12.8z\"]]\n};\nvar faFileChartPie = {\n prefix: 'fad',\n iconName: 'file-chart-pie',\n icon: [384, 512, [], \"f65a\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM136.47 438.5a111.26 111.26 0 0 1-63-63c-30-77.36 17.44-150.7 86.53-164.84V352h141.34c-14.14 69.09-87.48 116.58-164.87 86.5zM192 320V199.86A120.12 120.12 0 0 1 312.14 320z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM160 210.66C90.91 224.8 43.42 298.14 73.47 375.5a111.26 111.26 0 0 0 63 63c77.39 30.08 150.73-17.41 164.87-86.5H160z\"]]\n};\nvar faFileCheck = {\n prefix: 'fad',\n iconName: 'file-check',\n icon: [384, 512, [], \"f316\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-70.7 158.67l-143 141.81a12 12 0 0 1-17 0l-82.6-83.31a12 12 0 0 1 .07-17L99.17 300a12 12 0 0 1 17 0l46 46.35 106-105.18a12 12 0 0 1 17 0l28.17 28.4a12 12 0 0 1-.04 17.1z\", \"M285.17 241.3a12 12 0 0 0-17 0l-106 105.18-46-46.35a12 12 0 0 0-17 0l-28.4 28.2a12 12 0 0 0-.07 17l82.57 83.27a12 12 0 0 0 17 0l143-141.81a12 12 0 0 0 0-17zM377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9z\"]]\n};\nvar faFileCode = {\n prefix: 'fad',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM141.79 379.54l-19.58 20.84a5.41 5.41 0 0 1-7.64.24l-64.86-60.69a5.37 5.37 0 0 1-.24-7.6l.25-.25 64.86-60.7a5.42 5.42 0 0 1 7.64.24l19.58 20.85a5.4 5.4 0 0 1-.25 7.62l-.13.12L100.65 336l40.76 35.8a5.4 5.4 0 0 1 .49 7.62zm31.71 71.25l-27.45-8a5.38 5.38 0 0 1-3.67-6.67l61.49-211.24a5.38 5.38 0 0 1 6.68-3.64l27.45 8a5.4 5.4 0 0 1 3.63 6.67l-61.45 211.2a5.4 5.4 0 0 1-6.68 3.68zm161-111.12l-.25.25-64.86 60.69a5.42 5.42 0 0 1-7.64-.23l-19.58-20.84a5.37 5.37 0 0 1 .26-7.6l.13-.12L283.35 336l-40.76-35.8a5.4 5.4 0 0 1-.49-7.62l.11-.12 19.58-20.85a5.42 5.42 0 0 1 7.64-.24l64.86 60.7a5.36 5.36 0 0 1 .25 7.6z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM141.41 371.8L100.65 336l40.76-35.8.13-.12a5.4 5.4 0 0 0 .25-7.62l-19.58-20.85a5.42 5.42 0 0 0-7.64-.24l-64.86 60.7-.25.25a5.37 5.37 0 0 0 .24 7.6l64.86 60.69a5.41 5.41 0 0 0 7.64-.24l19.58-20.84.11-.12a5.4 5.4 0 0 0-.48-7.61zm100.22-135.93a5.4 5.4 0 0 0-3.63-6.67l-27.45-8a5.38 5.38 0 0 0-6.68 3.64l-61.5 211.29a5.38 5.38 0 0 0 3.63 6.67l27.45 8a5.4 5.4 0 0 0 6.68-3.68l61.44-211.22zm92.66 96.2l-64.86-60.7a5.42 5.42 0 0 0-7.64.24l-19.58 20.85-.11.12a5.4 5.4 0 0 0 .49 7.62l40.76 35.8-40.76 35.8-.13.12a5.37 5.37 0 0 0-.26 7.6l19.58 20.84a5.42 5.42 0 0 0 7.64.23l64.86-60.69.25-.25a5.36 5.36 0 0 0-.25-7.6z\"]]\n};\nvar faFileContract = {\n prefix: 'fad',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM64 72a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8zm0 64a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8zm240 280h-47.19a43 43 0 0 1-38.64-23.86 11.08 11.08 0 0 0-10.17-6.52 10.91 10.91 0 0 0-10 6.19l-7.67 15.34A16 16 0 0 1 176 416a8.77 8.77 0 0 1-1.14-.05 16 16 0 0 1-14-10.89L144 354.59l-10.61 31.88a43.17 43.17 0 0 1-41 29.53H80a16 16 0 0 1 0-32h12.39a11.21 11.21 0 0 0 10.61-7.66l18.19-54.64a24 24 0 0 1 45.55 0l13.88 41.64c19.8-16.19 54.08-9.7 66 14.16a11.39 11.39 0 0 0 10.16 6.5H304a16 16 0 0 1 0 32z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zm-73 279h-47.19a11.39 11.39 0 0 1-10.16-6.5c-12-23.86-46.23-30.35-66-14.16l-13.91-41.64a24 24 0 0 0-45.55 0L103 376.34A11.21 11.21 0 0 1 92.39 384H80a16 16 0 0 0 0 32h12.39a43.17 43.17 0 0 0 41-29.53L144 354.59l16.86 50.47a16 16 0 0 0 14 10.89 8.77 8.77 0 0 0 1.14.05 16 16 0 0 0 14.33-8.85l7.67-15.34a10.91 10.91 0 0 1 10-6.19 11.08 11.08 0 0 1 10.17 6.52A43 43 0 0 0 256.81 416H304a16 16 0 0 0 0-32z\"]]\n};\nvar faFileCsv = {\n prefix: 'fad',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM128 280a8 8 0 0 1-8 8h-8a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h8a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-8a48 48 0 0 1-48-48v-32a48 48 0 0 1 48-48h8a8 8 0 0 1 8 8zm44.27 104H160a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62a5.28 5.28 0 0 0-2.12-3.84l-21.89-18.77a37.11 37.11 0 0 1-13.33-28.14c0-21.3 19-38.62 42.41-38.62H200a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62a5.28 5.28 0 0 0 2.12 3.84l21.89 18.77a37.12 37.12 0 0 1 13.33 28.13c.01 21.29-19 38.63-42.39 38.63zM320 284.8c0 35.48-12.88 68.89-36.28 94.09-.27.29-.54.56-.83.83a16 16 0 0 1-22.61-.83c-23.4-25.2-36.28-58.61-36.28-94.09V264a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v20.8a109 109 0 0 0 16 56.88 109 109 0 0 0 16-56.88V264a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM120 256h-8a48 48 0 0 0-48 48v32a48 48 0 0 0 48 48h8a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-8a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h8a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm192 0h-16a8 8 0 0 0-8 8v20.8a109 109 0 0 1-16 56.88 109 109 0 0 1-16-56.88V264a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v20.8c0 35.48 12.88 68.89 36.28 94.09a16 16 0 0 0 22.61.83c.29-.27.56-.54.83-.83 23.4-25.2 36.28-58.61 36.28-94.09V264a8 8 0 0 0-8-8zm-110.67 61.24l-21.89-18.77a5.28 5.28 0 0 1-2.12-3.84c0-3.12 4.46-6.62 10.41-6.62H200a8 8 0 0 0 8-8V264a8 8 0 0 0-8-8h-12.25c-23.39 0-42.41 17.32-42.41 38.62a37.11 37.11 0 0 0 13.33 28.14l21.89 18.77a5.28 5.28 0 0 1 2.12 3.84c0 3.12-4.46 6.62-10.41 6.62H160a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h12.27c23.39 0 42.4-17.33 42.39-38.62a37.12 37.12 0 0 0-13.33-28.13z\"]]\n};\nvar faFileDownload = {\n prefix: 'fad',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-83.55 219.36L204 443.06a17.06 17.06 0 0 1-24 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zm-87.82 215H224v-80a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v80H94.82c-14.28 0-21.4 17.29-11.24 27.36l96.42 95.7a17.06 17.06 0 0 0 24 0l96.45-95.7c10.13-10.07 3.01-27.36-11.27-27.36z\"]]\n};\nvar faFileEdit = {\n prefix: 'fad',\n iconName: 'file-edit',\n icon: [384, 512, [], \"f31c\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM242.4 323.6l-95 95-48.2 5.4a9.93 9.93 0 0 1-2.2 0 10.17 10.17 0 0 1-9-11.2l5.4-48.2 95-95a5.07 5.07 0 0 1 7.17 0l46.8 46.8a5.07 5.07 0 0 1 .03 7.2zm55.7-55.7l-26 26a5.07 5.07 0 0 1-7.17 0l-46.8-46.8a5.07 5.07 0 0 1 0-7.17l26-26a20.22 20.22 0 0 1 28.6 0l25.4 25.4a20.22 20.22 0 0 1-.03 28.57z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM242.4 316.4l-46.8-46.8a5.07 5.07 0 0 0-7.17 0l-95 95L88 412.8a10.17 10.17 0 0 0 9 11.2 9.93 9.93 0 0 0 2.18 0l48.2-5.4 95-95a5.07 5.07 0 0 0 0-7.17zm55.7-77.1l-25.4-25.4a20.22 20.22 0 0 0-28.6 0l-26 26a5.07 5.07 0 0 0 0 7.17l46.8 46.8a5.07 5.07 0 0 0 7.17 0l26-26a20.22 20.22 0 0 0 0-28.6z\"]]\n};\nvar faFileExcel = {\n prefix: 'fad',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM280.51 446.09A12 12 0 0 1 274 448h-34.9a12 12 0 0 1-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8a11.89 11.89 0 0 1-10.5 6.3H110a12 12 0 0 1-10.1-18.5l60.3-93.5-60.3-93.5a12 12 0 0 1 10.1-18.5h34.8a12 12 0 0 1 10.6 6.3c26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5a12 12 0 0 1 10.6-6.3H274a11.93 11.93 0 0 1 10.1 18.4L224 336l60.1 93.5a12 12 0 0 1-3.59 16.59z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM224 336l60.1-93.5a11.93 11.93 0 0 0-10.1-18.4h-34.8a12 12 0 0 0-10.6 6.3c-30.5 56.8-36.6 68.5-36.6 68.5-16.6-34.9-10.5-19.7-36.6-68.5a12 12 0 0 0-10.6-6.3H110a12 12 0 0 0-10.1 18.5l60.3 93.5-60.3 93.5a12 12 0 0 0 10.1 18.5h34.9a11.89 11.89 0 0 0 10.5-6.3c26.6-48.8 30.2-54 36.6-68.8 0 0 16.9 32.5 36.5 68.7a12 12 0 0 0 10.6 6.3H274a12 12 0 0 0 10.1-18.5z\"]]\n};\nvar faFileExclamation = {\n prefix: 'fad',\n iconName: 'file-exclamation',\n icon: [384, 512, [], \"f31a\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-219.2 80h55.23a12 12 0 0 1 11.17 12.8l-7.2 112a12 12 0 0 1-12 11.2h-40a12 12 0 0 1-12-11.2l-7.2-112v-.83a12 12 0 0 1 12-11.97zM192 440a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM160 332.8a12 12 0 0 0 12 11.2h40a12 12 0 0 0 12-11.2l7.2-112A12 12 0 0 0 220 208h-55.2a12 12 0 0 0-12 12v.83zm32 27.2a40 40 0 1 0 40 40 40 40 0 0 0-40-40z\"]]\n};\nvar faFileExport = {\n prefix: 'fad',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", [\"M384 352.05v136.07A23.94 23.94 0 0 1 360 512H23.88A23.94 23.94 0 0 1 0 488V23.88A23.94 23.94 0 0 1 24 0h232v112a16 16 0 0 0 16 16h112v160.05H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M272 128h112v-6.1a23.9 23.9 0 0 0-7-16.9L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16zm299 180.05l-95.61-96.5c-10.1-10.1-27.41-3-27.41 11.3v65.2H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h239.93v65.1c0 14.3 17.31 21.4 27.41 11.3l95.71-96.4a17 17 0 0 0-.05-24z\"]]\n};\nvar faFileImage = {\n prefix: 'fad',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-271.46 48a48 48 0 1 1-48 48 48 48 0 0 1 48-48zm208 240h-256l.46-48.48L104.51 328c4.69-4.69 11.8-4.2 16.49.48L160.54 368 264 264.48a12 12 0 0 1 17 0L320.54 304z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM112.54 272a48 48 0 1 0-48-48 48 48 0 0 0 48 48zM264 264.45L160.54 368 121 328.48c-4.69-4.68-11.8-5.17-16.49-.48L65 367.52 64.54 416h256V304L281 264.48a12 12 0 0 0-17-.03z\"]]\n};\nvar faFileImport = {\n prefix: 'fad',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", [\"M512 488v.12A23.94 23.94 0 0 1 488 512H151.88A23.94 23.94 0 0 1 128 488V352h127.63v64.9c0 14.27 17.28 21.34 27.37 11.27L378.56 332a17 17 0 0 0 0-23.93l-95.49-96.25c-10.09-10.07-27.37-3-27.37 11.27v65H128V23.88A23.94 23.94 0 0 1 152 0h232v112a16 16 0 0 0 16 16h112z\", \"M505 105L407.1 7a24 24 0 0 0-17-7H384v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM283.07 211.82c-10.09-10.07-27.37-3-27.37 11.27v65H16a16 16 0 0 0-16 16V336a16 16 0 0 0 16 16h239.63v64.9c0 14.27 17.28 21.34 27.37 11.27L378.56 332a17 17 0 0 0 0-23.93z\"]]\n};\nvar faFileInvoice = {\n prefix: 'fad',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", [\"M96 320h192v-64H96zm288-192H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM64 72a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8zm0 64a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8zm256 304a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8zm0-104a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zm-73 119H80a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm-16 96H96v-64h192zm24 96h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fad',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM64 72a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8zm0 80v-16a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8zm144 263.88V440a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-24.29a57.32 57.32 0 0 1-31.37-11.35 8 8 0 0 1-.57-12.14L155.81 381a8.22 8.22 0 0 1 10.13-.73 24.06 24.06 0 0 0 12.82 3.73h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v24.29a57.17 57.17 0 0 1 31.37 11.35 8 8 0 0 1 .57 12.14L228.18 291a8.22 8.22 0 0 1-10.13.73 24 24 0 0 0-12.82-3.73h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19 44.44-42.67 45.07z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM219.09 327.42l-45-13.5c-5.16-1.54-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11a24 24 0 0 1 12.82 3.73 8.22 8.22 0 0 0 10.13-.73l11.76-11.22a8 8 0 0 0-.57-12.14A57.17 57.17 0 0 0 208 256.29V232a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24.12c-23.62.63-42.67 20.55-42.67 45.07 0 20 13 37.81 31.58 43.39l45 13.5c5.16 1.54 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.12a24.06 24.06 0 0 1-12.82-3.73 8.22 8.22 0 0 0-10.13.73l-11.75 11.22a8 8 0 0 0 .57 12.14A57.32 57.32 0 0 0 176 415.71V440a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-24.12c23.67-.63 42.67-20.54 42.67-45.07 0-19.97-12.99-37.81-31.58-43.39z\"]]\n};\nvar faFileMedical = {\n prefix: 'fad',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-96 216a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zm-97 183h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8z\"]]\n};\nvar faFileMedicalAlt = {\n prefix: 'fad',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", [\"M448 488v.12A23.94 23.94 0 0 1 424 512H87.88A23.94 23.94 0 0 1 64 488V320h70.1l34.8 69.5a8 8 0 0 0 14.3 0L240 275.8l22.1 44.2h89.48a16.27 16.27 0 0 0 16.3-14 16.82 16.82 0 0 0 .13-2 16 16 0 0 0-16-16H281.8l-34.7-69.5a8 8 0 0 0-14.3 0L176 332.2l-19.9-39.8a8.14 8.14 0 0 0-7.2-4.4H64V23.88A23.94 23.94 0 0 1 88 0h232v112a16 16 0 0 0 16 16h112z\", \"M441 105L343.1 7a24 24 0 0 0-17-7H320v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zm-89 183h-70.2l-34.7-69.5a8 8 0 0 0-14.3 0L176 332.2l-19.9-39.8a8.14 8.14 0 0 0-7.2-4.4H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h126.1l34.8 69.5a8 8 0 0 0 14.3 0L240 275.8l22.1 44.2h89.48a16.27 16.27 0 0 0 16.3-14 16.82 16.82 0 0 0 .13-2A16 16 0 0 0 352 288z\"]]\n};\nvar faFileMinus = {\n prefix: 'fad',\n iconName: 'file-minus',\n icon: [384, 512, [], \"f318\", [\"M377,105,279.1,7a24,24,0,0,0-17-7H256V128H384v-6.1A23.92,23.92,0,0,0,377,105ZM224,136V0H24A23.94,23.94,0,0,0,0,24V488a23.94,23.94,0,0,0,24,24H360a23.94,23.94,0,0,0,24-24V160H248A24.07,24.07,0,0,1,224,136Zm72,176v16a16,16,0,0,1-16,16H104a16,16,0,0,1-16-16V312a16,16,0,0,1,16-16H280A16,16,0,0,1,296,312Z\", \"M296,312v16a16,16,0,0,1-16,16H104a16,16,0,0,1-16-16V312a16,16,0,0,1,16-16H280A16,16,0,0,1,296,312Z\"]]\n};\nvar faFileMusic = {\n prefix: 'fad',\n iconName: 'file-music',\n icon: [384, 512, [], \"f8b6\", [\"M377 105L279.09 7a24 24 0 0 0-17-7H256v128h128v-6.09a23.91 23.91 0 0 0-7-16.91zm-153 31V0H24A23.94 23.94 0 0 0 0 24v464a23.94 23.94 0 0 0 24 24h336a23.94 23.94 0 0 0 24-24V160H248a24.08 24.08 0 0 1-24-24zm64 88v160c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-76.36l-96 37.52V416c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2V271.25A16 16 0 0 1 139.19 256l128-47.25A16 16 0 0 1 288 224z\", \"M288 224v160c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-76.36l-96 37.52V416c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2V271.25A16 16 0 0 1 139.19 256l128-47.25A16 16 0 0 1 288 224z\"]]\n};\nvar faFilePdf = {\n prefix: 'fad',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", [\"M86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zm93.8-218.9c-2.9 0-3 30.9 2 46.9 5.6-10 6.4-46.9-2-46.9zm80.2 142.1c37.1 15.8 42.8 9 42.8 9 4.1-2.7-2.5-11.9-42.8-9zm-79.9-48c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM272 128a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm21.9 254.4c-16.9 0-42.3-7.7-64-19.5-24.9 4.1-53.2 14.7-79 23.2-25.4 43.8-43.2 61.8-61.1 61.8-5.5 0-15.9-3.1-21.5-10-19.1-23.5 27.4-54.1 54.5-68 .1 0 .1-.1.2-.1 12.1-21.2 29.2-58.2 40.8-85.8-8.5-32.9-13.1-58.7-8.1-77 5.4-19.7 43.1-22.6 47.8 6.8 5.4 17.6-1.7 45.7-6.2 64.2 9.4 24.8 22.7 41.6 42.7 53.8 19.3-2.5 59.7-6.4 73.6 7.2 11.5 11.4 9.5 43.4-19.7 43.4z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM240 331.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM86.1 428.1c5.8-15.7 28.2-33.9 34.9-40.2-21.7 34.8-34.9 41-34.9 40.2zm93.8-218.9c8.4 0 7.6 36.9 2 46.9-5-16-4.9-46.9-2-46.9zM151.8 366c11.1-19.4 20.7-42.5 28.4-62.7 9.6 17.4 21.8 31.2 34.5 40.8-23.9 4.7-44.6 14.9-62.9 21.9zm151.1-5.7s-5.7 6.8-42.8-9c40.3-2.9 46.9 6.3 42.8 9z\"]]\n};\nvar faFilePlus = {\n prefix: 'fad',\n iconName: 'file-plus',\n icon: [384, 512, [], \"f319\", [\"M377,105,279.1,7a24,24,0,0,0-17-7H256V128H384v-6.1A23.92,23.92,0,0,0,377,105ZM224,136V0H24A23.94,23.94,0,0,0,0,24V488a23.94,23.94,0,0,0,24,24H360a23.94,23.94,0,0,0,24-24V160H248A24.07,24.07,0,0,1,224,136Zm72,176v16a16,16,0,0,1-16,16H216v64a16,16,0,0,1-16,16H184a16,16,0,0,1-16-16V344H104a16,16,0,0,1-16-16V312a16,16,0,0,1,16-16h64V232a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64A16,16,0,0,1,296,312Z\", \"M296,312v16a16,16,0,0,1-16,16H216v64a16,16,0,0,1-16,16H184a16,16,0,0,1-16-16V344H104a16,16,0,0,1-16-16V312a16,16,0,0,1,16-16h64V232a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64A16,16,0,0,1,296,312Z\"]]\n};\nvar faFilePowerpoint = {\n prefix: 'fad',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zM165.9 378.8V436a12 12 0 0 1-12 12h-30.8a12 12 0 0 1-12-12V236.2a12 12 0 0 1 12-12h81c44.5 0 72.9 32.8 72.9 77 0 90.3-88.8 77.6-111.1 77.6zm27.8-107.6h-27.9v60.7h26.9c9.2 0 16.2-2.9 21.1-8.5 10-11.4 9.8-33.2.2-44.1-4.8-5.4-11.5-8.1-20.3-8.1z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM204.1 224.2h-81a12 12 0 0 0-12 12V436a12 12 0 0 0 12 12h30.8a12 12 0 0 0 12-12v-57.2c22.3 0 111.1 12.7 111.1-77.6 0-44.2-28.4-77-72.9-77zm9.7 99.2c-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1z\"]]\n};\nvar faFilePrescription = {\n prefix: 'fad',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", [\"M176 240h-48v32h48a16 16 0 0 0 0-32zm96-112a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm32 304l-11.31 11.32a16 16 0 0 1-22.63 0L240 413.25l-30.06 30.06a16 16 0 0 1-22.63 0L176 432a16 16 0 0 1 0-22.63l30.06-30.06L146.74 320H128v48a16 16 0 0 1-16 16H96a16 16 0 0 1-16-16V208a16 16 0 0 1 16-16h80a63.8 63.8 0 0 1 30.54 119.92L240 345.38l29.9-29.9a16 16 0 0 1 22.63 0l11.31 11.31a16 16 0 0 1 0 22.63l-29.9 29.9L304 409.38a16 16 0 0 1 0 22.62z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM273.94 379.32l29.9-29.9a16 16 0 0 0 0-22.63l-11.31-11.31a16 16 0 0 0-22.63 0l-29.9 29.9-33.46-33.46A63.8 63.8 0 0 0 176 192H96a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-48h18.74l59.32 59.31L176 409.37a16 16 0 0 0 0 22.63l11.31 11.31a16 16 0 0 0 22.63 0L240 413.25l30.06 30.07a16 16 0 0 0 22.63 0L304 432a16 16 0 0 0 0-22.62zM176 272h-48v-32h48a16 16 0 0 1 0 32z\"]]\n};\nvar faFileSearch = {\n prefix: 'fad',\n iconName: 'file-search',\n icon: [640, 512, [], \"f865\", [\"M300.59 257.71a160.1 160.1 0 0 0 83.41 209v21.45A23.94 23.94 0 0 1 360 512H23.88A23.94 23.94 0 0 1 0 488V23.88A23.94 23.94 0 0 1 24 0h232v112a16 16 0 0 0 16 16h112v45.33a160.34 160.34 0 0 0-83.41 84.38z\", \"M384 121.9a23.9 23.9 0 0 0-7-16.9L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112zm251.31 340.16l-77.41-77.41A126.65 126.65 0 0 0 576 320a128 128 0 1 0-128 128c23.7 0 45.61-6.88 64.65-18.11l77.41 77.42a16 16 0 0 0 22.63 0l22.62-22.62a16 16 0 0 0 0-22.63zM448 384a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]]\n};\nvar faFileSignature = {\n prefix: 'fad',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", [\"M64 400a16 16 0 0 0 16 16h12.39a43.17 43.17 0 0 0 41-29.53L144 354.59l16.83 50.47c4.45 13.46 23.11 14.87 29.48 2.09l7.69-15.34a10.91 10.91 0 0 1 10-6.19 11.08 11.08 0 0 1 10.17 6.52A43 43 0 0 0 256 416h101l27-27.19v99.31A23.94 23.94 0 0 1 360 512H23.88A23.94 23.94 0 0 1 0 488V23.88A23.94 23.94 0 0 1 24 0h232v112a16 16 0 0 0 16 16h112v123.67L288 347v37h-32a11.63 11.63 0 0 1-9.35-6.5c-11.94-23.86-46.25-30.35-66-14.16l-13.88-41.64a24 24 0 0 0-45.55 0L103 376.34A11.21 11.21 0 0 1 92.39 384H80a16 16 0 0 0-16 16z\", \"M384 121.9a23.9 23.9 0 0 0-7-16.9L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112zM288 347v69h69l161.67-162.78-67.88-67.88zm280.56-179.65l-31.87-31.87a25.48 25.48 0 0 0-36 0l-27.25 27.25 67.88 67.88 27.25-27.25a25.45 25.45 0 0 0-.01-36.01z\"]]\n};\nvar faFileSpreadsheet = {\n prefix: 'fad',\n iconName: 'file-spreadsheet',\n icon: [384, 512, [], \"f65b\", [\"M272 128a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm56 304a16 16 0 0 1-16 16H72a16 16 0 0 1-16-16V240a16 16 0 0 1 16-16h240a16 16 0 0 1 16 16z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zm-65 119H72a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h240a16 16 0 0 0 16-16V240a16 16 0 0 0-16-16zM136 416H88v-48h48zm0-80H88v-48h48zm80 80h-48v-48h48zm0-80h-48v-48h48zm80 80h-48v-48h48zm0-80h-48v-48h48z\"]]\n};\nvar faFileTimes = {\n prefix: 'fad',\n iconName: 'file-times',\n icon: [384, 512, [], \"f317\", [\"M224,136V0H24A23.94,23.94,0,0,0,0,24V488a23.94,23.94,0,0,0,24,24H360a23.94,23.94,0,0,0,24-24V160H248A24.07,24.07,0,0,1,224,136Zm35.88,104.8,11.32,11.32a16,16,0,0,1,0,22.63L225.94,320l45.26,45.25a16,16,0,0,1,0,22.63L259.88,399.2a16,16,0,0,1-22.63,0L192,353.94,146.75,399.2a16,16,0,0,1-22.63,0L112.8,387.88a16,16,0,0,1,0-22.63L158.06,320,112.8,274.75a16,16,0,0,1,0-22.63l11.32-11.32a16,16,0,0,1,22.63,0L192,286.06l45.25-45.26A16,16,0,0,1,259.88,240.8ZM377,105,279.1,7a24,24,0,0,0-17-7H256V128H384v-6.1A23.92,23.92,0,0,0,377,105Z\", \"M271.2,387.88,259.88,399.2a16,16,0,0,1-22.63,0L192,353.94,146.75,399.2a16,16,0,0,1-22.63,0L112.8,387.88a16,16,0,0,1,0-22.63L158.06,320,112.8,274.75a16,16,0,0,1,0-22.63l11.32-11.32a16,16,0,0,1,22.63,0L192,286.06l45.25-45.26a16,16,0,0,1,22.63,0l11.32,11.32a16,16,0,0,1,0,22.63L225.94,320l45.26,45.25A16,16,0,0,1,271.2,387.88Z\"]]\n};\nvar faFileUpload = {\n prefix: 'fad',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-94.82 224H224v80a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36L180 229a17.06 17.06 0 0 1 24 0l96.43 95.65c10.15 10.07 3 27.35-11.25 27.35z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM204 229a17.06 17.06 0 0 0-24 0l-96.45 95.64C73.41 334.71 80.54 352 94.82 352H160v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-80h65.18c14.25 0 21.4-17.29 11.25-27.36z\"]]\n};\nvar faFileUser = {\n prefix: 'fad',\n iconName: 'file-user',\n icon: [384, 512, [], \"f65c\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-192 64a64 64 0 1 1-64 64 64 64 0 0 1 64-64zm112 236.8c0 10.61-10 19.2-22.4 19.2H102.4C90 448 80 439.4 80 428.8v-19.2c0-31.81 30.09-57.6 67.1-57.6h5a103.22 103.22 0 0 0 79.7 0h5c37.11 0 67.2 25.79 67.2 57.6z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zM192 320a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm44.8 32h-5a103.22 103.22 0 0 1-79.7 0h-5c-37 0-67.1 25.79-67.1 57.6v19.2c0 10.6 10 19.2 22.4 19.2h179.2c12.37 0 22.4-8.59 22.4-19.2v-19.2c0-31.81-30.09-57.6-67.2-57.6z\"]]\n};\nvar faFileVideo = {\n prefix: 'fad',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-64 264c0 21.44-25.94 32-41 17l-55-55v38a24 24 0 0 1-24 24H88a24 24 0 0 1-24-24V280a24 24 0 0 1 24-24h112a24 24 0 0 1 24 24v38.06l55-55c15-15.06 41-4.5 41 16.94z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zm-98 158.06l-55 55V280a24 24 0 0 0-24-24H88a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h112a24 24 0 0 0 24-24v-38l55 55c15.06 15 41 4.44 41-17V280c0-21.44-26-32-41-16.94z\"]]\n};\nvar faFileWord = {\n prefix: 'fad',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", [\"M384 128H272a16 16 0 0 1-16-16V0H24A23.94 23.94 0 0 0 0 23.88V488a23.94 23.94 0 0 0 23.88 24H360a23.94 23.94 0 0 0 24-23.88V128zm-67.3 142.7l-38 168A11.9 11.9 0 0 1 267 448h-38a12 12 0 0 1-11.6-9.1c-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5a12 12 0 0 1-11.6 9.1H117a12 12 0 0 1-11.7-9.4l-37.8-168A12 12 0 0 1 79.2 256h24.5a12 12 0 0 1 11.8 9.7c15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7a11.9 11.9 0 0 1 11.7-9.1h29.1a12 12 0 0 1 11.7 9.2c24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2a11.59 11.59 0 0 1 11.5-9.5H305a12 12 0 0 1 12 12 11.8 11.8 0 0 1-.3 2.7z\", \"M377 105L279.1 7a24 24 0 0 0-17-7H256v112a16 16 0 0 0 16 16h112v-6.1a23.9 23.9 0 0 0-7-16.9zm-72 151h-23.9a11.59 11.59 0 0 0-11.5 9.5c-24.2 111.4-21.8 118-21.6 129.2-.8-5.4-5.6-29-29.6-129.4a12 12 0 0 0-11.7-9.2h-29.1a11.9 11.9 0 0 0-11.7 9.1c-22.1 90-27.8 112.5-29.4 122.7-.9-12.7-5.4-44.2-21-122.2a12 12 0 0 0-11.8-9.7H79.2a12 12 0 0 0-11.7 14.6l37.8 168A12 12 0 0 0 117 448h37.1a12 12 0 0 0 11.6-9.1c23.2-93.1 24.5-96.2 25.6-110.5h.5c4.8 29.3-.2 7 25.6 110.5A12 12 0 0 0 229 448h38a11.9 11.9 0 0 0 11.7-9.3l38-168a11.8 11.8 0 0 0 .3-2.7 12 12 0 0 0-12-12z\"]]\n};\nvar faFilesMedical = {\n prefix: 'fad',\n iconName: 'files-medical',\n icon: [448, 512, [], \"f7fd\", [\"M352 96V0H152a24 24 0 0 0-24 24v368a24 24 0 0 0 24 24h272a24 24 0 0 0 24-24V96zm32 184a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\", \"M96 392V96H24a24 24 0 0 0-24 24v368a24 24 0 0 0 24 24h272a24 24 0 0 0 24-24v-40H152a56.06 56.06 0 0 1-56-56zm280-168h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zm65-151L375 7a24 24 0 0 0-17-7h-6v96h96v-6.06A24 24 0 0 0 441 73z\"]]\n};\nvar faFill = {\n prefix: 'fad',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", [\"M386.39 288L235.78 438.61a32 32 0 0 1-45.22 0L73.37 321.4A31.86 31.86 0 0 1 64 298.78 32.59 32.59 0 0 1 65.87 288z\", \"M502.63 217L294.94 9.34a32 32 0 0 0-45.25 0l-81.58 81.58L81.93 4.73a16 16 0 0 0-22.62 0L36.69 27.35a16 16 0 0 0 0 22.62l86.19 86.18-94.76 94.76a96 96 0 0 0 0 135.75l117.19 117.19a96 96 0 0 0 135.74 0l221.57-221.57a32 32 0 0 0 .01-45.28zM235.78 438.61a32 32 0 0 1-45.22 0L73.37 321.4a32 32 0 0 1 0-45.24l94.75-94.74 58.6 58.58A32 32 0 0 0 272 194.77l-58.6-58.6 58.92-58.93 162.42 162.41z\"]]\n};\nvar faFillDrip = {\n prefix: 'fad',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", [\"M387.39 288L236.78 438.61a32 32 0 0 1-45.22 0L74.37 321.4A31.86 31.86 0 0 1 65 298.78 32.59 32.59 0 0 1 66.87 288zM512 320s-64 92.65-64 128a64 64 0 0 0 128 0c0-35.35-64-128-64-128z\", \"M503.63 217L295.94 9.34a32 32 0 0 0-45.25 0l-81.58 81.58L82.93 4.73a16 16 0 0 0-22.62 0L37.69 27.35a16 16 0 0 0 0 22.62l86.19 86.18-94.76 94.76a96 96 0 0 0 0 135.75l117.19 117.19a96 96 0 0 0 135.74 0l221.57-221.57a32 32 0 0 0 .01-45.28zM236.78 438.61a32 32 0 0 1-45.22 0L74.37 321.4a32 32 0 0 1 0-45.24l94.75-94.74 58.6 58.58A32 32 0 0 0 273 194.77l-58.6-58.6 58.92-58.93 162.42 162.41z\"]]\n};\nvar faFilm = {\n prefix: 'fad',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", [\"M356 280H156a12 12 0 0 0-12 12v96a12 12 0 0 0 12 12h200a12 12 0 0 0 12-12v-96a12 12 0 0 0-12-12zm0-168H156a12 12 0 0 0-12 12v96a12 12 0 0 0 12 12h200a12 12 0 0 0 12-12v-96a12 12 0 0 0-12-12z\", \"M488 64h-8v20a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12V64H96v20a12 12 0 0 1-12 12H44a12 12 0 0 1-12-12V64h-8A23.94 23.94 0 0 0 0 88v336a23.94 23.94 0 0 0 24 24h8v-20a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v20h320v-20a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v20h8a23.94 23.94 0 0 0 24-24V88a23.94 23.94 0 0 0-24-24zM96 372a12 12 0 0 1-12 12H44a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H44a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H44a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm272 208a12 12 0 0 1-12 12H156a12 12 0 0 1-12-12v-96a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12zm0-168a12 12 0 0 1-12 12H156a12 12 0 0 1-12-12v-96a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12zm112 152a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]]\n};\nvar faFilmAlt = {\n prefix: 'fad',\n iconName: 'film-alt',\n icon: [512, 512, [], \"f3a0\", [\"M369 448H143V64h226z\", \"M488.12 64H480v20a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12V64h-47v384h47v-20a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v20h8a23.94 23.94 0 0 0 24-23.88V88a23.94 23.94 0 0 0-23.88-24zM480 372a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zM96 84a12 12 0 0 1-12 12H44a12 12 0 0 1-12-12V64h-8A23.94 23.94 0 0 0 0 87.88V424a23.94 23.94 0 0 0 23.88 24H32v-20a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v20h47V64H96zm0 288a12 12 0 0 1-12 12H44a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H44a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H44a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]]\n};\nvar faFilmCanister = {\n prefix: 'fad',\n iconName: 'film-canister',\n icon: [576, 512, [], \"f8b7\", [\"M320 448H32V96h288z\", \"M544 128H320v288h160a32 32 0 0 0 32-32v-32a32 32 0 0 1 32-32 32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zM440 360a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16zm0-160a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16zm96 0a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16zM16 96h320a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-80V16a16 16 0 0 0-16-16H112a16 16 0 0 0-16 16v16H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16zm320 352H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faFilter = {\n prefix: 'fad',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", [\"M505 41L320 225.93V488c0 19.51-22 30.71-37.76 19.66l-80-56A24 24 0 0 1 192 432V226L7 41C-8 25.87 2.69 0 24 0h464c21.33 0 32 25.9 17 41z\", \"\"]]\n};\nvar faFingerprint = {\n prefix: 'fad',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", [\"M506.1 203.57a24 24 0 1 0-46.87 10.34c4.71 21.41 4.91 37.41 4.7 61.6a24 24 0 0 0 23.8 24.2h.2a24 24 0 0 0 24-23.8c.18-22.18.4-44.11-5.83-72.34zM256.11 246a24 24 0 0 0-24 24 731.23 731.23 0 0 1-27.7 211.55c-2.73 9.72 2.15 30.49 23.12 30.49a24 24 0 0 0 23.09-17.52A774 774 0 0 0 280.1 270a24 24 0 0 0-23.99-24zM144.56 144.45a24 24 0 0 0-33.76 3.48 173.44 173.44 0 0 0-38.75 112A580.75 580.75 0 0 1 62.94 372a24 24 0 0 0 19.36 27.87c20.11 3.5 27.07-14.81 27.89-19.36a629 629 0 0 0 9.86-121.33 123.59 123.59 0 0 1 28-81 24 24 0 0 0-3.49-33.73z\", \"M466 112.85A266 266 0 0 0 252.8 0C183-.82 118.46 24.91 70.45 72.94A238.49 238.49 0 0 0 .13 246.65L0 268.12a24 24 0 0 0 23.28 24.69H24a24 24 0 0 0 24-23.3l.16-23.64a190.77 190.77 0 0 1 56.28-139C143.18 68.09 195.76 47.22 252.1 48a217.86 217.86 0 0 1 174.62 92.39A24 24 0 1 0 466 112.85zM254 82.12a178.75 178.75 0 0 0-45.78 5 24 24 0 1 0 11.06 46.72 143.52 143.52 0 0 1 34-3.69c75.43 1.13 137.73 61.5 138.88 134.58a881.07 881.07 0 0 1-5.58 113.63 24 24 0 0 0 21.11 26.58c16.72 1.95 25.51-11.88 26.58-21.11A929.94 929.94 0 0 0 440.19 264C438.63 165.2 355.12 83.62 254 82.12zm1.22 82.11c-61.26-.07-104 47.07-103.16 101.09a656.09 656.09 0 0 1-13.37 142.55 24 24 0 1 0 47 9.72 704 704 0 0 0 14.37-153c-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47a804 804 0 0 1-10.61 143.55 24 24 0 0 0 19.76 27.58c20 3.33 26.81-15.1 27.58-19.77A853 853 0 0 0 360.16 267c-.88-55.85-47.94-101.93-104.91-102.77z\"]]\n};\nvar faFire = {\n prefix: 'fad',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", [\"M216 23.86C216 9.06 204.15 0 192 0a24 24 0 0 0-20.1 10.82C48 191.85 224 200 224 288v.81A64 64 0 0 1 160 352h-.87C124 351.5 96 322.18 96 287v-85.5c0-14.52-11.83-24-24.15-24a23.63 23.63 0 0 0-17.28 7.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14zM192 444a123.61 123.61 0 0 1-87.78-36.5l2.63 1.21a129.9 129.9 0 0 0 51.39 11.23h1.78A132 132 0 0 0 292 289.71V288c0-27.83-8.69-54.44-25.84-79.11l-.3-.43c10.81 11 20.62 22.28 28.61 34.68C309.16 265.92 316 290.34 316 320a124.15 124.15 0 0 1-124 124z\", \"M265.86 208.46c10.81 11 20.62 22.28 28.61 34.68C309.16 265.92 316 290.34 316 320a123.94 123.94 0 0 1-211.78 87.5l2.63 1.21a129.9 129.9 0 0 0 51.39 11.23h1.78A132 132 0 0 0 292 289.71V288c0-27.83-8.69-54.44-25.84-79.11l-.3-.43\"]]\n};\nvar faFireAlt = {\n prefix: 'fad',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", [\"M323.56 51.2a597.38 597.38 0 0 0-56.22 60C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 210 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-52-163.14-124.44-230.4zm-1.12 366.87A165.81 165.81 0 0 1 226.86 448c-43.93 0-84.43-14.89-114.06-41.92a146.18 146.18 0 0 1-35.88-50.39C68.35 335.82 64 314 64 290.75c0-59.43 42.8-106.39 104.3-180.12 30 34.59 18.49 19.78 100.7 124.59l62-70.74c24.32 40.25 27.78 45.59 34.84 59.1a157.93 157.93 0 0 1 15 104.62c-7.49 36.85-28.24 68.8-58.4 89.87z\", \"M304.09 391.85A134.39 134.39 0 0 1 226.86 416C154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 8 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 20 27.35 52.19 15.81 119-33.43 153.42z\"]]\n};\nvar faFireExtinguisher = {\n prefix: 'fad',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", [\"M256 67.09V72c0-1.18-.1-2.94 0-4.91zM46.29 184.91a24 24 0 0 1-44.57-17.82c14.67-36.67 38-77.84 90.05-90.89C77.63 39.68 104.57 0 144 0a56 56 0 0 1 53.67 72H256v48h-40v26a96.87 96.87 0 0 0-48 0v-26c-61 0-92.94-7-121.71 64.91zM144 72a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm112 53.54V120a51.87 51.87 0 0 0 0 5.54z\", \"M434 26.33l-168 28c-8.15 1.36-9.77 7.73-10 12.76v58.45c.38 4.79 2.24 10.83 10 12.13l168 28a12 12 0 0 0 14-11.84V38.17a12 12 0 0 0-14-11.84zM192 143a96 96 0 0 0-96 96v241a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32V239a96 96 0 0 0-96-96z\"]]\n};\nvar faFireSmoke = {\n prefix: 'fad',\n iconName: 'fire-smoke',\n icon: [640, 512, [], \"f74b\", [\"M195.7 283.2a145 145 0 0 0-44.5-21.3A171.61 171.61 0 0 1 144 213c0-54.2 54.8-144.1 132-213 30.1 26.9 56.6 55.7 77.9 84a458.59 458.59 0 0 1 44.2-45.4c57 50.8 97.8 133.9 97.8 174.2a171.61 171.61 0 0 1-7.2 48.9 145 145 0 0 0-44.5 21.3 160.46 160.46 0 0 0-36.5-32.8 99.68 99.68 0 0 0-5.1-77.8c-2.5-4.9-5.3-10.1-8.4-15.4l-43.8 51.7s-68.6-90.7-73.8-96.9c-36.2 45-54.4 71.3-54.4 101.1a103.85 103.85 0 0 0 7.4 39.3 161 161 0 0 0-33.9 31z\", \"M640 400a111.94 111.94 0 0 1-112 112H112a112 112 0 0 1 0-224c37.1 0 69.7 18.3 90.1 46.1a128 128 0 0 1 235.8 0c20.4-27.8 53-46.1 90.1-46.1a111.94 111.94 0 0 1 112 112z\"]]\n};\nvar faFireplace = {\n prefix: 'fad',\n iconName: 'fireplace',\n icon: [640, 512, [], \"f79a\", [\"M371.2 281.6a289.37 289.37 0 0 0-28.9 30 390.58 390.58 0 0 0-51.1-55.6c-50.5 45.6-86.4 105-86.4 140.8a115.2 115.2 0 0 0 230.4 0c0-26.6-26.7-81.6-64-115.2zm-13.4 166.9a64.22 64.22 0 0 1-37.8 12.3c-35.3 0-64-24.4-64-64 0-19.7 11.9-37.1 35.6-66.8 3.4 4.1 48.3 64.1 48.3 64.1l28.7-34.2c2 3.5 3.9 6.9 5.5 10.2 13.4 26.6 7.8 60.8-16.3 78.4z\", \"M624 0H16A16 16 0 0 0 0 16v64a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zM32 512h96V384c0-106 86-192 192-192s192 86 192 192v128h96V128H32z\"]]\n};\nvar faFirstAid = {\n prefix: 'fad',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", [\"M64 480h64V32H64zM448 32v448h64V32z\", \"M128 480h320V32H128zm64-248a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zM0 80v352a48 48 0 0 0 48 48h16V32H48A48 48 0 0 0 0 80zm528-48h-16v448h16a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"]]\n};\nvar faFish = {\n prefix: 'fad',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", [\"M327.1 96c-90 0-168.54 54.77-212.27 101.63l-87.33-66c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M446.53 256a32 32 0 1 1-32-32 32 32 0 0 1 32 32z\"]]\n};\nvar faFishCooked = {\n prefix: 'fad',\n iconName: 'fish-cooked',\n icon: [640, 512, [], \"f7fe\", [\"M363.43 64c-100 0-187.26 65.72-235.85 122l-97-79.26C17.07 95.68-3 107.42.39 124.29L27.26 256 .38 387.73C-3 404.6 17.06 416.32 30.53 405.32l97-79.26C176.16 382.28 263.47 448 363.43 448 516.17 448 640 294.4 640 256S516.17 64 363.43 64zM245.68 261.68l-11.31-11.31a8 8 0 0 1 0-11.31L319 154.34a8 8 0 0 1 11.31 0l11.32 11.32a8 8 0 0 1 0 11.31L257 261.65a8 8 0 0 1-11.32.03zm59.28 80a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L431 170.34a8 8 0 0 1 11.31 0l11.32 11.32a8 8 0 0 1 0 11.31zM501.69 273L417 357.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L479 250.34a8 8 0 0 1 11.31 0l11.32 11.32a8 8 0 0 1 .06 11.34z\", \"M453.63 193a8 8 0 0 0 0-11.31l-11.33-11.36a8 8 0 0 0-11.31 0L282.34 319a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0L453.62 193zm-112-16a8 8 0 0 0 0-11.31l-11.33-11.36a8 8 0 0 0-11.31 0L234.34 239a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0L341.62 177zm160 84.69l-11.33-11.36a8 8 0 0 0-11.31 0L394.37 335a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0L501.65 273a8 8 0 0 0-.03-11.35z\"]]\n};\nvar faFistRaised = {\n prefix: 'fad',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", [\"M64 512v-64l-26.5-26.51A128 128 0 0 1 0 331v-77.95A47.26 47.26 0 0 0 16 256h32a47.65 47.65 0 0 0 32-12.49A47.65 47.65 0 0 0 112 256h32a47.4 47.4 0 0 0 21.87-5.52 64.34 64.34 0 0 0 38.87 34.45c-17.11 14.82-31.58 34.48-47.31 58.08l-6.31 9.47a8 8 0 0 0 2.22 11.08l13.31 8.88a8 8 0 0 0 11.08-2.22l6.31-9.47c31.89-47.84 51.53-70.27 96.05-72.55a8.22 8.22 0 0 0 7.88-8V264c0-4.42-3.52-8-13.2-8h-35.25A47.59 47.59 0 0 1 192 208.41v-.56A15.86 15.86 0 0 1 207.85 192H320a64 64 0 0 1 64 64v88.22a96 96 0 0 1-28.12 67.91L320 448v64z\", \"M144 32h-32a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 64H16A16 16 0 0 0 0 80v128a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm288-32h-32a16 16 0 0 0-16 16v112h32a94.76 94.76 0 0 1 32 5.9V48a16 16 0 0 0-16-16zM240 0h-32a16 16 0 0 0-16 16v146.93a47.56 47.56 0 0 1 16-2.93h48V16a16 16 0 0 0-16-16z\"]]\n};\nvar faFlag = {\n prefix: 'fad',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", [\"M512 91.33v277c0 11.31-7.1 21.88-18.5 26.47C317.7 465 281.7 331.25 96 416V102a56.57 56.57 0 0 0 14.64-15c194.19-74.48 184.75 58.25 352-20.08C485.2 56.31 512 68.26 512 91.33z\", \"M120 56a55.93 55.93 0 0 1-24 46v388a22 22 0 0 1-22 22H54a22 22 0 0 1-22-22V102a56 56 0 1 1 88-46z\"]]\n};\nvar faFlagAlt = {\n prefix: 'fad',\n iconName: 'flag-alt',\n icon: [512, 512, [], \"f74c\", [\"M512 30.83v301.29a31.39 31.39 0 0 1-18.5 28.8C317.7 437.33 281.7 291.83 96 384V32.42c209.4-94.59 195.3 59.1 366.6-28.19 22.6-11.5 49.4 1.5 49.4 26.6z\", \"M64 32v464a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V32a32 32 0 0 1 64 0z\"]]\n};\nvar faFlagCheckered = {\n prefix: 'fad',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", [\"M96 298.66v95c28.3-12.1 63.6-22.1 114.4-22.1a144.77 144.77 0 0 1 29.6 3.26v-95a144.77 144.77 0 0 0-29.6-3.26c-50.8 0-86.1 10-114.4 22.1zM184.3 64c-19.3 0-42.3 0-68.14 12.36A56.18 56.18 0 0 1 96 102v93.66c28.3-12.1 63.6-22.1 114.4-22.1a144.77 144.77 0 0 1 29.6 3.26V71.64C223 67.2 204.69 64 184.3 64zm191.3 342.36c48.2 0 86.7-16.3 122.5-40.9a31.88 31.88 0 0 0 13.8-26.4v-76c-35.79 24.58-88.14 48.3-136.3 48.3-2.57 0-5.09-.07-7.6-.16v95c2.51.09 5 .16 7.6.16zm136.3-246.3V96c.1-23.35-24.2-38.85-45.4-29-29.1 13.4-63.89 27-98.5 30.76V208.2c2.51.09 5 .16 7.6.16 48.16 0 100.51-23.72 136.3-48.3zM240 176.82v103c39.58 8.25 77.24 29.4 128 31.38v-103c-50.76-1.98-88.42-23.13-128-31.38z\", \"M210.4 173.6c-50.8 0-86.1 10-114.4 22.1V102a56 56 0 1 0-64 0v388a22 22 0 0 0 22 22h20a22 22 0 0 0 22-22V298.7c28.3-12.1 63.6-22.1 114.4-22.1a144.77 144.77 0 0 1 29.6 3.26v-103a144.77 144.77 0 0 0-29.6-3.26zM240 374.82c39.58 8.25 77.24 29.4 128 31.38v-95c-50.76-2-88.42-23.13-128-31.38zM368 97.76a169.27 169.27 0 0 1-18.5 1c-37.32 0-70.17-16.92-109.5-27.17v105.23c39.58 8.25 77.24 29.4 128 31.38zm143.9 146.3v-84c-35.79 24.58-88.14 48.3-136.3 48.3-2.57 0-5.09-.07-7.6-.16v103c2.51.09 5 .16 7.6.16 48.2 0 100.6-23.76 136.4-48.36v-17.16c-.06-.57-.09-1.16-.1-1.78z\"]]\n};\nvar faFlagUsa = {\n prefix: 'fad',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", [\"M299.9 303.62c-57.2-15.09-111.7-28.79-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.11a31.39 31.39 0 0 0 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.07-68.9-8.36-100-16.57zm9.5-221.89c51.8 15.6 97.4 29 202.6-20.11V30.83c0-25.1-26.8-38.1-49.4-26.6-89.25 45.48-128.17 25.54-174.6 9.39v158c6.76 1.66 13.45 3.4 20.1 5.14 57.2 15 111.7 28.7 203.9-11.1V96.73c-53.6 23.5-93.3 31.39-126.1 31.39s-59-7.79-85.7-15.89c-4-1.21-8.1-2.4-12.1-3.5V75.52c7.2 2 14.3 4.1 21.3 6.21zm-9.5 125.89c-57.2-15.09-111.7-28.79-203.9 11.1v61.5c94.8-37.6 154.6-22.69 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.09V200c-43.6 17.3-80.2 24.09-112.1 24.09-37.4.03-68.9-8.26-100-16.47z\", \"M32 0A32 32 0 0 0 0 32v464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V32A32 32 0 0 0 32 0zm64 32.4v151.93c83.83-33.17 140.29-25.43 192-12.75v-158C245.32-1.23 196.3-12.89 96 32.42zm64 95.7a16 16 0 1 1 16-16 16 16 0 0 1-16 16.02zm0-55.79a16 16 0 1 1 16-16 16 16 0 0 1-16 16.02zm64 47.9a16 16 0 1 1 16-16 16 16 0 0 1-16 16.02zm0-55.9a16 16 0 1 1 16-16 16 16 0 0 1-16 16.02z\"]]\n};\nvar faFlame = {\n prefix: 'fad',\n iconName: 'flame',\n icon: [384, 512, [], \"f6df\", [\"M192 0C79.7 101.33 0 220.92 0 300.55 0 425.05 79 512 192 512s192-86.95 192-211.45C384 220.6 303.78 100.86 192 0zm0 448c-70.58 0-128-52.89-128-117.89 0-44.11 25.84-71.51 34.34-79.76A8 8 0 0 1 112 256v40a56 56 0 0 0 112 0c0-72-112.64-64.77-39.43-164.33a9.37 9.37 0 0 1 10.58-3.17c1.62.53 5.38 2.24 5.38 6.78 0 33.55 25 55 51.57 77.63 33.38 28.54 67.9 58 67.9 117.21C320 395.11 262.58 448 192 448z\", \"M252.09 212.92c33.38 28.54 67.9 58 67.9 117.21 0 65-57.41 117.87-128 117.87S64 395.11 64 330.11c0-44.11 25.84-71.51 34.34-79.76A8 8 0 0 1 112 256v40a56 56 0 0 0 112 0c0-72-112.64-64.77-39.43-164.33a9.37 9.37 0 0 1 10.58-3.17c1.62.53 5.38 2.24 5.38 6.78 0 33.56 25 55 51.56 77.64z\"]]\n};\nvar faFlashlight = {\n prefix: 'fad',\n iconName: 'flashlight',\n icon: [640, 512, [], \"f8b8\", [\"M400.13 149.25L384 160H32a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32h352l16.13 10.75A317 317 0 0 0 576 416V96a317 317 0 0 0-175.87 53.25zM288 288h-32a32 32 0 0 1 0-64h32a32 32 0 0 1 0 64z\", \"M608 96h-32v320h32a32 32 0 0 0 32-32V128a32 32 0 0 0-32-32zM288 224h-32a32 32 0 0 0 0 64h32a32 32 0 0 0 0-64z\"]]\n};\nvar faFlask = {\n prefix: 'fad',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", [\"M138.07 320h171.84l72.93 117.29a6.4 6.4 0 0 1 .09 7.12 6.11 6.11 0 0 1-5.88 3.52H70.89a6.08 6.08 0 0 1-5.89-3.46 6.45 6.45 0 0 1 .11-7.18z\", \"M112 64h224a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm325.19 339.5L320 215V96h-64v137.27l126.85 204a6.4 6.4 0 0 1 .09 7.12 6.11 6.11 0 0 1-5.88 3.52H70.89a6.08 6.08 0 0 1-5.89-3.44 6.45 6.45 0 0 1 .11-7.18L192 233.27V96h-64v119L10.79 403.5c-29.3 47.1 4.5 108.5 60.1 108.5h306.2c55.7 0 89.4-61.5 60.1-108.5z\"]]\n};\nvar faFlaskPoison = {\n prefix: 'fad',\n iconName: 'flask-poison',\n icon: [416, 512, [], \"f6e0\", [\"M208 224c-61.86 0-112 39.4-112 88 0 29.87 19 56.17 48 72.08V416a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-31.92c29-15.91 48-42.21 48-72.08 0-48.6-50.17-88-112-88zm-40 112a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm80 0a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M96 64h224a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H96a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm208 105.05V96H112v72.12C45.61 202.85 0 271.88 0 352a207.15 207.15 0 0 0 53.93 139.7 63.44 63.44 0 0 0 47 20.3H315a64 64 0 0 0 47.57-20.85A207.15 207.15 0 0 0 416 356.67c1.71-79.95-44.8-151.49-112-187.62zm-32 215V416a16 16 0 0 1-16 16h-96a16 16 0 0 1-16-16v-31.92c-29-15.91-48-42.21-48-72.08 0-48.6 50.13-88 112-88s112 39.4 112 88c0 29.87-19 56.17-48 72.08z\"]]\n};\nvar faFlaskPotion = {\n prefix: 'fad',\n iconName: 'flask-potion',\n icon: [416, 512, [], \"f6e1\", [\"M64 352a154.39 154.39 0 0 1 1.92-24.48c61.84-24.46 131.65-20.73 181 4 36.58 18.29 78.12 20.41 105 20.56v3.23A143.83 143.83 0 0 1 315.29 448h-214.6A143.6 143.6 0 0 1 64 352z\", \"M304 169.05V96h-64v111.3c24.51 13.18 114.1 49.87 112 148a143.82 143.82 0 0 1-36.71 92.7h-214.6A143.6 143.6 0 0 1 64 352c0-99.51 88.31-132.74 112-145.13V96h-64v72.12C45.61 202.85 0 271.88 0 352a207.15 207.15 0 0 0 53.93 139.7 63.44 63.44 0 0 0 47 20.3H315a64 64 0 0 0 47.57-20.85A207.15 207.15 0 0 0 416 356.67c1.71-79.95-44.8-151.49-112-187.62zM96 64h224a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H96a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\"]]\n};\nvar faFlower = {\n prefix: 'fad',\n iconName: 'flower',\n icon: [512, 512, [], \"f7ff\", [\"M435.86,256C462.7,232.54,480,198.45,480,160A128,128,0,0,0,352,32c-38.45,0-72.54,17.3-96,44.14C232.54,49.3,198.45,32,160,32A128,128,0,0,0,32,160c0,38.45,17.3,72.54,44.14,96C49.3,279.46,32,313.55,32,352A128,128,0,0,0,160,480c38.45,0,72.54-17.3,96-44.14C279.46,462.7,313.55,480,352,480A128,128,0,0,0,480,352C480,313.55,462.7,279.46,435.86,256ZM335.2,335.2A112,112,0,1,1,368,256,112,112,0,0,1,335.2,335.2Z\", \"M336,256a80,80,0,1,1-80-80A80,80,0,0,1,336,256Z\"]]\n};\nvar faFlowerDaffodil = {\n prefix: 'fad',\n iconName: 'flower-daffodil',\n icon: [512, 512, [], \"f800\", [\"M511.93 336.84C501.94 435 405.57 512 288.17 512h-64.34C106.43 512 10.06 435 .07 336.84-.87 327.72 6.94 320 16.13 320h47.26c63 0 119.82 22.23 160.61 57.92v-96.58A80.33 80.33 0 0 0 256 256a80.33 80.33 0 0 0 32 25.34v96.58C328.79 342.23 385.61 320 448.61 320h47.26c9.19 0 16.98 7.72 16.06 16.84z\", \"M368 144A80 80 0 1 0 256 32a80 80 0 1 0-112 112 80 80 0 1 0 112 112 80 80 0 1 0 112-112zm-112 48a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faFlowerTulip = {\n prefix: 'fad',\n iconName: 'flower-tulip',\n icon: [512, 512, [], \"f801\", [\"M511.94 336.84C502 435 405.58 512 288.18 512h-64.34C106.44 512 10.07 435 .08 336.84-.86 327.72 7 320 16.14 320H63.4c63 0 119.82 22.23 160.61 57.92V256h64v121.92C328.8 342.23 385.62 320 448.62 320h47.26c9.19 0 16.98 7.72 16.06 16.84z\", \"M224 256A128 128 0 0 1 96 128V32l80 48 81.15-80L336 80l80-48v96a128 128 0 0 1-128 128z\"]]\n};\nvar faFlushed = {\n prefix: 'fad',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM80,224a72,72,0,1,1,72,72,72,72,0,0,1-72-72ZM312,400H184c-21.2,0-21.2-32,0-32H312C333.2,368,333.2,400,312,400Zm32-104a72,72,0,1,1,72-72,72,72,0,0,1-72,72Z\", \"M152,200a23.94,23.94,0,1,0,.12,0Zm192,0a23.94,23.94,0,1,0,.12,0Z\"]]\n};\nvar faFlute = {\n prefix: 'fad',\n iconName: 'flute',\n icon: [640, 512, [], \"f8b9\", [\"M608 176H96v160h512a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32z\", \"M320 232a24 24 0 1 0 24 24 24 24 0 0 0-24-24zM0 208v96a32 32 0 0 0 32 32h64V176H32a32 32 0 0 0-32 32zm416 24a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm96 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faFluxCapacitor = {\n prefix: 'fad',\n iconName: 'flux-capacitor',\n icon: [512, 512, [], \"f8ba\", [\"M283.42857,365.71429a27.42857,27.42857,0,1,1-54.85714,0V318.49142a54.85713,54.85713,0,1,0,54.85714,0ZM146.28571,91.42857a54.85715,54.85715,0,0,0,0,109.71429,54.12623,54.12623,0,0,0,14.02287-2.04571l-33.45144-33.38286a27.47615,27.47615,0,0,1,38.85715-38.85715l33.41714,33.41715a54.12633,54.12633,0,0,0,2.01143-13.98858A54.9143,54.9143,0,0,0,146.28571,91.42857ZM420.57143,0H91.42857A91.53143,91.53143,0,0,0,0,91.42857V420.57143A91.53142,91.53142,0,0,0,91.42857,512H420.57143A91.5314,91.5314,0,0,0,512,420.57143V91.42857A91.53142,91.53142,0,0,0,420.57143,0ZM365.71429,237.71429a90.41156,90.41156,0,0,1-41.98856-10.65144L283.42857,267.36v11.57715c37.00572,11.70285,64,45.90855,64,86.77714a91.42857,91.42857,0,1,1-182.85714,0c0-40.86859,26.99428-75.07429,64-86.77714V267.36l-40.29714-40.29713a90.41135,90.41135,0,0,1-41.98858,10.65142,91.42858,91.42858,0,1,1,91.42858-91.42858,90.42306,90.42306,0,0,1-10.66286,41.98858L256,217.21143l28.94857-28.93716a90.42292,90.42292,0,0,1-10.66286-41.98856,91.42858,91.42858,0,1,1,91.42858,91.42858Zm0-146.28572a54.9143,54.9143,0,0,0-54.85715,54.85714,54.12625,54.12625,0,0,0,2.04573,14.02287l33.38284-33.45144a27.47615,27.47615,0,1,1,38.85715,38.85715l-33.41713,33.41714a54.12612,54.12612,0,0,0,13.98856,2.01143,54.85715,54.85715,0,0,0,0-109.71429Z\", \"M385.14286,165.71429,283.42857,267.42857v98.28572a27.42857,27.42857,0,1,1-54.85714,0V267.36L126.85714,165.64572a27.45192,27.45192,0,0,1,38.85715-38.78858h0L256,217.14286l90.28571-90.28572a27.47615,27.47615,0,1,1,38.85715,38.85715Z\"]]\n};\nvar faFog = {\n prefix: 'fad',\n iconName: 'fog',\n icon: [640, 512, [], \"f74e\", [\"M208 464H80a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm416 0H288a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h336a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-48-64v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16z\", \"M64 224c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 128 112 111.94 111.94 0 0 1 240 0c43.3 0 80.4 24.8 99 60.8C353.7 43.3 375.4 32 400 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 0 192H160a96 96 0 0 1-96-96z\"]]\n};\nvar faFolder = {\n prefix: 'fad',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", [\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\", \"\"]]\n};\nvar faFolderDownload = {\n prefix: 'fad',\n iconName: 'folder-download',\n icon: [512, 512, [], \"e053\", [\"M464,127.08H272l-64-64H48a48,48,0,0,0-48,48v288a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48v-224A48,48,0,0,0,464,127.08ZM364.44,282.44,268,378.14a17.05,17.05,0,0,1-24,0l-96.42-95.7a16,16,0,0,1,11.25-27.34H224v-48a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16v48h65.18A16,16,0,0,1,364.44,282.44Z\", \"M364.44,282.44,268,378.14a17.05,17.05,0,0,1-24,0l-96.42-95.7a16,16,0,0,1,11.25-27.34H224v-48a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16v48h65.18A16,16,0,0,1,364.44,282.44Z\"]]\n};\nvar faFolderMinus = {\n prefix: 'fad',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", [\"M464 128H272l-64-64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V176a48 48 0 0 0-48-48zm-96 168a16 16 0 0 1-16 16H160a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\", \"M368 280v16a16 16 0 0 1-16 16H160a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]]\n};\nvar faFolderOpen = {\n prefix: 'fad',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", [\"M69.08 271.63L0 390.05V112a48 48 0 0 1 48-48h160l64 64h160a48 48 0 0 1 48 48v48H152a96.31 96.31 0 0 0-82.92 47.63z\", \"M152 256h400a24 24 0 0 1 20.73 36.09l-72.46 124.16A64 64 0 0 1 445 448H45a24 24 0 0 1-20.73-36.09l72.45-124.16A64 64 0 0 1 152 256z\"]]\n};\nvar faFolderPlus = {\n prefix: 'fad',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", [\"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\", \"M359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]]\n};\nvar faFolderTimes = {\n prefix: 'fad',\n iconName: 'folder-times',\n icon: [512, 512, [], \"f65f\", [\"M464 128H272l-64-64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V176a48 48 0 0 0-48-48zM340.85 338.91a16 16 0 0 1 0 22.63l-11.31 11.31a16 16 0 0 1-22.63 0L256 321.94l-50.91 50.91a16 16 0 0 1-22.63 0l-11.31-11.31a16 16 0 0 1 0-22.63L222.06 288l-50.91-50.91a16 16 0 0 1 0-22.63l11.31-11.31a16 16 0 0 1 22.63 0L256 254.06l50.91-50.91a16 16 0 0 1 22.63 0l11.31 11.31a16 16 0 0 1 0 22.63L289.94 288z\", \"M171.15 237.09a16 16 0 0 1 0-22.63l11.31-11.31a16 16 0 0 1 22.63 0L256 254.06l50.91-50.91a16 16 0 0 1 22.63 0l11.31 11.31a16 16 0 0 1 0 22.63L289.94 288l50.91 50.91a16 16 0 0 1 0 22.63l-11.31 11.31a16 16 0 0 1-22.63 0L256 321.94l-50.91 50.91a16 16 0 0 1-22.63 0l-11.31-11.31a16 16 0 0 1 0-22.63L222.06 288z\"]]\n};\nvar faFolderTree = {\n prefix: 'fad',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", [\"M0 416V16A16 16 0 0 1 16 0h32a16 16 0 0 1 16 16v80h192v64H64v224h192v64H32a32 32 0 0 1-32-32z\", \"M544 320H432l-32-32h-80a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32zm0-288H432L400 0h-80a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32z\"]]\n};\nvar faFolderUpload = {\n prefix: 'fad',\n iconName: 'folder-upload',\n icon: [512, 512, [], \"e054\", [\"M464,127.08H272l-64-64H48a48,48,0,0,0-48,48v288a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48v-224A48,48,0,0,0,464,127.08Zm-110.81,192H288v48a16,16,0,0,1-16,16H240a16,16,0,0,1-16-16v-48H158.83a16,16,0,0,1-11.27-27.34L244,196a17.05,17.05,0,0,1,24,0l96.42,95.7A16,16,0,0,1,353.19,319.08Z\", \"M353.19,319.08H288v48a16,16,0,0,1-16,16H240a16,16,0,0,1-16-16v-48H158.83a16,16,0,0,1-11.27-27.34L244,196a17.05,17.05,0,0,1,24,0l96.42,95.7A16,16,0,0,1,353.19,319.08Z\"]]\n};\nvar faFolders = {\n prefix: 'fad',\n iconName: 'folders',\n icon: [640, 512, [], \"f660\", [\"M640 112v224a48 48 0 0 1-48 48H176a48 48 0 0 1-48-48V48a48 48 0 0 1 48-48h160l64 64h192a48 48 0 0 1 48 48z\", \"M48 512a48 48 0 0 1-48-48V176a48 48 0 0 1 48-48h48v208a80.09 80.09 0 0 0 80 80h336v48a48 48 0 0 1-48 48z\"]]\n};\nvar faFont = {\n prefix: 'fad',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", [\"M432 416H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M147.72 352h152.56l23.31 64h85L277.87 53.69C273.81 41.72 260.22 32 247.59 32h-47.18c-12.63 0-26.22 9.72-30.29 21.69L39.41 416h85zM224 142.52L271.16 272h-94.32z\"]]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fad',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", [\"\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]]\n};\nvar faFontCase = {\n prefix: 'fad',\n iconName: 'font-case',\n icon: [640, 512, [], \"f866\", [\"M624 160h-32a16 16 0 0 0-16 16v1.81c-18.9-11-40.58-17.81-64-17.81a128.14 128.14 0 0 0-128 128v32a128.14 128.14 0 0 0 128 128c23.42 0 45.1-6.78 64-17.81V432a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V176a16 16 0 0 0-16-16zm-64 160a48 48 0 0 1-96 0v-32a48 48 0 0 1 96 0z\", \"M229.88 85.69A32 32 0 0 0 199.58 64h-47.16a32 32 0 0 0-30.3 21.69L.85 426.89A16 16 0 0 0 16 448h50.62a16 16 0 0 0 15.16-10.89L100.85 384h150.3l19.07 53.11A16 16 0 0 0 285.38 448H336a16 16 0 0 0 15.16-21.11zM129.58 304L176 174.74 222.42 304z\"]]\n};\nvar faFootballBall = {\n prefix: 'fad',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", [\"M0,328.41v1.53L174.06,504h1.53a321.72,321.72,0,0,0,60.6-5.75L5.75,267.81A321.72,321.72,0,0,0,0,328.41ZM496,182.06,321.94,8h-1.53a321.72,321.72,0,0,0-60.6,5.75L490.25,244.19a321.72,321.72,0,0,0,5.75-60.6Z\", \"M14.5,451.7a52.8,52.8,0,0,0,37.3,37.4c49.3,13.2,88.49,14.9,122.26,14.9L0,329.94C0,363.51,1.47,402.26,14.5,451.7Zm467-391.4a52.8,52.8,0,0,0-37.3-37.4C394.9,9.7,355.71,8.05,321.94,8L496,182.06c0-33.57-1.47-72.32-14.5-121.76ZM5.75,267.81,236.19,498.25c128.35-24.57,229.49-125.71,254.06-254.06L259.81,13.75C131.46,38.32,30.32,139.46,5.75,267.81Zm288.91-81.69,29.21-29.42a8.29,8.29,0,0,1,11.67,0l11.66,11.66a8.29,8.29,0,0,1,0,11.67L318,209.24l29.21,29.21a8.29,8.29,0,0,1,0,11.67l-11.66,11.66a8.29,8.29,0,0,1-11.67,0l-29.21-29.21L271.33,256l29.21,29.21a8.29,8.29,0,0,1,0,11.67l-11.66,11.66a8.29,8.29,0,0,1-11.67,0L248,279.33l-23.33,23.33,29.21,29.21a8.29,8.29,0,0,1,0,11.67L242.22,355.2a8.29,8.29,0,0,1-11.67,0L201.34,326l-29.21,29.2a8.29,8.29,0,0,1-11.67,0L148.8,343.54a8.29,8.29,0,0,1,0-11.67L178,302.66l-29.2-29.11a8.29,8.29,0,0,1,0-11.67l11.66-11.66a8.29,8.29,0,0,1,11.67,0l29.21,29.21,23.33-23.33-29.21-29.21a8.28,8.28,0,0,1,0-11.66l11.66-11.67a8.29,8.29,0,0,1,11.67,0L248,232.77l23.33-23.32-29.21-29.22a8.28,8.28,0,0,1,0-11.66l11.66-11.67a8.29,8.29,0,0,1,11.67,0Z\"]]\n};\nvar faFootballHelmet = {\n prefix: 'fad',\n iconName: 'football-helmet',\n icon: [512, 512, [], \"f44f\", [\"M480 320H355.46l-15.2-76-31.8 4.1 14.4 71.9h-49.3s18.7 46.8 12.8 32h42.9l9.5 47.3c9.5 47.4 48 85.3 95.9 91.3 44 5.5 42.5 5.4 45.3 5.4 22.5 0 32-19.7 32-32V352A32 32 0 0 0 480 320zm0 144l-41.3-5.2a79.72 79.72 0 0 1-60.1-40.7H480zm0-80H368.26l-6.4-32H480z\", \"M491 207.46C466.2 82.56 347.9-8.64 211.9 10.56c-107.3 15.1-194.1 102-209.3 209.3-10.2 72.1 10.7 139.1 51.1 190a16.26 16.26 0 0 0 12.8 6.1H120l85.7 45a65.58 65.58 0 0 0 75.7-12.3c36.2-36.2 10.9-81.9 5-96.7l-23.1-57.7a32 32 0 0 1 25.6-43.6l188.2-24.5c8.96-1.16 15.56-9.8 13.9-18.7zM176 360a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faForklift = {\n prefix: 'fad',\n iconName: 'forklift',\n icon: [640, 512, [], \"f47a\", [\"M96 352a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm528 32h-80V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v416a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-272-32a80 80 0 1 0 80 80 80 80 0 0 0-80-80z\", \"M410.8 211.9L332.5 29.1A48 48 0 0 0 288.3 0H144a48 48 0 0 0-48 48v112H48a48 48 0 0 0-48 48v166.23a113.49 113.49 0 0 1 16.8-21.43 112 112 0 0 1 158.4 0 111.19 111.19 0 0 1 31.67 63.2h34.26A112 112 0 0 1 416 340.06v-103a64.23 64.23 0 0 0-5.2-25.16zM352 256h-96l-96-96V64h117.8L352 237.1z\"]]\n};\nvar faForward = {\n prefix: 'fad',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", [\"M224 297.69L52.5 440.61C31.9 457.81 0 443.41 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 214.32z\", \"M500.5 231.41a32.11 32.11 0 0 1 0 49.2l-192 160c-20.6 17.2-52.5 2.8-52.5-24.6V96c0-27.4 31.9-41.7 52.5-24.6z\"]]\n};\nvar faFragile = {\n prefix: 'fad',\n iconName: 'fragile',\n icon: [288, 512, [], \"f4bb\", [\"M192.21 0l30.6 63.7-85.5 56 49.4 104.3-121.5-119.7 85.5-56L117.91 0z\", \"M160 350.3V480h53.9c24.5 0 33.1 32 20 32H54.11c-13.2 0-4.5-32 20-32H128V350.3C51.31 341.6-6.59 272.7.61 192.7l16-178.1A15.79 15.79 0 0 1 32.31 0h85.6l32.8 48.3-85.5 56L186.71 224l-49.4-104.3 85.5-56L192.21 0h63.5a15.79 15.79 0 0 1 15.7 14.6l16 178.1c7.2 80-50.7 148.8-127.41 157.6z\"]]\n};\nvar faFrenchFries = {\n prefix: 'fad',\n iconName: 'french-fries',\n icon: [512, 512, [], \"f803\", [\"M169.57.3a16.22,16.22,0,0,0-6.72,3L134.34,24.9a16,16,0,0,0-6.07,15.68l36.9,197.22c5.3,7.59,14.49,14.87,26.83,20.75V33.19l-3.76-20.11A16,16,0,0,0,169.57.3Zm109.6,17.4-32-16A16,16,0,0,0,224,16V268.79a160.37,160.37,0,0,0,64,0V32A16,16,0,0,0,279.17,17.7ZM84.61,80.7A16,16,0,0,0,64.25,98.78L80.55,192H114c3.6,0,7,1,10.35,1.75l-20-107.16ZM370.75,32.27a16.38,16.38,0,0,0-7.33.43L329.14,43c-4.24,1.27-7.17,4.51-9.13,8.33V258.55c17.55-8.38,29.15-19.54,31.54-30.39.4-1.79,1.46-3.22,2.06-4.92L383.76,50.78A16,16,0,0,0,370.75,32.27Zm64,48a16.38,16.38,0,0,0-7.33.43l-17.31,5.17L391.36,193.13c2.24-.32,4.33-1.12,6.63-1.12h33.47l16.3-93.23A16,16,0,0,0,434.75,80.27Z\", \"M64,240a16,16,0,0,1,16-16h34c6.92,0,13.7,4.24,15.19,11,8.6,39,62.09,69,126.79,69s118.2-30,126.8-69c1.49-6.73,8.27-11,15.19-11h34a16,16,0,0,1,16,16,16.16,16.16,0,0,1-.38,3.46L393.48,487A32,32,0,0,1,362.28,512H149.73A32,32,0,0,1,118.48,487L64.38,243.48A16.18,16.18,0,0,1,64,240Z\"]]\n};\nvar faFrog = {\n prefix: 'fad',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", [\"M576 464a16 16 0 0 1-16 16h-90.38L351.09 354.09c5.07-54.15-29.93-85.06-40.8-93.21a104.78 104.78 0 0 0-125.13 0L150.38 287a16 16 0 0 0 19.22 25.6l32.76-24.6c20.69-15.53 48.35-20.81 72.24-10.88 44.06 18.32 57.85 70.37 33.71 106.6L272.51 432H352a32 32 0 0 1 32 32 16 16 0 0 1-16 16H64c-34.92 0-63.89-28-64-63-.5-166.8 126.69-303.9 289.33-319.45-.21 1.15-.4 2.32-.56 3.49a82.14 82.14 0 0 0-.77 11c0 47.54 39.29 80 80 80 46 0 80-37.61 80-80a81.4 81.4 0 0 0-1.34-14.53c3 1 59.41 19.62 98.86 41.23a58.22 58.22 0 0 1 .77 102l-154.44 86.61L490.37 432H544a32 32 0 0 1 32 32z\", \"M368 32a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 48a32 32 0 0 1 32 32h-64a32 32 0 0 1 32-32z\"]]\n};\nvar faFrostyHead = {\n prefix: 'fad',\n iconName: 'frosty-head',\n icon: [384, 512, [], \"f79b\", [\"M357 329.4a165 165 0 0 0-13.7-41.4H40.4A169.38 169.38 0 0 0 24 360.9c0 59.9 31.3 112.1 78.2 142 10.2 6.5 22.5 9.1 34.6 9.1h109.6a71.86 71.86 0 0 0 41.1-13c51.4-35.8 82.2-99.4 69.5-169.6zm-226.3 33.3a21.3 21.3 0 1 1 21.3-21.3 21.32 21.32 0 0 1-21.3 21.3zM192 464s-32-46.3-32-64a32 32 0 0 1 64 0c0 17.7-32 64-32 64zm61.3-101.3a21.3 21.3 0 1 1 21.3-21.3 21.32 21.32 0 0 1-21.3 21.3z\", \"M368 240H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM320 16a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v192h256z\"]]\n};\nvar faFrown = {\n prefix: 'fad',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm80,168a32,32,0,1,1-32,32A32,32,0,0,1,328,176Zm-160,0a32,32,0,1,1-32,32A32,32,0,0,1,168,176ZM338.2,394.2a117.5,117.5,0,0,0-180.4,0c-13.5,16.3-38.1-4.2-24.6-20.5a149.34,149.34,0,0,1,229.5.1C376.3,390,351.7,410.5,338.2,394.2Z\", \"M168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Zm160,0a32,32,0,1,0,32,32A32,32,0,0,0,328,176Z\"]]\n};\nvar faFrownOpen = {\n prefix: 'fad',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM136,208a32,32,0,1,1,32,32A32,32,0,0,1,136,208ZM323.3,391.3C292.1,381.7,263.9,376,248,376s-44.1,5.7-75.3,15.3a16,16,0,0,1-20.5-18.1c7-40,60.1-61.2,95.8-61.2s88.8,21.3,95.8,61.2a16,16,0,0,1-20.5,18.1ZM328,240a32,32,0,1,1,32-32A32,32,0,0,1,328,240Z\", \"M168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Zm160,0a32,32,0,1,0,32,32A32,32,0,0,0,328,176Z\"]]\n};\nvar faFunction = {\n prefix: 'fad',\n iconName: 'function',\n icon: [640, 512, [], \"f661\", [\"M334.59 152.91l-24.69-21c-7-6-17.83-5.09-23.38 2.23a307.46 307.46 0 0 0 0 371.68c5.56 7.32 16.38 8.18 23.38 2.23l24.69-21c6.59-5.61 7.31-15.2 2.15-22.14a242.8 242.8 0 0 1 0-289.89c5.17-6.91 4.45-16.51-2.15-22.11zm242.89-18.75c-5.56-7.32-16.38-8.18-23.38-2.23l-24.69 21c-6.59 5.61-7.31 15.2-2.15 22.14a242.82 242.82 0 0 1 0 289.9c-5.17 6.94-4.45 16.54 2.15 22.14l24.69 21c7 5.95 17.83 5.09 23.38-2.23a307.48 307.48 0 0 0 0-371.69z\", \"M477.25 320l46.06-46.06a16 16 0 0 0 0-22.63l-22.62-22.62a16 16 0 0 0-22.63 0L432 274.75l-46.06-46.06a16 16 0 0 0-22.63 0l-22.62 22.62a16 16 0 0 0 0 22.63L386.75 320l-46.06 46.06a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0L432 365.25l46.06 46.06a16 16 0 0 0 22.63 0l22.62-22.62a16 16 0 0 0 0-22.63zM208 0h-48A104 104 0 0 0 56 104v64H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h40v128a24.07 24.07 0 0 1-24 24H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h16a104 104 0 0 0 104-104V248h40a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-40v-64a24.07 24.07 0 0 1 24-24h48a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16z\"]]\n};\nvar faFunnelDollar = {\n prefix: 'fad',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", [\"M480 192a160 160 0 1 0 160 160 160 160 0 0 0-160-160zm16 239.88V448a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16.29a57.26 57.26 0 0 1-31.37-11.35 8 8 0 0 1-.57-12.14L443.81 397a8.21 8.21 0 0 1 10.13-.73 24.08 24.08 0 0 0 12.82 3.73h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16.29a57.18 57.18 0 0 1 31.37 11.35 8 8 0 0 1 .57 12.14L516.18 307a8.21 8.21 0 0 1-10.13.73 24 24 0 0 0-12.82-3.73h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\", \"M507.09 343.42l-45-13.5c-5.16-1.54-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11a24 24 0 0 1 12.82 3.72 8.21 8.21 0 0 0 10.13-.73l11.75-11.21a8 8 0 0 0-.57-12.14A57.18 57.18 0 0 0 496 272.29V256a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 20 13 37.81 31.58 43.39l45 13.5c5.16 1.54 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.12a24.08 24.08 0 0 1-12.82-3.72 8.21 8.21 0 0 0-10.13.73l-11.75 11.21a8 8 0 0 0 .57 12.14A57.26 57.26 0 0 0 464 431.71V448a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-16.12c23.63-.63 42.67-20.54 42.67-45.07 0-19.97-12.99-37.81-31.58-43.39zM288 352c0-89.79 62.05-165.17 145.46-186.06l101.2-111.87c20-20 5.82-54.07-22.4-54.07H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92a40 40 0 0 0 16 32l80 60c20.86 15.64 48.47 7 59.22-13.57A191.33 191.33 0 0 1 288 352z\"]]\n};\nvar faFutbol = {\n prefix: 'fad',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", [\"M452 104v-.05.05zm51.88 159.77A246.7 246.7 0 0 1 461 395.61l-7.15-31.45-109.5 13.43-46.69 100.1L325 494l.06.23a248.87 248.87 0 0 1-138.06 0V494l27.37-16.28-46.69-100.1-109.52-13.46L51 395.61a246.7 246.7 0 0 1-42.87-131.8l24.17 21.08 80.61-75.24-20.83-108.5L60 104a248.5 248.5 0 0 1 111.65-81.26l.35.26-12.4 29.11 96.4 53.41 96.4-53.41-12.65-29.6A248.6 248.6 0 0 1 452 104l-31.7-2.84-21.16 108.5 80.62 75.24zM356.32 228L256 155.33 155.68 228l38.45 117.44h124.09z\", \"M352.4 52.11l-12.65-29.6a249 249 0 0 0-167.5 0l-12.65 29.6 96.4 53.41zm-34.18 293.37L356.32 228 256 155.33 155.68 228l38.45 117.44zM92.08 101.15L60 104A246.92 246.92 0 0 0 8 256c0 2.61.05 5.21.13 7.81l24.17 21.08 80.61-75.24zm252.26 276.44l-46.69 100.1 27.69 16.47A248.45 248.45 0 0 0 461 395.61l-7.15-31.45zM58.16 364.16L51 395.61a248.45 248.45 0 0 0 135.65 98.55l27.69-16.47-46.69-100.1zM452 104l-31.7-2.84-21.16 108.5 80.62 75.24 24.16-21.08c.08-2.6.13-5.2.13-7.81A246.92 246.92 0 0 0 452 104z\"]]\n};\nvar faGalaxy = {\n prefix: 'fad',\n iconName: 'galaxy',\n icon: [512, 512, [], \"e008\", [\"M152.411,380.041A184.06545,184.06545,0,0,1,107.048,364.22461a143.563,143.563,0,0,1-74.11661-8.61719C19.48622,350.21875,7.666,366.28516,16.83,377.502a196.56317,196.56317,0,0,0,49.18712,42.88282c48.33946,29.86718,108.28821,35.41211,161.18624,17.46484a143.15222,143.15222,0,0,0,27.0076-64.42578A194.37634,194.37634,0,0,1,152.411,380.041ZM138.579,254.21289a194.34925,194.34925,0,0,1-6.61713-101.80273,184.10142,184.10142,0,0,1,15.81237-45.36133,143.64822,143.64822,0,0,1,8.61712-74.11914C161.782,19.48828,145.7118,7.66211,134.497,16.82422A196.41386,196.41386,0,0,0,91.61847,66.01367c-29.86695,48.3418-35.41379,108.28906-17.46861,161.1875A143.19192,143.19192,0,0,0,138.579,254.21289ZM373.421,257.78711a194.34925,194.34925,0,0,1,6.61713,101.80273,184.10142,184.10142,0,0,1-15.81237,45.36133,143.64822,143.64822,0,0,1-8.61712,74.11914c-5.39058,13.44141,10.6796,25.26758,21.89436,16.10547a196.48243,196.48243,0,0,0,42.87857-49.18945c29.86695-48.3418,35.41379-108.28906,17.46861-161.1875A143.19192,143.19192,0,0,0,373.421,257.78711ZM495.17,134.49805a196.53038,196.53038,0,0,0-49.18712-42.88477C397.64343,61.74805,337.69468,56.20312,284.79665,74.14844a143.15047,143.15047,0,0,0-27.0076,64.42773,194.37634,194.37634,0,0,1,101.8-6.61719A184.11687,184.11687,0,0,1,404.952,147.77344a143.563,143.563,0,0,1,74.11661,8.61718C492.51378,161.78125,504.334,145.71289,495.17,134.49805Z\", \"M506.57617,274.10352C489.77943,202.99805,431.23691,146.26562,359.589,131.959a194.37634,194.37634,0,0,0-101.8,6.61719A143.72851,143.72851,0,0,1,343.3001,27.832c13.3163-5.69531,10.31633-25.418-4.09372-26.86914a196.57346,196.57346,0,0,0-65.105,4.459c-71.101,16.79687-127.83494,75.33984-142.13951,146.98828A194.34925,194.34925,0,0,0,138.579,254.21289,143.73791,143.73791,0,0,1,27.83381,168.69922C22.13854,155.38477,2.416,158.38281.96293,172.793a196.51667,196.51667,0,0,0,4.4609,65.10351C22.22057,309.002,80.76309,365.73438,152.411,380.041a194.37634,194.37634,0,0,0,101.8-6.61719A143.72851,143.72851,0,0,1,168.6999,484.168c-13.3163,5.69531-10.31633,25.418,4.09372,26.86914a196.57346,196.57346,0,0,0,65.105-4.459c71.101-16.79687,127.83494-75.33984,142.13951-146.98828A194.34925,194.34925,0,0,0,373.421,257.78711a143.73791,143.73791,0,0,1,110.74523,85.51367c5.69527,13.31445,25.41777,10.31641,26.87088-4.09375A196.51667,196.51667,0,0,0,506.57617,274.10352ZM256,304a48,48,0,1,1,47.99963-48A48.00094,48.00094,0,0,1,256,304Z\"]]\n};\nvar faGameBoard = {\n prefix: 'fad',\n iconName: 'game-board',\n icon: [512, 512, [], \"f867\", [\"M480 0H32A32 32 0 0 0 0 32v448a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm-31.8 448H64v-96h.2v-96H64v-96h.2V64h384z\", \"M256 256v-96h-95.9V64.1h-96v96H160V256H64.2v96h96v-96zm0 96h-95.8v96h96v-96H352v-96h-96zm96.1 96.1h96v-96h-96zm.1-288.1v96h96v-96zm-96-96v96h96V64z\"]]\n};\nvar faGameBoardAlt = {\n prefix: 'fad',\n iconName: 'game-board-alt',\n icon: [512, 512, [], \"f868\", [\"M480 0H32A32 32 0 0 0 0 32v448a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm-31.8 448h-384V64h384z\", \"M256 64v192h192V64zM64 448h192V256H64z\"]]\n};\nvar faGameConsoleHandheld = {\n prefix: 'fad',\n iconName: 'game-console-handheld',\n icon: [384, 512, [], \"f8bb\", [\"M352 0H32A32 32 0 0 0 0 32v448a32 32 0 0 0 32 32h256a96 96 0 0 0 96-96V32a32 32 0 0 0-32-32zM160 344a8 8 0 0 1-8 8h-24v24a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-24H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h24v-24a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v24h24a8 8 0 0 1 8 8zm72 40a24 24 0 1 1 24-24 24 24 0 0 1-24 24zM112 224a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v112a32 32 0 0 1-32 32zm184 112a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M112 224a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v112a32 32 0 0 1-32 32z\"]]\n};\nvar faGamepad = {\n prefix: 'fad',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", [\"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\", \"M248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12z\"]]\n};\nvar faGamepadAlt = {\n prefix: 'fad',\n iconName: 'gamepad-alt',\n icon: [640, 512, [], \"f8bc\", [\"M638.59 368.22l-33.37-211.59c-8.86-50.26-48.4-90.77-100.66-103.13h-.07a803.19 803.19 0 0 0-369 0C83.17 65.86 43.64 106.36 34.78 156.63L1.41 368.22C-8.9 426.73 38.8 480 101.51 480c49.67 0 93.77-30.07 109.48-74.64l7.52-21.36h203l7.49 21.36C444.72 449.93 488.82 480 538.49 480c62.71 0 110.41-53.27 100.1-111.78zM280 236a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52h-52a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm152 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\", \"M280 236a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52h-52a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12z\"]]\n};\nvar faGarage = {\n prefix: 'fad',\n iconName: 'garage',\n icon: [640, 512, [], \"e009\", [\"M128,512H512V352H128.11Zm144-96h96a16,16,0,0,1,0,32H272a16,16,0,0,1,0-32Zm240-192L128,224v96H511.52Z\", \"M640,161.28V496a16,16,0,0,1-16,16H560a16,16,0,0,1-16-16V224c0-17.59-14.59-32-32.59-32H128.59c-18,0-32.59,14.41-32.59,32V496a16,16,0,0,1-16,16H16A16,16,0,0,1,0,496V161.28A48.14,48.14,0,0,1,29.5,117l272-113.3A57.4,57.4,0,0,1,320,0a57.4,57.4,0,0,1,18.46,3.67L610.5,117A48.14,48.14,0,0,1,640,161.28Z\"]]\n};\nvar faGarageCar = {\n prefix: 'fad',\n iconName: 'garage-car',\n icon: [640, 512, [], \"e00a\", [\"M415.14,352H224.86l12-47.95A21.15,21.15,0,0,1,257.39,288H382.61a21.15,21.15,0,0,1,20.55,16.05Z\", \"M610.5,117,338.41,3.67A57.4,57.4,0,0,0,320,0,57.4,57.4,0,0,0,301.5,3.67L29.5,117A48.14,48.14,0,0,0,0,161.28V496a16,16,0,0,0,16,16H80a16,16,0,0,0,16-16V224c0-17.59,14.59-32,32.59-32H511.41c18,0,32.59,14.41,32.59,32V496a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V161.28A48.14,48.14,0,0,0,610.5,117Zm-145,238.42-15.75-63A69.09,69.09,0,0,0,382.61,240H257.39a69.09,69.09,0,0,0-67.11,52.39l-15.75,63A47.93,47.93,0,0,0,144,400v32c0,11.71,6.61,21.52,16,27.1V488a24,24,0,0,0,24,24h32a24,24,0,0,0,24-24V464H400v24a24,24,0,0,0,24,24h32a24,24,0,0,0,24-24V459.1c9.39-5.58,16-15.39,16-27.1V400A47.93,47.93,0,0,0,465.47,355.39ZM236.84,304.05A21.15,21.15,0,0,1,257.39,288H382.61a21.15,21.15,0,0,1,20.55,16.05l12,47.95H224.86ZM208,431.85c-14.4,0-24-9.56-24-23.92S193.6,384,208,384s36,21.53,36,35.88S222.4,431.85,208,431.85Zm224,0c-14.4,0-36,2.39-36-12S417.6,384,432,384s24,9.58,24,23.93S446.4,431.85,432,431.85Z\"]]\n};\nvar faGarageOpen = {\n prefix: 'fad',\n iconName: 'garage-open',\n icon: [640, 512, [], \"e00b\", [\"M128.65,224s-.65,0-.65,0l0,64H511.47l.53-64Zm104.21,96-8,32H415.14l-8-32Z\", \"M610.5,117,338.41,3.67A57.4,57.4,0,0,0,320,0,57.4,57.4,0,0,0,301.5,3.67L29.5,117A48.14,48.14,0,0,0,0,161.28V496a16,16,0,0,0,16,16H80a16,16,0,0,0,16-16V224c0-17.59,14.59-32,32.59-32H511.41c18,0,32.59,14.41,32.59,32V496a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V161.28A48.14,48.14,0,0,0,610.5,117Zm-145,238.42L456.62,320H407.14l8,32H224.86l8-32H183.38l-8.85,35.39A47.93,47.93,0,0,0,144,400v32c0,11.71,6.61,21.52,16,27.1V488a24,24,0,0,0,24,24h32a24,24,0,0,0,24-24V464H400v24a24,24,0,0,0,24,24h32a24,24,0,0,0,24-24V459.1c9.39-5.58,16-15.39,16-27.1V400A47.93,47.93,0,0,0,465.47,355.39ZM208,431.85c-14.4,0-24-9.56-24-23.92S193.6,384,208,384s36,21.53,36,35.88S222.4,431.85,208,431.85Zm224,0c-14.4,0-36,2.39-36-12S417.6,384,432,384s24,9.58,24,23.93S446.4,431.85,432,431.85Z\"]]\n};\nvar faGasPump = {\n prefix: 'fad',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", [\"M256 0H96a64.06 64.06 0 0 0-64 64v384h288V64a64.06 64.06 0 0 0-64-64zm0 192H96V64h160z\", \"M256 64H96v128h160zm80 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm157.2-340.7l-81-81a16.06 16.06 0 0 0-22.6 0l-11.3 11.3a16.06 16.06 0 0 0 0 22.6L416 97.9V160a55.9 55.9 0 0 0 48 55.2V376a24 24 0 0 1-48 0v-32a88 88 0 0 0-88-88h-8v48h8a40 40 0 0 1 40 40v27.8c0 37.7 27 72 64.5 75.9A72.2 72.2 0 0 0 512 376V152.6a64.15 64.15 0 0 0-18.8-45.3z\"]]\n};\nvar faGasPumpSlash = {\n prefix: 'fad',\n iconName: 'gas-pump-slash',\n icon: [640, 512, [], \"f5f4\", [\"M442.3 60.2a16.06 16.06 0 0 1 0-22.6l11.3-11.3a16.06 16.06 0 0 1 22.6 0l81 81a64.12 64.12 0 0 1 18.8 45.3V376a71.45 71.45 0 0 1-7.39 31.7L528 376.3V215.2a55.91 55.91 0 0 1-48-55.2V97.9zM370 416L96 204.21V416zM160 91.89V64h160v128h-30.47l190.33 147.11A88 88 0 0 0 392 256h-8V64a64.06 64.06 0 0 0-64-64H160a64.1 64.1 0 0 0-61 44.72zM400 448H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M636.64 480.55L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45z\"]]\n};\nvar faGavel = {\n prefix: 'fad',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", [\"M442.75 182.39L329.61 295.53 290 255.93l-81 81L175 303l81-81-39.6-39.6L329.61 69.26z\", \"M169 297.37a31.9 31.9 0 0 0-45.16 0L9.35 412.12a32 32 0 0 0 0 45.25l45.17 45.26a31.91 31.91 0 0 0 45.17 0l114.52-114.75a32 32 0 0 0 0-45.25zm7.49-109.32a23.92 23.92 0 0 0 33.87 0L334.61 63.6a24 24 0 0 0 0-33.94L312 7a23.93 23.93 0 0 0-33.88 0L153.94 131.48a24 24 0 0 0 0 33.94zM504 199.36l-22.6-22.62a23.9 23.9 0 0 0-33.87 0L323.32 301.19a24 24 0 0 0 0 33.94l22.58 22.62a23.91 23.91 0 0 0 33.88 0L504 233.3a24 24 0 0 0 0-33.94z\"]]\n};\nvar faGem = {\n prefix: 'fad',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", [\"M100.7 192H0l218.7 255a3 3 0 0 0 5-3.3zm374.6 0l-123 251.7a3 3 0 0 0 5 3.2L576 192zm-327.1 0l137.1 318.2a3 3 0 0 0 5.5 0l137-318.2z\", \"M90.5 0L0 160h101.1L170.3 0zm395 0h-79.8l69.2 160H576zm-267 0l-69.2 160h277.4L357.5 0z\"]]\n};\nvar faGenderless = {\n prefix: 'fad',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", [\"M144,336a80,80,0,1,1,80-80A80,80,0,0,1,144,336Z\", \"M144,112A144,144,0,1,0,288,256,144,144,0,0,0,144,112Zm0,224a80,80,0,1,1,80-80A80,80,0,0,1,144,336Z\"]]\n};\nvar faGhost = {\n prefix: 'fad',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", [\"M186.1.09C81 3.24 0 94.92 0 200.05V464a16 16 0 0 0 27.31 11.31l24.92-18.53A16 16 0 0 1 73.74 459l43 48.35a16 16 0 0 0 22.63 0L180 461.46a16 16 0 0 1 23.92 0l40.72 45.85a16 16 0 0 0 22.63 0L310.26 459a16 16 0 0 1 21.51-2.21l24.92 18.53C366.77 485.36 384 478.22 384 464V192C384 84 294.83-3.17 186.1.09zM128 224a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M128 160a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm128 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faGift = {\n prefix: 'fad',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", [\"M224 320v160H64a32 32 0 0 1-32-32V320zm0-160H32a32 32 0 0 0-32 32v80a16 16 0 0 0 16 16h208zm256 0H288v128h208a16 16 0 0 0 16-16v-80a32 32 0 0 0-32-32zM288 480h160a32 32 0 0 0 32-32V320H288z\", \"M224 480h64V320h-64zM359.54 32c-41.82 0-68.86 21.3-103.54 68.3-34.68-47-61.72-68.3-103.54-68.3C103.71 32 64 71.5 64 120a85.65 85.65 0 0 0 10.15 40h78.21a40 40 0 1 1 0-80c20 0 34.78 3.3 86.55 80H224v128h64V160h-15c51.67-76.5 66-80 86.55-80a40 40 0 1 1 0 80h78.31A86.86 86.86 0 0 0 448 120c0-48.5-39.71-88-88.46-88z\"]]\n};\nvar faGiftCard = {\n prefix: 'fad',\n iconName: 'gift-card',\n icon: [576, 512, [], \"f663\", [\"M0 416h576v48a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48zm528-288h-57.66a88.38 88.38 0 0 1-78.61 48h-48.48l62.41 51.71a16 16 0 0 1 0 22.63l-11.31 11.31a16 16 0 0 1-22.63 0L288 188.07l-83.73 73.59a16 16 0 0 1-22.63 0l-11.31-11.31a16 16 0 0 1 0-22.63L232.75 176h-48.48a88.38 88.38 0 0 1-78.61-48H48a48 48 0 0 0-48 48v144h576V176a48 48 0 0 0-48-48z\", \"M0 320v96h576v-96zm184.27-144h48.48l-62.41 51.72a16 16 0 0 0 0 22.63l11.31 11.31a16 16 0 0 0 22.63 0L288 188.07l83.71 73.58a16 16 0 0 0 22.63 0l11.31-11.31a16 16 0 0 0 0-22.63L343.25 176h48.48C440.4 176 480 136.52 480 88S440.4 0 391.73 0c-17.4 0-38.41 2.65-62.2 22.31C317.35 32.37 304.27 47 288 68.89c-16.32-22-29.51-36.61-41.87-46.75C222.37 2.63 201.52 0 184.27 0 135.6 0 96 39.48 96 88s39.6 88 88.27 88zM391.73 48a40 40 0 1 1 0 80h-86.67c51.74-76.5 66.14-80 86.67-80zm-207.46 0c20 0 34.83 3.3 86.67 80h-86.67a40 40 0 1 1 0-80z\"]]\n};\nvar faGifts = {\n prefix: 'fad',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", [\"M27 51.72l9.3-13A16 16 0 0 1 58.6 35l32.1 22.8-11.5-30.58a15.89 15.89 0 0 1 9.3-20.6l15-5.6a16 16 0 0 1 20.6 9.4l19.9 53.1 19.9-53a16 16 0 0 1 20.6-9.4l15 5.6a16 16 0 0 1 9.4 20.6l-11.5 30.6 32-22.9a15.9 15.9 0 0 1 22.3 3.7l9.3 13A15.9 15.9 0 0 1 257.3 74l-30.67 22H61.37L30.7 74A16 16 0 0 1 27 51.72zM224 256v88h184v-88h-65.88a68.15 68.15 0 0 1-44.4-16.33h-.05l-.06-.06-.2-.17-.2-.18A75.7 75.7 0 0 1 284 224h-28a32 32 0 0 0-32 32zm232 256h152a32 32 0 0 0 32-32v-88H456zm152-288h-28a75.7 75.7 0 0 1-13.21 15.18l-.2.18-.2.17-.07.06h-.05A68.15 68.15 0 0 1 521.88 256H456v88h184v-88a32 32 0 0 0-32-32zM224 392v88a32 32 0 0 0 32 32h152V392z\", \"M240.6 194.12c1.9-30.8 17.3-61.2 44-79.8A31.71 31.71 0 0 0 256 96H32a32 32 0 0 0-32 32v352a32 32 0 0 0 32 32h168.9a63.54 63.54 0 0 1-8.9-32V256a64 64 0 0 1 48.6-61.88zM456 344v-88h65.88a68.15 68.15 0 0 0 44.4-16.33h.05l.07-.06.2-.17.2-.18a73.09 73.09 0 0 0 25.2-55.55A74.58 74.58 0 0 0 576.29 138a69.14 69.14 0 0 0-24.07-19.58A72.41 72.41 0 0 0 519.9 111c-29.34 0-50.57 18.68-63.22 34.35C445.18 159.62 437 175.6 432 187c-5-11.46-13.23-27.52-24.75-41.76-12.62-15.6-33.82-34.2-63.15-34.2a72.41 72.41 0 0 0-32.32 7.35A69.14 69.14 0 0 0 287.71 138 74.58 74.58 0 0 0 272 183.71a73.09 73.09 0 0 0 25.16 55.47l.2.18.2.17.06.06h.05A68.15 68.15 0 0 0 342.12 256H408v88H224v48h184v120h48V392h184v-48zm63.9-184.65c17.7 0 24.1 14.6 24.1 24.36a24.78 24.78 0 0 1-8.8 19.13l-.06.06a20.35 20.35 0 0 1-13.26 4.77H475.4c8.8-20.43 25.8-48.32 44.5-48.32zm-177.78 48.32a20.35 20.35 0 0 1-13.26-4.77l-.06-.06a24.78 24.78 0 0 1-8.8-19.13c0-9.76 6.4-24.36 24.1-24.36 18.7 0 35.6 27.58 44.5 48.32z\"]]\n};\nvar faGingerbreadMan = {\n prefix: 'fad',\n iconName: 'gingerbread-man',\n icon: [416, 512, [], \"f79d\", [\"M322.21 304H352a64.07 64.07 0 0 0 63.11-74.8c-5.1-31.5-34.71-53.2-66.51-53.2h-65.89a7.86 7.86 0 0 1-5.5-13.5c20.8-21.6 31.6-52.79 24.9-86.29-7.5-37.5-38.5-67.8-76-74.6C165-9.38 112 37.12 112 96a95.56 95.56 0 0 0 26.7 66.29c5 5.2 1.7 13.7-5.5 13.7H67.38C35.48 176 6 197.81.87 229.21A64.07 64.07 0 0 0 64 304h29.79a18.2 18.2 0 0 1 18.2 18.2 18.43 18.43 0 0 1-4.2 11.7l-58.21 69.8c-23.3 27.9-21.6 72.4 7.1 94.7A63 63 0 0 0 96 512a63.92 63.92 0 0 0 49.2-23l38.31-45.9a32 32 0 0 1 49.2 0L271 489a64.06 64.06 0 0 0 88.51 9.5c28.7-22.4 30.4-66.8 7.1-94.7l-58.2-69.8a18.43 18.43 0 0 1-4.2-11.7 18 18 0 0 1 18-18.3zM176 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm32 272a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm32-144a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M208 240a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm0 32a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0 64a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faGlass = {\n prefix: 'fad',\n iconName: 'glass',\n icon: [384, 512, [], \"f804\", [\"M93.8 448L73.22 160h237.55L290.2 448z\", \"M317.63 64L290.2 448H93.8L66.37 64h251.26M352 0H32A32 32 0 0 0 0 32c0 .67 0 1.33.06 2l32 448A32 32 0 0 0 64 512h256a32 32 0 0 0 31.94-30l32-448A32 32 0 0 0 354 .06c-.67 0-1.34-.06-2-.06z\"]]\n};\nvar faGlassChampagne = {\n prefix: 'fad',\n iconName: 'glass-champagne',\n icon: [256, 512, [], \"f79e\", [\"M64.44 221L78 128h100l13.59 93a55.77 55.77 0 0 1-10.26 39.82c-25.64 35.81-81.15 35.65-106.67 0A55.67 55.67 0 0 1 64.44 221z\", \"M216 464h-56V347.7c60.7-15.2 103.3-72 95-135.4L228 27.4A32.07 32.07 0 0 0 196.33 0H59.73A32.07 32.07 0 0 0 28 27.4L1 212.3c-8.3 63.4 34.3 120.2 95 135.4V464H40a40 40 0 0 0-40 40 8 8 0 0 0 8 8h240a8 8 0 0 0 8-8 40 40 0 0 0-40-40zM74.7 260.82A55.67 55.67 0 0 1 64.44 221L87.37 64h81.33l22.93 157a55.77 55.77 0 0 1-10.26 39.82c-25.64 35.81-81.15 35.65-106.67 0z\"]]\n};\nvar faGlassCheers = {\n prefix: 'fad',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", [\"M378.84 156.05l84.21-34.93 45.6 76a51.11 51.11 0 0 1 5.35 37.41c-9 39.24-56 59-90.43 37.72a51.21 51.21 0 0 1-22.77-30.13zm-252.68 78.48c9 39.24 56 59 90.42 37.72a51.18 51.18 0 0 0 22.78-30.13l22-86-84.23-34.94-45.57 76a51.15 51.15 0 0 0-5.4 37.35z\", \"M639.39 433.59a39.84 39.84 0 0 0-52.2-21.6l-22.09 9.2-38.7-101.88c47.89-35 64.79-100.29 34.5-152.78L474.3 16.05a32.1 32.1 0 0 0-40-13.59L320 49.85 205.71 2.46A31.71 31.71 0 0 0 193.46 0a32.05 32.05 0 0 0-27.75 16.05L79.12 166.53c-30.2 52.49-13.4 117.78 34.5 152.68l-38.7 101.88-22.1-9.2a39.84 39.84 0 0 0-52.2 21.6A8 8 0 0 0 4.92 444l162.29 67.39a8.13 8.13 0 0 0 3.1.62 7.88 7.88 0 0 0 7.3-4.92 40.08 40.08 0 0 0-21.61-52.3l-22.09-9.2L173.31 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.09 113.4-85.28L320 182.63 340.21 258c14 52.19 61.69 85.28 113.39 85.28 4.3 0 8.7-.8 13.1-1.3L506 445.59l-22.1 9.2a40 40 0 0 0-21.6 52.29 8 8 0 0 0 7.35 4.92 7.81 7.81 0 0 0 3.05-.62L635.09 444a8 8 0 0 0 4.3-10.41zm-400-191.47a51.18 51.18 0 0 1-22.78 30.13c-34.4 21.29-81.39 1.52-90.42-37.72a51.15 51.15 0 0 1 5.38-37.38l75-125 68.95 28.76zM514 234.53c-9 39.24-56 59-90.43 37.72a51.21 51.21 0 0 1-22.77-30.13l-36.04-141.18 68.94-28.76 74.95 125a51.11 51.11 0 0 1 5.35 37.35z\"]]\n};\nvar faGlassCitrus = {\n prefix: 'fad',\n iconName: 'glass-citrus',\n icon: [512, 512, [], \"f869\", [\"M512 144c0 78.32-62.61 141.73-140.48 143.64l4.85-48.49c49-4.31 87.63-45.08 87.63-95.15a96.11 96.11 0 0 0-96-96c-35.37 0-66 19.45-82.64 48h-52.54C252.65 40.2 305.39 0 368 0a144 144 0 0 1 144 144zM256 448l20.57-192H73.23L93.8 448z\", \"M283.43 192L256 448H93.8L66.37 192h217.06m34.37-64H32a32 32 0 0 0-32 32c0 .67 0 1.33.06 2l32 320A32 32 0 0 0 64 512h221.8a32 32 0 0 0 31.94-30l32-320a32 32 0 0 0-29.93-33.94c-.68 0-1.35-.06-2.01-.06z\"]]\n};\nvar faGlassMartini = {\n prefix: 'fad',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", [\"M405.12 64L256 213.13 106.84 64z\", \"M502 57.6C523.28 36.34 508.23 0 478.18 0H33.78C3.73 0-11.32 36.34 10 57.6l214 214V464h-56a40 40 0 0 0-40 40 8 8 0 0 0 8 8h240a8 8 0 0 0 8-8 40 40 0 0 0-40-40h-56V271.64zM256 213.13L106.84 64h298.28z\"]]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fad',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", [\"M256 213.13L154.84 112h202.27z\", \"M405.12 64L256 213.13 106.84 64h298.28m73.06-64H33.78C3.73 0-11.32 36.34 10 57.6l214 214V464h-56a40 40 0 0 0-40 40 8 8 0 0 0 8 8h240a8 8 0 0 0 8-8 40 40 0 0 0-40-40h-56V271.64l214-214C523.28 36.34 508.23 0 478.18 0z\"]]\n};\nvar faGlassWhiskey = {\n prefix: 'fad',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", [\"M119.53 415.15L89.52 224h333.15l-29.81 191.22-.07.43v.31H119.73l-.06-.4z\", \"M442.63 96l-49.77 319.22-.07.43v.31H119.73l-.06-.4-.07-.44L69.42 96h373.21M480 32H32A32 32 0 0 0 .32 68.51l56 356.58A64 64 0 0 0 119.71 480h273a64.07 64.07 0 0 0 63.4-54.91l55.57-356.58A32 32 0 0 0 480 32z\"]]\n};\nvar faGlassWhiskeyRocks = {\n prefix: 'fad',\n iconName: 'glass-whiskey-rocks',\n icon: [512, 512, [], \"f7a1\", [\"M119.6 415.59l.06.4h273.06v-.31l.07-.43L427.66 192H84.49l35 223.15zM327.43 233.7l46.87 46.89a33.19 33.19 0 0 1 0 46.89l-46.87 46.89a33.14 33.14 0 0 1-46.86 0l-46.87-46.89a33.19 33.19 0 0 1 0-46.89l46.87-46.89a33.15 33.15 0 0 1 46.86 0zM128 256a32 32 0 0 1 32-32h64a31.86 31.86 0 0 1 16.47 4.55L211.07 258a65.24 65.24 0 0 0 0 92.13L213 352h-53a32 32 0 0 1-32-32z\", \"M442.63 96l-49.77 319.22-.07.43v.31H119.73l-.06-.4-.07-.44L69.42 96h373.21M480 32H32A32 32 0 0 0 .32 68.51l56 356.58A64 64 0 0 0 119.71 480h273a64.07 64.07 0 0 0 63.4-54.91l55.57-356.58A32 32 0 0 0 480 32z\"]]\n};\nvar faGlasses = {\n prefix: 'fad',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", [\"M64 328.58v37.54C64 393.63 87 416 115.2 416h37.12c26.66 0 49.09-20.3 51.06-46.21l3.13-41.22a196.2 196.2 0 0 0-69.93-12.92A217.08 217.08 0 0 0 64 328.58zm448 37.55v-37.54a217.07 217.07 0 0 0-72.55-12.93 196.27 196.27 0 0 0-69.95 12.92l3.13 41.22c2 25.91 24.39 46.21 51.06 46.21h37.11C489 416 512 393.64 512 366.13z\", \"M574.1 280.38L528.75 98.67a87.94 87.94 0 0 0-113.19-62.14l-15.25 5.08a16 16 0 0 0-10.12 20.24L395.25 77a16 16 0 0 0 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73a39.62 39.62 0 0 1 20.37 25.82l38.46 153.82a276.75 276.75 0 0 0-81.2-12.46c-34.77 0-74 7-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75a276.76 276.76 0 0 0-81.21 12.46l38.46-153.8a39.59 39.59 0 0 1 20.38-25.81c10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39A16 16 0 0 0 180.74 77l5.06-15.18a16 16 0 0 0-10.12-20.22l-15.25-5.08A87.95 87.95 0 0 0 47.24 98.65L1.9 280.38A64.16 64.16 0 0 0 0 295.87v70.25C0 429 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.07 363.4 480 423.68 480h37.12c63.62 0 115.2-51 115.2-113.87v-70.25a64.24 64.24 0 0 0-1.9-15.5zM203.38 369.8c-2 25.91-24.4 46.21-51.06 46.21H115.2C87 416 64 393.63 64 366.12v-37.54a217.08 217.08 0 0 1 72.58-12.92 196.2 196.2 0 0 1 69.93 12.92zM460.8 416h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22a196.27 196.27 0 0 1 69.95-12.92A217.07 217.07 0 0 1 512 328.59v37.54c0 27.51-23 49.87-51.2 49.87z\"]]\n};\nvar faGlassesAlt = {\n prefix: 'fad',\n iconName: 'glasses-alt',\n icon: [576, 512, [], \"f5f5\", [\"M136 272a72 72 0 1 0 72 72 72.08 72.08 0 0 0-72-72zm304 0a72 72 0 1 0 72 72 72.08 72.08 0 0 0-72-72z\", \"M560.51 225.9L528.75 98.64C522.05 71.78 495 32 443.33 32c-15.63 0-23 2.94-43 9.6a16 16 0 0 0-10.12 20.24L395.25 77a16 16 0 0 0 15.18 11c3.54 0 4.82-.74 18.23-5.21 26.07-8.68 48.2 6.13 53.53 27.54L511.86 229A134.81 134.81 0 0 0 440 208c-55.09 0-102.27 32.91-123.65 80h-56.7c-21.38-47.09-68.56-80-123.65-80a134.89 134.89 0 0 0-71.86 21l29.67-118.72c5.32-21.41 27.46-36.22 53.53-27.54C160.76 87.21 162 88 165.57 88a16 16 0 0 0 15.18-11l5.06-15.18a16 16 0 0 0-10.12-20.24c-20-6.65-27.39-9.59-43-9.59C81 32 54 71.78 47.25 98.64L15.49 225.9C2.16 279.34 0 300.12 0 344a136 136 0 0 0 136 136c72.37 0 131-56.69 135.19-128h33.61c4.2 71.31 62.82 128 135.2 128a136 136 0 0 0 136-136c0-43.88-2.16-64.66-15.49-118.1zM136 416a72 72 0 1 1 72-72 72.08 72.08 0 0 1-72 72zm304 0a72 72 0 1 1 72-72 72.08 72.08 0 0 1-72 72z\"]]\n};\nvar faGlobe = {\n prefix: 'fad',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", [\"M340.45,320H155.55a579.08,579.08,0,0,1,0-128h184.9A575,575,0,0,1,344,256,575,575,0,0,1,340.45,320ZM160.2,160H335.8c-.41-2.31-.84-4.62-1.28-6.91-6-30.85-14.42-58.37-25.13-81.78C299.54,49.77,288,32.54,276.05,21.48,266.38,12.53,256.94,8,248,8s-18.38,4.53-28,13.48c-12,11.06-23.49,28.29-33.34,49.83C176,94.72,167.5,122.24,161.53,153.09,161,155.38,160.61,157.69,160.2,160ZM120,256a608,608,0,0,1,3.34-64H8.35a249.52,249.52,0,0,0,0,128h115A608,608,0,0,1,120,256Zm367.62-64h-115A608.06,608.06,0,0,1,376,256a608,608,0,0,1-3.34,64h115a249.52,249.52,0,0,0,0-128ZM476.7,160A248.62,248.62,0,0,0,315.58,17.32c24.13,33,42.89,83.15,52.75,142.68ZM315.58,494.68A248.59,248.59,0,0,0,476.71,352H368.33C358.47,411.53,339.71,461.68,315.58,494.68ZM335.8,352H160.2c.41,2.31.84,4.62,1.28,6.91,6,30.85,14.42,58.37,25.13,81.78,9.85,21.54,21.38,38.77,33.34,49.83,9.67,9,19.11,13.48,28.05,13.48s18.38-4.53,28.05-13.48c12-11.06,23.49-28.29,33.34-49.83,10.71-23.41,19.16-50.93,25.13-81.78C335,356.62,335.39,354.31,335.8,352ZM180.42,17.32A248.59,248.59,0,0,0,19.29,160H127.67C137.53,100.47,156.29,50.32,180.42,17.32ZM19.29,352A248.59,248.59,0,0,0,180.42,494.68c-24.13-33-42.89-83.15-52.75-142.68Z\", \"M376,256a608,608,0,0,0-3.34-64h115a245.72,245.72,0,0,0-10.92-32H368.33c-9.86-59.53-28.62-109.68-52.75-142.68A248.23,248.23,0,0,0,248,8c8.94,0,18.38,4.53,28.05,13.48,12,11.06,23.49,28.29,33.34,49.83,10.71,23.41,19.16,50.93,25.13,81.78.44,2.29.87,4.6,1.28,6.91H160.2c.41-2.31.84-4.62,1.28-6.91,6-30.85,14.42-58.37,25.13-81.78C196.46,49.77,208,32.54,220,21.48,229.62,12.53,239.06,8,248,8a248.23,248.23,0,0,0-67.58,9.32c-24.13,33-42.89,83.15-52.75,142.68H19.29A245.72,245.72,0,0,0,8.37,192h115a613.93,613.93,0,0,0,0,128H8.37a245.72,245.72,0,0,0,10.92,32H127.67c9.86,59.53,28.62,109.68,52.75,142.68A248.23,248.23,0,0,0,248,504c-8.94,0-18.38-4.53-28.05-13.48-12-11.06-23.49-28.29-33.34-49.83-10.71-23.41-19.16-50.93-25.13-81.78-.44-2.29-.87-4.6-1.28-6.91H335.8c-.41,2.31-.84,4.62-1.28,6.91-6,30.85-14.42,58.37-25.13,81.78-9.85,21.54-21.38,38.77-33.34,49.83-9.67,9-19.11,13.48-28.05,13.48a248.23,248.23,0,0,0,67.58-9.32c24.13-33,42.89-83.15,52.75-142.68H476.71a245.72,245.72,0,0,0,10.92-32h-115A605.37,605.37,0,0,0,376,256Zm-35.54,64H155.55a579.08,579.08,0,0,1,0-128h184.9A575,575,0,0,1,344,256a575,575,0,0,1-3.55,64Z\"]]\n};\nvar faGlobeAfrica = {\n prefix: 'fad',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", [\"M491.33,208H423.5A15.5,15.5,0,0,0,408,223.5h0v6.93a15.49,15.49,0,0,1-8.57,13.86L384,252a15.49,15.49,0,0,1-15.53-1L350.3,238.88a15.52,15.52,0,0,0-13.5-1.81l-2.65.88a15.47,15.47,0,0,0-9.83,19.56,15.83,15.83,0,0,0,1.83,3.74l13.24,19.86a15.49,15.49,0,0,0,12.89,6.9h8.21a15.5,15.5,0,0,1,15.5,15.5v11.34a15.52,15.52,0,0,1-3.1,9.3l-18.74,25a15.57,15.57,0,0,0-2.83,6.43L347,378.39a15.53,15.53,0,0,1-4.76,8.56,159.61,159.61,0,0,0-25,29.16l-13,19.55a27.77,27.77,0,0,1-47.91-3A78.82,78.82,0,0,1,248,397.39V367.5A15.5,15.5,0,0,0,232.5,352H206.62A54.63,54.63,0,0,1,152,297.37V283.31a54.65,54.65,0,0,1,21.85-43.7l27.58-20.69A54.6,54.6,0,0,1,234.2,208h.89a54.52,54.52,0,0,1,24.43,5.77l14.72,7.36a15.49,15.49,0,0,0,11.83.84l47.31-15.77a15.5,15.5,0,0,0-4.9-30.2H318.39a15.5,15.5,0,0,1-11-4.54l-6.92-6.92a15.5,15.5,0,0,0-11-4.54h-90A15.5,15.5,0,0,1,184,144.5v-4.4a15.52,15.52,0,0,1,11.74-15l14.45-3.61a15.53,15.53,0,0,0,9.14-6.44l8.08-12.11A15.47,15.47,0,0,1,240.3,96h24.21A15.5,15.5,0,0,0,280,80.49V10.05A249.89,249.89,0,0,0,248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256A249.51,249.51,0,0,0,491.33,208Z\", \"M423.5,208A15.5,15.5,0,0,0,408,223.5h0v6.93a15.49,15.49,0,0,1-8.57,13.86L384,252a15.49,15.49,0,0,1-15.53-1L350.3,238.88a15.52,15.52,0,0,0-13.5-1.81l-2.65.88a15.47,15.47,0,0,0-9.83,19.56,15.83,15.83,0,0,0,1.83,3.74l13.24,19.86a15.49,15.49,0,0,0,12.89,6.9h8.21a15.5,15.5,0,0,1,15.5,15.5v11.34a15.52,15.52,0,0,1-3.1,9.3l-18.74,25a15.57,15.57,0,0,0-2.83,6.43L347,378.39a15.53,15.53,0,0,1-4.76,8.56,159.61,159.61,0,0,0-25,29.16l-13,19.55a27.77,27.77,0,0,1-47.91-3A78.82,78.82,0,0,1,248,397.39V367.5A15.5,15.5,0,0,0,232.5,352H206.62A54.63,54.63,0,0,1,152,297.37V283.31a54.65,54.65,0,0,1,21.85-43.7l27.58-20.69A54.6,54.6,0,0,1,234.2,208h.89a54.52,54.52,0,0,1,24.43,5.77l14.72,7.36a15.49,15.49,0,0,0,11.83.84l47.31-15.77a15.5,15.5,0,0,0-4.9-30.2H318.39a15.5,15.5,0,0,1-11-4.54l-6.92-6.92a15.5,15.5,0,0,0-11-4.54h-90A15.5,15.5,0,0,1,184,144.5v-4.4a15.52,15.52,0,0,1,11.74-15l14.45-3.61a15.53,15.53,0,0,0,9.14-6.44l8.08-12.11A15.47,15.47,0,0,1,240.3,96h24.21A15.5,15.5,0,0,0,280,80.49V10.05C386,23.7,471,104.24,491.34,208Z\"]]\n};\nvar faGlobeAmericas = {\n prefix: 'fad',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", [\"M489.55,312.41C464,422.22,365.59,504,248,504,111,504,0,393,0,256A247,247,0,0,1,56,99v45.71a50,50,0,0,0,8.55,27.95c11.72,17.39,28.38,42.07,35.67,52.77a114.79,114.79,0,0,0,18.06,20.74l.8.72a144.26,144.26,0,0,0,31.65,21.75c14,7.05,34.44,18.16,48.81,26.11a31.9,31.9,0,0,1,16.46,28v32a32,32,0,0,0,9.37,22.63c15,15,24.32,38.63,22.63,51.25V457.7a21,21,0,0,0,23.49,20.85c1.75-.21,3.49-.44,5.23-.7a20.91,20.91,0,0,0,17.17-15.76L308,404.46c2-5.49,3.26-11.21,4.77-16.87A23.9,23.9,0,0,1,319,376.88c3.32-3.33,7.41-7.4,11.31-11.28a46.46,46.46,0,0,0,13.72-33A30.49,30.49,0,0,0,335.1,311l-13.71-13.67A32,32,0,0,0,298.76,288H232c-9.41-4.71-21.48-32-32-32a67.72,67.72,0,0,1-30.31-7.16l-11.08-5.54a12,12,0,0,1,1.56-22l31.17-10.39A16,16,0,0,1,206.9,214l9.28,8.06a8,8,0,0,0,5.24,2h5.64a8,8,0,0,0,7.15-11.58l-15.59-31.19A8,8,0,0,1,220.2,172l9.92-9.65A8,8,0,0,1,235.7,160h9a8,8,0,0,0,5.66-2.34l8-8a8,8,0,0,0,0-11.31l-4.69-4.69a8,8,0,0,1,0-11.31L264,112l4.69-4.68a16,16,0,0,0,0-22.63h0l-24.4-24.4a12.38,12.38,0,0,0-9.55-3.61c-2.53.17-5.05.38-7.58.65A12.41,12.41,0,0,0,216,69.66a16.35,16.35,0,0,1-11.59,15.83,16,16,0,0,1-11.57-1.07,66.09,66.09,0,0,1-16-11.24L136.26,34.54A247,247,0,0,1,248,8C351.83,8,440.71,71.76,477.67,162.27l-36.51,3.15a76.22,76.22,0,0,0-27.48,7.74,24.05,24.05,0,0,0-9.24,8.15l-19.59,29.38a24,24,0,0,0,0,26.62l18,27a24,24,0,0,0,10.54,8.78l20.52,10.1Z\", \"M321.39,297.36A32,32,0,0,0,298.76,288H232c-9.41-4.71-21.48-32-32-32a67.72,67.72,0,0,1-30.31-7.16l-11.08-5.54a12,12,0,0,1,1.56-22l31.17-10.39A16,16,0,0,1,206.9,214l9.28,8.06a8,8,0,0,0,5.24,2h5.64a8,8,0,0,0,7.15-11.58l-15.59-31.19A8,8,0,0,1,220.2,172l9.92-9.65A8,8,0,0,1,235.7,160h9a8,8,0,0,0,5.66-2.34l8-8a8,8,0,0,0,0-11.31l-4.69-4.69a8,8,0,0,1,0-11.31L264,112l4.69-4.68a16,16,0,0,0,0-22.63h0l-24.4-24.4a12.38,12.38,0,0,0-9.55-3.61c-2.53.17-5.05.38-7.58.65A12.41,12.41,0,0,0,216,69.66a16.35,16.35,0,0,1-11.59,15.83,16,16,0,0,1-11.57-1.07,66.09,66.09,0,0,1-16-11.24L136.26,34.54A249,249,0,0,0,56,99v45.71a50,50,0,0,0,8.55,27.95c11.72,17.39,28.38,42.07,35.67,52.77a114.79,114.79,0,0,0,18.06,20.74l.8.72a144.26,144.26,0,0,0,31.65,21.75c14,7.05,34.44,18.16,48.81,26.11a31.9,31.9,0,0,1,16.46,28v32a32,32,0,0,0,9.37,22.63c15,15,24.32,38.63,22.63,51.25V457.7a21,21,0,0,0,23.49,20.85c1.75-.21,3.49-.44,5.23-.7a20.91,20.91,0,0,0,17.17-15.76L308,404.46c2-5.49,3.26-11.21,4.77-16.87A23.9,23.9,0,0,1,319,376.88c3.32-3.33,7.41-7.4,11.31-11.28a46.46,46.46,0,0,0,13.72-33A30.49,30.49,0,0,0,335.1,311ZM477.67,162.27l-36.51,3.15a76.22,76.22,0,0,0-27.48,7.74,24.05,24.05,0,0,0-9.24,8.15l-19.59,29.38a24,24,0,0,0,0,26.62l18,27a24,24,0,0,0,10.54,8.78l20.52,10.1,55.64,29.22a249.21,249.21,0,0,0-11.88-150.14Z\"]]\n};\nvar faGlobeAsia = {\n prefix: 'fad',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", [\"M312,16.35V50.73a28,28,0,0,1-11.12,22.35l-41.41,31.27a8,8,0,0,0,.86,13.81l10.83,5.41A16,16,0,0,1,280,137.88V216a8,8,0,0,1-8,8h-3.06a8,8,0,0,1-7.15-4.42,4.47,4.47,0,0,0-1.72-1.86,4.42,4.42,0,0,0-6.06,1.54h0l-17.34,29A16,16,0,0,1,222.94,256h-.31a16,16,0,0,0-11.32,4.69l-5.66,5.66a8,8,0,0,0,0,11.31l5.66,5.66A16,16,0,0,1,216,294.63V304a16,16,0,0,1-16,16h-6.1a16,16,0,0,1-14.28-8.85L157,265.92a8,8,0,0,0-10.72-3.6h0a8.14,8.14,0,0,0-2.11,1.53l-19.47,19.46A16,16,0,0,1,113.38,288H2.05C17.74,409.88,121.84,504,248,504c137,0,248-111,248-248C496,141.13,418,44.56,312,16.35Zm96,342.08a16,16,0,0,1-4.69,11.31l-9.57,9.57A16,16,0,0,1,382.43,384H367.27a16,16,0,0,1-11.36-4.74l-13-13a26.78,26.78,0,0,0-25.42-7l-21.27,5.32a15.86,15.86,0,0,1-3.88.48H282a16,16,0,0,1-11.24-4.69l-11.91-11.91a8,8,0,0,1-2.34-5.66V332.6a8,8,0,0,1,5-7.43l39.34-15.74a26.35,26.35,0,0,0,5.59-3.05l23.71-16.89a8,8,0,0,1,4.64-1.48h12.14a8,8,0,0,1,7.39,4.93l5.35,12.85a4,4,0,0,0,3.69,2.46h3.8a4,4,0,0,0,3.84-2.88l4.16-14.49A4,4,0,0,1,379,288h6.06a4,4,0,0,1,4,4v13a8,8,0,0,0,2.34,5.66l11.91,11.91A16,16,0,0,1,408,333.83Z\", \"M260.07,217.72a4.47,4.47,0,0,1,1.72,1.86,8,8,0,0,0,7.15,4.42H272a8,8,0,0,0,8-8V137.88a16,16,0,0,0-8.84-14.31l-10.83-5.41a8,8,0,0,1-.86-13.81l41.41-31.27A28,28,0,0,0,312,50.73V16.35A248.23,248.23,0,0,0,248,8C111,8,0,119,0,256a249.89,249.89,0,0,0,2.05,32H113.38a16,16,0,0,0,11.31-4.69l19.47-19.46A8,8,0,0,1,157,265.92l22.62,45.23A16,16,0,0,0,193.9,320H200a16,16,0,0,0,16-16v-9.37a16,16,0,0,0-4.69-11.31l-5.66-5.66a8,8,0,0,1,0-11.31l5.66-5.66A16,16,0,0,1,222.63,256h.31a16,16,0,0,0,13.72-7.77L254,219.28a4.42,4.42,0,0,1,6.05-1.57Zm143.24,104.8L391.4,310.61a8,8,0,0,1-2.34-5.66V292a4,4,0,0,0-4-4H379a4,4,0,0,0-3.84,2.88L371,305.37a4,4,0,0,1-3.84,2.88h-3.8a4,4,0,0,1-3.69-2.46l-5.35-12.85a8,8,0,0,0-7.39-4.93H334.79a8,8,0,0,0-4.64,1.48l-23.71,16.89a26.35,26.35,0,0,1-5.59,3.05l-39.34,15.74a8,8,0,0,0-5,7.43v10.2a8,8,0,0,0,2.34,5.66l11.91,11.91A16,16,0,0,0,282,365.06h10.34a15.86,15.86,0,0,0,3.88-.48l21.27-5.32a26.78,26.78,0,0,1,25.42,7l13,13A16,16,0,0,0,367.27,384h15.16a16,16,0,0,0,11.31-4.69l9.57-9.57A16,16,0,0,0,408,358.43v-24.6a16,16,0,0,0-4.69-11.31Z\"]]\n};\nvar faGlobeEurope = {\n prefix: 'fad',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", [\"M487.54,320.4H438.9a15.8,15.8,0,0,1-11.4-4.8l-32-32.6a11.92,11.92,0,0,1,.1-16.7l12.5-12.5v-8.7a11.37,11.37,0,0,0-3.3-8l-9.4-9.4a11.37,11.37,0,0,0-8-3.3h-16a11.31,11.31,0,0,1-8-19.3l9.4-9.4a11.37,11.37,0,0,1,8-3.3h32a11.35,11.35,0,0,0,11.3-11.3v-9.4a11.35,11.35,0,0,0-11.3-11.3H376.1a16,16,0,0,0-16,16v4.5a16,16,0,0,1-10.9,15.2l-31.6,10.5a8,8,0,0,0-5.5,7.6v2.2a8,8,0,0,1-8,8h-16a8,8,0,0,1-8-8,8,8,0,0,0-8-8H269a8.14,8.14,0,0,0-7.2,4.4l-9.4,18.7a15.94,15.94,0,0,1-14.3,8.8H216a16,16,0,0,1-16-16V199a16,16,0,0,1,4.7-11.3l20.1-20.1a24.77,24.77,0,0,0,7.2-17.5,8,8,0,0,1,5.5-7.6l40-13.3a11.66,11.66,0,0,0,4.4-2.7l26.8-26.8a11.31,11.31,0,0,0-8-19.3H280l-16,16v8a8,8,0,0,1-8,8H240a8,8,0,0,1-8-8v-20a8.05,8.05,0,0,1,3.2-6.4l82.42-60.08A247.79,247.79,0,0,0,248,8C111,8,0,119,0,256S111,504,248,504a251.57,251.57,0,0,0,32.1-2.06V448.4a16,16,0,0,0-16-16H243.9c-10.8,0-26.7-5.3-35.4-11.8l-22.2-16.7a45.42,45.42,0,0,1-18.2-36.4V343.6a45.46,45.46,0,0,1,22.1-39l42.9-25.7a46.13,46.13,0,0,1,23.4-6.5h31.2a45.62,45.62,0,0,1,29.6,10.9l43.2,37.1h18.3a32,32,0,0,1,22.6,9.4l17.3,17.3.08.08C432,359.06,440,375.62,440,393.37V413A247.11,247.11,0,0,0,487.54,320.4ZM187.4,157.1a11.37,11.37,0,0,1-8,3.3h-16a11.31,11.31,0,0,1-8-19.3l25.4-25.4a11.31,11.31,0,0,1,19.3,8v16a11.37,11.37,0,0,1-3.3,8Z\", \"M187.4,157.1l9.4-9.4a11.37,11.37,0,0,0,3.3-8v-16a11.31,11.31,0,0,0-19.3-8l-25.4,25.4a11.31,11.31,0,0,0,8,19.3h16A11.37,11.37,0,0,0,187.4,157.1ZM418.78,347.18l-.08-.08-17.3-17.3a32,32,0,0,0-22.6-9.4H360.5l-43.2-37.1a45.62,45.62,0,0,0-29.6-10.9H256.5a46.13,46.13,0,0,0-23.4,6.5l-42.9,25.7a45.46,45.46,0,0,0-22.1,39v23.9a45.42,45.42,0,0,0,18.2,36.4l22.2,16.7c8.7,6.5,24.6,11.8,35.4,11.8h20.2a16,16,0,0,1,16,16v53.54A247.57,247.57,0,0,0,440,413V393.37C440,375.62,432,359.06,418.78,347.18ZM317.62,17.92,235.2,78a8.05,8.05,0,0,0-3.2,6.4v20a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8v-8l16-16h20.7a11.31,11.31,0,0,1,8,19.3l-26.8,26.8a11.66,11.66,0,0,1-4.4,2.7l-40,13.3a8,8,0,0,0-5.5,7.6,24.77,24.77,0,0,1-7.2,17.5l-20.1,20.1A16,16,0,0,0,200,199v25.3a16,16,0,0,0,16,16h22.1a15.94,15.94,0,0,0,14.3-8.8l9.4-18.7a8.14,8.14,0,0,1,7.2-4.4h3.1a8,8,0,0,1,8,8,8,8,0,0,0,8,8h16a8,8,0,0,0,8-8v-2.2a8,8,0,0,1,5.5-7.6l31.6-10.5a16,16,0,0,0,10.9-15.2v-4.5a16,16,0,0,1,16-16h36.7a11.35,11.35,0,0,1,11.3,11.3v9.4a11.35,11.35,0,0,1-11.3,11.3h-32a11.37,11.37,0,0,0-8,3.3l-9.4,9.4a11.31,11.31,0,0,0,8,19.3h16a11.37,11.37,0,0,1,8,3.3l9.4,9.4a11.37,11.37,0,0,1,3.3,8v8.7l-12.5,12.5a11.92,11.92,0,0,0-.1,16.7l32,32.6a15.8,15.8,0,0,0,11.4,4.8h48.64A248.29,248.29,0,0,0,496,256C496,143.18,420.71,48,317.62,17.92Z\"]]\n};\nvar faGlobeSnow = {\n prefix: 'fad',\n iconName: 'globe-snow',\n icon: [448, 512, [], \"f7a3\", [\"M67.9 384H192v-32h-57.9c-14.2 0-22-15-12.9-24.9l65.5-71.1h-30.1c-10.7 0-16.5-11.2-9.7-18.7l67.4-73.2a13.35 13.35 0 0 1 19.3 0l67.4 73.2c6.8 7.4 1 18.7-9.7 18.7h-30.1l65.5 71.1c9.1 9.9 1.3 24.9-12.9 24.9H256v32h124.1c41.7-40.6 67.9-97.1 67.9-160C448 100.3 347.7 0 224 0S0 100.3 0 224c0 62.9 26.1 119.4 67.9 160zM336 160a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-96-96a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM80 224a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\", \"M134.1 352H192v32h64v-32h57.8c14.2 0 22-15 12.9-24.9L261.2 256h30.1c10.7 0 16.5-11.3 9.7-18.7l-67.4-73.2a13.35 13.35 0 0 0-19.3 0l-67.4 73.2c-6.8 7.5-1 18.7 9.7 18.7h30.1l-65.5 71.1c-9.1 9.9-1.3 24.9 12.9 24.9zm297.3 135.1L384 416H64l-47.4 71.1A16 16 0 0 0 29.9 512h388.2a16 16 0 0 0 13.3-24.9z\"]]\n};\nvar faGlobeStand = {\n prefix: 'fad',\n iconName: 'globe-stand',\n icon: [448, 512, [], \"f5f6\", [\"M94.87 305.14a160 160 0 1 1 226.27 0 160 160 0 0 1-226.27 0z\", \"M4.69 377.38l59.5-59.5c2.82 3.23 5 6.81 8.07 9.88a192.1 192.1 0 0 0 271.62 0c74.89-74.86 74.89-196.67 0-271.53-3-3-6.23-5.74-9.41-8.53l43-43a16 16 0 0 1 22.64 0L411.45 16a16 16 0 0 1 0 22.63l-10.7 10.7c69.82 93.94 62.34 227.16-22.91 312.38A238.35 238.35 0 0 1 256.09 427v37h92a36 36 0 0 1 36 36 12 12 0 0 1-12 12H76a12 12 0 0 1-12-12 36 36 0 0 1 36-36h92v-32.75a239.42 239.42 0 0 1-126.65-46.64l-26.71 26.7a16 16 0 0 1-22.64 0L4.69 400a16 16 0 0 1 0-22.62z\"]]\n};\nvar faGolfBall = {\n prefix: 'fad',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", [\"M208 0C93.1 0 0 93.1 0 208c0 74.2 39 139.2 97.5 176h221C377 347.2 416 282.2 416 208 416 93.1 322.9 0 208 0zm-3 229.8c26.3 9.4 51.5-15.1 41.9-41.9a32.91 32.91 0 1 1-41.9 41.9zm46.9 102.1a32.88 32.88 0 0 1-30.9-22.1c26.3 9.4 51.5-15.1 41.9-41.9a32.91 32.91 0 0 1-11 64zm64-64a32.88 32.88 0 0 1-30.9-22.1c26.3 9.4 51.5-15.1 41.9-41.9a32.91 32.91 0 0 1-11 64z\", \"M326.9 203.9c9.6 26.8-15.6 51.3-41.9 41.9a32.91 32.91 0 1 0 41.9-41.9zM221 309.8a32.91 32.91 0 1 0 41.9-41.9c9.6 26.8-15.6 51.3-41.9 41.9zm14.9-57.9a32.91 32.91 0 0 0 11-64c9.6 26.8-15.6 51.3-41.9 41.9a32.88 32.88 0 0 0 30.9 22.1zM128 448h16a32 32 0 0 1 32 32v20a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-20a32 32 0 0 1 32-32h16a32 32 0 0 0 32-32H96a32 32 0 0 0 32 32z\"]]\n};\nvar faGolfClub = {\n prefix: 'fad',\n iconName: 'golf-club',\n icon: [640, 512, [], \"f451\", [\"M64 205.15a64 64 0 0 0-64 64v26.9h120a8 8 0 0 1 8 8v32a8 8 0 0 1-8 8H0v48h120a8 8 0 0 1 8 8v32a8 8 0 0 1-8 8H0v8a64.06 64.06 0 0 0 64 64h302.6a64 64 0 0 0 57.7-36.26l90-187.42-438.5-82.12a64 64 0 0 0-11.8-1.1z\", \"M120 392.05H0v48h120a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8zm0-96H0v48h120a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8zM631 8.59l-14.4-6.94-.18-.09a15.91 15.91 0 0 0-21.22 7.49L465.55 279.24l48.76 9.13L638.4 30A16.14 16.14 0 0 0 631 8.59z\"]]\n};\nvar faGopuram = {\n prefix: 'fad',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", [\"M160 224h32v-96h-32zm-32 128h32V224h-32zM96 512h32V352H96zm256-288v128h32V224zm-32-96v96h32v-96zm64 224v160h32V352z\", \"M496 352h-16V240a16 16 0 0 0-16-16h-16v-80a16 16 0 0 0-16-16h-16V16a16 16 0 0 0-32 0v16h-64V16a16 16 0 0 0-32 0v16h-64V16a16 16 0 0 0-32 0v16h-64V16a16 16 0 0 0-32 0v112H80a16 16 0 0 0-16 16v80H48a16 16 0 0 0-16 16v112H16a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80a16 16 0 0 0 16-16V368a16 16 0 0 0-16-16zM232 176a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v48h-48zm56 176h-64v-64a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\"]]\n};\nvar faGraduationCap = {\n prefix: 'fad',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", [\"M323.07 175.7L118.8 215.6a48.1 48.1 0 0 0-38.74 44.73 32 32 0 0 1 2.21 53.94l25.4 114.26A16 16 0 0 1 92 448H35.94a16 16 0 0 1-15.61-19.47l25.39-114.27a32 32 0 0 1 2.33-54 80.16 80.16 0 0 1 64.62-76.07l204.26-39.89a16 16 0 1 1 6.14 31.4z\", \"M622.33 198.8l-279 85.7a80 80 0 0 1-46.79 0L99.67 224a47.84 47.84 0 0 1 19.13-8.39l204.27-39.9a16 16 0 1 0-6.14-31.4l-204.26 39.88a79.87 79.87 0 0 0-47.57 29.18l-47.44-14.58c-23.54-7.23-23.54-38.36 0-45.59L296.6 67.5a79.92 79.92 0 0 1 46.8 0l278.93 85.7c23.55 7.24 23.55 38.36 0 45.6zM352.79 315.09a111.94 111.94 0 0 1-65.59 0l-145-44.55L128 384c0 35.35 86 64 192 64s192-28.65 192-64l-14.19-113.47z\"]]\n};\nvar faGramophone = {\n prefix: 'fad',\n iconName: 'gramophone',\n icon: [384, 512, [], \"f8bd\", [\"M69.56 317.08c62.84-43.05 161.76-94.4 238.6-73.8A26.79 26.79 0 0 1 328 269.15a34.81 34.81 0 0 1-34.78 34.77H184a24 24 0 0 0-24 24v24h133.22A82.88 82.88 0 0 0 376 269.15a74.89 74.89 0 0 0-55.41-72.27C243.17 176.13 183 80.83 150.84 13.62 141.2-6.5 111.76-3.68 106 17.79L32.82 291.06c-5.82 21.62 18.53 38.49 36.74 26.02z\", \"M368 448h-16v-32a32 32 0 0 0-32-32H64a32 32 0 0 0-32 32v32H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faGreaterThan = {\n prefix: 'fad',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", [\"M18.49 358L237 256.1 18.53 154.25A32.09 32.09 0 0 1 3 111.61l13.58-29.08A32.09 32.09 0 0 1 59.22 67l306.3 142.84a32 32 0 0 1 18.49 29v34.23a32 32 0 0 1-18.48 29L59.06 445a32 32 0 0 1-42.53-15.48L3 400.52A32 32 0 0 1 18.49 358z\", \"\"]]\n};\nvar faGreaterThanEqual = {\n prefix: 'fad',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", [\"M24 400h400a24 24 0 0 1 24 24v48a24 24 0 0 1-24 24H24a24 24 0 0 1-24-24v-48a24 24 0 0 1 24-24z\", \"M55.34 243.83l175.44-68.05-175.56-68.09c-18.29-6-27.74-24.26-21.1-40.79L46.15 37C52.79 20.45 73 11.92 91.3 17.92L393 137.9c13.77 4.52 23 16.61 23 30.17v16c0 13.56-9.21 25.65-23 30.17L91.61 334.06c-18.39 6-38.7-2.54-45.38-19.15l-12.09-30.08c-6.68-16.61 2.86-34.97 21.2-41z\"]]\n};\nvar faGrimace = {\n prefix: 'fad',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM144,400h-8a32,32,0,0,1-32-32v-8h40Zm0-56H104v-8a32,32,0,0,1,32-32h8Zm-8-136a32,32,0,1,1,32,32A32,32,0,0,1,136,208Zm72,192H160V360h48Zm0-56H160V304h48Zm64,56H224V360h48Zm0-56H224V304h48Zm64,56H288V360h48Zm0-56H288V304h48Zm-8-104a32,32,0,1,1,32-32A32,32,0,0,1,328,240Zm64,128a32,32,0,0,1-32,32h-8V360h40Zm0-24H352V304h8a32,32,0,0,1,32,32Z\", \"M168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Zm160,0a32,32,0,1,0,32,32A32,32,0,0,0,328,176Z\"]]\n};\nvar faGrin = {\n prefix: 'fad',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm80,168a32,32,0,1,1-32,32A32,32,0,0,1,328,176Zm-160,0a32,32,0,1,1-32,32A32,32,0,0,1,168,176ZM391.8,338.7c-9.3,55-83.2,93.3-143.8,93.3s-134.5-38.3-143.8-93.3a16,16,0,0,1,20.7-17.9C155.1,330.5,200,336,248,336s92.9-5.5,123.1-15.2c11.3-3.7,22.6,6.1,20.7,17.9Z\", \"M168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Zm160,0a32,32,0,1,0,32,32A32,32,0,0,0,328,176Z\"]]\n};\nvar faGrinAlt = {\n prefix: 'fad',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm63.7,128.7a19.76,19.76,0,0,1,32.7,0c12.4,18.4,15.1,36.9,15.7,55.3-.5,18.4-3.3,36.9-15.7,55.3a19.76,19.76,0,0,1-32.7,0c-12.4-18.4-15.1-36.9-15.7-55.3C296.5,173.6,299.3,155.1,311.7,136.7Zm-160,0a19.76,19.76,0,0,1,32.7,0c12.4,18.4,15.1,36.9,15.7,55.3-.5,18.4-3.3,36.9-15.7,55.3a19.76,19.76,0,0,1-32.7,0c-12.4-18.4-15.1-36.9-15.7-55.3C136.5,173.6,139.3,155.1,151.7,136.7Zm240.1,202c-9.3,55-83.2,93.3-143.8,93.3s-134.5-38.3-143.8-93.3a16,16,0,0,1,20.7-17.9C155.1,330.5,200,336,248,336s92.9-5.5,123.1-15.2a16,16,0,0,1,20.7,17.9Z\", \"M151.7,136.7c-12.4,18.4-15.2,36.9-15.7,55.3.6,18.4,3.3,36.9,15.7,55.3a19.76,19.76,0,0,0,32.7,0c12.4-18.4,15.2-36.9,15.7-55.3-.6-18.4-3.3-36.9-15.7-55.3a19.76,19.76,0,0,0-32.7,0Zm192.7,0a19.76,19.76,0,0,0-32.7,0c-12.4,18.4-15.2,36.9-15.7,55.3.6,18.4,3.3,36.9,15.7,55.3a19.76,19.76,0,0,0,32.7,0c12.4-18.4,15.2-36.9,15.7-55.3C359.5,173.6,356.8,155.1,344.4,136.7Z\"]]\n};\nvar faGrinBeam = {\n prefix: 'fad',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm24.2,215.4c3.1-42.1,32-71.4,55.8-71.4s52.7,29.3,56,71.4c.7,8.6-10.8,11.9-14.9,4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8,7.9-31.5,21.6l-9.5,17C283,235.2,271.5,231.9,272.2,223.4Zm-160,0c3.1-42.1,32-71.4,55.8-71.4s52.7,29.3,56,71.4c.7,8.6-10.8,11.9-14.9,4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8,7.9-31.5,21.6l-9.5,17C122.9,235.3,111.5,231.9,112.2,223.4ZM391.8,338.7c-9.3,55-83.2,93.3-143.8,93.3s-134.5-38.3-143.8-93.3a16,16,0,0,1,20.7-17.9C155.1,330.5,200,336,248,336s92.9-5.5,123.1-15.2a16,16,0,0,1,20.7,17.9Z\", \"M168,152c-23.8,0-52.7,29.3-55.8,71.4-.7,8.5,10.7,11.9,14.9,4.5l9.5-17c7.7-13.7,19.2-21.6,31.5-21.6s23.8,7.9,31.5,21.6l9.5,17c4.1,7.4,15.6,4.1,14.9-4.5-3.3-42.1-32.2-71.4-56-71.4Zm216,71.4c-3.3-42.1-32.2-71.4-56-71.4s-52.7,29.3-55.8,71.4c-.7,8.5,10.8,11.8,14.9,4.5l9.5-17c7.7-13.7,19.2-21.6,31.5-21.6s23.8,7.9,31.5,21.6l9.5,17C373.2,235.3,384.7,232,384,223.4Z\"]]\n};\nvar faGrinBeamSweat = {\n prefix: 'fad',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", [\"M456,160c-44.1,0-80-35.4-80-79,0-4.41.3-14.2,8.1-32.2A246.82,246.82,0,0,0,248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256a247.08,247.08,0,0,0-20.5-98.61A83.3,83.3,0,0,1,456,160ZM272.2,223.4c3.1-42.09,32-71.4,55.8-71.4s52.7,29.31,56,71.4c.7,8.6-10.8,12-14.9,4.5l-9.5-17c-7.7-13.69-19.2-21.59-31.5-21.59s-23.8,7.9-31.5,21.59l-9.5,17c-4.1,7.43-15.6,4-14.9-4.48Zm-160,0c3.1-42.09,32-71.4,55.8-71.4s52.7,29.31,56,71.4c.7,8.6-10.8,12-14.9,4.5l-9.5-17c-7.7-13.69-19.2-21.59-31.5-21.59s-23.8,7.9-31.5,21.59l-9.5,17c-4.2,7.43-15.6,4-14.9-4.48ZM391.8,338.72C382.5,393.72,308.6,432,248,432s-134.5-38.3-143.8-93.3a16,16,0,0,1,20.7-17.9C155.1,330.51,200,336,248,336s92.9-5.5,123.1-15.19a16.05,16.05,0,0,1,20.7,17.92Z\", \"M462.4,3.2a8,8,0,0,0-11.2-1.6h0a7.58,7.58,0,0,0-1.6,1.6C436.5,20.59,408,61,408,81c0,26,21.5,47,48,47s48-21,48-47C504,61,475.5,20.59,462.4,3.2ZM168,152c-23.8,0-52.7,29.31-55.8,71.4-.7,8.5,10.7,11.91,14.9,4.5l9.5-17c7.7-13.69,19.2-21.59,31.5-21.59s23.8,7.9,31.5,21.59l9.5,17c4.1,7.5,15.6,4.1,14.9-4.5-3.3-42.07-32.2-71.4-56-71.4Zm160,0c-23.8,0-52.7,29.31-55.8,71.4-.7,8.5,10.8,11.91,14.9,4.5l9.5-17c7.7-13.69,19.2-21.59,31.5-21.59s23.8,7.9,31.5,21.59l9.5,17c4.1,7.5,15.6,4.1,14.9-4.5C380.7,181.31,351.8,152,328,152Z\"]]\n};\nvar faGrinHearts = {\n prefix: 'fad',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM90.4,183.6c6.7-17.6,26.7-26.7,44.9-21.9l7.1,1.9,2-7.1c5-18.1,22.8-30.9,41.5-27.9a35.38,35.38,0,0,1,29.71,40.26h0a35.93,35.93,0,0,1-.91,4.24L195.3,243a8.59,8.59,0,0,1-10.5,6l-70.2-18.2a35.49,35.49,0,0,1-25.47-43.25h0A34.27,34.27,0,0,1,90.4,183.6ZM391.8,338.7c-9.3,55-83.2,93.3-143.8,93.3s-134.5-38.3-143.8-93.3a16,16,0,0,1,20.7-17.9C155.1,330.5,200,336,248,336s92.9-5.5,123.1-15.2a16.08,16.08,0,0,1,20.7,17.9Zm-10.4-108-70.2,18.2a8.68,8.68,0,0,1-10.5-6L281.3,173a35.38,35.38,0,0,1,24.54-43.59h0a35.93,35.93,0,0,1,4.24-.91c18.6-3,36.4,9.8,41.5,27.9l2,7.1,7.1-1.9c18.2-4.7,38.2,4.3,44.9,21.9a35.42,35.42,0,0,1-20.1,45.88,36.92,36.92,0,0,1-4.1,1.32Z\", \"M185.9,128.6c-18.7-3-36.5,9.8-41.5,27.9l-2,7.1-7.1-1.9c-18.2-4.8-38.2,4.3-44.9,21.9a35.5,35.5,0,0,0,20.25,45.93,36.32,36.32,0,0,0,3.95,1.27L184.8,249a8.59,8.59,0,0,0,10.5-6l19.4-69.9a35.38,35.38,0,0,0-24.54-43.59h0a35.93,35.93,0,0,0-4.24-.91Zm219.7,54.9c-6.7-17.6-26.7-26.6-44.9-21.9l-7.1,1.9-2-7.1c-5.1-18.1-22.9-30.9-41.5-27.9a35.38,35.38,0,0,0-29.71,40.26h0a35.93,35.93,0,0,0,.91,4.24l19.4,69.9a8.68,8.68,0,0,0,10.5,6l70.2-18.2a35.4,35.4,0,0,0,25.52-43.08v0a36.92,36.92,0,0,0-1.32-4.1Z\"]]\n};\nvar faGrinSquint = {\n prefix: 'fad',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm33.8,189.7,80-48c11.6-6.9,24,7.7,15.4,18L343.6,208l33.6,40.3c8.7,10.4-3.9,24.8-15.4,18l-80-48a12.07,12.07,0,0,1,0-20.6Zm-147.6-48,80,48a12,12,0,0,1,0,20.6l-80,48c-11.5,6.8-24-7.6-15.4-18L152.4,208l-33.6-40.3c-8.6-10.3,3.8-24.9,15.4-18Zm257.6,189c-9.3,55-83.2,93.3-143.8,93.3s-134.5-38.3-143.8-93.3a16,16,0,0,1,20.7-17.9C155.1,330.5,200,336,248,336s92.9-5.5,123.1-15.2a16.06,16.06,0,0,1,20.7,17.9Z\", \"M214.2,197.7l-80-48c-11.6-6.9-24,7.7-15.4,18L152.4,208l-33.6,40.3c-8.6,10.4,3.9,24.8,15.4,18l80-48a12,12,0,0,0,0-20.6Zm163,50.6L343.6,208l33.6-40.3c8.6-10.3-3.8-24.9-15.4-18l-80,48a12.07,12.07,0,0,0,0,20.6l80,48C373.3,273.1,385.9,258.7,377.2,248.3Z\"]]\n};\nvar faGrinSquintTears = {\n prefix: 'fad',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", [\"M414.12 143.6c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5-94.8-54.8-218.1-41.9-299.3 39.2s-94 204.4-39.2 299.3c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zm-180.9 53l22.5-90.6c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6a12 12 0 0 1-14.5-14.5zm-68.4 139.7L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6a12 12 0 0 1 14.5 14.5L188.32 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7a15.92 15.92 0 0 1 2-27.2c28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8a16 16 0 0 1 27.3-2c32.3 45.3 7.1 124.7-35.7 167.6z\", \"M102.42 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3a8.31 8.31 0 0 0-9.5-9.4zm94-167.1l-90.5 22.6c-13.1 3.3-11.6 22.4 1.8 23.6L160 284l4.8 52.3c1.3 13.4 20.4 14.9 23.5 1.7l22.6-90.5a12 12 0 0 0-14.48-14.5zm140-68.1l-52.3-4.8-4.8-52.3c-1.2-13.3-20.3-15-23.6-1.8l-22.5 90.6a12 12 0 0 0 14.5 14.5l90.5-22.6c13.1-3.3 11.6-22.4-1.8-23.6zm160.8-150C477.62-4.7 446-5 426.92 14.2c-14.8 14.8-23.5 65.7-26.8 88.3a8.31 8.31 0 0 0 9.5 9.4c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2z\"]]\n};\nvar faGrinStars = {\n prefix: 'fad',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM94.6,168.9l34.9-5L145,132.3a7.73,7.73,0,0,1,13.9,0l15.5,31.6,34.9,5a7.78,7.78,0,0,1,4.3,13.2l-25.4,24.6,6,34.9a7.48,7.48,0,0,1-11,7.9L152,233.3l-31.3,16.3a7.48,7.48,0,0,1-11-7.9l6-34.9L90.3,182.2a7.85,7.85,0,0,1,4.3-13.3ZM391.8,338.7c-9.3,55-83.2,93.3-143.8,93.3s-134.5-38.3-143.8-93.3a16.06,16.06,0,0,1,20.7-17.9C155.1,330.5,200,336,248,336s92.9-5.5,123.1-15.2a16,16,0,0,1,20.7,17.9Zm13.9-156.6-25.4,24.6,6,34.9a7.48,7.48,0,0,1-11,7.9L344,233.3l-31.3,16.3a7.48,7.48,0,0,1-11-7.9l6-34.9-25.4-24.6a7.81,7.81,0,0,1,4.3-13.2l34.9-5L337,132.4a7.73,7.73,0,0,1,13.9,0L366.4,164l34.9,5a7.7,7.7,0,0,1,4.4,13.1Z\", \"M209.3,168.9l-34.9-5-15.5-31.6a7.73,7.73,0,0,0-13.9,0l-15.5,31.6-34.9,5a7.85,7.85,0,0,0-4.3,13.3l25.4,24.6-6,34.9a7.48,7.48,0,0,0,11,7.9L152,233.3l31.2,16.2a7.48,7.48,0,0,0,11-7.9l-6-34.9,25.4-24.6a7.78,7.78,0,0,0-4.3-13.2Zm192,.1-34.9-5-15.5-31.6a7.73,7.73,0,0,0-13.9,0L321.5,164l-34.9,5a7.81,7.81,0,0,0-6.47,8.95V178a7.92,7.92,0,0,0,2.16,4.24l25.4,24.6-6,34.9a7.48,7.48,0,0,0,11,7.9L344,233.3l31.3,16.2a7.48,7.48,0,0,0,11-7.9l-6-34.9,25.4-24.6a7.68,7.68,0,0,0-4.4-13.1Z\"]]\n};\nvar faGrinTears = {\n prefix: 'fad',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", [\"M496.42 270.1a40.45 40.45 0 0 1 45.7-45.7c8.9 1.3 16.8 2.7 24.3 4.1C552.72 104.5 447.72 8 320 8S87.32 104.5 73.62 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1a36.12 36.12 0 0 1-3-2.5c-5.9-5.9-24-24-35.8-106.3zm-152.2-46.7c3.1-42.1 32-71.4 55.8-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5zm-160 0c3.1-42.1 32-71.4 55.8-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5zm279.6 115.3c-9.3 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3a16 16 0 0 1 20.7-17.9C227.12 330.5 272 336 320 336s92.9-5.5 123.1-15.2a16.05 16.05 0 0 1 20.72 17.9z\", \"M102.42 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3a8.31 8.31 0 0 0-9.5-9.4zM240 152c-23.8 0-52.7 29.3-55.8 71.4-.7 8.5 10.7 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.5 15.6 4.1 14.9-4.5-3.28-42.1-32.18-71.4-56-71.4zm385.8 130.9c-14.8-14.8-65.7-23.5-88.3-26.8a8.38 8.38 0 0 0-9.5 9.5c3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.82-70.3zM400 152c-23.8 0-52.7 29.3-55.8 71.4-.7 8.5 10.7 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.5 15.6 4.1 14.9-4.5-3.28-42.1-32.18-71.4-56-71.4z\"]]\n};\nvar faGrinTongue = {\n prefix: 'fad',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", [\"M248,8C111,8,0,119,0,256.06c0,106.32,67,196.73,161,232a95.5,95.5,0,0,1-9-40V402.58c-24.7-16.2-43.5-38.1-47.8-63.81a16.06,16.06,0,0,1,20.7-17.9c30.2,9.7,75.1,15.2,123.1,15.2s92.9-5.5,123.1-15.2a16.08,16.08,0,0,1,20.7,17.9c-4.3,25.71-23.1,47.61-47.8,63.81v45.51a95.5,95.5,0,0,1-9,40c94-35.31,161-125.72,161-232C496,119,385,8,248,8ZM168,240a32,32,0,1,1,32-32A32,32,0,0,1,168,240Zm160,0a32,32,0,1,1,32-32A32,32,0,0,1,328,240Z\", \"M258.5,392.28l-1.8,7.8c-2.1,9.21-15.2,9.21-17.3,0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9,9.4v63c0,35.21,28,64.51,63.1,64.91a64,64,0,0,0,64.89-63.22V384c-19.5-9.6-18.2-8.9-19-9.3-14.4-6.5-31.1,2.2-34.6,17.6ZM200,208a32,32,0,1,0-32,32A32,32,0,0,0,200,208Zm128-32a32,32,0,1,0,32,32A32,32,0,0,0,328,176Z\"]]\n};\nvar faGrinTongueSquint = {\n prefix: 'fad',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", [\"M248,8C111,8,0,119,0,256.06c0,106.32,67,196.73,161,232a95.5,95.5,0,0,1-9-40V402.58c-24.7-16.2-43.5-38.1-47.8-63.81a16,16,0,0,1,20.7-17.9c30.2,9.7,75.1,15.2,123.1,15.2s92.9-5.5,123.1-15.2a16,16,0,0,1,20.7,17.9c-4.3,25.71-23.1,47.61-47.8,63.81v45.51a95.5,95.5,0,0,1-9,40c94-35.31,161-125.72,161-232C496,119,385,8,248,8ZM214.2,218.35l-80,48c-11.5,6.8-24-7.6-15.4-18L152.4,208l-33.6-40.32c-8.6-10.3,3.8-24.9,15.4-18l80,48a12.07,12.07,0,0,1,4,16.59,12.2,12.2,0,0,1-4,4Zm147.6,48-80-48a12,12,0,0,1,0-20.6l80-48c11.7-6.9,23.9,7.7,15.4,18L343.6,208l33.6,40.31c8.7,10.4-3.9,24.8-15.4,18Z\", \"M214.2,197.75l-80-48c-11.6-6.9-24,7.7-15.4,18L152.4,208l-33.6,40.31c-8.6,10.4,3.9,24.8,15.4,18l80-48a12.05,12.05,0,0,0,0-20.6Zm44.3,194.53-1.8,7.8c-2.1,9.21-15.2,9.21-17.3,0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9,9.4v63c0,35.21,28,64.51,63.1,64.91a64,64,0,0,0,64.89-63.22V384c-19.5-9.6-18.2-8.9-19-9.3-14.39-6.53-31.09,2.17-34.59,17.57ZM377.2,248.36,343.6,208l33.6-40.32c8.5-10.3-3.7-24.9-15.4-18l-80,48a12,12,0,0,0,0,20.6l80,48c11.5,6.8,24.1-7.6,15.4-18Z\"]]\n};\nvar faGrinTongueWink = {\n prefix: 'fad',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", [\"M248,8C111,8,0,119,0,256.07c0,106.33,67,196.75,161,232a95.5,95.5,0,0,1-9-40V402.6c-24.7-16.2-43.5-38.1-47.8-63.81a16.06,16.06,0,0,1,20.7-17.9c30.2,9.7,75.1,15.2,123.1,15.2s92.9-5.5,123.1-15.2a16,16,0,0,1,20.7,17.9c-4.3,25.71-23.1,47.61-47.8,63.81v45.52a95.5,95.5,0,0,1-9,40c94-35.31,161-125.73,161-232C496,119,385,8,248,8ZM192,233l-9.5-8.5c-14.8-13.2-46.2-13.2-61,0L112,233c-8.5,7.4-21.6.3-19.8-10.8,4-25.2,34.2-42.11,59.9-42.11S208,197,212,222.26C213.6,233.36,200.4,240.46,192,233Zm105.71,20.22a64,64,0,1,1,.07.07h-.07Z\", \"M212,222.26c-4-25.2-34.2-42.11-59.9-42.11S96.2,197,92.2,222.26c-1.8,11.1,11.3,18.2,19.8,10.8l9.5-8.5c14.8-13.2,46.2-13.2,61,0L192,233c8.4,7.4,21.6.3,20-10.8Zm46.5,170-1.8,7.8c-2.1,9.22-15.2,9.22-17.3,0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9,9.4v63c0,35.21,28,64.51,63.1,64.91a64,64,0,0,0,64.89-63.1V384c-19.5-9.6-18.2-8.9-19-9.3-14.39-6.5-31.09,2.2-34.59,17.6ZM344,184a23.94,23.94,0,1,0,.12,0Z\"]]\n};\nvar faGrinWink = {\n prefix: 'fad',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm20.2,214.2c4-25.2,34.2-42.1,59.9-42.1S384,197,388,222.2c1.6,11-11.5,18.2-20,10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61,0L288,233C279.7,240.4,266.4,233.4,268.2,222.2ZM168,176a32,32,0,1,1-32,32A32,32,0,0,1,168,176ZM391.8,338.7c-9.2,55-83.2,93.3-143.8,93.3s-134.5-38.3-143.8-93.3a16,16,0,0,1,20.7-17.9C155.1,330.5,200,336,248,336s92.9-5.5,123.1-15.2a16,16,0,0,1,20.7,17.9Z\", \"M168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Zm220,46.2c-4-25.2-34.2-42.1-59.9-42.1s-55.9,16.9-59.9,42.1c-1.8,11.2,11.5,18.2,19.8,10.8l9.5-8.5c14.8-13.2,46.2-13.2,61,0L368,233c8.5,7.4,21.6.2,20-10.8Z\"]]\n};\nvar faGripHorizontal = {\n prefix: 'fad',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", [\"M96 288H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm160 0h-64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm160 0h-64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32z\", \"M416 96h-64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zM96 96H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm160 0h-64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32z\"]]\n};\nvar faGripLines = {\n prefix: 'fad',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", [\"M512 304v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16z\", \"M512 176v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16z\"]]\n};\nvar faGripLinesVertical = {\n prefix: 'fad',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", [\"M224,16V496a16,16,0,0,1-16,16H176a16,16,0,0,1-16-16V16A16,16,0,0,1,176,0h32A16,16,0,0,1,224,16Z\", \"M96,16V496a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V16A16,16,0,0,1,48,0H80A16,16,0,0,1,96,16Z\"]]\n};\nvar faGripVertical = {\n prefix: 'fad',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", [\"M288 352h-64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm0-320h-64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm0 160h-64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32z\", \"M96 352H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm0-160H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm0-160H32A32 32 0 0 0 0 64v64a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32z\"]]\n};\nvar faGuitar = {\n prefix: 'fad',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", [\"M348.88 267.67c7.72 33.39.86 66.87-22 89.75a82.56 82.56 0 0 1-33.47 20.25c-18.54 6-32.67 23.29-34.43 42.15-2.28 23.8-11.48 45.82-28.45 62.7C185 528 103.08 519.94 47.57 464.45s-63.67-137.45-18-183c16.87-17 38.9-26.17 62.59-28.44 18.95-1.77 36.13-15.9 42.15-34.46a82.45 82.45 0 0 1 20.24-33.47c22.9-22.91 56.42-29.81 89.86-22 14.62 3.41 28 10.39 40.15 19.17l-74 74c-.85 0-1.65-.25-2.52-.25a48 48 0 1 0 48 48c0-.84-.21-1.62-.25-2.45l74-74.06c8.74 12.2 15.72 25.51 19.09 40.18z\", \"M502.63 84.22l-46.32 46.32a35.26 35.26 0 0 1-13.79 8.53l-36.47 12.16-150.33 150.35a47.77 47.77 0 0 0-45.22-45.29L360.79 106 373 69.49a35.26 35.26 0 0 1 8.53-13.79l46.26-46.33a32 32 0 0 1 45.26 0L502.63 39a32 32 0 0 1 0 45.22z\"]]\n};\nvar faGuitarElectric = {\n prefix: 'fad',\n iconName: 'guitar-electric',\n icon: [512, 512, [], \"f8be\", [\"M243.76 223.27a39.45 39.45 0 0 1-3.18-38.42l17.29-37.13a18.82 18.82 0 0 0-30.38-21.23l-38.31 38.27a77.49 77.49 0 0 0-18.24 28.83A77.6 77.6 0 0 1 130.42 238L54 273.33C-3.23 296.19-18.4 370 25.16 413.54l73.39 73.33c43.56 43.51 117.45 28.36 140.35-28.78l35.4-76.38a77.64 77.64 0 0 1 44.41-40.48A77.77 77.77 0 0 0 347.57 323l21.57-21.55a19.87 19.87 0 0 0-20.11-33L325.32 276a39.67 39.67 0 0 1-36.76-7.11zm-62.1 171.09l-11.31 11.31a8 8 0 0 1-11.32 0L106.34 353a8 8 0 0 1 0-11.31l11.32-11.31a8 8 0 0 1 11.31 0l52.69 52.68a8 8 0 0 1 0 11.3zm64-64l-11.31 11.31a8 8 0 0 1-11.32 0L170.35 289a8 8 0 0 1 0-11.31l11.31-11.31a8 8 0 0 1 11.31 0l52.69 52.68a8 8 0 0 1 0 11.31z\", \"M511.21 39.57a48.12 48.12 0 0 0-37.79-38.26C450.48-3 450.66.79 366.74 54.93A32.15 32.15 0 0 0 352 81.88v33.27L243.81 223.33l44.75 45.6.09.05 173-172.93c.82.06 1.57.35 2.4.35a48 48 0 0 0 47.16-56.83zM129 330.37a8 8 0 0 0-11.31 0l-11.32 11.31a8 8 0 0 0 0 11.31L159 405.67a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.31zm64-64a8 8 0 0 0-11.31 0l-11.31 11.31a8 8 0 0 0 0 11.31L223 341.68a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.31z\"]]\n};\nvar faGuitars = {\n prefix: 'fad',\n iconName: 'guitars',\n icon: [512, 512, [], \"f8bf\", [\"M229.27 300.21A74.51 74.51 0 0 0 237.7 266c0-29.14-17-54.82-43.15-71.17-12.82-8-27.53-12-42.55-13.88v-54.22l16.6-33.21a29 29 0 0 0 3.08-13v-54.1A26.42 26.42 0 0 0 145.25 0h-34.53A26.41 26.41 0 0 0 84.3 26.41v54.08a29.12 29.12 0 0 0 3.07 13L104 126.74V181c-15 1.84-29.74 5.84-42.58 13.83a104 104 0 0 0-18.58 14.67c-15.39 15.39-24.62 35-24.61 56.58a74.36 74.36 0 0 0 8.41 34.2c8 15.65 6 35.59-4.88 48.78C8.11 365.55-.07 385.43 0 407c-.07 58 57.34 105 128 105 39.89 0 75.55-15 99-38.47 1.28-1.27 2.23-2.75 3.43-4.07a111.41 111.41 0 0 1 2.32-80.3L243 361.42a103.64 103.64 0 0 0-8.81-12.42c-10.89-13.16-12.89-33.16-4.92-48.79zm-73 32.08a40 40 0 1 1 0-56.58 40 40 0 0 1 .02 56.58zM424 368h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-64.12h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\", \"M505.48 400.82l-26.93-73.45a72.15 72.15 0 0 1 2.57-55.79 72.13 72.13 0 0 0 7-30.94v-28.32a18.47 18.47 0 0 0-34.88-8.47l-10.62 20.55c-5.36 10.37-15.35 17-26.62 19l-8-.1V73.38a34.2 34.2 0 0 0 5.09-3.8 40.77 40.77 0 0 0-51.44-62.75c-16.38 11.15-14 13.35-31.85 96.24a27.3 27.3 0 0 0 7.33 25L360 151v91.66l-8-.11c-11.3-3.11-20.84-11-25-22.37l-13-35.76a17.49 17.49 0 0 0-33.92 6v50.33a72.07 72.07 0 0 0 7 30.93 72.07 72.07 0 0 1 2.53 55.78l-27 73.48C240 453.53 278.54 512 335.76 512h96.41c57.23-.06 95.83-58.59 73.31-111.18zM432 392a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8zm0-64.12a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8z\"]]\n};\nvar faHSquare = {\n prefix: 'fad',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-48 336a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-80H160v80a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V144a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v80h128v-80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\", \"M352 368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-80H160v80a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V144a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v80h128v-80a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\"]]\n};\nvar faH1 = {\n prefix: 'fad',\n iconName: 'h1',\n icon: [576, 512, [], \"f313\", [\"M304 96h-98.94A13.06 13.06 0 0 0 192 109.06v37.88A13.06 13.06 0 0 0 205.06 160H224v64H96v-64h18.94A13.06 13.06 0 0 0 128 146.94V112a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v34.94A13.06 13.06 0 0 0 13.06 160H32v192H13.06A13.06 13.06 0 0 0 0 365.06V400a16 16 0 0 0 16 16h98.94A13.06 13.06 0 0 0 128 402.94v-37.88A13.06 13.06 0 0 0 114.94 352H96v-64h128v64h-18.94A13.06 13.06 0 0 0 192 365.06V400a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-34.94A13.06 13.06 0 0 0 306.94 352H288V160h18.94A13.06 13.06 0 0 0 320 146.94V112a16 16 0 0 0-16-16z\", \"M560 352h-48V120a24 24 0 0 0-24-24h-40a24 24 0 0 0-21.44 13.26l-24 48A24 24 0 0 0 424 192h24v160h-48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faH2 = {\n prefix: 'fad',\n iconName: 'h2',\n icon: [576, 512, [], \"f314\", [\"M304 96h-98.94A13.06 13.06 0 0 0 192 109.06v37.88A13.06 13.06 0 0 0 205.06 160H224v64H96v-64h18.94A13.06 13.06 0 0 0 128 146.94V112a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v34.94A13.06 13.06 0 0 0 13.06 160H32v192H13.06A13.06 13.06 0 0 0 0 365.06V400a16 16 0 0 0 16 16h98.94A13.06 13.06 0 0 0 128 402.94v-37.88A13.06 13.06 0 0 0 114.94 352H96v-64h128v64h-18.94A13.06 13.06 0 0 0 192 365.06V400a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-34.94A13.06 13.06 0 0 0 306.94 352H288V160h18.94A13.06 13.06 0 0 0 320 146.94V112a16 16 0 0 0-16-16z\", \"M560 352H440.79c17-42.95 135.21-66.57 135.21-159.62C576 132.55 528.33 96 469.14 96c-43.83 0-81.41 21.38-103.42 57a15.66 15.66 0 0 0 4.75 21.4l28.26 18.6a16.15 16.15 0 0 0 21.86-3.83c10.77-14.86 24.94-26 43.85-26s38.22 10.46 38.22 33.84c0 52.18-142.1 73.21-142.1 184.56a155.06 155.06 0 0 0 1.71 20.66A15.94 15.94 0 0 0 378.14 416H560a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faH3 = {\n prefix: 'fad',\n iconName: 'h3',\n icon: [576, 512, [], \"f315\", [\"M304 96h-98.94A13.06 13.06 0 0 0 192 109.06v37.88A13.06 13.06 0 0 0 205.06 160H224v64H96v-64h18.94A13.06 13.06 0 0 0 128 146.94V112a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v34.94A13.06 13.06 0 0 0 13.06 160H32v192H13.06A13.06 13.06 0 0 0 0 365.06V400a16 16 0 0 0 16 16h98.94A13.06 13.06 0 0 0 128 402.94v-37.88A13.06 13.06 0 0 0 114.94 352H96v-64h128v64h-18.94A13.06 13.06 0 0 0 192 365.06V400a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-34.94A13.06 13.06 0 0 0 306.94 352H288V160h18.94A13.06 13.06 0 0 0 320 146.94V112a16 16 0 0 0-16-16z\", \"M499 217.69l64.4-72.31a15.48 15.48 0 0 0 4-10.31v-23.32A16 16 0 0 0 551.12 96H384a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h85.18c-2.29 2.45-4.65 5-7.19 7.9l-53.1 61.1a18 18 0 0 0-3.83 10.17 18.36 18.36 0 0 0 1.38 6.34l8.41 18.59c2.35 5.21 9 9.42 14.84 9.42h15.95c28.94 0 57.79 10.32 57.79 38.48 0 21.32-19.93 36.79-47.39 36.79-22.08 0-41.18-9.17-57.7-22.83a16.46 16.46 0 0 0-23.87 3.34l-19.75 28.8a15.46 15.46 0 0 0 2.53 20.35C384.9 403.21 422 416 459.51 416c71 0 116.49-48.86 116.49-106.06 0-47.3-32.73-80.89-77-92.25z\"]]\n};\nvar faH4 = {\n prefix: 'fad',\n iconName: 'h4',\n icon: [576, 512, [], \"f86a\", [\"M304 96h-98.94A13.06 13.06 0 0 0 192 109.06v37.88A13.06 13.06 0 0 0 205.06 160H224v64H96v-64h18.94A13.06 13.06 0 0 0 128 146.94V112a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v34.94A13.06 13.06 0 0 0 13.06 160H32v192H13.06A13.06 13.06 0 0 0 0 365.06V400a16 16 0 0 0 16 16h98.94A13.06 13.06 0 0 0 128 402.94v-37.88A13.06 13.06 0 0 0 114.94 352H96v-64h128v64h-18.94A13.06 13.06 0 0 0 192 365.06V400a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-34.94A13.06 13.06 0 0 0 306.94 352H288V160h18.94A13.06 13.06 0 0 0 320 146.94V112a16 16 0 0 0-16-16z\", \"M560 224h-16V112a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v112h-64V112a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v144a32 32 0 0 0 32 32h96v112a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faHamburger = {\n prefix: 'fad',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", [\"M58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm352 272H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16z\", \"M512 304a48 48 0 0 1-48 48H48a48 48 0 0 1 0-96h416a48 48 0 0 1 48 48z\"]]\n};\nvar faHammer = {\n prefix: 'fad',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", [\"M19.64 405l255.1-238.17a97 97 0 0 0 9.85 12l49.14 49.14a97.23 97.23 0 0 0 11.44 9.41L107 492.36A61.84 61.84 0 1 1 19.64 405z\", \"M435.56 261.81l11.31-11.31L418 221.6a63.73 63.73 0 0 1-61.61-16.35l-49.14-49.14a64 64 0 0 1-18.75-45.25V92.11L198 46.86a160 160 0 0 1 226.28 0l45.25 45.25a63.73 63.73 0 0 1 16.35 61.61l28.9 28.9 11.31-11.31a16 16 0 0 1 22.63 0l22.63 22.63a16 16 0 0 1 0 22.62l-90.51 90.51a16 16 0 0 1-22.63 0l-22.63-22.63a16 16 0 0 1-.02-22.63z\"]]\n};\nvar faHammerWar = {\n prefix: 'fad',\n iconName: 'hammer-war',\n icon: [384, 512, [], \"f6e4\", [\"M384 64v192a32 32 0 0 1-37.26 31.56L192 261.77 37.26 287.55A32 32 0 0 1 0 256V64a32 32 0 0 1 37.26-31.56L192 58.23l154.74-25.78A32 32 0 0 1 384 64z\", \"M160 52.9V16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v36.9l-32 5.33zm0 246.64V496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V299.54l-32-5.33z\"]]\n};\nvar faHamsa = {\n prefix: 'fad',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", [\"M288 352a32 32 0 1 1-32-32 32 32 0 0 1 32 32z\", \"M509.34 307.25A32 32 0 0 0 480 288h-64V80a40 40 0 0 0-80 0v134a10 10 0 0 1-10 10h-20a10 10 0 0 1-10-10V40a40 40 0 0 0-80 0v174a10 10 0 0 1-10 10h-20a10 10 0 0 1-10-10V80a40 40 0 0 0-80 0v208H32a32 32 0 0 0-23.4 53.83l102.69 110C147 490.08 199.69 512 256 512s109-21.92 144.72-60.14l102.68-110a32 32 0 0 0 5.94-34.61zM256 416c-53 0-96-64-96-64s43-64 96-64 96 64 96 64-43 64-96 64z\"]]\n};\nvar faHandHeart = {\n prefix: 'fad',\n iconName: 'hand-heart',\n icon: [448, 512, [], \"f4bc\", [\"M416 112a32.09 32.09 0 0 0-32 32v72a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V64a32 32 0 0 0-64 0v152a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V32a32 32 0 0 0-64 0v184a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V64a32 32 0 0 0-64 0v241l-23.6-32.5a40 40 0 1 0-64.7 47.1l125.6 172.7a48.08 48.08 0 0 0 38.8 19.8h197.6a47.93 47.93 0 0 0 46.7-37l26.5-112.7a201.31 201.31 0 0 0 5.1-42.3V144a32.09 32.09 0 0 0-32-32zm-62.9 261.2l-72.6 71.4a12.2 12.2 0 0 1-17 0l-72.6-71.4a49.59 49.59 0 0 1 3.7-74.2c20.5-16.7 51.1-13.7 70 4.8l7.4 7.3 7.4-7.3c18.8-18.5 49.4-21.5 70-4.8a49.66 49.66 0 0 1 3.67 74.2z\", \"M194.57 299c20.5-16.7 51.1-13.7 70 4.8l7.4 7.3 7.4-7.3c18.8-18.5 49.4-21.5 70-4.8a49.66 49.66 0 0 1 3.7 74.2l-72.6 71.4a12.2 12.2 0 0 1-17 0l-72.6-71.4a49.59 49.59 0 0 1 3.7-74.2z\"]]\n};\nvar faHandHolding = {\n prefix: 'fad',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", [\"M564 377L412.8 498a64.08 64.08 0 0 1-40 14H16a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h55.4l46.5-37.7A117.69 117.69 0 0 1 192 320h160a32 32 0 0 1 31.6 37.4c-2.6 15.7-17.4 26.6-33.3 26.6H272a16 16 0 0 0 0 32h118.3a63.67 63.67 0 0 0 40-14l92.4-73.9c12.4-10 30.8-10.7 42.6 0A32 32 0 0 1 564 377z\", \"\"]]\n};\nvar faHandHoldingBox = {\n prefix: 'fad',\n iconName: 'hand-holding-box',\n icon: [576, 512, [], \"f47b\", [\"M352 128V0H224v128l64-32zm213.3 200.1c-11.8-10.7-30.2-10-42.6 0L430.3 402a63.67 63.67 0 0 1-40 14H272a16 16 0 0 1 0-32h78.3c15.9 0 30.7-10.9 33.3-26.6A32 32 0 0 0 352 320H192a117.69 117.69 0 0 0-74.1 26.3L71.4 384H16a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h356.8a64.08 64.08 0 0 0 40-14L564 377a32 32 0 0 0 1.3-48.9z\", \"M480 16v224a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16V16a16 16 0 0 1 16-16h112v128l64-32 64 32V0h112a16 16 0 0 1 16 16z\"]]\n};\nvar faHandHoldingHeart = {\n prefix: 'fad',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", [\"M564 377L412.8 498a64.08 64.08 0 0 1-40 14H16a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h55.4l46.5-37.7A117.69 117.69 0 0 1 192 320h160a32 32 0 0 1 31.6 37.4c-2.6 15.7-17.4 26.6-33.3 26.6H272a16 16 0 0 0 0 32h118.3a63.67 63.67 0 0 0 40-14l92.4-73.9c12.4-10 30.8-10.7 42.6 0A32 32 0 0 1 564 377z\", \"M404.1 17.52c35.4 30.6 37.2 85.6 5.6 118.8l-108.9 114.2a17.42 17.42 0 0 1-25.5 0l-108.9-114.2c-31.6-33.2-29.7-88.2 5.6-118.8 30.8-26.7 76.7-21.9 104.9 7.8l11.1 11.6 11.2-11.7c28.2-29.6 74.1-34.4 104.9-7.7z\"]]\n};\nvar faHandHoldingMagic = {\n prefix: 'fad',\n iconName: 'hand-holding-magic',\n icon: [576, 512, [], \"f6e5\", [\"M564 377L412.75 498a64 64 0 0 1-40 14H16a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h55.44l46.5-37.73A117.51 117.51 0 0 1 192 320h160a32 32 0 0 1 31.56 37.37C381 373.11 366.22 384 350.28 384H272a16 16 0 0 0 0 32h118.33a64 64 0 0 0 40-14l92.34-73.87c12.45-10 30.8-10.69 42.63 0A32 32 0 0 1 564 377z\", \"M384 128V96a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v32c0 14.5 14.28 32 32 32 64 0 96-32 96-32a96.1 96.1 0 0 1-96 96c-51.14 0-96-44.86-96-96V96a96.1 96.1 0 0 1 96-96h128a96.1 96.1 0 0 1 96 96v33.56c-.6 76.16-65.13 137.07-142.18 141.43L288 272l53.91-53.2C366.49 194.54 384 162.3 384 128z\"]]\n};\nvar faHandHoldingMedical = {\n prefix: 'fad',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", [\"M559.73,392.21l-135,99.52A104.8,104.8,0,0,1,363,512H16A16.11,16.11,0,0,1,0,496V400a16.11,16.11,0,0,1,16-16H71.37l46.5-37.74A117.7,117.7,0,0,1,192,320H352a32.07,32.07,0,0,1,31.62,37.38C381,373.15,366.22,384,350.23,384H272a16,16,0,0,0,0,32H392.59l119.67-88.18a40,40,0,1,1,47.47,64.37Z\", \"M400,96v64a16,16,0,0,1-16,16H320v64a16,16,0,0,1-16,16H240a16,16,0,0,1-16-16V176H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h64V16A16,16,0,0,1,240,0h64a16,16,0,0,1,16,16V80h64A16,16,0,0,1,400,96Z\"]]\n};\nvar faHandHoldingSeedling = {\n prefix: 'fad',\n iconName: 'hand-holding-seedling',\n icon: [576, 512, [], \"f4bf\", [\"M564 377L412.8 498a64.08 64.08 0 0 1-40 14H16a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h55.4l46.5-37.7A117.69 117.69 0 0 1 192 320h160a32 32 0 0 1 31.6 37.4c-2.6 15.7-17.4 26.6-33.3 26.6H272a16 16 0 0 0 0 32h118.3a63.67 63.67 0 0 0 40-14l92.4-73.9c12.4-10 30.8-10.7 42.6 0A32 32 0 0 1 564 377z\", \"M160 0H96a160 160 0 0 0 160 160v112a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160A160 160 0 0 0 160 0zm256 0c-40.7 0-77.5 15.7-105.8 40.8a190.94 190.94 0 0 1 41.6 116C424.9 142 480 77.5 480 0z\"]]\n};\nvar faHandHoldingUsd = {\n prefix: 'fad',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", [\"M564 377L412.78 498a64 64 0 0 1-40 14H16a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h55.4l46.5-37.71A117.65 117.65 0 0 1 192 320h160a32 32 0 0 1 32 31.94 31.2 31.2 0 0 1-.46 5.46C381 373.1 366.19 384 350.29 384H272a16 16 0 0 0 0 32h118.28a63.64 63.64 0 0 0 40-14l92.4-73.9c12.4-10 30.8-10.7 42.6 0A32 32 0 0 1 564 377z\", \"M329.28 222.4V240c0 8.8-7.77 16-17.26 16h-17.25c-9.48 0-17.25-7.2-17.25-16v-17.7a82.78 82.78 0 0 1-34.28-11.5 11.46 11.46 0 0 1-3.85-15.74 11.64 11.64 0 0 1 2.23-2.66l18.87-17.5c4-3.7 10-4.2 15.2-2a29.62 29.62 0 0 0 11.11 2.2h35.36c5 0 9.06-3.8 9.06-8.4a8.58 8.58 0 0 0-6.58-8.1l-53.91-14.3c-23.93-6.4-43.13-24.7-46.25-47.7-4.31-32 20.48-59.4 53.15-63V16c0-8.8 7.76-16 17.25-16h17.25c9.49 0 17.25 7.2 17.25 16v17.7a82.92 82.92 0 0 1 34.29 11.5 11.48 11.48 0 0 1 1.62 18.4l-18.87 17.5c-4 3.7-10 4.2-15.2 2a29.62 29.62 0 0 0-11.11-2.2h-35.36c-5 0-9.06 3.8-9.06 8.4a8.58 8.58 0 0 0 6.58 8.1l53.91 14.3c23.93 6.4 43.11 24.7 46.24 47.7 4.31 32-20.43 59.4-53.14 63z\"]]\n};\nvar faHandHoldingWater = {\n prefix: 'fad',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", [\"M564 377L412.8 498a64.08 64.08 0 0 1-40 14H16a16.05 16.05 0 0 1-16-16v-96a16 16 0 0 1 16-16h55.4l46.5-37.71A117.69 117.69 0 0 1 192 320h160a32 32 0 0 1 31.6 37.4c-2.6 15.7-17.4 26.6-33.3 26.6H272a16 16 0 0 0 0 32h118.3a63.67 63.67 0 0 0 40-14l92.4-73.9c12.4-10 30.8-10.7 42.6 0A32 32 0 0 1 564 377z\", \"M300.8 6.38C326.9 41.27 384 122 384 162c0 51.9-43 94-96 94s-96-42.1-96-94c0-40 57.1-120.71 83.2-155.6a16 16 0 0 1 25.6-.02z\"]]\n};\nvar faHandLizard = {\n prefix: 'fad',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", [\"M561.17 312.52A96 96 0 0 1 576 363.78V480H384v-61.46a24 24 0 0 0-11.15-20.27L261.1 327.46a48 48 0 0 0-25.69-7.46H88a24 24 0 0 1-24-24v-8a64 64 0 0 1 64-64h123.65a32 32 0 0 0 29.54-19.69l21.41-51.39A18 18 0 0 0 286 128H56A56 56 0 0 1 0 72V56a24 24 0 0 1 24-24h333.54a48 48 0 0 1 40.59 22.37z\", \"\"]]\n};\nvar faHandMiddleFinger = {\n prefix: 'fad',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", [\"\", \"M479.93,317.16,480,400A112,112,0,0,1,368.05,512h-215a112,112,0,0,1-79.19-32.81L42.93,448.28A37.31,37.31,0,0,1,32,421.89V348.44A37.34,37.34,0,0,1,52.64,315L80,300v76a8,8,0,0,0,16,0V229c0-15.26,12.87-28.38,30.87-31.38l30.68-5.12c17.82-3,34.45,8.39,34.45,23.54v32a8,8,0,0,0,16,0V46.54A48,48,0,0,1,257.44,0h0C283.75.86,304,23.78,304,50V248a8,8,0,0,0,16,0V216c0-15.14,16.63-26.49,34.45-23.53l38.4,6.4C406.31,201.16,416,211,416,222.45V272l35.65,9A37.34,37.34,0,0,1,479.93,317.16Z\"]]\n};\nvar faHandPaper = {\n prefix: 'fad',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", [\"M448 168v150.36a192 192 0 0 1-5.1 44L416.39 475a48 48 0 0 1-46.73 37H172.07a48 48 0 0 1-38.82-19.77L7.65 319.53a40 40 0 0 1 64.7-47.06L104 316V80a40 40 0 0 1 39.22-40C165.64 39.58 184 58.36 184 80.79V256h8V40a40 40 0 0 1 39.22-40C253.64-.42 272 18.36 272 40.79V256h8V79a40 40 0 0 1 39.22-40C341.64 38.58 360 57.36 360 79.79V256h8v-87.21c0-22.43 18.36-41.21 40.78-40.78A40 40 0 0 1 448 168z\", \"\"]]\n};\nvar faHandPeace = {\n prefix: 'fad',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", [\"M448 256v80a40.36 40.36 0 0 1-1.06 9.16l-32 136A40 40 0 0 1 376 512H136a40 40 0 0 1-34.73-20.15l-64-112A40 40 0 0 1 47 328.77l31.1-24.88L3.34 113.55a48 48 0 1 1 89.35-35.1L162.43 256H176V48a48 48 0 0 1 96 0v208h8v-32a40 40 0 0 1 80 0v32h8a40 40 0 0 1 80 0z\", \"\"]]\n};\nvar faHandPointDown = {\n prefix: 'fad',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", [\"M383.81 256c0 2.72.19 13.25.19 16 0 50.65-22.12 81.57-71.26 72.6-9.3 18.6-39.49 30.74-62.32 16.45-21.17 24.64-53.89 22.64-70.94 6.3v99.85c0 24.15-20.2 44.8-43.83 44.8-23.28 0-43.82-21.35-43.82-44.8V318a135.83 135.83 0 0 1-24.92 14.15C35.1 345.75 0 322.22 0 288c0-18.62 10.9-32.2 29.09-40 28.29-12.12 64.33-78.65 77.33-107.53A48 48 0 0 1 150.26 112h171.53a24 24 0 0 1 23.7 20.27C352.74 179.11 384 194 383.81 256z\", \"M328 0H136a24 24 0 0 0-24 24v48a24 24 0 0 0 24 24h192a24 24 0 0 0 24-24V24a24 24 0 0 0-24-24zm-24 68a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]]\n};\nvar faHandPointLeft = {\n prefix: 'fad',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", [\"M400 214.26v171.53a24 24 0 0 1-20.27 23.7C332.89 416.74 318 448 256 447.81c-2.72 0-13.25.19-16 .19-50.65 0-81.57-22.12-72.6-71.26-18.6-9.3-30.74-39.49-16.45-62.32-24.64-21.17-22.64-53.89-6.3-70.94H44.8c-24.15 0-44.8-20.2-44.8-43.83 0-23.28 21.35-43.82 44.8-43.82H194a135.83 135.83 0 0 1-14.15-24.92C166.25 99.1 189.78 64 224 64c18.62 0 32.2 10.9 40 29.09 12.12 28.29 78.65 64.33 107.53 77.33A48 48 0 0 1 400 214.26z\", \"M488 176h-48a24 24 0 0 0-24 24v192a24 24 0 0 0 24 24h48a24 24 0 0 0 24-24V200a24 24 0 0 0-24-24zm-24 212a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]]\n};\nvar faHandPointRight = {\n prefix: 'fad',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", [\"M512 199.65c0 23.63-20.65 43.83-44.8 43.83h-99.85c16.34 17 18.34 49.76-6.3 70.94 14.29 22.83 2.15 53-16.45 62.32 9 49.14-22 71.26-72.6 71.26-2.75 0-13.28-.2-16-.19-62 .16-76.89-31.07-123.73-38.32a24 24 0 0 1-20.27-23.7V214.26a48 48 0 0 1 28.47-43.84c28.88-13 95.41-49 107.53-77.33C255.8 74.9 269.38 64 288 64c34.22 0 57.75 35.1 44.12 66.91A135.83 135.83 0 0 1 318 155.83h149.2c23.45 0 44.8 20.54 44.8 43.82z\", \"M72 176H24a24 24 0 0 0-24 24v192a24 24 0 0 0 24 24h48a24 24 0 0 0 24-24V200a24 24 0 0 0-24-24zM48 388a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]]\n};\nvar faHandPointUp = {\n prefix: 'fad',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", [\"M0 224c0-34.22 35.1-57.75 66.91-44.12A135.83 135.83 0 0 1 91.83 194V44.8c0-23.45 20.54-44.8 43.82-44.8 23.63 0 43.83 20.65 43.83 44.8v99.85c17.05-16.34 49.76-18.35 70.94 6.3 22.83-14.29 53-2.15 62.32 16.45 49.14-9 71.26 21.95 71.26 72.6 0 2.75-.2 13.28-.2 16 .17 62-31.06 76.89-38.31 123.73a24 24 0 0 1-23.7 20.27H150.26a48 48 0 0 1-43.84-28.47c-13-28.88-49-95.41-77.33-107.53C10.9 256.2 0 242.62 0 224z\", \"M328 416H136a24 24 0 0 0-24 24v48a24 24 0 0 0 24 24h192a24 24 0 0 0 24-24v-48a24 24 0 0 0-24-24zm-24 68a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]]\n};\nvar faHandPointer = {\n prefix: 'fad',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", [\"M408 200a40 40 0 0 0-40 40h-8v-24a40 40 0 0 0-80 0v24h-8v-40a40 40 0 0 0-80 0v40h-8V40a40 40 0 0 0-80 0v276l-31.65-43.53a40 40 0 0 0-64.7 47.06l128 176A40 40 0 0 0 168 512h208a40 40 0 0 0 38.94-30.84l32-136A40.36 40.36 0 0 0 448 336v-96a40 40 0 0 0-40-40zM224 400a16 16 0 0 1-32 0v-64a16 16 0 0 1 32 0zm64 0a16 16 0 0 1-32 0v-64a16 16 0 0 1 32 0zm64 0a16 16 0 0 1-32 0v-64a16 16 0 0 1 32 0z\", \"M272 320a16 16 0 0 0-16 16v64a16 16 0 0 0 32 0v-64a16 16 0 0 0-16-16zm-64 0a16 16 0 0 0-16 16v64a16 16 0 0 0 32 0v-64a16 16 0 0 0-16-16zm128 0a16 16 0 0 0-16 16v64a16 16 0 0 0 32 0v-64a16 16 0 0 0-16-16z\"]]\n};\nvar faHandReceiving = {\n prefix: 'fad',\n iconName: 'hand-receiving',\n icon: [640, 512, [], \"f47c\", [\"M204.8 230.4a32 32 0 1 0-51.2 38.4l38.1 50.8a16 16 0 0 1-1.5 20.9l-12.8 12.8a15.9 15.9 0 0 1-23.6-1.1L64 244.4V96a32 32 0 0 0-64 0v218.4a48.05 48.05 0 0 0 10.5 30l104.1 134.3a59.69 59.69 0 0 1 10.4 21.7 15.67 15.67 0 0 0 15.3 11.6H272a16 16 0 0 0 16-16V384a128.2 128.2 0 0 0-25.6-76.8zM608 64a32 32 0 0 0-32 32v148.4l-89.8 107.8a16.06 16.06 0 0 1-23.6 1.1l-12.8-12.8a16 16 0 0 1-1.5-20.9l38.1-50.8a32 32 0 1 0-51.2-38.4l-57.6 76.8A128.2 128.2 0 0 0 352 384v112a16 16 0 0 0 16 16h131.7a15.76 15.76 0 0 0 15.3-11.6 59.69 59.69 0 0 1 10.4-21.7l104.1-134.3a48.05 48.05 0 0 0 10.5-30V96a32 32 0 0 0-32-32z\", \"M201.2 150.4a31.51 31.51 0 0 1 0-44.7l96.4-96.4a31.63 31.63 0 0 1 44.8 0l96.3 96.3a31.63 31.63 0 0 1 0 44.8l-96.4 96.4a31.69 31.69 0 0 1-44.7 0z\"]]\n};\nvar faHandRock = {\n prefix: 'fad',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", [\"M0 242.41V176a48 48 0 0 1 48.8-48c26.3.5 47.2 22.5 47.2 48.8v48.1l8 7.1V96a48 48 0 0 1 48.8-48c26.3.5 47.2 22.5 47.2 48.8V128h8V80a48 48 0 0 1 48.8-48c26.3.5 47.2 22.5 47.2 48.8V128h8V96a48 48 0 0 1 48.8-48c26.3.5 47.2 22.5 47.2 48.8V128h8a48 48 0 0 1 48.8-48c26.3.4 47.2 22.5 47.2 48.8v133.5a95.58 95.58 0 0 1-7.5 37.3l-49 116.3a97.42 97.42 0 0 0-7.5 37.3v2.9a23.94 23.94 0 0 1-24 24H184a23.94 23.94 0 0 1-24-24v-6.7a48.21 48.21 0 0 0-16.1-35.9L32.2 314.21A96.23 96.23 0 0 1 0 242.41z\", \"\"]]\n};\nvar faHandScissors = {\n prefix: 'fad',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", [\"M512 168v240a40 40 0 0 1-30.84 38.94l-136 32A40.36 40.36 0 0 1 336 480h-80a40 40 0 0 1 0-80v-8h-32a40 40 0 0 1 0-80h32v-8H48a48 48 0 0 1 0-96h208v-13.57L78.45 124.69a48 48 0 1 1 35.1-89.35l190.34 74.76L328.77 79a40 40 0 0 1 51.08-9.74l112 64A40 40 0 0 1 512 168z\", \"\"]]\n};\nvar faHandSparkles = {\n prefix: 'fad',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", [\"M512,112a32.1,32.1,0,0,0-32,32v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17-37.49-15.63-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144A32.1,32.1,0,0,0,512,112ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16Z\", \"M156.3,138l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0A7.29,7.29,0,0,0,156.3,138ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]]\n};\nvar faHandSpock = {\n prefix: 'fad',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", [\"M481.26,97.0985a40.02985,40.02985,0,0,0-48.17162,29.64056L403.69405,250.1978a7.55279,7.55279,0,0,1-14.746-3.26757L422.7877,81.96572c4.18748-20.41207-6.81637-41.78508-26.67564-48.08584a40.05627,40.05627,0,0,0-51.3044,30.08978l-37.67949,183.7047a10.42076,10.42076,0,0,1-20.30067.5L230.73015,30.0166a39.99638,39.99638,0,1,0-77.46832,19.93746l50.30441,195.64023a8.33016,8.33016,0,0,1-16.0546,4.4414l-37.156-125.39428a40.00575,40.00575,0,1,0-76.71833,22.7187L116.32843,291.434a283.31409,283.31409,0,0,1,11.66791,80.46859L67.40292,314.87735a39.992,39.992,0,0,0-54.8122,58.24988L120.89091,475.047A135.9695,135.9695,0,0,0,214.074,512h127.3665A103.9892,103.9892,0,0,0,442.604,432.09391l68.2965-286.82364A39.98824,39.98824,0,0,0,481.26,97.0985ZM352.00293,368.00029H270.31587a111.6497,111.6497,0,0,1,33.68732,79.99984,15.99991,15.99991,0,1,1-31.99982,0,80.08383,80.08383,0,0,0-79.99957-79.99984,16,16,0,0,1,0-31.99993H352.00293a16,16,0,0,1,0,31.99993Z\", \"M288.00328,464.0001a15.99074,15.99074,0,0,1-15.99991-16,80.08383,80.08383,0,0,0-79.99957-79.99984,16,16,0,0,1,0-31.99993H352.00293a16,16,0,0,1,0,31.99993H270.31587a111.6497,111.6497,0,0,1,33.68732,79.99984A15.99074,15.99074,0,0,1,288.00328,464.0001Z\"]]\n};\nvar faHands = {\n prefix: 'fad',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", [\"M204.8 230.4a32 32 0 1 0-51.2 38.4l38.1 50.8a16 16 0 0 1-1.5 20.9l-12.8 12.8a15.9 15.9 0 0 1-23.6-1.1L64 244.4V96a32 32 0 0 0-64 0v218.4a48.05 48.05 0 0 0 10.5 30l104.1 134.3a59.69 59.69 0 0 1 10.4 21.7 15.67 15.67 0 0 0 15.3 11.6H272a16 16 0 0 0 16-16V384a128.2 128.2 0 0 0-25.6-76.8zM608 64a32 32 0 0 0-32 32v148.4l-89.8 107.8a16.06 16.06 0 0 1-23.6 1.1l-12.8-12.8a16 16 0 0 1-1.5-20.9l38.1-50.8a32 32 0 1 0-51.2-38.4l-57.6 76.8A128.2 128.2 0 0 0 352 384v112a16 16 0 0 0 16 16h131.7a15.76 15.76 0 0 0 15.3-11.6 59.69 59.69 0 0 1 10.4-21.7l104.1-134.3a48.05 48.05 0 0 0 10.5-30V96a32 32 0 0 0-32-32z\", \"\"]]\n};\nvar faHandsHeart = {\n prefix: 'fad',\n iconName: 'hands-heart',\n icon: [640, 512, [], \"f4c3\", [\"M608 64a32 32 0 0 0-32 32v148.4l-89.8 107.8a16.06 16.06 0 0 1-23.6 1.1l-12.8-12.8a16 16 0 0 1-1.5-20.9l38.1-50.8a32 32 0 1 0-51.2-38.4l-57.6 76.8A128.2 128.2 0 0 0 352 384v112a16 16 0 0 0 16 16h131.7a15.76 15.76 0 0 0 15.3-11.6 59.69 59.69 0 0 1 10.4-21.7l104.1-134.3a48.05 48.05 0 0 0 10.5-30V96a32 32 0 0 0-32-32zM204.8 230.42a32 32 0 1 0-51.2 38.4l38.1 50.8a16 16 0 0 1-1.5 20.9l-12.8 12.8a15.9 15.9 0 0 1-23.6-1.1L64 244.42V96a32 32 0 1 0-64 0v218.4a48.05 48.05 0 0 0 10.5 30l104.1 134.3a59.69 59.69 0 0 1 10.4 21.7 15.67 15.67 0 0 0 15.3 11.6H272a16 16 0 0 0 16-16V384a128.2 128.2 0 0 0-25.6-76.8z\", \"M198.4 136.32c-31.6-33.2-29.7-88.2 5.6-118.8 30.8-26.7 76.7-21.9 104.9 7.8l11.1 11.6 11.1-11.7c28.2-29.6 74.1-34.4 104.9-7.7 35.4 30.6 37.2 85.6 5.7 118.8l-108.9 114.2a17.42 17.42 0 0 1-25.5 0z\"]]\n};\nvar faHandsHelping = {\n prefix: 'fad',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", [\"M224 248V121.68a31.78 31.78 0 0 1 15-27.1l33.5-20.9A64.48 64.48 0 0 1 306.4 64h102.21L512 4.28A32 32 0 0 1 555.72 16l80 138.6a32 32 0 0 1-11.7 43.7l-80 46.2V216a56 56 0 0 0-56-56H304v88a40 40 0 1 1-80 0z\", \"M4.32 357.38A31.92 31.92 0 0 1 16 313.68l80-46.2v-47.3a63.86 63.86 0 0 1 31.1-54.8l64.89-39V248a72 72 0 1 0 144 0v-56H488a23.94 23.94 0 0 1 24 24v48a23.94 23.94 0 0 1-24 24h-8v64a32 32 0 0 1-32 32h-16a64.06 64.06 0 0 1-64 64H231.41L128 507.68A32 32 0 0 1 84.32 496z\"]]\n};\nvar faHandsUsd = {\n prefix: 'fad',\n iconName: 'hands-usd',\n icon: [640, 512, [], \"f4c5\", [\"M608 64a32 32 0 0 0-32 32v148.4l-89.8 107.8a16.06 16.06 0 0 1-23.6 1.1l-12.8-12.8a16 16 0 0 1-1.5-20.9l38.1-50.8a32 32 0 1 0-51.2-38.4l-57.6 76.8A128.2 128.2 0 0 0 352 384v112a16 16 0 0 0 16 16h131.7a15.76 15.76 0 0 0 15.3-11.6 59.69 59.69 0 0 1 10.4-21.7l104.1-134.3a48.05 48.05 0 0 0 10.5-30V96a32 32 0 0 0-32-32zM204.8 230.4a32 32 0 1 0-51.2 38.4l38.1 50.8a16 16 0 0 1-1.5 20.9l-12.8 12.8a15.9 15.9 0 0 1-23.6-1.1L64 244.4V96a32 32 0 0 0-64 0v218.4a48.05 48.05 0 0 0 10.5 30l104.1 134.3a59.69 59.69 0 0 1 10.4 21.7 15.67 15.67 0 0 0 15.3 11.6H272a16 16 0 0 0 16-16V384a128.2 128.2 0 0 0-25.6-76.8z\", \"M246.7 96.6c-4.1-32 19-59.4 49.3-63V16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v17.7a73.53 73.53 0 0 1 31.8 11.5c6.2 4.1 6.8 13.1 1.5 18.4l-17.5 17.5c-3.7 3.7-9.3 4.2-14.1 2a25.73 25.73 0 0 0-10.3-2.2h-32.8a8.41 8.41 0 0 0-2.3 16.5l50.1 14.3c22.2 6.4 40 24.7 42.9 47.7a56.14 56.14 0 0 1-49.3 63V240a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-17.7a73.53 73.53 0 0 1-31.8-11.5c-6.2-4.1-6.8-13.1-1.5-18.4l17.5-17.5c3.7-3.7 9.3-4.2 14.1-2a25.73 25.73 0 0 0 10.3 2.2h32.8a8.41 8.41 0 0 0 2.3-16.5l-50.1-14.3c-22.2-6.4-40-24.7-42.9-47.7z\"]]\n};\nvar faHandsWash = {\n prefix: 'fad',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", [\"M290.59,49.94c-11.53-1.34-22.22,6.45-25.71,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05A24,24,0,0,0,290.59,49.94ZM342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17,16.11-5A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416ZM416,0a32,32,0,1,0,32,32A32,32,0,0,0,416,0Zm80,128a48,48,0,1,0,48,48A48,48,0,0,0,496,128Z\", \"M519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336Z\"]]\n};\nvar faHandshake = {\n prefix: 'fad',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", [\"M0 384h64a32 32 0 0 0 32-32V128.2H0zm48-63.9a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM457.3 73.4a31.77 31.77 0 0 0-22.6-9.4h-85.9a32 32 0 0 0-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4a39.78 39.78 0 0 0-2.1 56c12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2a16 16 0 0 1 21.6 23.6l-26.1 23.9L504 313.8a72 72 0 0 1 7.9 7.7V128z\", \"M544 128.2v223.9a32 32 0 0 0 32 32h64V128.2zm48 223.9a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm-108.1-13.4L334.6 217.5l-30 27.5a72 72 0 0 1-97.3-106.1L289.1 64h-83.8a31.94 31.94 0 0 0-22.6 9.4L128 128v223.9h18.3l90.5 81.9a64 64 0 0 0 90-9.3l.2-.2 17.9 15.5a37.16 37.16 0 0 0 52.3-5.4l31.4-38.6 5.4 4.4a32 32 0 0 0 45-4.7l9.5-11.7a32.06 32.06 0 0 0-4.6-45.1z\"]]\n};\nvar faHandshakeAlt = {\n prefix: 'fad',\n iconName: 'handshake-alt',\n icon: [640, 512, [], \"f4c6\", [\"M640 143.9v191.8a16 16 0 0 1-16 16h-97.6a63.36 63.36 0 0 0-22.2-37.9L358.6 195.6l26.1-23.9a16 16 0 0 0-21.6-23.6l-27 24.7-53 48.5c-.1.1-.3.1-.4.2-21.1 18.9-46.5 7.8-56.1-2.7a39.69 39.69 0 0 1 2.1-56c.1-.1.2-.3.3-.4l98.3-90a32 32 0 0 1 21.6-8.4h85.9a31.94 31.94 0 0 1 22.6 9.4L512 128h112a16 16 0 0 1 16 15.9z\", \"M0 335.9V144a16 16 0 0 1 16-16h112l54.7-54.6a31.94 31.94 0 0 1 22.6-9.4h83.8l-81.8 74.9a72 72 0 0 0-4.4 101.7c14.9 16.3 61.1 41.5 101.7 4.4l30-27.5 149.3 121.2a32.06 32.06 0 0 1 4.6 45.1l-9.5 11.7a32 32 0 0 1-45 4.7l-5.4-4.4-31.4 38.6a37.16 37.16 0 0 1-52.3 5.4L327 424.3l-.2.2a64 64 0 0 1-90 9.3l-90.5-81.9H16a16 16 0 0 1-16-16z\"]]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fad',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", [\"M289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3,51.13,39.52ZM16,128A16,16,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Zm608,0H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68,64.22,49.63,32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61L358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128Z\", \"M636.63,480.55,617,505.82a16,16,0,0,1-22.45,2.81L6.19,53.91A16,16,0,0,1,3.38,31.46L23,6.19A16,16,0,0,1,45.47,3.38L633.82,458.1A16,16,0,0,1,636.63,480.55Z\"]]\n};\nvar faHandshakeSlash = {\n prefix: 'fad',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", [\"M0,128.2V384H64a32,32,0,0,0,32-32V184L23.83,128.2ZM48,320.09a16,16,0,1,1-16,16A16.05,16.05,0,0,1,48,320.09ZM289.09,64H205.3a31.94,31.94,0,0,0-22.6,9.4L162.36,93.71l51.13,39.52ZM128,351.91h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.83L128,208.72ZM544,128.2V352.09a32,32,0,0,0,32,32h64V128.2Zm48,223.89a16,16,0,1,1,16-16A16,16,0,0,1,592,352.09ZM434.7,64H348.8a32,32,0,0,0-21.6,8.4l-88.07,80.65,64.2,49.62,59.58-54.58A16,16,0,0,1,384.5,171.7l-26.09,23.89L504,313.8a72.15,72.15,0,0,1,7.91,7.7V128L457.3,73.4A31.75,31.75,0,0,0,434.7,64Z\", \"M636.63,480.55,617,505.82a16,16,0,0,1-22.45,2.81L6.19,53.91A16,16,0,0,1,3.38,31.46L23,6.19A16,16,0,0,1,45.47,3.38L633.82,458.1A16,16,0,0,1,636.63,480.55Z\"]]\n};\nvar faHanukiah = {\n prefix: 'fad',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", [\"M152 101.33c0 14.72 10.75 26.67 24 26.67s24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33zm64 0c0 14.72 10.75 26.67 24 26.67s24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33zm-208 0C8 116.05 18.75 128 32 128s24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33zm80 0C88 116.05 98.75 128 112 128s24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33zm208-48C296 68.05 306.75 80 320 80s24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33zm208 48c0 14.72 10.75 26.67 24 26.67s24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33zM608 48s-24 38.61-24 53.33S594.75 128 608 128s24-11.94 24-26.67S608 48 608 48zm-232 53.33c0 14.72 10.75 26.67 24 26.67s24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33zm64 0c0 14.72 10.75 26.67 24 26.67s24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33z\", \"M544 168a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v120h32zm-352 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v120h32zm-64 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v120h32zm288 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v120h32zm64 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v120h32zm-224 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v120h32zm368-8h-32a16 16 0 0 0-16 16v112a32 32 0 0 1-32 32H352V128a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v192H96a32 32 0 0 1-32-32V176a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v112a96 96 0 0 0 96 96h192v64H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-64h192a96 96 0 0 0 96-96V176a16 16 0 0 0-16-16z\"]]\n};\nvar faHardHat = {\n prefix: 'fad',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", [\"M0 432v-32a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16z\", \"M320 80v112l40.81-81.62C430.72 139.08 480 207.75 480 288v64H32v-64c0-80.25 49.28-148.92 119.19-177.62L192 192V80a16 16 0 0 1 16-16h96a16 16 0 0 1 16 16z\"]]\n};\nvar faHashtag = {\n prefix: 'fad',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", [\"M202.46 32.19a11.5 11.5 0 0 0-2.11-.19h-40.63a12 12 0 0 0-11.81 9.89L132.53 128h65l14.62-81.89a12 12 0 0 0-9.69-13.92zM72.19 465.89a12 12 0 0 0 9.7 13.92A11.5 11.5 0 0 0 84 480h40.64a12 12 0 0 0 11.81-9.89L186.11 192h-65zm163.65 0a12 12 0 0 0 9.7 13.92 11.5 11.5 0 0 0 2.11.19h40.63a12 12 0 0 0 11.82-9.89L315.47 384h-65zm130.27-433.7A11.5 11.5 0 0 0 364 32h-40.63a12 12 0 0 0-11.82 9.89L261.89 320h65l48.92-273.89a12 12 0 0 0-9.7-13.92z\", \"M44.18 191.81a11.5 11.5 0 0 0 2.11.19H285l11-64H53.43a12 12 0 0 0-11.81 9.89l-7.14 40a12 12 0 0 0 9.7 13.92zM7.33 329.89l-7.14 40a12 12 0 0 0 9.7 13.92A11.5 11.5 0 0 0 12 384h75l11-64H19.15a12 12 0 0 0-11.82 9.89zm430.78-201.7A11.5 11.5 0 0 0 436 128h-75l-11 64h78.85a12 12 0 0 0 11.82-9.89l7.14-40a12 12 0 0 0-9.7-13.92zm-34.29 192a11.5 11.5 0 0 0-2.11-.19H163l-11 64h242.57a12 12 0 0 0 11.81-9.89l7.14-40a12 12 0 0 0-9.7-13.92z\"]]\n};\nvar faHatChef = {\n prefix: 'fad',\n iconName: 'hat-chef',\n icon: [512, 512, [], \"f86b\", [\"M416 32a95.17 95.17 0 0 0-57.73 19.74C334.93 20.5 298 0 256 0s-78.93 20.5-102.27 51.74A95.56 95.56 0 0 0 0 128c0 41.74 64 192 64 192h60.09L112 169.25a8 8 0 0 1 7.33-8.61l16-1.28a8 8 0 0 1 8.61 7.34L156.2 320h83.14V168a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v152h84.46l12.27-153.3a8 8 0 0 1 8.61-7.34l16 1.28a8 8 0 0 1 7.33 8.61L387.91 320H448s64-150.26 64-192a96 96 0 0 0-96-96z\", \"M64 480a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V352H64z\"]]\n};\nvar faHatCowboy = {\n prefix: 'fad',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", [\"M509.94 318.61C462.5 336.65 399.18 352 320 352c-79 0-142.34-15.44-189.9-33.56.12-.87.24-1.71.35-2.53 2.59-15.31 6.08-35.12 10.62-57.23C180.16 274.28 237.79 288 320 288s139.87-13.71 179-29.3c4.56 22.18 8.05 42 10.64 57.35.06.84.18 1.69.3 2.56z\", \"M499 258.7C481.92 175.83 450.62 64 401.33 64c-15.75 0-29.81 6.67-41.63 15.7a65.47 65.47 0 0 1-79.4 0c-11.82-9-25.87-15.7-41.63-15.7-49.28 0-80.57 111.82-97.61 194.68C180.16 274.28 237.79 288 320 288s139.87-13.71 179-29.3zm134 1a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]]\n};\nvar faHatCowboySide = {\n prefix: 'fad',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", [\"M640 400c0 67.24-60.25 80-75.2 80-92.89 0-139.5-37.07-209.87-104.46l-88.21-84.48C241 268.12 211 256 180 256c-69.69 0-128.64 62.72-146.68 156.06-3.19 16.6-.38 33.83 7.71 47.3C48.86 472.47 60.64 480 73.28 480h-42.7a23.86 23.86 0 0 1-21.64-13.63C-3.73 439.33.3 414.1 1.87 406 22.9 297.14 94.47 224 180 224c38.95 0 76.31 14.92 108.89 43.95l88.21 84.48C446.45 418.88 485.18 448 564.8 448c23.82 0 43.2-21.53 43.2-48 0-21.81-20.61-108.08-112.45-124.87L490 242.05C601.87 256 640 355.47 640 400z\", \"M354.93 375.54l-88.21-84.48C241 268.12 211 256 180 256c-69.69 0-128.64 62.72-146.68 156.06-3.19 16.6-.38 33.83 7.71 47.3C48.86 472.47 60.64 480 73.28 480H564.8c-71.12 0-115.11-21.73-163.41-62.16-14.78-12.38-29.97-26.5-46.46-42.3zm140.62-100.41l-27.16-162c-6.14-33-40.81-54.75-76.36-47.79l-191.18 37.38c-27.09 5.3-47.41 26.07-50.35 51.48l-7.57 74.53A146.73 146.73 0 0 1 180 224c38.95 0 76.31 14.92 108.89 43.95l88.21 84.48C446.45 418.88 485.18 448 564.8 448c23.82 0 43.2-21.53 43.2-48 0-21.81-20.61-108.08-112.45-124.87z\"]]\n};\nvar faHatSanta = {\n prefix: 'fad',\n iconName: 'hat-santa',\n icon: [640, 512, [], \"f7a7\", [\"M452.6 352H58.7l89.7-215.5A170 170 0 0 1 435 92.1l53.1 62.7a55.94 55.94 0 0 0-24.2 45.3 54.08 54.08 0 0 0-8.2 11.4L384 192z\", \"M480 384H32a32 32 0 0 0-32 32v32a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-32a32 32 0 0 0-32-32zm160-144c0-12.1-8.2-21.9-19.2-25.2 5.5-10.1 4.4-22.8-4.2-31.4s-21.3-9.7-31.4-4.2c-3.3-11-13.1-19.2-25.2-19.2s-21.9 8.2-25.2 19.2c-10.1-5.5-22.8-4.4-31.4 4.2s-9.7 21.3-4.2 31.4c-11 3.3-19.2 13.1-19.2 25.2s8.2 21.9 19.2 25.2c-5.5 10.1-4.4 22.8 4.2 31.4a25.45 25.45 0 0 0 31.4 4.2c3.3 11 13.1 19.2 25.2 19.2s21.9-8.2 25.2-19.2c4 2.1 8.2 3.6 12.5 3.6a26.9 26.9 0 0 0 18.9-7.8c8.6-8.6 9.7-21.3 4.2-31.4 11-3.3 19.2-13.1 19.2-25.2z\"]]\n};\nvar faHatWinter = {\n prefix: 'fad',\n iconName: 'hat-winter',\n icon: [512, 512, [], \"f7a8\", [\"M128 270.1l64 32 64-32 64 32 64-32 64 32 7.2-3.6c-19.7-50.2-55.2-104.9-119-140.5-.4.4-.6.8-1 1.2a58.46 58.46 0 0 1-39.6 17.2 57.79 57.79 0 0 1-79.2 0 58.4 58.4 0 0 1-39.6-17.2c-.4-.4-.6-.8-1-1.2-63.9 35.6-99.4 90.4-119 140.5l7.2 3.6zM496 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M195.2 105.2c-5.5 10.1-4.4 22.8 4.2 31.4a25.45 25.45 0 0 0 31.4 4.2c3.3 11 13.1 19.2 25.2 19.2s21.9-8.2 25.2-19.2c4 2.1 8.2 3.6 12.5 3.6a26.9 26.9 0 0 0 18.9-7.8c8.6-8.6 9.7-21.3 4.2-31.4 11-3.3 19.2-13.1 19.2-25.2s-8.2-21.9-19.2-25.2c5.5-10.1 4.4-22.8-4.2-31.4s-21.3-9.7-31.4-4.2C277.9 8.2 268.1 0 256 0s-21.9 8.2-25.2 19.2c-10.1-5.5-22.8-4.4-31.4 4.2s-9.7 21.3-4.2 31.4C184.2 58.1 176 67.9 176 80s8.2 21.9 19.2 25.2zm270.5 223.9l-17.7 8.8-64-32-64 32-64-32-64 32-64-32-64 32-17.7-8.8C32.2 377.8 32 416 32 416h448s-.2-38.2-14.3-86.9z\"]]\n};\nvar faHatWitch = {\n prefix: 'fad',\n iconName: 'hat-witch',\n icon: [576, 512, [], \"f6e7\", [\"M571.21 426.81l-22.67-22.66c-6-6-15.49-6-22-.43A185.1 185.1 0 0 1 405.88 448H170.1a185.14 185.14 0 0 1-120.68-44.28c-6.5-5.53-16-5.61-22 .43L4.78 426.81c-6.44 6.44-6.45 17.25.4 23.25A248.62 248.62 0 0 0 170.1 512h235.78a248.64 248.64 0 0 0 164.93-61.94c6.84-6 6.84-16.81.4-23.25zM320 352h-64v64h64z\", \"M542.35 114.76L512 192l-14-42.12A32 32 0 0 0 467.59 128H428.4a32 32 0 0 0-30.4 21.87l-6.35 19a64.06 64.06 0 0 0 1.89 45.45l79.6 185.73A152.57 152.57 0 0 1 405.88 416H352v-64a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32v64h-53.9a152.51 152.51 0 0 1-67.1-15.81l104-233.86a128.08 128.08 0 0 1 53.46-59.15l166.35-103a32 32 0 0 1 38.5 5.16L534.62 82a32 32 0 0 1 7.73 32.76z\"]]\n};\nvar faHatWizard = {\n prefix: 'fad',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", [\"M512 464v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16z\", \"M240 416h208l-86.41-201.63a64 64 0 0 1-1.89-45.45L416 0 228.42 107.19A128 128 0 0 0 175 166.34L64 416h144l-16-32-64-32 64-32 32-64 32 64 64 32-64 32zm48-224l-16 32-16-32-32-16 32-16 16-32 16 32 32 16z\"]]\n};\nvar faHdd = {\n prefix: 'fad',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", [\"M384 320a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm175.88-88.18L462.25 85.37A48 48 0 0 0 422.31 64H153.69a48 48 0 0 0-39.94 21.37L16.12 231.82A96 96 0 0 0 0 285.07V304a48 48 0 0 1 48-48h480a48 48 0 0 1 48 48v-18.93a96 96 0 0 0-16.12-53.25z\", \"M528 256H48a48 48 0 0 0-48 48v96a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48v-96a48 48 0 0 0-48-48zM384 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faHeadSide = {\n prefix: 'fad',\n iconName: 'head-side',\n icon: [512, 512, [], \"f6e9\", [\"M509.21 275c-20.94-47.12-48.44-151.73-73.08-186.75A208 208 0 0 0 266.09 0H192C86 0 0 86 0 192a191.28 191.28 0 0 0 64 142.82V512h256v-64h64a64 64 0 0 0 64-64v-64h32a32 32 0 0 0 29.21-45zM320 224a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M320 224a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faHeadSideBrain = {\n prefix: 'fad',\n iconName: 'head-side-brain',\n icon: [512, 512, [], \"f808\", [\"M509.21 275c-20.94-47.12-48.44-151.73-73.08-186.75A208 208 0 0 0 266.09 0H192C86 0 0 86 0 192a191.28 191.28 0 0 0 64 142.82V512h256v-64h64a64 64 0 0 0 64-64v-64h32a32 32 0 0 0 29.21-45zM336 208h-50.94a47.5 47.5 0 0 1 2.94 16 48 48 0 0 1-48 48 47.5 47.5 0 0 1-16-2.94V320h-64v-50.94a47.5 47.5 0 0 1-16 2.94 48 48 0 0 1-48-48c0-1 .23-1.89.29-2.85A47.88 47.88 0 0 1 112 128a48 48 0 0 1 48-48 47.43 47.43 0 0 1 23.53 6.4 47.76 47.76 0 0 1 80.94 0 47.38 47.38 0 0 1 68.59 25.6H336a48 48 0 0 1 0 96z\", \"M66.61 160.29A47.89 47.89 0 0 1 112 128a48 48 0 0 1 48-48 47.43 47.43 0 0 1 23.53 6.4 47.76 47.76 0 0 1 80.94 0 47.38 47.38 0 0 1 68.59 25.6H336a48 48 0 0 1 0 96h-50.94a47.5 47.5 0 0 1 2.94 16 48 48 0 0 1-48 48 47.5 47.5 0 0 1-16-2.94V320h-64v-50.94a47.5 47.5 0 0 1-16 2.94 48 48 0 0 1-48-48c0-1 .23-1.89.29-2.85a47.88 47.88 0 0 1-29.68-60.86z\"]]\n};\nvar faHeadSideCough = {\n prefix: 'fad',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", [\"M477.22,275c-21-47.13-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.87V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320ZM288,160a32,32,0,1,0,32,32A32.06,32.06,0,0,0,288,160Z\"]]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fad',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", [\"M288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-80a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,16a24,24,0,1,0,24,24A24,24,0,0,0,552,320ZM404.1,88.25A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32c0,7-2.73,13.17-6.58,18.45L454.11,319.21c19.56-3.81,31.62-25,23.11-44.21C456.22,227.88,428.72,123.25,404.1,88.25ZM616,360a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\", \"M636.62,480.55,617,505.82a16,16,0,0,1-22.45,2.81L6.18,53.91A16,16,0,0,1,3.37,31.46L23,6.19A16,16,0,0,1,45.46,3.38L633.81,458.1A16,16,0,0,1,636.62,480.55Z\"]]\n};\nvar faHeadSideHeadphones = {\n prefix: 'fad',\n iconName: 'head-side-headphones',\n icon: [512, 512, [], \"f8c2\", [\"M480 320h-32v64a64 64 0 0 1-64 64h-64v64H64V334.81A191.27 191.27 0 0 1 0 192C0 86 86 0 192 0a191.52 191.52 0 0 0-32 2.88V107.2c-37.73 18-64 56.2-64 100.8a112 112 0 0 0 224 0c0-44.61-26.27-82.8-64-100.81V0h10.08a207.87 207.87 0 0 1 170 88.25c24.66 35 52.16 139.63 73.1 186.75A32 32 0 0 1 480 320z\", \"M256 107.19V0h-64a191.52 191.52 0 0 0-32 2.88V107.2c-37.73 18-64 56.2-64 100.8a112 112 0 0 0 224 0c0-44.61-26.25-82.8-64-100.81zM208 272a64 64 0 1 1 64-64 64 64 0 0 1-64 64zm0-96a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faHeadSideMask = {\n prefix: 'fad',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", [\"M.15,184.42C-2.17,244.21,23,298.06,64,334.87V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.13-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Z\", \"M320,224a32,32,0,1,0-32-32A32.06,32.06,0,0,0,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]]\n};\nvar faHeadSideMedical = {\n prefix: 'fad',\n iconName: 'head-side-medical',\n icon: [512, 512, [], \"f809\", [\"M509.21 275c-20.94-47.12-48.44-151.73-73.08-186.75A208 208 0 0 0 266.09 0H192C86 0 0 86 0 192a191.28 191.28 0 0 0 64 142.82V512h256v-64h64a64 64 0 0 0 64-64v-64h32a32 32 0 0 0 29.21-45zM320 216a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\", \"M320 216a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]]\n};\nvar faHeadSideVirus = {\n prefix: 'fad',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", [\"M509.2,275c-20.93-47.13-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\", \"M368,208H355.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,0,0-22.63-22.63l-8.57,8.58C290.47,150.91,256,136.63,256,108.12V96a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H112a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V352a16,16,0,0,0,32,0V339.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,0,0,22.63-22.63l-8.58-8.57C313.09,274.47,327.37,240,355.88,240H368a16,16,0,0,0,0-32Zm-160,0a16,16,0,1,1,16-16A16,16,0,0,1,208,208Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,272,272Z\"]]\n};\nvar faHeadVr = {\n prefix: 'fad',\n iconName: 'head-vr',\n icon: [512, 512, [], \"f6ea\", [\"M509.2 275c-2.47-5.56-5.05-12-7.69-19H308.56a119.09 119.09 0 0 1-80.92-32H35a191.65 191.65 0 0 0 61 110.82V512h224v-64h64a64 64 0 0 0 64-64v-64h32a32 32 0 0 0 29.2-45zM220.94 68.87A112.21 112.21 0 0 1 304 32h72.3A207.36 207.36 0 0 0 266.09 0H224C140.44 0 69.54 53.48 43.16 128h150a112.22 112.22 0 0 1 27.78-59.13z\", \"M496 64h-48v160h48a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm-270.4 64H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h224.84c15.81 19.71 41 32 67.72 32H416V64H304a80 80 0 0 0-78.4 64z\"]]\n};\nvar faHeading = {\n prefix: 'fad',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", [\"M480 32H320a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-288 0H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 384H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm288 0H320a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M352 96h96v320h-96V288H160v128H64V96h96v128h192z\"]]\n};\nvar faHeadphones = {\n prefix: 'fad',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", [\"M512 288v48a32 32 0 0 1-17.69 28.62l-14.37 7c0-1.19.06-2.38.06-3.58a111.64 111.64 0 0 0-32-78.37V288c0-105.87-86.13-192-192-192S64 182.13 64 288v1.63A111.64 111.64 0 0 0 32 368c0 1.2 0 2.39.06 3.58l-14.37-7A32 32 0 0 1 0 336v-48C0 146.5 114.52 32 256 32s256 114.52 256 256z\", \"M168 256h-24a112 112 0 0 0 0 224h24a24 24 0 0 0 24-24V280a24 24 0 0 0-24-24zm200 0h-24a24 24 0 0 0-24 24v176a24 24 0 0 0 24 24h24a112 112 0 0 0 0-224z\"]]\n};\nvar faHeadphonesAlt = {\n prefix: 'fad',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", [\"M496 416h-16a16 16 0 0 1-16-16V288c0-114.67-93.33-207.8-208-207.82S48 173.33 48 288v112a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V288C4.57 151.13 112.91 32 256 32s251.43 119.13 256 256v112a16 16 0 0 1-16 16z\", \"M160 288h-16a64.05 64.05 0 0 0-64 64.12v63.76A64.06 64.06 0 0 0 144 480h16a32 32 0 0 0 32-32.06V320.06A32 32 0 0 0 160 288zm208 0h-16a32 32 0 0 0-32 32.06v127.88A32 32 0 0 0 352 480h16a64.06 64.06 0 0 0 64-64.12v-63.76A64.06 64.06 0 0 0 368 288z\"]]\n};\nvar faHeadset = {\n prefix: 'fad',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", [\"M192 464a48 48 0 0 1 48-48h32a48 48 0 0 1 48 48h101.72A42.28 42.28 0 0 0 464 421.72s0-163.29-.12-165.72h.12c0-114.69-93.31-208-208-208S48 141.31 48 256v16a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-16C4.58 118.83 113.18 0 256 0s251.42 118.83 256 256v165.72A90.28 90.28 0 0 1 421.72 512H240a48 48 0 0 1-48-48z\", \"M368 176h-16a32 32 0 0 0-32 32v112a32 32 0 0 0 32 32h16a64 64 0 0 0 64-64v-48a64 64 0 0 0-64-64zm-208 0h-16a64 64 0 0 0-64 64v48a64 64 0 0 0 64 64h16a32 32 0 0 0 32-32V208a32 32 0 0 0-32-32z\"]]\n};\nvar faHeart = {\n prefix: 'fad',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", [\"M462.32 62.63C407.5 15.94 326 24.33 275.69 76.23L256 96.53l-19.69-20.3c-50.21-51.9-131.8-60.29-186.61-13.6-62.78 53.6-66.09 149.81-9.88 207.9l193.5 199.79a31.31 31.31 0 0 0 45.28 0l193.5-199.79c56.31-58.09 53-154.3-9.78-207.9zm-52.8 185l-143.1 143.85a15.29 15.29 0 0 1-21.7 0l-140-140.78c-28.37-28.52-33.78-75-8.37-106.23a76.44 76.44 0 0 1 113.77-5.88l45.49 45.7 42.37-42.58c28.38-28.52 74.65-34 105.71-8.45a77.35 77.35 0 0 1 5.83 114.36z\", \"M244.72 391.48l-140-140.78c-28.37-28.52-33.78-75-8.36-106.23a76.43 76.43 0 0 1 113.76-5.88l45.49 45.7 42.37-42.58c28.38-28.51 74.65-34 105.71-8.45a77.35 77.35 0 0 1 5.87 114.36L266.41 391.48a15.28 15.28 0 0 1-21.69 0z\"]]\n};\nvar faHeartBroken = {\n prefix: 'fad',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", [\"M473.68 73.78c48.71 49.79 50.8 129.08 7.3 182.08L268.8 474.53a17.82 17.82 0 0 1-25.19.5l-.51-.5L31 256c-43.49-53.1-41.39-132.39 7.3-182.18l2.4-2.4C87 24 159.7 19.6 211.41 57.39L240 143.87l-96 64 144 144-48-128 96-64-34.31-103.39c51.6-36.89 123.59-32.19 169.59 14.8z\", \"M288 352L144 208l96-64.1-28.59-86.52q16.68 14.15 32 29.81L256 100l11.67-12q16.23-16.64 34-31.6L336 159.87l-96 64z\"]]\n};\nvar faHeartCircle = {\n prefix: 'fad',\n iconName: 'heart-circle',\n icon: [496, 512, [], \"f4c7\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM371.5,280.3,260.9,394.5a17.88,17.88,0,0,1-25.28.62h0c-.21-.2-.42-.41-.62-.62L124.5,280.3c-32.1-33.2-30.2-88.2,5.7-118.8,31.3-26.7,77.9-21.9,106.6,7.7l11.3,11.6,11.3-11.6c28.7-29.6,75.3-34.4,106.6-7.7,35.8,30.6,37.7,85.6,5.5,118.8Z\", \"M371.5,280.3,260.9,394.5a17.88,17.88,0,0,1-25.28.62h0c-.21-.2-.42-.41-.62-.62L124.5,280.3c-32.1-33.2-30.2-88.2,5.7-118.8,31.3-26.7,77.9-21.9,106.6,7.7l11.3,11.6,11.3-11.6c28.7-29.6,75.3-34.4,106.6-7.7,35.8,30.6,37.7,85.6,5.5,118.8Z\"]]\n};\nvar faHeartRate = {\n prefix: 'fad',\n iconName: 'heart-rate',\n icon: [640, 512, [], \"f5f8\", [\"M640 240v32a16 16 0 0 1-16 16H499.78l-55.15 110.3a32 32 0 0 1-59.5-5.89l-61.39-225.12-68.44 319.4A32 32 0 0 1 225.08 512h-1.09a32 32 0 0 1-30.75-23.2L135.86 288H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h144a32 32 0 0 1 30.77 23.2L219.56 348 288.7 25.3a32 32 0 0 1 62.18-1.72l73.95 271.2 26.54-53.09A32 32 0 0 1 480 224h144a16 16 0 0 1 16 16z\", \"\"]]\n};\nvar faHeartSquare = {\n prefix: 'fad',\n iconName: 'heart-square',\n icon: [448, 512, [], \"f4c8\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-52.5 248.3L236.9 394.5a17.88 17.88 0 0 1-25.9 0L100.5 280.3c-32.1-33.2-30.2-88.2 5.7-118.8 31.3-26.7 77.9-21.9 106.6 7.7l11.3 11.6 11.3-11.6c28.7-29.6 75.3-34.4 106.6-7.7 35.8 30.6 37.7 85.6 5.5 118.8z\", \"M106.2 161.5c31.3-26.7 77.9-21.9 106.6 7.7l11.3 11.6 11.3-11.6c28.7-29.6 75.3-34.4 106.6-7.7 35.8 30.6 37.7 85.6 5.5 118.8L236.9 394.5a17.88 17.88 0 0 1-25.9 0L100.5 280.3c-32.1-33.2-30.2-88.2 5.7-118.8z\"]]\n};\nvar faHeartbeat = {\n prefix: 'fad',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", [\"M320.21 243.85l-49.7 99.4a16 16 0 0 1-28.9-.6l-56.9-126.3-30 71.7h-94.1l182.5 186.5a17.82 17.82 0 0 0 25.7 0l182.61-186.5H342.31zM473.71 74l-2.4-2.5a131 131 0 0 0-187.39 0L256 100.05l-27.9-28.5a130.83 130.83 0 0 0-187.4 0L38.31 74c-48.7 49.8-50.8 129.1-7.3 182.1h102.41l35.89-86.2a16 16 0 0 1 29.4-.4l58.21 129.3 49-97.9a16 16 0 0 1 28.59 0l27.6 55.2H481c43.51-53.05 41.42-132.35-7.29-182.1z\", \"M451 288l-.1.05H342.31l-22.1-44.2-49.7 99.4a16 16 0 0 1-28.9-.6l-56.9-126.3-30 71.7H61V288l-29.95-31.95h102.37l35.89-86.2a16 16 0 0 1 29.4-.4l58.21 129.3 49-97.9a16 16 0 0 1 28.59 0l27.6 55.2H481z\"]]\n};\nvar faHeat = {\n prefix: 'fad',\n iconName: 'heat',\n icon: [448, 512, [], \"e00c\", [\"M208,152.25V48a16,16,0,0,0-16-16H160a16,16,0,0,0-16,16V152.25A218.65,218.65,0,0,0,200.48,299,154.12,154.12,0,0,1,240,402.41V464a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V402.41a218.48,218.48,0,0,0-56.42-146.7A154.26,154.26,0,0,1,208,152.25Z\", \"M64,152.25V112A16,16,0,0,0,48,96H16A16,16,0,0,0,0,112v40.25A218.65,218.65,0,0,0,56.48,299,154.12,154.12,0,0,1,96,402.41V464a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V402.41a218.48,218.48,0,0,0-56.42-146.7A154.26,154.26,0,0,1,64,152.25ZM391.58,255.71A154.26,154.26,0,0,1,352,152.25V112a16,16,0,0,0-16-16H304a16,16,0,0,0-16,16v40.25A218.65,218.65,0,0,0,344.48,299,154.12,154.12,0,0,1,384,402.41V464a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V402.41A218.48,218.48,0,0,0,391.58,255.71Z\"]]\n};\nvar faHelicopter = {\n prefix: 'fad',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", [\"M635.37 458.81l-22.15-22.2a16.13 16.13 0 0 0-22.64 0c-7.09 6.77-13.84 11.25-24.64 11.25H240a16 16 0 0 0-16 16V496a16 16 0 0 0 16 16h325.94c14.88 0 35.3-.47 68.45-29.52a16.28 16.28 0 0 0 .98-23.67zM320 128h64V64h176a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H144a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h176z\", \"M384 128H112L68.8 70.4A16 16 0 0 0 56 64H16A16 16 0 0 0 .49 83.88L32 192l160 64 86.4 115.2A32 32 0 0 0 304 384h272a32 32 0 0 0 32-32c0-123.71-100.29-224-224-224zm32 192V195.51C478.55 208.3 528 257.44 540.79 320z\"]]\n};\nvar faHelmetBattle = {\n prefix: 'fad',\n iconName: 'helmet-battle',\n icon: [576, 512, [], \"f6eb\", [\"M32 256c17.67 0 32-12.56 32-28.06V0L1 221.13C-4.08 238.84 11.2 256 32 256zm543-34.87L512 0v227.94c0 15.5 14.32 28.06 32 28.06 20.8 0 36.08-17.16 31-34.87z\", \"M494.82 426.77L320 512V256l96-32v-32H160v32l96 32v256L81.19 426.77C68.46 420.9 61.44 406 64.87 391.53 73.14 356.72 96 293.58 96 210.82 96 90.35 288 0 288 0s192 90.35 192 210.82c0 82.76 22.86 145.9 31.14 180.71 3.43 14.47-3.59 29.37-16.32 35.24z\"]]\n};\nvar faHexagon = {\n prefix: 'fad',\n iconName: 'hexagon',\n icon: [576, 512, [], \"f312\", [\"M553.48 231.8l-112-192A48.08 48.08 0 0 0 400 16H176a48.08 48.08 0 0 0-41.5 23.8l-112 192a48.19 48.19 0 0 0 0 48.4l112 192A48.08 48.08 0 0 0 176 496h224a48.08 48.08 0 0 0 41.5-23.8l112-192a48.19 48.19 0 0 0-.02-48.4zm-87.19 38.86l-76.38 130.91A29.1 29.1 0 0 1 364.78 416H211.22a29.1 29.1 0 0 1-25.13-14.43l-76.38-130.91a29.12 29.12 0 0 1 0-29.32l76.38-130.91A29.08 29.08 0 0 1 211.22 96h153.56a29.08 29.08 0 0 1 25.13 14.43l76.38 130.91a29.12 29.12 0 0 1 0 29.32z\", \"M466.29 270.66l-76.38 130.91A29.1 29.1 0 0 1 364.78 416H211.22a29.1 29.1 0 0 1-25.13-14.43l-76.38-130.91a29.12 29.12 0 0 1 0-29.32l76.38-130.91A29.08 29.08 0 0 1 211.22 96h153.56a29.08 29.08 0 0 1 25.13 14.43l76.38 130.91a29.12 29.12 0 0 1 0 29.32z\"]]\n};\nvar faHighlighter = {\n prefix: 'fad',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", [\"M0 480l99.92 32 35.45-35.45-67-67zM527.92 79.27l-63.2-63.2a54.89 54.89 0 0 0-75.12-2.35l-199 170 169.72 169.74 170-199.06a54.88 54.88 0 0 0-2.4-75.13z\", \"M75.94 371.84l50.93-50.94-13.05-42.83A36.6 36.6 0 0 1 124.61 240l41.52-35.44 173.34 173.31-35.55 41.64a36.59 36.59 0 0 1-38.15 10.78L223 417.21l-50.86 50.86z\"]]\n};\nvar faHiking = {\n prefix: 'fad',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", [\"M368 160h-16a16 16 0 0 0-16 16v320a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V176a16 16 0 0 0-16-16zM240 0a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM125.08 97.94C81.2 87.42 36.73 113 25.76 155.11L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06L76 287.55c8.79 2.1 17.68-3 19.87-11.44L137 117c2.19-8.42-3.14-16.95-11.92-19.06z\", \"M81 472.23a32 32 0 0 0 62.1 15.53l25.24-101L115.51 334zm162-248l22.43 22.43A32 32 0 0 0 288 256h48v-64h-34.75l-46.78-46.78a58.78 58.78 0 0 0-98.59 27.3L129 280.24a32 32 0 0 0 8.42 30.39L224 397.25V480a32 32 0 0 0 64 0v-82.75A63.58 63.58 0 0 0 269.25 352l-46.82-46.82c.15-.5.49-.89.62-1.41z\"]]\n};\nvar faHippo = {\n prefix: 'fad',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", [\"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62A96 96 0 0 0 416 64a95 95 0 0 0-32 5.88V56a24 24 0 0 0-24-24h-16a24 24 0 0 0-24 24v49c-34-25.4-78.76-41-128-41C86 64 0 135.64 0 224v240a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V288h192a32 32 0 0 0 32-32v-92c0-34.11-24.79-67.61-58.88-67.8zM448 176a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M544 288v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16zm-96-144a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faHistory = {\n prefix: 'fad',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", [\"M141.68 400.23a184 184 0 1 0-11.75-278.3l50.76 50.76c10.08 10.08 2.94 27.31-11.32 27.31H24a16 16 0 0 1-16-16V38.63c0-14.26 17.23-21.4 27.31-11.32l49.38 49.38A247.14 247.14 0 0 1 256 8c136.81 0 247.75 110.78 248 247.53S392.82 503.9 256.18 504a247 247 0 0 1-155.82-54.91 24 24 0 0 1-1.84-35.61l11.27-11.27a24 24 0 0 1 31.89-1.98z\", \"M288 152v104.35L328.7 288a24 24 0 0 1 4.21 33.68l-9.82 12.62a24 24 0 0 1-33.68 4.21L224 287.65V152a24 24 0 0 1 24-24h16a24 24 0 0 1 24 24z\"]]\n};\nvar faHockeyMask = {\n prefix: 'fad',\n iconName: 'hockey-mask',\n icon: [448, 512, [], \"f6ee\", [\"M376.61 54.46c-82.95-72.61-222.26-72.61-305.22 0-64 56-102.4 170-38.76 361.54C64.53 512 224 512 224 512s159.47 0 191.37-96C479 224.44 440.64 110.5 376.61 54.46zM288 64a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 0a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm16 400a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm-48-64a64 64 0 0 1-64-64 32 32 0 0 1 32-32h64a32 32 0 0 1 32 32 64 64 0 0 1-64 64zm96-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm48 320a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm48-64a64 64 0 0 1-64-64 32 32 0 0 1 32-32h64a32 32 0 0 1 32 32 64 64 0 0 1-64 64z\", \"M176 432a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zM288 64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-16 240a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0 64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0 64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-48-320a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-48-32a16 16 0 1 0-16 16 16 16 0 0 0 16-16z\"]]\n};\nvar faHockeyPuck = {\n prefix: 'fad',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", [\"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160z\", \"M0 352V242.2c113.5 82.4 398.6 82.3 512 0V352c0 53-114.6 96-256 96S0 405 0 352z\"]]\n};\nvar faHockeySticks = {\n prefix: 'fad',\n iconName: 'hockey-sticks',\n icon: [640, 512, [], \"f454\", [\"M233.65 8.93v-.08a16 16 0 0 0-21.49-7.16l-57.26 28.6a16.11 16.11 0 0 0-7.21 21.5l118.66 237L320 181.47zM624 352h-48v160h48a16 16 0 0 0 16-16V368a16 16 0 0 0-16-16zm-223-8.8l-27.26-54.46L320 395.94l40.39 80.66A64.52 64.52 0 0 0 418 512h126V352H416c-6.06 0-12.35-3.39-15.06-8.8zM64 512h32V352H64z\", \"M485.13 30.29l-57.26-28.6a16 16 0 0 0-21.49 7.16v.08L239.06 343.2c-2.71 5.41-9 8.82-15.06 8.8H96v160h126a64.52 64.52 0 0 0 57.61-35.4L492.34 51.79a16.11 16.11 0 0 0-7.21-21.5zM0 368v128a16 16 0 0 0 16 16h48V352H16a16 16 0 0 0-16 16zm544-16v160h32V352z\"]]\n};\nvar faHollyBerry = {\n prefix: 'fad',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", [\"M207.86 235.1a15.66 15.66 0 0 0-23.8-13.7c-34.3 20.3-71.4 32.7-108.7 36.2a14.38 14.38 0 0 0-11.6 20.2 247.71 247.71 0 0 1 14.7 43.8 29.59 29.59 0 0 1-20.2 35.1A237.74 237.74 0 0 1 13 365.8 14.45 14.45 0 0 0 1.26 386c15 32.8 22.9 69.5 23 107.7a18.34 18.34 0 0 0 27.6 16c33.2-19 68.9-30.5 104.8-33.9a14.38 14.38 0 0 0 11.6-20.2 247.71 247.71 0 0 1-14.7-43.8 29.59 29.59 0 0 1 20.2-35.1 237.74 237.74 0 0 1 45.3-9.1 14.45 14.45 0 0 0 11.7-20.2c-15.5-34.2-23.3-72.5-22.9-112.3zm227.2 130.5a256.08 256.08 0 0 1-45.3-9.1 29.59 29.59 0 0 1-20.2-35.1 250.47 250.47 0 0 1 14.7-43.8 14.38 14.38 0 0 0-11.6-20.2c-37.3-3.5-74.4-15.9-108.7-36.2a15.72 15.72 0 0 0-23.8 13.7c0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94a46 46 0 0 1-.6 38.9c4.9 1.2 9.9 2.2 14.8 3.7a29.59 29.59 0 0 1 20.2 35.1 250.47 250.47 0 0 1-14.7 43.8 14.38 14.38 0 0 0 11.6 20.2c35.9 3.4 71.6 14.9 104.8 33.9a18.3 18.3 0 0 0 27.6-16c.2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\", \"M144.06 96a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm160 0a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm-32-48a48 48 0 1 0-48 48 48 48 0 0 0 48-48z\"]]\n};\nvar faHome = {\n prefix: 'fad',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", [\"M336 463.59V368a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v95.71a16 16 0 0 1-15.92 16L112 480a16 16 0 0 1-16-16V300.06l184.39-151.85a12.19 12.19 0 0 1 15.3 0L480 300v164a16 16 0 0 1-16 16l-112-.31a16 16 0 0 1-16-16.1z\", \"M573.32 268.35l-25.5 31a12 12 0 0 1-16.9 1.65L295.69 107.21a12.19 12.19 0 0 0-15.3 0L45.17 301a12 12 0 0 1-16.89-1.65l-25.5-31a12 12 0 0 1 1.61-16.89L257.49 43a48 48 0 0 1 61 0L408 116.61V44a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v138.51l83.6 68.91a12 12 0 0 1 1.72 16.93z\"]]\n};\nvar faHomeAlt = {\n prefix: 'fad',\n iconName: 'home-alt',\n icon: [576, 512, [], \"f80a\", [\"M336 463.58v-95.64a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v95.71a16 16 0 0 1-15.92 16l-112.08.29a16 16 0 0 1-16-16V300.05L280.39 148.2a12.19 12.19 0 0 1 15.3 0L480 299.94v164a16 16 0 0 1-16 16l-112-.31a16 16 0 0 1-16-16.05z\", \"M530.92 300.94L295.69 107.2a12.19 12.19 0 0 0-15.3 0L45.17 300.94a12 12 0 0 1-16.89-1.64l-25.5-31a12 12 0 0 1 1.61-16.89l253.1-208.47a48 48 0 0 1 61 0l253.13 208.47a12 12 0 0 1 1.66 16.89l-25.5 31a12 12 0 0 1-16.86 1.64z\"]]\n};\nvar faHomeHeart = {\n prefix: 'fad',\n iconName: 'home-heart',\n icon: [576, 512, [], \"f4c9\", [\"M64.11 311.38V496a16.05 16.05 0 0 0 16 16h416a16.05 16.05 0 0 0 16-16V311.38c-6.7-5.5-44.7-38.31-224-196.4-180.11 158.9-217.6 191.09-224 196.4zm314.1-26.31a60.6 60.6 0 0 1 4.5 89.11L298 459.77a13.94 13.94 0 0 1-19.8 0l-84.7-85.59a60.66 60.66 0 0 1 4.3-89.11c24-20 59.7-16.39 81.6 5.81l8.6 8.69 8.6-8.69c22.01-22.2 57.71-25.81 81.61-5.81z\", \"M378.21 285.07c-23.9-20-59.6-16.39-81.6 5.81l-8.6 8.69-8.6-8.69c-21.9-22.2-57.6-25.81-81.6-5.81a60.66 60.66 0 0 0-4.3 89.11l84.7 85.59a13.94 13.94 0 0 0 19.8 0l84.7-85.59a60.6 60.6 0 0 0-4.5-89.11zm192.6-48.8l-58.7-51.79V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v51.7l-101.3-89.43a40 40 0 0 0-53.5 0l-256 226a16 16 0 0 0-1.2 22.61l21.4 23.8a16 16 0 0 0 22.6 1.2l229.4-202.2a16.12 16.12 0 0 1 21.2 0L528 284a16 16 0 0 0 22.6-1.21L572 259a16.11 16.11 0 0 0-1.19-22.73z\"]]\n};\nvar faHomeLg = {\n prefix: 'fad',\n iconName: 'home-lg',\n icon: [576, 512, [], \"f80b\", [\"M496 512H368a16 16 0 0 1-16-16V368a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v128a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V311c1.78-1.21 3.85-1.89 5.47-3.35L288 115l218.74 192.9c1.54 1.38 3.56 2 5.26 3.2V496a16 16 0 0 1-16 16z\", \"M527.92 283.88L298.6 81.61a16 16 0 0 0-21.17 0L48.11 283.89a16 16 0 0 1-22.59-1.21L4.1 258.89a16 16 0 0 1 1.21-22.59l256-226a39.85 39.85 0 0 1 53.45 0L416 99.67V48a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v136.43l58.69 51.83a16 16 0 0 1 1.22 22.59l-21.4 23.82a16 16 0 0 1-22.59 1.21z\"]]\n};\nvar faHomeLgAlt = {\n prefix: 'fad',\n iconName: 'home-lg-alt',\n icon: [576, 512, [], \"f80c\", [\"M352 496V368a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v128a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V311.07c1.78-1.21 3.85-1.89 5.47-3.35L288 115l218.74 192.9c1.54 1.38 3.56 2 5.26 3.2V496a16 16 0 0 1-16 16H368a16 16 0 0 1-16-16z\", \"M527.92 283.91L298.6 81.64a16 16 0 0 0-21.17 0L48.11 283.92a16 16 0 0 1-22.59-1.21L4.1 258.89a16 16 0 0 1 1.21-22.59l256-226a39.85 39.85 0 0 1 53.45 0l255.94 226a16 16 0 0 1 1.22 22.59l-21.4 23.82a16 16 0 0 1-22.6 1.2z\"]]\n};\nvar faHoodCloak = {\n prefix: 'fad',\n iconName: 'hood-cloak',\n icon: [576, 512, [], \"f6ef\", [\"M576 480c-.19 16.52-13.46 32-32.33 32h-127.4V320a128 128 0 0 0-256 0v192H32.33C13.46 512 .19 496.52 0 480a31.1 31.1 0 0 1 6.36-19.16C64 383.87 64 320 64 320v-64C64 109.45 192 0 287.6 0h149.11C454.22 0 463 21.17 450.6 33.55L410.85 73.3C465.66 133 512 172 512 256v64s0 63.87 57.67 140.84A31.11 31.11 0 0 1 576 480z\", \"M416.27 320v192h-256V320a128 128 0 0 1 256 0z\"]]\n};\nvar faHorizontalRule = {\n prefix: 'fad',\n iconName: 'horizontal-rule',\n icon: [640, 512, [], \"f86c\", [\"M640 240.13v31.74A16 16 0 0 1 624.13 288H15.87A16 16 0 0 1 0 271.87v-31.74A16 16 0 0 1 15.87 224h608.26A16 16 0 0 1 640 240.13z\", \"\"]]\n};\nvar faHorse = {\n prefix: 'fad',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", [\"M575.94 76.6a31.75 31.75 0 0 0-8.59-21.8c-3.78-4-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66a8.08 8.08 0 0 0-6.39-9.49 8 8 0 0 0-1.54-.15h-120a128 128 0 0 0-128 128H160a96 96 0 0 0-65.56 166.12l-25.62 68.36a64 64 0 0 0-2.16 38l24.85 99.41A16 16 0 0 0 107 512h66a16 16 0 0 0 15.52-19.88l-26.33-105.26L186 323.27l134 22.31V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V318.22A111.49 111.49 0 0 0 448 240c0-.22-.07-.42-.08-.64V224l.08-32a1.15 1.15 0 0 1-.08.41v-55.52h.08l15.93 7.11 18.9 37.7a32 32 0 0 0 40.49 15.37l32.55-13A32 32 0 0 0 576 154.31zm-64 19.4a16 16 0 1 1 16-16 16 16 0 0 1-16.01 16z\", \"M0 248v56a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-56a39.93 39.93 0 0 1 16.36-32.26A95.65 95.65 0 0 1 88.45 160H88a88 88 0 0 0-88 88zM511.93 64a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faHorseHead = {\n prefix: 'fad',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", [\"M509.8 332.43l-69.9-164.3a123.55 123.55 0 0 0-93-79.2c18-10.6 46.3-35.9 34.2-82.3A9.29 9.29 0 0 0 369.54.39l-.44.14-202.2 75.7C35.9 123.33 0 238.83 0 398.73v81.2a32 32 0 0 0 32 32h236.2a32 32 0 0 0 28.6-46.3l-40.8-81.7v-.7a127.76 127.76 0 0 1-104.3-69.6 7.93 7.93 0 0 1 1.6-9.3l12.1-12.1a8 8 0 0 1 11.31.09 8.14 8.14 0 0 1 1.59 2.31A95.46 95.46 0 0 0 265.7 352c17.2 0 33-5.1 46.8-13.2l46 63.9a31.87 31.87 0 0 0 26 13.3h50.3a31.9 31.9 0 0 0 22.6-9.4l45.3-39.8a32.45 32.45 0 0 0 7.1-34.37zM328 223.93a23.94 23.94 0 1 1 .12 0z\", \"M178.3 294.63a8 8 0 0 0-12.9-2.4l-12.1 12.1a7.93 7.93 0 0 0-1.6 9.3 127.76 127.76 0 0 0 104.3 69.6v.77l10.66-32h-1a95.46 95.46 0 0 1-87.36-57.37zm149.82-118.58a23.94 23.94 0 1 0-.12 47.88h.12a23.94 23.94 0 0 0 0-47.88z\"]]\n};\nvar faHorseSaddle = {\n prefix: 'fad',\n iconName: 'horse-saddle',\n icon: [576, 512, [], \"f8c3\", [\"M128 160v-26.12C90.8 147.11 64 182.27 64 224a96 96 0 0 0 30.43 70.11l-25.61 68.37a64 64 0 0 0-2.16 38l24.85 99.41A16 16 0 0 0 107 512h66a16 16 0 0 0 15.52-19.88l-26.33-105.26L186 323.27l22 3.66v-72.54A95.83 95.83 0 0 1 128 160zm447.94-83.4a31.75 31.75 0 0 0-8.59-21.8c-3.78-4-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66a8.08 8.08 0 0 0-6.37-9.49 8 8 0 0 0-1.56-.15h-120A127.94 127.94 0 0 0 320 127.11V160a95.83 95.83 0 0 1-80 94.39v77.87l80 13.32V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V318.22A111.49 111.49 0 0 0 448 240c0-.22-.07-.42-.08-.64V224l.08-32a1.15 1.15 0 0 1-.08.41v-55.52h.08l15.93 7.11 18.9 37.7a32 32 0 0 0 40.49 15.37l32.55-13A32 32 0 0 0 576 154.31zm-64 19.4a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M0 248v56a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-56a39.93 39.93 0 0 1 16.36-32.26A95.65 95.65 0 0 1 88.45 160H88a88 88 0 0 0-88 88zm160-120c-11.35 0-22 2.5-32 6.17V160a95.83 95.83 0 0 0 80 94.39v72.54l32 5.33v-77.87A95.83 95.83 0 0 0 320 160v-32.93c0 .32-.09.61-.09.93zm351.93-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faHospital = {\n prefix: 'fad',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", [\"M436 480h-20V120a24 24 0 0 0-24-24h-72V24a24 24 0 0 0-24-24H152a24 24 0 0 0-24 24v72H56a24 24 0 0 0-24 24v360H12a12 12 0 0 0-12 12v20h192v-96a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v96h192v-20a12 12 0 0 0-12-12zM192 340a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm53.33-126.67V152a8 8 0 0 1-8 8h-26.66a8 8 0 0 1-8-8v-34.67H168a8 8 0 0 1-8-8V82.67a8 8 0 0 1 8-8h34.67V40a8 8 0 0 1 8-8h26.66a8 8 0 0 1 8 8v34.67H280a8 8 0 0 1 8 8v26.66a8 8 0 0 1-8 8zM320 340a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\", \"M180 288h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm108-82.67V82.67a8 8 0 0 0-8-8h-34.67V40a8 8 0 0 0-8-8h-26.66a8 8 0 0 0-8 8v34.67H168a8 8 0 0 0-8 8v26.66a8 8 0 0 0 8 8h34.67V152a8 8 0 0 0 8 8h26.66a8 8 0 0 0 8-8v-34.67H280a8 8 0 0 0 8-8zM308 288h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\"]]\n};\nvar faHospitalAlt = {\n prefix: 'fad',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", [\"M544 96H416V32a32 32 0 0 0-32-32H192a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16V128a32 32 0 0 0-32-32zM160 436a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm160 128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm32-182.67a8 8 0 0 1-8 8h-34.67V168a8 8 0 0 1-8 8h-26.66a8 8 0 0 1-8-8v-34.67H232a8 8 0 0 1-8-8V98.67a8 8 0 0 1 8-8h34.67V56a8 8 0 0 1 8-8h26.66a8 8 0 0 1 8 8v34.67H344a8 8 0 0 1 8 8zM480 436a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\", \"M344 90.67h-34.67V56a8 8 0 0 0-8-8h-26.66a8 8 0 0 0-8 8v34.67H232a8 8 0 0 0-8 8v26.66a8 8 0 0 0 8 8h34.67V168a8 8 0 0 0 8 8h26.66a8 8 0 0 0 8-8v-34.67H344a8 8 0 0 0 8-8V98.67a8 8 0 0 0-8-8zM148 384h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-128h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm160 128h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-128h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm160 128h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-128h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\"]]\n};\nvar faHospitalSymbol = {\n prefix: 'fad',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", [\"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-88h-96v88a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V136a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v88h96v-88a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8z\", \"M368 376a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-88h-96v88a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V136a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v88h96v-88a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8z\"]]\n};\nvar faHospitalUser = {\n prefix: 'fad',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", [\"M320 96h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.66 78.66 0 0 1 288 464.79a143.1 143.1 0 0 1 41.91-102.34A145.13 145.13 0 0 1 352 344.62V128a32 32 0 0 0-32-32zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm53.33-108a8 8 0 0 1-8 8h-26.66a8 8 0 0 1-8-8v-34.67H120a8 8 0 0 1-8-8V98.67a8 8 0 0 1 8-8h34.67V56a8 8 0 0 1 8-8h26.66a8 8 0 0 1 8 8v34.67H232a8 8 0 0 1 8 8v26.66a8 8 0 0 1-8 8h-34.67zM272 404a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\", \"M528.62 352H528a22.83 22.83 0 0 0-7.06 1.09 124.81 124.81 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112v.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528.62 352zM480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zM232 90.67h-34.67V56a8 8 0 0 0-8-8h-26.66a8 8 0 0 0-8 8v34.67H120a8 8 0 0 0-8 8v26.66a8 8 0 0 0 8 8h34.67V168a8 8 0 0 0 8 8h26.66a8 8 0 0 0 8-8v-34.67H232a8 8 0 0 0 8-8V98.67a8 8 0 0 0-8-8z\"]]\n};\nvar faHospitals = {\n prefix: 'fad',\n iconName: 'hospitals',\n icon: [640, 512, [], \"f80e\", [\"M608 96V32a32 32 0 0 0-32-32H416a32 32 0 0 0-32 32v64a32 32 0 0 0-32 32v352a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V128a32 32 0 0 0-32-32zM480 404a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm2.67-116a8 8 0 0 1-8-8v-34.67H440a8 8 0 0 1-8-8V82.67a8 8 0 0 1 8-8h34.67V40a8 8 0 0 1 8-8h26.66a8 8 0 0 1 8 8v34.67H552a8 8 0 0 1 8 8v26.66a8 8 0 0 1-8 8h-34.67V152a8 8 0 0 1-8 8zM576 404a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zM200 74.67h-34.67V40a8 8 0 0 0-8-8h-26.66a8 8 0 0 0-8 8v34.67H88a8 8 0 0 0-8 8v26.66a8 8 0 0 0 8 8h34.67V152a8 8 0 0 0 8 8h26.66a8 8 0 0 0 8-8v-34.67H200a8 8 0 0 0 8-8V82.67a8 8 0 0 0-8-8z\", \"M256 96V32a32 32 0 0 0-32-32H64a32 32 0 0 0-32 32v64a32 32 0 0 0-32 32v352a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V128a32 32 0 0 0-32-32zM128 404a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm2.67-116a8 8 0 0 1-8-8v-34.67H88a8 8 0 0 1-8-8V82.67a8 8 0 0 1 8-8h34.67V40a8 8 0 0 1 8-8h26.66a8 8 0 0 1 8 8v34.67H200a8 8 0 0 1 8 8v26.66a8 8 0 0 1-8 8h-34.67V152a8 8 0 0 1-8 8zM224 404a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zM552 74.67h-34.67V40a8 8 0 0 0-8-8h-26.66a8 8 0 0 0-8 8v34.67H440a8 8 0 0 0-8 8v26.66a8 8 0 0 0 8 8h34.67V152a8 8 0 0 0 8 8h26.66a8 8 0 0 0 8-8v-34.67H552a8 8 0 0 0 8-8V82.67a8 8 0 0 0-8-8z\"]]\n};\nvar faHotTub = {\n prefix: 'fad',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", [\"M304 76.49c-17.37-14.17-28.82-36.75-32-62.15A16.06 16.06 0 0 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 32 62.14A16.07 16.07 0 0 0 322 192h16.12c9.51 0 17.08-8.57 16-18.35-4.38-39.11-22.44-74.53-50.12-97.16zM64 128A64 64 0 1 0 0 64a64 64 0 0 0 64 64zm398.08 45.65c-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-32-62.15A16.06 16.06 0 0 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 32 62.14A16.07 16.07 0 0 0 430 192h16.12c9.47 0 17.04-8.57 15.96-18.35zM106.67 160H64a64 64 0 0 0-64 64v32h256l-110.93-83.2a64 64 0 0 0-38.4-12.8z\", \"M480 256H0v192a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V288a32 32 0 0 0-32-32zM128 440a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V328a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8zm96 0a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V328a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8zm96 0a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V328a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8zm96 0a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V328a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8z\"]]\n};\nvar faHotdog = {\n prefix: 'fad',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", [\"M488.62 23.38a79.86 79.86 0 0 0-112.91 0L24.38 374.72a79.85 79.85 0 1 0 110.94 114.87c.67-.65 1.32-1.3 2-2l351.3-351.3a79.86 79.86 0 0 0 0-112.91zm-50 95.25c-19.6 19.59-37.52 22.67-51.93 25.14C373.74 146 364.38 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15c-13 2.22-22.3 3.82-34.7 16.22s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.74 402 108.38 403.6 96 416a16 16 0 1 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15c13-2.23 22.3-3.82 34.71-16.23a16 16 0 0 1 22.63 22.63z\", \"M310.64 19.89c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78l11.55 11.55L322.18 31.44zm181.47 181.47l-11.55-11.54-290.74 290.74 11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79zM224 288c12.4-12.4 21.75-14 34.7-16.22 14.4-2.48 32.32-5.56 51.92-25.15s22.67-37.52 25.15-51.92c2.23-13 3.83-22.31 16.23-34.71s21.76-14 34.7-16.23c14.41-2.47 32.33-5.55 51.93-25.14A16 16 0 0 0 416 96c-12.41 12.41-21.76 14-34.71 16.23-14.4 2.47-32.32 5.56-51.92 25.15s-22.67 37.52-25.14 51.92C302 202.25 300.37 211.61 288 224s-21.7 14-34.7 16.23c-14.4 2.47-32.32 5.55-51.92 25.14s-22.7 37.53-25.18 51.93c-2.2 12.95-3.81 22.29-16.2 34.7s-21.71 14-34.71 16.23c-14.4 2.47-32.32 5.55-51.92 25.14A16 16 0 1 0 96 416c12.4-12.4 21.76-14 34.7-16.23 14.4-2.47 32.33-5.56 51.93-25.15s22.67-37.52 25.14-51.92c2.23-12.95 3.81-22.3 16.23-34.7z\"]]\n};\nvar faHotel = {\n prefix: 'fad',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", [\"M288 288a128 128 0 0 0-128 128h256a128 128 0 0 0-128-128zm-96-44.8v-38.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8zM140.8 160h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zm128 96h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zm0-96h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zm166.4 32h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8zm0-96h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8z\", \"M560 64a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h16v384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h240v-96h-96a128 128 0 0 1 256 0h-96v96h240a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V64zM192 243.2c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm128 96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm128 96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8z\"]]\n};\nvar faHourglass = {\n prefix: 'fad',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", [\"M192 304c-57.8 0-104 66.54-104 144h208c0-77.48-46.21-144-104-144zm0-96c57.8 0 104-66.54 104-144H88c0 77.48 46.21 144 104 144z\", \"M360 64a24 24 0 0 0 24-24V24a24 24 0 0 0-24-24H24A24 24 0 0 0 0 24v16a24 24 0 0 0 24 24c0 91 51 167.73 120.84 192C75 280.27 24 357 24 448a24 24 0 0 0-24 24v16a24 24 0 0 0 24 24h336a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24c0-91-51-167.73-120.84-192C309 231.73 360 155 360 64zm-64 384H88c0-77.46 46.2-144 104-144s104 66.52 104 144zM192 208c-57.79 0-104-66.52-104-144h208c0 77.46-46.2 144-104 144z\"]]\n};\nvar faHourglassEnd = {\n prefix: 'fad',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", [\"M296 448H88c0-77.46 46.2-144 104-144s104 66.52 104 144z\", \"M24 448a24 24 0 0 0-24 24v16a24 24 0 0 0 24 24h336a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24c0-91-51-167.73-120.84-192C309 231.73 360 155 360 64a24 24 0 0 0 24-24V24a24 24 0 0 0-24-24H24A24 24 0 0 0 0 24v16a24 24 0 0 0 24 24c0 91 51 167.73 120.84 192C75 280.27 24 357 24 448zM88 64h208c0 77.46-46.2 144-104 144S88 141.48 88 64zm104 240c57.79 0 104 66.52 104 144H88c0-77.46 46.2-144 104-144z\"]]\n};\nvar faHourglassHalf = {\n prefix: 'fad',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", [\"M284.92 384H99.06A187.69 187.69 0 0 0 88 448h208a187.6 187.6 0 0 0-11.08-64zM192 208c40.83 0 75.86-33.2 92.92-80H99.08c17.06 46.8 52.1 80 92.92 80z\", \"M360 64a24 24 0 0 0 24-24V24a24 24 0 0 0-24-24H24A24 24 0 0 0 0 24v16a24 24 0 0 0 24 24c0 91 51 167.73 120.84 192C75 280.27 24 357 24 448a24 24 0 0 0-24 24v16a24 24 0 0 0 24 24h336a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24c0-91-51-167.73-120.84-192C309 231.73 360 155 360 64zm-64 384H88c0-77.46 46.2-144 104-144s104 66.52 104 144zM192 208c-57.79 0-104-66.52-104-144h208c0 77.46-46.2 144-104 144z\"]]\n};\nvar faHourglassStart = {\n prefix: 'fad',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", [\"M296 64c0 77.46-46.2 144-104 144S88 141.48 88 64z\", \"M360 64a24 24 0 0 0 24-24V24a24 24 0 0 0-24-24H24A24 24 0 0 0 0 24v16a24 24 0 0 0 24 24c0 91 51 167.73 120.84 192C75 280.27 24 357 24 448a24 24 0 0 0-24 24v16a24 24 0 0 0 24 24h336a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24c0-91-51-167.73-120.84-192C309 231.73 360 155 360 64zm-64 384H88c0-77.46 46.2-144 104-144s104 66.52 104 144zM192 208c-57.79 0-104-66.52-104-144h208c0 77.46-46.2 144-104 144z\"]]\n};\nvar faHouse = {\n prefix: 'fad',\n iconName: 'house',\n icon: [576, 512, [], \"e00d\", [\"M288,72,64,269.85V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.85ZM352,330.66A21.4,21.4,0,0,1,330.63,352H245.34A21.4,21.4,0,0,1,224,330.66V245.32A21.4,21.4,0,0,1,245.34,224h85.29A21.4,21.4,0,0,1,352,245.32Z\", \"M571.9,258.87l-21.41,23.81c-1.8,2-12.46,10.23-22.59,1.22L288,72,48.12,283.9c-9.3,8.37-19.81,1.9-22.59-1.2L4.12,258.9c-8.37-9.3-1.9-19.81,1.2-22.6l256-226C267.59,4.61,279.57,0,288,0s20.44,4.61,26.72,10.3L416,99.67V48a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16V184.44l58.69,51.83C573.79,239.06,580.23,249.54,571.9,258.87Z\"]]\n};\nvar faHouseDamage = {\n prefix: 'fad',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", [\"M512 311.08V496a16 16 0 0 1-16 16H319.82l-39.92-55.26 104.11-64L236 256l60.11 119.2L192 439.18 229.24 512H80a16 16 0 0 1-16-16V311c1.78-1.21 3.85-1.89 5.47-3.35L288 115l218.74 192.9c1.55 1.36 3.57 2.02 5.26 3.18z\", \"M236 256l60.11 119.2L192 439.18 229.24 512h90.58l-39.92-55.26 104.11-64zm334.7-19.74L512 184.43V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v51.67L314.76 10.29a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.59l21.41 23.79a16 16 0 0 0 22.59 1.21L277.43 81.61a16 16 0 0 1 21.17 0l229.32 202.27a16 16 0 0 0 22.6-1.2l21.4-23.82a16 16 0 0 0-1.22-22.6z\"]]\n};\nvar faHouseDay = {\n prefix: 'fad',\n iconName: 'house-day',\n icon: [640, 512, [], \"e00e\", [\"M176,136a40,40,0,1,0,40,40A40.07,40.07,0,0,0,176,136ZM288.27,48.75l-69,23L186.66,6.6a11.9,11.9,0,0,0-21.31,0L132.83,71.7l-69.09-23a11.88,11.88,0,0,0-15.06,15l23,69L6.6,165.34a11.91,11.91,0,0,0,0,21.32l65.11,32.51-23,69.1a11.89,11.89,0,0,0,15.06,15.06l69-23,.74,1.49a46.66,46.66,0,0,1,10.08-13.32l24.07-21.31C131.92,243,104,212.84,104,176a72,72,0,0,1,144,0v0l42.83-37.93-10.54-5.26,23-69A11.88,11.88,0,0,0,288.27,48.75Z\", \"M635.23,292.42,576,240V144a16,16,0,0,0-16-16H528a16,16,0,0,0-16,16v39.29l-88.48-78.37a35.33,35.33,0,0,0-46.93,0l-211.8,187.5a14.18,14.18,0,0,0-1.23,20l18.79,21.28A14.2,14.2,0,0,0,202.4,335L224,315.87V480a32,32,0,0,0,32,32H544a32,32,0,0,0,32-32V315.85L597.62,335a14.28,14.28,0,0,0,20-1.25l18.79-21.28A14.25,14.25,0,0,0,635.23,292.42ZM448,368a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V304a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16Z\"]]\n};\nvar faHouseFlood = {\n prefix: 'fad',\n iconName: 'house-flood',\n icon: [576, 512, [], \"f74f\", [\"M287.94 114.85L96.29 285v99.4c.5 0 .89-.1 1.39-.1A64 64 0 0 1 139 399c12.77 10.6 32.23 16.7 53.38 16.7 20.36 0 39-5.6 51.39-15.4a73.57 73.57 0 0 1 45.4-16.1 64.13 64.13 0 0 1 41.5 14.8c12.78 10.6 32.23 16.7 53.39 16.7 20.15 0 39.41-5.8 51.58-15.6a70 70 0 0 1 43.8-15.4h.1v-99.8zm47.91 125.25v64a16 16 0 0 1-16 16H256a16 16 0 0 1-16-16v-64a16 16 0 0 1 16-16h63.91a16 16 0 0 1 15.91 16z\", \"M562.2 447.88c-21.51-2.4-42.11-10.51-57.91-22.92a38.76 38.76 0 0 0-48.21 0c-37.91 30.43-107.22 30.43-145.73-1.5-13.5-11.2-33-9.11-46.7 1.8-38 30.13-106.92 30-145.23-1.7-13.5-11.21-33.31-8.91-47.11 2-15.5 12.21-36 20.12-57.71 22.42-7.9.8-13.6 7.81-13.6 15.72v32.22c0 9.1 7.6 16.8 16.7 16 28.81-2.5 56.11-11.41 79.42-25.92 56.48 34.63 137 34.13 192 0 56.48 34.63 137 34.13 192 0a184.87 184.87 0 0 0 79.12 25.83c9.1.81 16.7-6.89 16.7-16V464.2c.06-8.01-5.7-15.42-13.74-16.32zM22 244.05l21.15 24a16 16 0 0 0 22.5 1.45l.05-.05 222.24-197.3 222.31 197.3a16 16 0 0 0 22.55-1.4l21.15-24a16.11 16.11 0 0 0-1.38-22.6v.05l-73-64.8V48.05a16 16 0 0 0-16-16h-31.93a16 16 0 0 0-16 16v52l-101.24-90a39.67 39.67 0 0 0-52.78 0L23.35 221.45A16 16 0 0 0 21.94 244z\"]]\n};\nvar faHouseLeave = {\n prefix: 'fad',\n iconName: 'house-leave',\n icon: [640, 512, [], \"e00f\", [\"M395.29,284.1a63.54,63.54,0,0,1-58,.39c-31.26-15.74-44.05-54.16-28.52-85.64l6.74-13.65a127.18,127.18,0,0,1,66.39-61.67l7.52-3.07L263.52,8.92a35.33,35.33,0,0,0-46.93,0L4.8,196.42a14.18,14.18,0,0,0-1.23,20l18.79,21.28a14.21,14.21,0,0,0,20,1.25L64,219.87V384a32,32,0,0,0,32,32H325.44l31.43-31.5a30.14,30.14,0,0,0,6.95-10.64l20.71-51.5,11.76-29.25C395.81,290.13,395.48,287.12,395.29,284.1ZM224,272a16,16,0,0,1-16,16H144a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16Z\", \"M393.55,385.74a61.78,61.78,0,0,1-14.18,21.49l-50,50.11a32,32,0,0,0,45.18,45.28L434,443.23a64.64,64.64,0,0,0,14.2-21.5l13.5-33.79c-55.29-60.29-38.7-41.79-47.4-53.69ZM528,96a48,48,0,1,0-48-48A48,48,0,0,0,528,96Zm94.42,149.06-23.29-11.8-9.7-29.38c-14.7-44.61-55.7-75.81-102.19-75.9-36-.09-55.88,10.09-93.28,25.2a95.42,95.42,0,0,0-49.7,46.2L337.56,213a32.12,32.12,0,0,0,14.2,42.9,31.55,31.55,0,0,0,42.49-14.31L401,228a31.81,31.81,0,0,1,16.49-15.4l26.8-10.79-15.2,60.69A64.23,64.23,0,0,0,444,321.25l59.9,65.39a64.49,64.49,0,0,1,14.88,27.7L537,487.63a32,32,0,0,0,62.1-15.5l-22.2-89A63.83,63.83,0,0,0,562,355.45l-45.5-49.7,17.2-68.69,5.5,16.49a63.72,63.72,0,0,0,31.7,37l23.3,11.81a31.56,31.56,0,0,0,42.49-14.31A32.37,32.37,0,0,0,622.42,245.06Z\"]]\n};\nvar faHouseNight = {\n prefix: 'fad',\n iconName: 'house-night',\n icon: [640, 512, [], \"e010\", [\"M193.94,174.06A87.74,87.74,0,0,1,134.11,11.6a5.26,5.26,0,0,0-1.65-9.73A136.16,136.16,0,0,0,112,0a112,112,0,1,0,87,182.53A5.25,5.25,0,0,0,193.94,174.06ZM317.06,59.24,277.34,42.68,260.77,3a5.32,5.32,0,0,0-9.54,0L234.66,42.68,195,59.24a5.33,5.33,0,0,0,0,9.54l39.71,16.56,16.57,39.72a5.32,5.32,0,0,0,9.54,0l16.57-39.72,39.72-16.56a5.34,5.34,0,0,0,0-9.54Zm-160,320-39.71-16.56L100.77,323a5.32,5.32,0,0,0-9.54,0L74.66,362.68,35,379.24a5.33,5.33,0,0,0,0,9.54l39.71,16.56,16.57,39.72a5.32,5.32,0,0,0,9.54,0l16.57-39.72,39.71-16.56a5.33,5.33,0,0,0,0-9.54Z\", \"M635.23,292.42,576,240V144a16,16,0,0,0-16-16H528a16,16,0,0,0-16,16v39.29l-88.48-78.37a35.33,35.33,0,0,0-46.93,0L164.8,292.42a14.18,14.18,0,0,0-1.23,20l18.79,21.28a14.21,14.21,0,0,0,20,1.25L224,315.87V480a32,32,0,0,0,32,32H544a32,32,0,0,0,32-32V315.84L597.62,335a14.28,14.28,0,0,0,20-1.25l18.79-21.28A14.25,14.25,0,0,0,635.23,292.42ZM448,368a16.05,16.05,0,0,1-16,16H368a16,16,0,0,1-16-16V304a16,16,0,0,1,16-16h64a16.05,16.05,0,0,1,16,16Z\"]]\n};\nvar faHouseReturn = {\n prefix: 'fad',\n iconName: 'house-return',\n icon: [640, 512, [], \"e011\", [\"M323.06,216.54l11.51-5.83,5.56-16.83a143.26,143.26,0,0,1,51.95-71.1L263.52,8.92a35.33,35.33,0,0,0-46.93,0L4.8,196.41a14.18,14.18,0,0,0-1.23,20l18.79,21.29a14.21,14.21,0,0,0,20,1.24L64,219.87V384a32,32,0,0,0,32,32H341.86L352,375.38a95.83,95.83,0,0,1,22.33-41.5l.48-.52a63.48,63.48,0,0,1-80.3-31.17C279,270.68,291.87,232.24,323.06,216.54ZM224,272a16,16,0,0,1-16,16H144a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16Z\", \"M531,262.48l-15.2-60.69,26.8,10.79A31.82,31.82,0,0,1,559,228l6.71,13.59a31.56,31.56,0,0,0,42.49,14.31,32.12,32.12,0,0,0,14.2-42.9l-6.7-13.59A95.41,95.41,0,0,0,566,153.21c-37.4-15.11-57.29-25.3-93.28-25.2-46.49.09-87.49,31.29-102.19,75.89l-9.7,29.38-23.29,11.8a32.37,32.37,0,0,0-14.3,43,31.57,31.57,0,0,0,42.49,14.31l23.3-11.81a63.75,63.75,0,0,0,31.7-37l5.5-16.49,17.2,68.69L398,355.46a63.83,63.83,0,0,0-14.9,27.69l-22.2,89a32,32,0,0,0,62.1,15.5l18.3-73.28a64.38,64.38,0,0,1,14.88-27.7l59.9-65.39A64.21,64.21,0,0,0,531,262.48ZM432,96a48,48,0,1,0-48-48A48,48,0,0,0,432,96ZM630.63,457.34l-50-50.1a61.78,61.78,0,0,1-14.18-21.49l-20.7-51.49c-8.7,11.9,7.89-6.59-47.4,53.69l13.5,33.79a64.6,64.6,0,0,0,14.2,21.49l59.4,59.4a32,32,0,0,0,45.18-45.29Z\"]]\n};\nvar faHouseSignal = {\n prefix: 'fad',\n iconName: 'house-signal',\n icon: [640, 512, [], \"e012\", [\"M635.23,196.42,576,144V48a16,16,0,0,0-16-16H528a16,16,0,0,0-16,16V87.29L423.52,8.92a35.33,35.33,0,0,0-46.93,0L164.8,196.42a14.18,14.18,0,0,0-1.23,20l18.79,21.28a14.21,14.21,0,0,0,20,1.25L224,219.87v64A320.42,320.42,0,0,1,305.24,416H544a32,32,0,0,0,32-32V219.84L597.62,239a14.28,14.28,0,0,0,20-1.25l18.79-21.28A14.25,14.25,0,0,0,635.23,196.42ZM448,272a16.05,16.05,0,0,1-16,16H368a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16.05,16.05,0,0,1,16,16Z\", \"M0,416v96H96A96,96,0,0,0,0,416Zm0-96v63.93A128.12,128.12,0,0,1,128.07,512H192C192,406,106,320,0,320Zm0-96v63.93c123.71,0,224.07,100.36,224.07,224.07H288C288,352.94,159.06,224,0,224Z\"]]\n};\nvar faHouseUser = {\n prefix: 'fad',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", [\"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.67,18.67,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.87l15.91,14A21.86,21.86,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\", \"M288,304a64,64,0,1,0-64-64A64,64,0,0,0,288,304Zm32,32H256a96,96,0,0,0-96,96,16,16,0,0,0,16,16H400a16,16,0,0,0,16-16A96,96,0,0,0,320,336Z\"]]\n};\nvar faHryvnia = {\n prefix: 'fad',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", [\"M0 224v-32a16 16 0 0 1 16-16h205.38L156 240H16a16 16 0 0 1-16-16zm77.91 92.38L123.27 272H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h46.56a94.82 94.82 0 0 1 15.35-19.62zM368 272H228l-65.4 64H368a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-46.56a94.78 94.78 0 0 1-15.34 19.61L260.74 240H368a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M323.32 84.26c20.07 36.58 12.6 82.17-17.22 111.35L134.81 363.22A21.21 21.21 0 0 0 149.2 400h83.63a24 24 0 0 0 15.36-5.56l11.75-9.8a24 24 0 0 1 33.81 3.07l20.49 24.59a24 24 0 0 1-3.07 33.8l-11.77 9.81A104 104 0 0 1 232.86 480H154c-37.14 0-73.38-17.85-92-49.95-.45-.77-.88-1.54-1.31-2.31-20.07-36.58-12.6-82.18 17.23-111.35l171.28-167.6A21.21 21.21 0 0 0 234.8 112h-83.62a24 24 0 0 0-15.39 5.57l-11.73 9.78a24 24 0 0 1-33.81-3.07L69.76 99.7a24 24 0 0 1 3.07-33.8l11.77-9.81A104 104 0 0 1 151.14 32H230c37.14 0 73.38 17.84 92 50 .46.72.89 1.49 1.32 2.26z\"]]\n};\nvar faHumidity = {\n prefix: 'fad',\n iconName: 'humidity',\n icon: [384, 512, [], \"f750\", [\"M223.9 22.09c-8.7-28.8-53.9-30.1-63.8 0C109.1 179.79 0 222.69 0 333.9 0 432.3 85.9 512 192 512s192-79.7 192-178.1c0-111.71-108.9-153.31-160.1-311.81zM96 288a32 32 0 1 1 32 32 32 32 0 0 1-32-32zm49.5 131.8a7.87 7.87 0 0 1-11.2 1.2l-12.5-10a8 8 0 0 1-1.2-11.2l118-147.51a8 8 0 0 1 11.2-1.2l12.5 10a7.87 7.87 0 0 1 1.2 11.2zM256 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M128 256a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm128 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faHurricane = {\n prefix: 'fad',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", [\"M176 96l24.5-74.79A16.22 16.22 0 0 0 183.1.12C80 12.42 0 101.61 0 208c0 114.9 93.1 208 208 208l-24.5 74.79a16.24 16.24 0 0 0 17.4 21.1C304 499.58 384 410.39 384 304c0-114.9-93.1-208-208-208zm16 256a96 96 0 1 1 96-96 96 96 0 0 1-96 96z\", \"M236 256a44 44 0 1 1-44-44 44 44 0 0 1 44 44z\"]]\n};\nvar faICursor = {\n prefix: 'fad',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", [\"M32 236v40a12 12 0 0 0 12 12h52v-64H43.91A12 12 0 0 0 32 236zm180.09-12H160v64h52a12 12 0 0 0 12-12v-40a12 12 0 0 0-11.91-12z\", \"M160 400c0 44.94 57.89 48.55 83.85 48.24A12 12 0 0 1 256 460.08v39.8a12 12 0 0 1-11.91 12c-35.09.23-78.36-.62-116.09-37.88-38.47 38-83.62 38.34-116.16 37.93a12 12 0 0 1-11.84-12V460a12 12 0 0 1 12-12h.05c27.87 0 84-3.07 84-48V112.18c0-44.94-57.89-48.73-83.85-48.42A12 12 0 0 1 0 51.91v-39.8a12 12 0 0 1 11.91-12C47-.11 90.27.74 128 38 166.47 0 211.62-.34 244.16.07a12 12 0 0 1 11.84 12v40A12 12 0 0 1 244 64c-27.92 0-84 3.25-84 48.18z\"]]\n};\nvar faIceCream = {\n prefix: 'fad',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", [\"M367.94,256.19H80.06a48,48,0,0,1-4.16-95.92c1.39-.06,2.77-.06,4.16,0H81a143.94,143.94,0,1,1,286,0h.94a48,48,0,0,1,4.16,95.92c-1.39.06-2.77.06-4.16,0Z\", \"M195.39,493.69,96.05,288.17H352L252.61,493.69a31.52,31.52,0,0,1-57.22,0Z\"]]\n};\nvar faIceSkate = {\n prefix: 'fad',\n iconName: 'ice-skate',\n icon: [576, 512, [], \"f7ac\", [\"M568 416h-32a8 8 0 0 0-8 8v16a23.94 23.94 0 0 1-24 24h-72v-48h-48v48H144v-48H96v48H8a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h504a64.06 64.06 0 0 0 64-64v-24a8 8 0 0 0-8-8zM264 192h56v-32h-56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-64h56V96h-56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\", \"M78.4 82.7L256 32V16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v80h-56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v32h-56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56l119.3 29.9A96 96 0 0 1 512 315v37a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32V144.2a64 64 0 0 1 46.4-61.5z\"]]\n};\nvar faIcicles = {\n prefix: 'fad',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", [\"M511.36 37.9l-87.5 467.7c-1.7 8.6-14 8.6-15.7 0l-66.7-363.8-45.8 172.5a8 8 0 0 1-15.3 0l-34.1-133.4-46.5 196.9c-1.9 8.3-13.7 8.3-15.6 0L140 190.5l-36.4 124.1c-2.4 7.2-12.6 7.2-15.1 0L1.36 41.2A32 32 0 0 1 32 0h448a32 32 0 0 1 31.95 32.05 32.83 32.83 0 0 1-.55 5.85z\", \"M480 0H353.41a32 32 0 0 0-31.47 37.8l86.22 467.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7a32.83 32.83 0 0 0 .55-5.85A32 32 0 0 0 480 0z\"]]\n};\nvar faIcons = {\n prefix: 'fad',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", [\"M137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88l96.75 99.83a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.14-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44zM499.4 352.1h-60.58l22.36-50.75c2.1-6.65-3.94-13.21-12.18-13.21h-75.6c-6.3 0-11.65 3.9-12.49 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.49 11.89h62.32l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7z\", \"M260.57 319.84h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.45 27.45 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]]\n};\nvar faIconsAlt = {\n prefix: 'fad',\n iconName: 'icons-alt',\n icon: [512, 512, [], \"f86e\", [\"M208 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-48h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zm120 368a40 40 0 1 0-40-40 40 40 0 0 0 40 40zm179.31-52.69l-22.62-22.62a16 16 0 0 0-22.63 0L292.69 462.06a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l169.37-169.37a16 16 0 0 0 0-22.63zM472 432a40 40 0 1 0 40 40 40 40 0 0 0-40-40z\", \"M478.08.33L329.51 23.18C314.87 25.44 304 38.94 304 54.86V161.7a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.49-64 48s28.65 48 64 48c35.2 0 63.73-21.33 64-47.69V99.73L464 82.5v47.2a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.49-64 48s28.65 48 64 48c35.2 0 63.73-21.33 64-47.69V32c0-19.47-16-34.43-33.92-31.67zM219.59 383.94L197 361.31a16 16 0 0 0-22.63 0l-27.92 27.89-22.7-22.7a64 64 0 1 0-90.7-3.3l-6.92 6.92c-29.59 29.59-35.69 77.63-9.81 110.52A81.31 81.31 0 0 0 138 488.19l8.48-8.49 27.61 27.61a16 16 0 0 0 22.63 0l22.62-22.62a16 16 0 0 0 0-22.63l-27.64-27.61 27.89-27.89a16 16 0 0 0 0-22.62zM80 304a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm12.72 138.94a17.29 17.29 0 1 1-24.45-24.46l8.48-8.48 24.45 24.45z\"]]\n};\nvar faIdBadge = {\n prefix: 'fad',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", [\"M336 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM144 32h96a16 16 0 0 1 0 32h-96a16 16 0 0 1 0-32zm48 128a64 64 0 1 1-64 64 64.06 64.06 0 0 1 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5a103 103 0 0 0 79.6 0h5c37.1 0 67.2 25.8 67.2 57.6z\", \"M192 288a64 64 0 1 0-64-64 64.06 64.06 0 0 0 64 64zm44.8 32h-5a103 103 0 0 1-79.6 0h-5c-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6z\"]]\n};\nvar faIdCard = {\n prefix: 'fad',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", [\"M0 128v304a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V128zm176 64a64 64 0 1 1-64 64 64 64 0 0 1 64-64zm93.3 224H82.7c-10.4 0-18.8-10-15.6-19.8A64.09 64.09 0 0 1 128 352h8.2a103 103 0 0 0 79.6 0h8.2a64.09 64.09 0 0 1 60.9 44.2c3.2 9.9-5.2 19.8-15.6 19.8zM512 344a8 8 0 0 1-8 8H360a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-64a8 8 0 0 1-8 8H360a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm0-64a8 8 0 0 1-8 8H360a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8z\", \"M224 352h-8.2a103 103 0 0 1-79.6 0H128a64.09 64.09 0 0 0-60.9 44.2C63.9 406 72.3 416 82.7 416h186.6c10.4 0 18.8-9.9 15.6-19.8A64.09 64.09 0 0 0 224 352zM528 32H48A48 48 0 0 0 0 80v48h576V80a48 48 0 0 0-48-48zM176 320a64 64 0 1 0-64-64 64 64 0 0 0 64 64z\"]]\n};\nvar faIdCardAlt = {\n prefix: 'fad',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", [\"M528 64H352v64h16a16 16 0 0 1 0 32H208a16 16 0 0 1 0-32h16V64H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM288 224a64 64 0 1 1-64 64 64 64 0 0 1 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8A64 64 0 0 1 240 384h8.2a103 103 0 0 0 79.6 0h8.2a64.09 64.09 0 0 1 60.9 44.2c3.2 9.8-5.2 19.8-15.6 19.8z\", \"M352 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32v96h128zm-64 320a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm108.9 76.2A64.09 64.09 0 0 0 336 384h-8.2a103 103 0 0 1-79.6 0H240a64 64 0 0 0-60.9 44.2c-3.2 9.8 5.2 19.8 15.6 19.8h186.6c10.4 0 18.8-10 15.6-19.8z\"]]\n};\nvar faIgloo = {\n prefix: 'fad',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", [\"M384 384v96H192v-96a96 96 0 0 1 192 0z\", \"M320 33.9a282 282 0 0 0-32-1.9A287.48 287.48 0 0 0 48.6 160H320zM96 192H30.3A286.63 286.63 0 0 0 0 320h96zM352 39.4V160h175.4A287.83 287.83 0 0 0 352 39.4zM480 320h96a286.63 286.63 0 0 0-30.3-128H480zm-64 64v96h128a32 32 0 0 0 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448zM0 448a32 32 0 0 0 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0z\"]]\n};\nvar faImage = {\n prefix: 'fad',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", [\"M448 384H64v-48l71.51-71.52a12 12 0 0 1 17 0L208 320l135.51-135.52a12 12 0 0 1 17 0L448 272z\", \"M464 64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zm-352 56a56 56 0 1 1-56 56 56 56 0 0 1 56-56zm336 264H64v-48l71.51-71.52a12 12 0 0 1 17 0L208 320l135.51-135.52a12 12 0 0 1 17 0L448 272z\"]]\n};\nvar faImagePolaroid = {\n prefix: 'fad',\n iconName: 'image-polaroid',\n icon: [448, 512, [], \"f8c4\", [\"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 320H64V96h320z\", \"M64 96v256h320V96zm64 32a32 32 0 1 1-32 32 32 32 0 0 1 32-32zM96 320l50.69-76a16 16 0 0 1 26.62 0l20.57 30.85 49.32-65.75a16 16 0 0 1 25.6 0L352 320z\"]]\n};\nvar faImages = {\n prefix: 'fad',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", [\"M424.49 120.48a12 12 0 0 0-17 0L272 256l-39.51-39.52a12 12 0 0 0-17 0L160 272v48h352V208zM64 336V128H48a48 48 0 0 0-48 48v256a48 48 0 0 0 48 48h384a48 48 0 0 0 48-48v-16H144a80.09 80.09 0 0 1-80-80z\", \"M528 32H144a48 48 0 0 0-48 48v256a48 48 0 0 0 48 48h384a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM208 80a48 48 0 1 1-48 48 48 48 0 0 1 48-48zm304 240H160v-48l55.52-55.52a12 12 0 0 1 17 0L272 256l135.52-135.52a12 12 0 0 1 17 0L512 208z\"]]\n};\nvar faInbox = {\n prefix: 'fad',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", [\"M376 256l-32 64H232l-32-64H76.92l85.33-128h251.5l85.33 128z\", \"M567.94 243.91L462.25 85.37A48 48 0 0 0 422.31 64H153.69a48 48 0 0 0-39.94 21.37L8.06 243.91A48 48 0 0 0 0 270.53V400a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V270.53a48 48 0 0 0-8.06-26.62zM376 256l-32 64H232l-32-64H76.92l85.33-128h251.5l85.33 128z\"]]\n};\nvar faInboxIn = {\n prefix: 'fad',\n iconName: 'inbox-in',\n icon: [576, 512, [], \"f310\", [\"M528 512H48a48 48 0 0 1-48-48v-95.2a47.29 47.29 0 0 1 10.7-30l94.4-118a12 12 0 0 1 18.1-.7l27.6 29.5a12 12 0 0 1 .6 15.7L107.6 320H200l32 64h112l32-64h92.3L424 264.6a12.16 12.16 0 0 1 .8-15.9l28.1-28.9a12.12 12.12 0 0 1 18 .9l94.6 118.2a47.77 47.77 0 0 1 10.5 29.9V464a48 48 0 0 1-48 48z\", \"M171.5 160h61.9V17.1A17.16 17.16 0 0 1 250.5 0h68.6a17.09 17.09 0 0 1 17.1 17.1V160h68.3c17.8 0 26.7 21.5 14.1 34.1l-119.4 120a20 20 0 0 1-28.6-.3L157 193.8c-12.1-12.7-3.1-33.8 14.5-33.8z\"]]\n};\nvar faInboxOut = {\n prefix: 'fad',\n iconName: 'inbox-out',\n icon: [576, 512, [], \"f311\", [\"M565.6 338.89a48.27 48.27 0 0 1 10.4 29.9V464a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48v-95.2a48.05 48.05 0 0 1 10.5-30l94.4-118a12 12 0 0 1 18.1-.7l27.6 29.5a12 12 0 0 1 .6 15.7L107.6 320H200l32 64h112l32-64h92.4l-44.3-55.4a11.94 11.94 0 0 1 .8-15.9l28.1-28.9a12 12 0 0 1 18 .9z\", \"M239.7 302.89V160h-68.3c-17.8 0-26.7-21.5-14.1-34.1l119.4-120a20 20 0 0 1 28.6.3l113.7 120c12.1 12.7 3.1 33.8-14.5 33.8h-61.9v142.9a17.18 17.18 0 0 1-17.2 17.1h-68.6a17.09 17.09 0 0 1-17.1-17.11z\"]]\n};\nvar faIndent = {\n prefix: 'fad',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", [\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3z\"]]\n};\nvar faIndustry = {\n prefix: 'fad',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", [\"M512 184v272a24 24 0 0 1-24 24H136a24 24 0 0 0 24-24V252.31l139.12-88.53A24 24 0 0 1 336 184v68.28l139.12-88.53A24 24 0 0 1 512 184z\", \"M136 480H24a24 24 0 0 1-24-24V56a24 24 0 0 1 24-24h112a24 24 0 0 1 24 24v400a24 24 0 0 1-24 24z\"]]\n};\nvar faIndustryAlt = {\n prefix: 'fad',\n iconName: 'industry-alt',\n icon: [512, 512, [], \"f3b3\", [\"M148 320h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm128 0h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm128 0h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\", \"M475.12 163.78L336 252.31V184a24 24 0 0 0-36.88-20.25L160 252.31V56a24 24 0 0 0-24-24H24A24 24 0 0 0 0 56v400a24 24 0 0 0 24 24h464a24 24 0 0 0 24-24V184a24 24 0 0 0-36.88-20.22zM160 372a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm128 0a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm128 0a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]]\n};\nvar faInfinity = {\n prefix: 'fad',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", [\"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\", \"\"]]\n};\nvar faInfo = {\n prefix: 'fad',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", [\"M20 448h152a20 20 0 0 1 20 20v24a20 20 0 0 1-20 20H20a20 20 0 0 1-20-20v-24a20 20 0 0 1 20-20z\", \"M96 128a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm28 64H20a20 20 0 0 0-20 20v24a20 20 0 0 0 20 20h28v192h96V212a20 20 0 0 0-20-20z\"]]\n};\nvar faInfoCircle = {\n prefix: 'fad',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", [\"M256 8C119 8 8 119.08 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 110a42 42 0 1 1-42 42 42 42 0 0 1 42-42zm56 254a12 12 0 0 1-12 12h-88a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h12v-64h-12a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h64a12 12 0 0 1 12 12v100h12a12 12 0 0 1 12 12z\", \"M256 202a42 42 0 1 0-42-42 42 42 0 0 0 42 42zm44 134h-12V236a12 12 0 0 0-12-12h-64a12 12 0 0 0-12 12v24a12 12 0 0 0 12 12h12v64h-12a12 12 0 0 0-12 12v24a12 12 0 0 0 12 12h88a12 12 0 0 0 12-12v-24a12 12 0 0 0-12-12z\"]]\n};\nvar faInfoSquare = {\n prefix: 'fad',\n iconName: 'info-square',\n icon: [448, 512, [], \"f30f\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-176 86a42 42 0 1 1-42 42 42 42 0 0 1 42-42zm56 254a12 12 0 0 1-12 12h-88a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h12v-64h-12a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h64a12 12 0 0 1 12 12v100h12a12 12 0 0 1 12 12z\", \"M224 202a42 42 0 1 0-42-42 42 42 0 0 0 42 42zm44 134h-12V236a12 12 0 0 0-12-12h-64a12 12 0 0 0-12 12v24a12 12 0 0 0 12 12h12v64h-12a12 12 0 0 0-12 12v24a12 12 0 0 0 12 12h88a12 12 0 0 0 12-12v-24a12 12 0 0 0-12-12z\"]]\n};\nvar faInhaler = {\n prefix: 'fad',\n iconName: 'inhaler',\n icon: [640, 512, [], \"f5f9\", [\"M32 448a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm96-144a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-96-48a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm96 48a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM616.27 38L478.47 1.1a32 32 0 0 0-39.19 22.63l-15.41 57.52L592.61 250 638.9 77.21A32 32 0 0 0 616.27 38z\", \"M586.15 288.78a32 32 0 0 1 8.33 30.75l-44.22 168.59a32 32 0 0 1-31 23.88H224a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32h122.49l35.91-136.92a16 16 0 0 1 26.79-7.26z\"]]\n};\nvar faIntegral = {\n prefix: 'fad',\n iconName: 'integral',\n icon: [384, 512, [], \"f667\", [\"M377.21 73a32.71 32.71 0 0 1-4.84 45l-24.18 20a30.29 30.29 0 0 1-43.52-5l-28-36.2-79.2 339.11C186.5 485 141.92 517.8 92.1 511.13c-25.36-3.39-47.91-18.58-63.89-39.21L6.79 444.27a32.73 32.73 0 0 1 4.82-45l24.17-20a30.3 30.3 0 0 1 43.53 5l24 30.91 78.11-334.36C190.54 40 221.86 6.41 262.05.89c33.82-4.64 66.38 9.09 87.16 36z\", \"\"]]\n};\nvar faIntersection = {\n prefix: 'fad',\n iconName: 'intersection',\n icon: [384, 512, [], \"f668\", [\"M384 224v240a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16V227.79c0-46.43-31.29-89.08-76.87-97.93A96.16 96.16 0 0 0 96 224v240a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V230.68C0 133.11 70 46 166.74 33.62 283.83 18.6 384 109.82 384 224z\", \"\"]]\n};\nvar faInventory = {\n prefix: 'fad',\n iconName: 'inventory',\n icon: [640, 512, [], \"f480\", [\"M624 0h-32a16 16 0 0 0-16 16v144H64V16A16 16 0 0 0 48 0H16A16 16 0 0 0 0 16v496h64v-32h512v32h64V16a16 16 0 0 0-16-16zm-48 416H64V224h512z\", \"M208 256h-96a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zM464 0h-96a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zm-96 256h-96a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16z\"]]\n};\nvar faIslandTropical = {\n prefix: 'fad',\n iconName: 'island-tropical',\n icon: [448, 512, [], \"f811\", [\"M284.91 358.8a144 144 0 0 0-43.71-6.8h-45.07c10-42.85 25-122.77 21-202.33L238.89 128h27.39c11.16 48 28.58 142.41 18.63 230.8z\", \"M241.2 352h-98.4A144 144 0 0 0 .36 474.78C-2.53 494.3 12.39 512 32.12 512h319.76c19.73 0 34.65-17.7 31.76-37.22A144 144 0 0 0 241.2 352zm206.62-238.36C439.69 67.43 393 32 336.53 32c-34.88 0-65.66 13.82-86.3 35.08C235.78 28.29 193.72 0 143.47 0 87 0 40.31 35.43 32.18 81.64a12.37 12.37 0 0 0 10.24 14.2 12.24 12.24 0 0 0 2.18.16H80l16-32 16 32h30.17c-34.21 35-39.62 86.88-14.54 122.58 4.36 6.2 13.14 7.31 18.5 1.95L238.89 128H368l16-32 16 32h35.4a12.38 12.38 0 0 0 12.6-12.18 12.24 12.24 0 0 0-.18-2.18z\"]]\n};\nvar faItalic = {\n prefix: 'fad',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", [\"M208 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M158.75 96h82.5l-80 320h-82.5z\"]]\n};\nvar faJackOLantern = {\n prefix: 'fad',\n iconName: 'jack-o-lantern',\n icon: [576, 512, [], \"f30e\", [\"M495.3 153.12c-27-23.08-65.36-29.75-99.49-20.92 6.09 5.5 12.16 11 17.19 17.8 3.1 4.26 5.46 9.42 8.15 14.17C389.39 140.54 345.54 128 288 128s-101.39 12.54-133.15 36.17c2.69-4.75 5-9.91 8.15-14.17 5-6.79 11.1-12.29 17.19-17.8-34.13-8.83-72.49-2.16-99.49 20.92-107.6 92-107.6 241.73 0 333.75 38.63 33 100.82 33.34 140.12 1.25C238.65 503.51 260.72 512 288 512s49.35-8.49 67.19-23.88c39.3 32.09 101.49 31.78 140.12-1.25 107.59-92.01 107.59-241.73-.01-333.75zM320.85 278L362 211.33c2.33-4.57 8.6-4.42 12 0L415.15 278c1.66 3.25.9 10-6 10h-82.29c-6.86 0-7.7-6.69-6.01-10zm-160 0L202 211.33c2.33-4.57 8.6-4.42 12 0L255.15 278c1.66 3.25.9 10-6 10h-82.29c-6.86 0-7.7-6.69-6.01-10zm309 67.6c-6 17-12.75 28.61-18.7 37-9.38 12.94-21.34 23.8-35.19 33A15.94 15.94 0 0 0 400 400h-16a16 16 0 0 0-16 16v21.48c-23.46 6.88-50.16 10.52-80 10.52s-56.56-3.65-80-10.51V416a16 16 0 0 0-16-16h-16a16 16 0 0 0-15.92 15.62c-13.71-9.08-25.53-19.78-34.75-32.5a146.4 146.4 0 0 1-19-37.46c-4.87-13.89 10.56-26.15 23.24-18.67A308.41 308.41 0 0 0 240 365.83V384a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-14.26c58.38 0 112.72-15.74 158.54-42.79 12.68-7.49 28.11 4.76 23.26 18.65z\", \"M326.86 288h82.29c6.9 0 7.66-6.75 6-10L374 211.33c-3.4-4.42-9.67-4.57-12 0L320.85 278c-1.69 3.31-.85 10 6.01 10zm-160 0h82.29c6.9 0 7.66-6.75 6-10L214 211.33c-3.4-4.42-9.67-4.57-12 0L160.85 278c-1.69 3.31-.85 10 6.01 10zm279.7 39C400.74 354 346.4 369.74 288 369.74V384a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-18.17A308.41 308.41 0 0 1 129.53 327c-12.68-7.48-28.11 4.78-23.24 18.67a146.4 146.4 0 0 0 19 37.46c9.22 12.72 21 23.42 34.75 32.5A16 16 0 0 1 176 400h16a16 16 0 0 1 16 16v21.49c23.46 6.86 50.17 10.51 80 10.51s56.52-3.64 80-10.52V416a16 16 0 0 1 16-16h16a15.94 15.94 0 0 1 15.91 15.54c13.85-9.18 25.81-20 35.19-33 5.95-8.35 12.74-19.92 18.7-37 4.85-13.83-10.58-26.08-23.24-18.54zM352 106.6V35.81a16 16 0 0 0-8.84-14.31l-39.6-19.8a16 16 0 0 0-22 8.37l-36.06 90.15A214 214 0 0 1 288 96a189.94 189.94 0 0 1 64 10.6z\"]]\n};\nvar faJedi = {\n prefix: 'fad',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", [\"M226.67865,285.84578A7.99806,7.99806,0,0,1,238.039,275.15266l30.391,20.64669L279.99046,7.99485a8.00028,8.00028,0,0,1,16.00055,0L307.5214,295.73939l30.351-20.58673a7.99754,7.99754,0,0,1,11.38039,10.70309L329.12214,319.604l42.07144,8.72438a7.99376,7.99376,0,0,1,0,15.64992l-42.07144,8.71438L349.23281,386.401a7.99085,7.99085,0,0,1-1.34,9.91362,8.24461,8.24461,0,0,1-10.00034.79948L310.72149,378.656l2.27007,63.26922a123.48764,123.48764,0,0,1-22.07076,1.94876h-6.37022a123.4657,123.4657,0,0,1-21.62073-1.94876l2.29007-63.3092L238.049,397.07407a8.34473,8.34473,0,0,1-10.00034-.74951,7.9909,7.9909,0,0,1-1.39005-9.9336l20.13069-33.74824-42.07142-8.71439a7.99375,7.99375,0,0,1,0-15.64991l42.07144-8.72439Z\", \"M559,224.18551c.37,5.75628,1,11.45262,1,17.25888a269.158,269.158,0,0,1-5.13018,51.82659l-58.872,58.83208h40.00136C493.36773,446.21239,398.35448,512,287.99073,512q-6.39022,0-12.85044-.28982c-104.00354-4.76692-193.8866-69.43523-235.158-159.60712H79.91365l-58.602-58.56226a262.66174,262.66174,0,0,1-5.11017-39.37462,271.838,271.838,0,0,1,.5-29.98067H63.9131L22.53169,182.83215A269.557,269.557,0,0,1,130.53537,20.86654a16.00788,16.00788,0,0,1,9.27032-2.99807,16.35349,16.35349,0,0,1,13.48046,7.24533,15.98047,15.98047,0,0,1,1.62005,15.08028,138.20862,138.20862,0,0,0-9.84033,51.227c0,45.09094,21.00071,86.52423,57.712,113.66674a16.28373,16.28373,0,0,1,1.21,25.37364c-26.55091,23.98455-41.1714,56.4636-41.1714,91.521a123.12,123.12,0,0,0,19.76067,67.0168c22.25075,34.4578,60.92207,54.7947,102.00349,54.86463h6.37021c48.67164.08994,93.33319-28.3717,112.38383-73.13285a119.64467,119.64467,0,0,0,7.22025-23.265A123.37031,123.37031,0,0,0,371.9936,230.48145a16.31451,16.31451,0,0,1,1.21-25.41363c36.66125-27.14251,57.692-68.56581,57.692-113.65675a138.03962,138.03962,0,0,0-9.90033-51.27695,15.98051,15.98051,0,0,1,1.61-15.08028,16.35347,16.35347,0,0,1,13.49045-7.23533,16.00784,16.00784,0,0,1,9.25031,2.99806,271.03544,271.03544,0,0,1,107.9037,162.15548l-41.25141,41.21346Z\"]]\n};\nvar faJoint = {\n prefix: 'fad',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", [\"M487.66 141.63C463.85 125 448 99.34 448 70.31V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7A83.55 83.55 0 0 1 480 249.69V280a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-30.31a131.49 131.49 0 0 0-56.34-108.06zm65.62-54.54A20.28 20.28 0 0 1 544 70.31V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v62.31c0 22 10.17 43.41 28.64 55.39a147.47 147.47 0 0 1 67.36 124V280a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-30.31a195.36 195.36 0 0 0-86.72-162.6z\", \"M360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A64 64 0 0 0 439.07 512h88.45L409.57 374.4a64 64 0 0 0-48.68-22.35zM195 359A525 525 0 0 0 0 432a526.3 526.3 0 0 0 278.94 80h88.57L254.79 380.49A65 65 0 0 0 195 359zm421-7H432l118 137.65A64 64 0 0 0 598.58 512H616a24 24 0 0 0 24-24V376a24 24 0 0 0-24-24z\"]]\n};\nvar faJournalWhills = {\n prefix: 'fad',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", [\"M96,448c-19.2,0-32-12.8-32-32s16-32,32-32H415.33c-1.93,16.24-1.76,48.38.53,64Z\", \"M96,384H424a24,24,0,0,0,24-24V32A32,32,0,0,0,416,0H96A96,96,0,0,0,0,96V416a96,96,0,0,0,96,96H424a24,24,0,0,0,24-24V472a24,24,0,0,0-24-24H96c-19.2,0-32-12.8-32-32S80,384,96,384Zm37.08-239.61,21.26,21.26a8.00091,8.00091,0,1,0,11.32-11.31h0l-26.42-26.42a111.86007,111.86007,0,0,1,46.37-49.26,63,63,0,0,0,14,82.65,55.86,55.86,0,0,0,28.72,93.45l1.36-32.71-10.37,7a4.19009,4.19009,0,0,1-2.25.69,4,4,0,0,1-3.44-6l8.54-14.31-17.91-3.72a4,4,0,0,1,0-7.84l17.91-3.72-8.54-14.31a4,4,0,0,1,5.69-5.36l12,8.16L236,71.83a4,4,0,1,1,8,0l4.68,112.29,14.2-9.65a4.07,4.07,0,0,1,5,.41,4,4,0,0,1,.69,5L260,194.14l17.91,3.72a4,4,0,0,1,0,7.84L260,209.42l8.54,14.31a4,4,0,0,1-5.69,5.31l-12.68-8.62,1.43,34.28a55.84,55.84,0,0,0,28.71-93.43,63,63,0,0,0,14.09-82.6,111.86,111.86,0,0,1,46.37,49.26l-26.42,26.42a8.00091,8.00091,0,1,0,11.32,11.31h0l21.26-21.26A110.42911,110.42911,0,0,1,352,176c0,.52-.14,1-.15,1.51L314.74,210a8,8,0,1,0,10.52,12l23.59-20.64a111.71,111.71,0,0,1-217.71,0L154.73,222A8.00453,8.00453,0,0,0,166,210.63q-.35-.33-.72-.63l-37.11-32.47c0-.52-.15-1-.15-1.51C128,165,130.1,154.48,133.08,144.39Z\"]]\n};\nvar faJoystick = {\n prefix: 'fad',\n iconName: 'joystick',\n icon: [448, 512, [], \"f8c5\", [\"M112 320H80a16 16 0 0 0-16 16v16h64v-16a16 16 0 0 0-16-16zm112-96c-11.2 0-21.8-2.14-32-5.2V352h64V218.8c-10.2 3.06-20.8 5.2-32 5.2z\", \"M416 352H32a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32zM224 224a112 112 0 1 0-112-112 112 112 0 0 0 112 112zM200 48a24 24 0 1 1-24 24 24 24 0 0 1 24-24z\"]]\n};\nvar faJug = {\n prefix: 'fad',\n iconName: 'jug',\n icon: [448, 512, [], \"f8c6\", [\"M144 64h160a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H144a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM32 288v128h384V288z\", \"M448 168a71.72 71.72 0 0 0-126.68-46.35L311 108.77a32 32 0 0 1-7-20V64H144v24.78a32 32 0 0 1-7 20l-76.95 96.16a128 128 0 0 0-28 80V288H416v-3.1a127.59 127.59 0 0 0-11.1-51A72 72 0 0 0 448 168zm-70.62 23.72l-24.09-30.1C356.14 151.54 365 144 376 144a23.88 23.88 0 0 1 1.38 47.72zM32 448a64 64 0 0 0 64 64h256a64 64 0 0 0 64-64v-32H32z\"]]\n};\nvar faKaaba = {\n prefix: 'fad',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", [\"M117.89 205.81l-80 21.82a8 8 0 0 0-5.89 7.72v16.58a8 8 0 0 0 10.11 7.72l80-21.82a8 8 0 0 0 5.89-7.72v-16.58a8 8 0 0 0-10.11-7.72zm144-39.28l-96 26.18a8 8 0 0 0-5.89 7.72V217a8 8 0 0 0 10.11 7.72l96-26.18a8 8 0 0 0 5.89-7.72v-16.57a8 8 0 0 0-10.11-7.72zm276.22 61.1l-80-21.82a8 8 0 0 0-10.11 7.72v16.58a8 8 0 0 0 5.89 7.72l80 21.82a8 8 0 0 0 10.11-7.72v-16.58a8 8 0 0 0-5.89-7.72zm-128-34.91l-96-26.18a8 8 0 0 0-10.11 7.72v16.58a8 8 0 0 0 5.89 7.72l96 26.18A8 8 0 0 0 416 217v-16.56a8 8 0 0 0-5.89-7.72z\", \"M301.81 114a47.66 47.66 0 0 0-27.59 0L0 196.3v228.38a32 32 0 0 0 25.06 31.24l242.12 53.8a95.94 95.94 0 0 0 41.65 0L551 455.92a32 32 0 0 0 25-31.24V196.29zM128 230.11a8 8 0 0 1-5.89 7.72l-80 21.82A8 8 0 0 1 32 251.93v-16.58a8 8 0 0 1 5.89-7.72l80-21.82a8 8 0 0 1 10.11 7.72zm144-39.28a8 8 0 0 1-5.89 7.72l-96 26.18A8 8 0 0 1 160 217v-16.57a8 8 0 0 1 5.89-7.72l96-26.18a8 8 0 0 1 10.11 7.72zM416 217a8 8 0 0 1-10.11 7.72l-96-26.18a8 8 0 0 1-5.89-7.72v-16.56a8 8 0 0 1 10.11-7.72l96 26.18a8 8 0 0 1 5.89 7.72zm128 34.91a8 8 0 0 1-10.11 7.72l-80-21.82a8 8 0 0 1-5.89-7.72v-16.56a8 8 0 0 1 10.11-7.72l80 21.82a8 8 0 0 1 5.89 7.72zM265 83.37L0 162.88v-49a32 32 0 0 1 21.88-30.37L257.65 4.93a96 96 0 0 1 60.71 0l235.76 78.58A32 32 0 0 1 576 113.87v49l-265-79.5a80 80 0 0 0-46 0z\"]]\n};\nvar faKazoo = {\n prefix: 'fad',\n iconName: 'kazoo',\n icon: [640, 512, [], \"f8c7\", [\"M608 128h-95.32C559.55 151.75 592 199.86 592 256s-32.45 104.25-79.32 128H608a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zM304 256c0-56.14 32.45-104.25 79.32-128H241.93a128.18 128.18 0 0 0-35.16 4.92L23.21 185.37A32 32 0 0 0 0 216.14v79.72a32 32 0 0 0 23.21 30.77l183.56 52.44a127.81 127.81 0 0 0 35.16 4.93h141.39C336.45 360.25 304 312.14 304 256zm240 0a96 96 0 1 0-96 96 96 96 0 0 0 96-96zm-45.09 28.28a8 8 0 0 1 0 11.32l-11.31 11.31a8 8 0 0 1-11.32 0L448 278.63l-28.29 28.28a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.32L425.38 256l-28.29-28.29a8 8 0 0 1 0-11.31l11.31-11.31a8 8 0 0 1 11.31 0L448 233.37l28.28-28.28a8 8 0 0 1 11.32 0l11.31 11.31a8 8 0 0 1 0 11.31L470.63 256z\", \"M448 112a144 144 0 1 0 144 144 144 144 0 0 0-144-144zm0 240a96 96 0 1 1 96-96 96 96 0 0 1-96 96z\"]]\n};\nvar faKerning = {\n prefix: 'fad',\n iconName: 'kerning',\n icon: [640, 512, [], \"f86f\", [\"M416.54 0h-17A8 8 0 0 0 392 5.32l-176.28 496a8 8 0 0 0 7.55 10.68h17a8 8 0 0 0 7.54-5.32l176.28-496A8 8 0 0 0 416.54 0z\", \"M304 96h-50.62a16 16 0 0 0-15.16 10.89L160 306.68 81.78 106.89A16 16 0 0 0 66.62 96H16A16 16 0 0 0 .85 117.11l105.27 277.2a32 32 0 0 0 30.3 21.69h47.16a32 32 0 0 0 30.3-21.69l105.27-277.2A16 16 0 0 0 304 96zm335.15 298.89l-105.27-277.2A32 32 0 0 0 503.58 96h-47.16a32 32 0 0 0-30.3 21.69l-105.27 277.2A16 16 0 0 0 336 416h50.61a16 16 0 0 0 15.16-10.89L416.31 368h127.38l14.53 37.11A16 16 0 0 0 573.38 416H624a16 16 0 0 0 15.15-21.11zM447.63 288L480 205.32 512.37 288z\"]]\n};\nvar faKey = {\n prefix: 'fad',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", [\"M303.06 348.91l.1.09-24 27a24 24 0 0 1-17.94 8H224v40a24 24 0 0 1-24 24h-40v40a24 24 0 0 1-24 24H24a24 24 0 0 1-24-24v-78a24 24 0 0 1 7-17l161.83-161.83-.11-.35a176.24 176.24 0 0 0 134.34 118.09z\", \"M336 0a176 176 0 1 0 176 176A176 176 0 0 0 336 0zm48 176a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faKeySkeleton = {\n prefix: 'fad',\n iconName: 'key-skeleton',\n icon: [512, 512, [], \"f6f3\", [\"M251.31 372.91a16 16 0 0 1 0 22.63l-15.77 15.77a16 16 0 0 1-22.62 0L176 374.4l-30.87 30.86 36.11 36.11a16 16 0 0 1 0 22.63l-43.16 43.17a16 16 0 0 1-22.62 0l-36.12-36.11-36.26 36.25a16 16 0 0 1-22.62 0L4.69 491.54a16 16 0 0 1 0-22.63l255.12-255.12a64.18 64.18 0 0 0 38.4 38.4L214.4 336l36.91 36.91z\", \"M448 0H320a64 64 0 0 0-64 64v128a64 64 0 0 0 64 64h128a64 64 0 0 0 64-64V64a64 64 0 0 0-64-64zm-73.37 182.63a32 32 0 1 1 0-45.25 32 32 0 0 1 0 45.25zm64-64a32 32 0 1 1 0-45.25 32 32 0 0 1 0 45.25z\"]]\n};\nvar faKeyboard = {\n prefix: 'fad',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", [\"M528 64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zm-176 76a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12zm100 84a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12zm-84 12v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm-112-96a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12zm16 96v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm-112-96a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12zm16 96v40a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zM64 140a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12zm64 232a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm288 0a12 12 0 0 1-12 12H172a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h232a12 12 0 0 1 12 12zm96 0a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-192a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\", \"M164 224h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm96 0h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm96 0h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm108 52v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm36 44h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm-136 64h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12zm-96 0h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12zm-96 0h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12zm-96 0h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12zm40 128H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\"]]\n};\nvar faKeynote = {\n prefix: 'fad',\n iconName: 'keynote',\n icon: [512, 512, [], \"f66c\", [\"M368 448h-80v-64h-64v64h-80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM206.68 82.45A47.73 47.73 0 0 0 240 96h64a48 48 0 0 0 0-96h-64a47.89 47.89 0 0 0-46.31 36C137.77 49.72 96 99.91 96 160h48c0-37.62 26.21-69.06 62.68-77.55z\", \"M508.62 281.24a32.07 32.07 0 0 1 3.38 14.31V320a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32v-24.45a32 32 0 0 1 3.38-14.31l51.78-103.55A32 32 0 0 1 83.78 160h344.44a32 32 0 0 1 28.62 17.69z\"]]\n};\nvar faKhanda = {\n prefix: 'fad',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", [\"M193.3 68.85a14.25 14.25 0 0 1 3.57-16L255.86 0l59 52.82a14.23 14.23 0 0 1 3.57 16l-5 11L293.27 124l-7.93 17.39a112 112 0 0 0 0 75.56l33.36 73.27a14.16 14.16 0 0 1-2.81 15.28l-44.05 36.09v20.1L256 372.77l-16.08-11.2v-20l-44-36.09a14.19 14.19 0 0 1-2.92-15.24l16.1-35.37 11.62-25.5 5.66-12.37a112 112 0 0 0 0-75.56l-7.86-17.25L198.36 80zm78.55 384.06v-30.1L256 411.75 239.87 423v30c-9.39 5.57-16 15.38-16 27.1a32 32 0 1 0 64 0c-.03-11.8-6.64-21.61-16.02-27.19z\", \"M291.05 229.51l20 44a112 112 0 0 0 2.33-193.7L293.27 124a63.92 63.92 0 0 1-2.22 105.49zm-90.36 43.89l20.05-44a63.92 63.92 0 0 1-2.22-105.2L198.36 80a112 112 0 0 0 2.33 193.44zM415.81 66a16 16 0 0 0-21.27 22.54 163.69 163.69 0 0 1 25.2 87.46 159.64 159.64 0 0 1-71.27 132.41L256 372.77l-92.52-64.41A159.64 159.64 0 0 1 92.17 176a163.69 163.69 0 0 1 25.2-87.41A16 16 0 0 0 96.1 66C22.39 106.24-15.68 189.85 5.94 273.51c7.25 28.09 22.38 53.57 41.25 75.59l52.51 61.31a16 16 0 0 0 19.65 3.71l79.35-42.23 29.3 20.37-47 32.75a22.72 22.72 0 0 0-5-1 24 24 0 0 0 0 48c12.1 0 21.69-9.11 23.33-20.76l56.67-39.5 56.71 39.49C314.31 462.89 323.9 472 336 472a24 24 0 0 0 0-48 22.72 22.72 0 0 0-5 1l-47-32.75 29.26-20.37 79.35 42.23a16 16 0 0 0 19.65-3.71l52.51-61.31c18.87-22 34-47.5 41.25-75.59 21.57-83.65-16.5-167.26-90.21-207.5z\"]]\n};\nvar faKidneys = {\n prefix: 'fad',\n iconName: 'kidneys',\n icon: [640, 512, [], \"f5fb\", [\"M402.73 199.72l-35.89 18a55.81 55.81 0 0 0-31 50.09v228.21a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V267.77a8 8 0 0 1 4.47-7.16l23.87-11.94 2.13-7.39c4.92-16.94-3.05-31.56-11.58-41.56zm-98.86 68a55.74 55.74 0 0 0-31-50.09l-35.84-17.92c-8.57 10.12-16.55 25-11.66 42.26l1.82 6.49 24.21 12.11a8 8 0 0 1 4.44 7.16V496a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-48z\", \"M639.9 224c-2.09-74-35.81-146.16-96-199.7a96 96 0 1 0-127.69 143.42c49.6 44.12 26.49 91.15 25.76 93.71C424.49 322 469.62 384 534.29 384a96.07 96.07 0 0 0 92.26-69.46c5.54-19.27 14.54-48.08 13.35-90.54zM96 24.38C36.08 77.85 2.39 150 .13 224-1.15 266 7.6 294.91 13 314.06A96 96 0 0 0 105.37 384c64.31 0 109.65-61.47 92.47-122.11-1-3.7-23.08-50.43 26.07-94.27A96 96 0 1 0 96 24.38z\"]]\n};\nvar faKiss = {\n prefix: 'fad',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM168,240a32,32,0,1,1,32-32A32,32,0,0,1,168,240ZM304,396c0,19.2-28.7,41.5-71.5,44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5,20.8-13.5,20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2,0-14.8l17-7.2c13-5.5,20.8-13.5,20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5,3.6-15.4,42.8,2.5,71.5,24.8,71.5,44,0,13-13.4,27.3-35.2,36C290.6,368.7,304,383,304,396Zm24-156a32,32,0,1,1,32-32A32,32,0,0,1,328,240Z\", \"M328,176a32,32,0,1,0,32,32A32,32,0,0,0,328,176Zm-160,0a32,32,0,1,0,32,32A32,32,0,0,0,168,176Z\"]]\n};\nvar faKissBeam = {\n prefix: 'fad',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM209,227.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8,7.9-31.5,21.6l-9.5,17c-4.2,7.4-15.6,4-14.9-4.5,3.3-42.1,32.2-71.4,56-71.4s52.7,29.3,56,71.4C224.6,231.9,213.2,235.4,209,227.9ZM304,396c0,19.2-28.7,41.5-71.5,44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5,20.8-13.5,20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2,0-14.8l17-7.2c13-5.5,20.8-13.5,20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5,3.6-15.4,42.8,2.5,71.5,24.8,71.5,44,0,13-13.4,27.3-35.2,36C290.6,368.7,304,383,304,396Zm65-168.1-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8,7.9-31.5,21.6l-9.5,17c-4.1,7.3-15.6,4-14.9-4.5,3.3-42.1,32.2-71.4,56-71.4s52.7,29.3,56,71.4C384.6,231.9,373.2,235.4,369,227.9Z\", \"M384.1,223.4c-3.3-42.1-32.2-71.4-56-71.4s-52.7,29.3-56,71.4c-.7,8.5,10.8,11.8,14.9,4.5l9.5-17c7.7-13.7,19.2-21.6,31.5-21.6s23.8,7.9,31.5,21.6l9.5,17C373.2,235.4,384.6,231.9,384.1,223.4ZM168.1,152c-23.8,0-52.7,29.3-56,71.4-.7,8.5,10.7,11.9,14.9,4.5l9.5-17c7.7-13.7,19.2-21.6,31.5-21.6s23.8,7.9,31.5,21.6l9.5,17c4.2,7.5,15.6,4,15.1-4.5C220.8,181.3,191.9,152,168.1,152Z\"]]\n};\nvar faKissWinkHeart = {\n prefix: 'fad',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", [\"M332.49,338.8c29.7-46.3,98.7-45.5,127.8,4.3a81.91,81.91,0,0,1,18.6,2.9A246.65,246.65,0,0,0,496,256C496,119,385,8,248,8S0,119,0,256,111,504,248,504a246.15,246.15,0,0,0,99.4-20.9c-.3-.7-23.9-84.6-23.9-84.6A74.25,74.25,0,0,1,332.49,338.8ZM168,240a32,32,0,1,1,32-32A32,32,0,0,1,168,240ZM288,396c0,19.2-28.7,41.5-71.49,44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5,20.8-13.5,20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3,0-14.8l17-7.2c13-5.5,20.8-13.5,20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6,3.6-15.4,42.79,2.5,71.49,24.8,71.49,44,0,13-13.4,27.3-35.2,36C274.59,368.7,288,383,288,396Zm16-179c-8.3,7.4-21.6.4-19.8-10.8,4-25.2,34.2-42.1,59.9-42.1S400,181,404,206.2A12,12,0,0,1,384.2,217l-9.5-8.5c-14.8-13.2-46.2-13.2-61,0Z\", \"M501.09,402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4,2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33a41.87,41.87,0,0,0-34,52.6l22.9,82.6a10.23,10.23,0,0,0,12.4,7.1l83-21.5a41.75,41.75,0,0,0,28.5-55.72ZM384.19,217A12,12,0,0,0,404,206.2c-4-25.2-34.2-42.1-59.9-42.1s-55.9,16.9-59.9,42.1c-1.8,11.2,11.5,18.2,19.8,10.8l9.7-8.5c14.8-13.2,46.2-13.2,61,0ZM168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Z\"]]\n};\nvar faKite = {\n prefix: 'fad',\n iconName: 'kite',\n icon: [640, 512, [], \"f6f4\", [\"M72 251l24 15.87L120 251v-27a88 88 0 0 0-88-88H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a40 40 0 0 1 40 40zM630.63 9.37L475.1 164.9l153.82 153.82A32 32 0 0 0 640 294.5V32a31.9 31.9 0 0 0-9.37-22.63zm-309.36 1.74a32 32 0 0 0-7 13.69l-80.09 347.09-87.54 87.54a15.6 15.6 0 0 1-26.63-11V325L96 309.16 72 325v118.31c0 16.55 5 33 15.7 45.71 26.48 31.53 69 28.26 92.87 4.34l87.55-87.55-6.7 1.55a24 24 0 0 1-22.36-6.42L475 165z\", \"M154.69 228L96 266.84 37.31 228c-16-10.55-37.31.79-37.31 19.8v80.32c0 19 21.36 30.35 37.31 19.8L96 309.16 154.69 348c15.95 10.55 37.31-.79 37.31-19.8v-80.36c0-19.01-21.36-30.35-37.31-19.84zM630.63 9.37A31.9 31.9 0 0 0 608 0H345.5a32.08 32.08 0 0 0-24.23 11.11L475 165 239.06 400.94a24 24 0 0 0 22.36 6.42L615.2 325.7a31.76 31.76 0 0 0 13.72-7L475.1 164.9z\"]]\n};\nvar faKiwiBird = {\n prefix: 'fad',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", [\"M144 410v54a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-73.69A190.9 190.9 0 0 0 144 410zm432-186a112 112 0 0 1-102.62 111.61l72.54 136.05A16 16 0 0 0 560 480a16.2 16.2 0 0 0 3.95-.5A16 16 0 0 0 576 464V224zM208 415.32V464a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-58.95a191 191 0 0 1-48 10.27z\", \"M464 112h-15.74a260.23 260.23 0 0 1-147.74-46.24q-6.09-4.22-12.52-7.94v-.13A191.08 191.08 0 0 0 192 32C86 32 0 118 0 224s86 192 192 192a191.08 191.08 0 0 0 96-25.69v-.2c2.83-1.61 5.61-3.28 8.33-5.05C342 355.33 393.58 336.1 448 336h16a112 112 0 0 0 0-224zm0 136a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faKnifeKitchen = {\n prefix: 'fad',\n iconName: 'knife-kitchen',\n icon: [576, 512, [], \"f6f5\", [\"M4.87 469.83L267.52 216.6l129.09 124.45a15.6 15.6 0 0 1 0 22.63l-61 58.85c-84.89 81.81-210.41 110.38-324.25 73.79-11.71-3.75-15.21-18.08-6.49-26.49z\", \"M566.28 43.31L531.07 9.38a34.07 34.07 0 0 0-46.94 0L291.82 194.77l112.1 108.08 34.35-27.7a31.47 31.47 0 0 0 9.73-22.64V208L566.28 88.57a31.2 31.2 0 0 0 0-45.26zm-122 106.36a17 17 0 0 1-23.47 0 15.6 15.6 0 0 1 0-22.63 17 17 0 0 1 23.47 0 15.6 15.6 0 0 1-.04 22.63zm60.52-58.36a17 17 0 0 1-23.47 0 15.59 15.59 0 0 1 0-22.62 17 17 0 0 1 23.47 0 15.59 15.59 0 0 1-.04 22.62z\"]]\n};\nvar faLambda = {\n prefix: 'fad',\n iconName: 'lambda',\n icon: [448, 512, [], \"f66e\", [\"M194.62 243.73l-95 221.72A24 24 0 0 1 77.54 480H25.31a24 24 0 0 1-22.06-33.45l132.88-310.06z\", \"M448 408v48a24 24 0 0 1-24 24h-81.5a32 32 0 0 1-28.1-16.68L131.5 128H24a24 24 0 0 1-24-24V56a24 24 0 0 1 24-24h145.5a32 32 0 0 1 28.1 16.68L380.5 384H424a24 24 0 0 1 24 24z\"]]\n};\nvar faLamp = {\n prefix: 'fad',\n iconName: 'lamp',\n icon: [448, 512, [], \"f4ca\", [\"M158.31 288h131.4C327 325.2 352 386.8 352 428.8c0 28.4-11.5 54.2-30.5 74.3-5.7 6-13.9 8.9-22.2 8.9H148.71c-8.3 0-16.5-2.9-22.2-8.9-19-20-30.5-45.9-30.5-74.3-.01-42 24.99-103.6 62.3-140.8z\", \"M93.61 17.7c5.2-10.9 15.6-17.7 27-17.7h219.8c12 0 22.9 7.6 27.6 19.4l77.5 192c8.6 21.1-6 44.6-27.6 44.6H30.21c-22.4 0-37-25-27-46.3z\"]]\n};\nvar faLampDesk = {\n prefix: 'fad',\n iconName: 'lamp-desk',\n icon: [512, 512, [], \"e014\", [\"M221.78,120.28,103,239a24,24,0,0,0-6.11,23.56L149.9,448h49.92L147,263,255.72,154.22Zm236.55,67.43-78.62,78.62a55.73,55.73,0,0,0,78.62-78.62Z\", \"M320,448H64C35.58,448,9.05,466.53.7,492.16-2.52,502,5.88,512,16.26,512H367.74c10.39,0,18.78-10,15.57-19.84C375,466.53,348.42,448,320,448ZM494.41,64H346.5L301.24,18.74a64,64,0,0,0-90.5,90.5l45,45,.28.28V302.42c0,15.63,18.9,23.46,30,12.4L506.82,94C517.88,82.9,510.05,64,494.41,64Z\"]]\n};\nvar faLampFloor = {\n prefix: 'fad',\n iconName: 'lamp-floor',\n icon: [384, 512, [], \"e015\", [\"M224,224V448H160V224Z\", \"M256,448H128c-28.42,0-54.95,18.53-63.3,44.16C61.48,502,69.88,512,80.26,512H303.74c10.38,0,18.78-10,15.56-19.84C311,466.53,284.42,448,256,448ZM381.38,179.39l-68.58-160A32,32,0,0,0,283.39,0H100.61A32,32,0,0,0,71.2,19.39l-68.58,160A32,32,0,0,0,32,224H352A32,32,0,0,0,381.38,179.39Z\"]]\n};\nvar faLandmark = {\n prefix: 'fad',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", [\"M496 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-16-80a16 16 0 0 0-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64v160H48a16 16 0 0 0-16 16v48h448z\", \"M10.38 92.11L244.77 2a32 32 0 0 1 22.47 0l234.38 90.11a16 16 0 0 1 10.38 15V144a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-36.91a16 16 0 0 1 10.38-14.98z\"]]\n};\nvar faLandmarkAlt = {\n prefix: 'fad',\n iconName: 'landmark-alt',\n icon: [512, 512, [], \"f752\", [\"M0 496v-32a16 16 0 0 1 16-16h16v-16a16 16 0 0 1 16-16h16V288h64v128h96V288h64v128h96V288h64v128h16a16 16 0 0 1 16 16v16h16a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16z\", \"M288 16v18.9A191.88 191.88 0 0 1 445.1 192H464a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h18.9A191.88 191.88 0 0 1 224 34.9V16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\"]]\n};\nvar faLanguage = {\n prefix: 'fad',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", [\"M168.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H179zM0 120v272.12A23.94 23.94 0 0 0 24 416h296V96H23.88A23.94 23.94 0 0 0 0 120zm74.62 216.19l57.65-168.14A12 12 0 0 1 143.7 160h32.58a12.23 12.23 0 0 1 11.43 8.05l57.64 168.14a11.7 11.7 0 0 1 .65 3.93A12 12 0 0 1 233.92 352H211a12 12 0 0 1-11.53-8.55L190 311.73h-60.34l-9.12 31.62A12.11 12.11 0 0 1 109 352H86a12.07 12.07 0 0 1-11.43-15.81zM564 188h-64v-16a12 12 0 0 0-12-12h-16a12 12 0 0 0-12 12v16h-64a12 12 0 0 0-12 12v16a12 12 0 0 0 12 12h114.3c-6.2 14.3-16.5 29-30 43.19a191 191 0 0 1-17.4-20.89 12.09 12.09 0 0 0-16-3.4l-7.3 4.3-6.5 3.89-.64.41a12 12 0 0 0-3.06 16.69 231.81 231.81 0 0 0 21 25.69 284.34 284.34 0 0 1-26.1 18 12 12 0 0 0-4.2 16.2l7.9 13.89.2.34a12 12 0 0 0 16.5 4 352.44 352.44 0 0 0 35.4-24.89 348.11 348.11 0 0 0 35.4 24.89 3.79 3.79 0 0 0 .34.2 12 12 0 0 0 16.36-4.5l7.9-14.01a12 12 0 0 0-4.1-16.2 310.64 310.64 0 0 1-26.1-18c21-22.49 35.8-46.28 42.7-69.88H564a12 12 0 0 0 12-12V200a12 12 0 0 0-12-12z\", \"M616.12 96H320v320h296a23.94 23.94 0 0 0 24-23.88V120a23.94 23.94 0 0 0-23.88-24zM576 216a12 12 0 0 1-12 12h-11.4c-6.9 23.6-21.7 47.39-42.7 69.88a310.64 310.64 0 0 0 26.1 18 12 12 0 0 1 4.1 16.2l-7.9 13.89a12 12 0 0 1-16.36 4.5 3.79 3.79 0 0 1-.34-.2 348.11 348.11 0 0 1-35.4-24.89 352.44 352.44 0 0 1-35.4 24.89 12 12 0 0 1-16.5-4l-.2-.34-7.9-13.93a12 12 0 0 1 4.2-16.2 284.34 284.34 0 0 0 26.1-18 231.81 231.81 0 0 1-21-25.69 12 12 0 0 1 3.06-16.69l.64-.41 6.5-3.89 7.3-4.3a12.09 12.09 0 0 1 16 3.4 191 191 0 0 0 17.4 20.89c13.5-14.2 23.8-28.89 30-43.19H396a12 12 0 0 1-12-12V200a12 12 0 0 1 12-12h64v-16a12 12 0 0 1 12-12h16a12 12 0 0 1 12 12v16h64a12 12 0 0 1 12 12zm-388.29-47.95a12.23 12.23 0 0 0-11.43-8.05H143.7a12 12 0 0 0-11.43 8.05L74.62 336.19A12.07 12.07 0 0 0 86.05 352h23a12.11 12.11 0 0 0 11.53-8.65l9.12-31.62H190l9.42 31.72A12 12 0 0 0 211 352h23a12 12 0 0 0 12-11.88 11.7 11.7 0 0 0-.65-3.93zM140.9 273.7l11.1-37.5c3.5-12.1 7.8-33.2 7.8-33.2h.5s4.3 21.1 7.8 33.2l10.9 37.5z\"]]\n};\nvar faLaptop = {\n prefix: 'fad',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", [\"M528 0H112a48.14 48.14 0 0 0-48 48v336h512V48a48.14 48.14 0 0 0-48-48zm-16 320H128V64h384z\", \"M512 64H128v256h384zm112 352H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]]\n};\nvar faLaptopCode = {\n prefix: 'fad',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", [\"M528 0H112a48.14 48.14 0 0 0-48 48v336h512V48a48.14 48.14 0 0 0-48-48zm-16 320H128V64h384z\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16zM512 64H128v256h384zM289 250.34l-11.31 11.31a16 16 0 0 1-22.63 0l-58.35-58.34a16 16 0 0 1 0-22.63L255 122.34a16 16 0 0 1 22.63 0L289 133.65a16 16 0 0 1 0 22.63L253.25 192 289 227.71a16 16 0 0 1 0 22.63zm154.35-47L385 261.66a16 16 0 0 1-22.63 0L351 250.35a16 16 0 0 1 0-22.63L386.75 192 351 156.29a16 16 0 0 1 0-22.63l11.31-11.31a16 16 0 0 1 22.63 0l58.34 58.34a16 16 0 0 1 .04 22.63z\"]]\n};\nvar faLaptopHouse = {\n prefix: 'fad',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", [\"M272,416H96a32,32,0,0,1-32-32V219.88L42.34,239A16.51,16.51,0,0,1,33,242.48a16.22,16.22,0,0,1-10.63-4.78L3.55,216.42A16.4,16.4,0,0,1,0,207a16.15,16.15,0,0,1,4.78-10.61L216.58,8.92C222.12,4,232.64,0,240.05,0S258,4,263.5,8.92L352,87.3V48a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16v96l59.24,52.42A16.31,16.31,0,0,1,480,207a16.51,16.51,0,0,1-3.58,9.44L469.74,224H332.8c-17.8,0-33.69,8.24-44.82,21.12V208a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v64a16,16,0,0,0,16,16h64Z\", \"M629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]]\n};\nvar faLaptopMedical = {\n prefix: 'fad',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", [\"M528 0H112a48.14 48.14 0 0 0-48 48v336h512V48a48.14 48.14 0 0 0-48-48zm-16 320H128V64h384z\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16zM512 64H128v256h384zm-96 152a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]]\n};\nvar faLasso = {\n prefix: 'fad',\n iconName: 'lasso',\n icon: [576, 512, [], \"f8c8\", [\"M178.13 384.21a68.83 68.83 0 0 1 2.58 17.53 45.9 45.9 0 0 1-45.77 46.5H48a16 16 0 0 0-16 15.94v31.88A16 16 0 0 0 48 512h86.94c59.38 0 108.8-47.23 109.76-106.38a134.89 134.89 0 0 0-6.57-45.28c-14.24 14.12-35.65 23.35-60 23.87zM288 0C126.5 0 0 79.64 0 181.3c0 49.78 30.22 95.84 85 129.7 3.54 2.17 7.41 4.31 11.37 6.45 1.39-22.07 16.73-41 39.25-51.59-5.91-3-11.92-6-16.9-9.07C98.31 244.17 64 217.57 64 181.3c0-62.61 104.69-117.54 224-117.54s224 54.93 224 117.54-104.69 117.52-224 117.52c-12.82 0-25.42-.8-37.88-2a52.39 52.39 0 0 1 5.88 23.8c0 14.93-6.7 28.47-17.48 39.34a470.13 470.13 0 0 0 49.48 2.62c161.5 0 288-79.64 288-181.28S449.5 0 288 0z\", \"M256 320.62c0 35.21-35.82 63.76-80 63.76s-80-28.55-80-63.76 35.82-63.76 80-63.76 80 28.55 80 63.76z\"]]\n};\nvar faLaugh = {\n prefix: 'fad',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm80,152a32,32,0,1,1-32,32A32,32,0,0,1,328,160Zm-160,0a32,32,0,1,1-32,32A32,32,0,0,1,168,160ZM398.9,306A144.12,144.12,0,0,1,256,432H240A144.12,144.12,0,0,1,97.1,306a16.06,16.06,0,0,1,14-17.88A15,15,0,0,1,113,288H383a16,16,0,0,1,16,16A16.64,16.64,0,0,1,398.9,306Z\", \"M328,160a32,32,0,1,0,32,32A32,32,0,0,0,328,160Zm-160,0a32,32,0,1,0,32,32A32,32,0,0,0,168,160Z\"]]\n};\nvar faLaughBeam = {\n prefix: 'fad',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm24,199.4c3.3-42.1,32.2-71.4,56-71.4s52.7,29.3,56,71.4c.7,8.6-10.8,11.9-14.9,4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8,7.9-31.5,21.6l-9.5,17C282.9,219.3,271.3,216,272,207.4Zm-160,0c3.3-42.1,32.2-71.4,56-71.4s52.7,29.3,56,71.4c.7,8.6-10.8,11.9-14.9,4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8,7.9-31.5,21.6l-9.5,17C122.8,219.3,111.3,215.9,112,207.4ZM398.9,306A144.12,144.12,0,0,1,256,432H240A144.12,144.12,0,0,1,97.1,306a16.06,16.06,0,0,1,14-17.88A15,15,0,0,1,113,288H383a16,16,0,0,1,16,16A16.64,16.64,0,0,1,398.9,306Z\", \"M384,207.4c-3.3-42.1-32.2-71.4-56-71.4s-52.7,29.3-56,71.4c-.7,8.6,10.9,11.9,15.1,4.5l9.5-17c7.7-13.7,19.2-21.6,31.5-21.6s23.8,7.9,31.5,21.6l9.5,17C373.2,219.3,384.7,216,384,207.4ZM168,136c-23.8,0-52.7,29.3-56,71.4-.7,8.5,10.8,11.9,15.1,4.5l9.5-17c7.7-13.7,19.2-21.6,31.5-21.6s23.8,7.9,31.5,21.6l9.5,17c4.1,7.4,15.6,4.1,14.9-4.5C220.7,165.3,191.8,136,168,136Z\"]]\n};\nvar faLaughSquint = {\n prefix: 'fad',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm33.8,161.7,80-48c11.6-6.9,24,7.7,15.4,18L343.6,180l33.6,40.3c8.7,10.4-3.9,24.8-15.4,18l-80-48a12.07,12.07,0,0,1,0-20.6Zm-147.6-48,80,48a12,12,0,0,1,0,20.6l-80,48c-11.5,6.8-24-7.6-15.4-18L152.4,180l-33.6-40.3C110.2,129.4,122.6,114.8,134.2,121.7ZM398.9,306A144.12,144.12,0,0,1,256,432H240A144.12,144.12,0,0,1,97.1,306a16.06,16.06,0,0,1,14-17.88A15,15,0,0,1,113,288H383a16,16,0,0,1,16,16A16.64,16.64,0,0,1,398.9,306Z\", \"M377.2,220.3,343.6,180l33.6-40.3c8.6-10.3-3.8-24.9-15.4-18l-80,48a12.07,12.07,0,0,0,0,20.6l80,48C373.3,245.1,385.9,230.7,377.2,220.3Zm-163-50.6-80-48c-11.6-6.9-24,7.7-15.4,18L152.4,180l-33.6,40.3c-8.6,10.4,3.9,24.8,15.4,18l80-48a12,12,0,0,0,0-20.6Z\"]]\n};\nvar faLaughWink = {\n prefix: 'fad',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm20.1,198.1c4-25.2,34.2-42.1,59.9-42.1s55.9,16.9,59.9,42.1c1.7,11.1-11.4,18.3-19.8,10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61,0L288,217a12.08,12.08,0,0,1-19.9-10.9ZM168,160a32,32,0,1,1-32,32A32,32,0,0,1,168,160ZM398.9,306A144.12,144.12,0,0,1,256,432H240A144.12,144.12,0,0,1,97.1,306a16.06,16.06,0,0,1,14-17.88A15,15,0,0,1,113,288H383a16,16,0,0,1,16,16A16.64,16.64,0,0,1,398.9,306Z\", \"M387.9,206.1c-4-25.2-34.2-42.1-59.9-42.1s-55.9,16.9-59.9,42.1A12.08,12.08,0,0,0,288,217l9.6-8.6c14.8-13.2,46.2-13.2,61,0l9.5,8.5c8.4,7.5,21.5.3,19.8-10.8ZM168,160a32,32,0,1,0,32,32A32,32,0,0,0,168,160Z\"]]\n};\nvar faLayerGroup = {\n prefix: 'fad',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", [\"M12.41 236.31L70.51 210l161.63 73.27a57.64 57.64 0 0 0 47.72 0L441.5 210l58.09 26.33c16.55 7.5 16.55 32.5 0 40L266.64 381.9a25.68 25.68 0 0 1-21.29 0L12.41 276.31c-16.55-7.5-16.55-32.5 0-40z\", \"M12.41 148l232.94 105.7a25.61 25.61 0 0 0 21.29 0L499.58 148c16.55-7.51 16.55-32.52 0-40L266.65 2.32a25.61 25.61 0 0 0-21.29 0L12.41 108c-16.55 7.5-16.55 32.52 0 40zm487.18 216.11l-57.87-26.23-161.86 73.37a57.64 57.64 0 0 1-47.72 0L70.29 337.88l-57.88 26.23c-16.55 7.5-16.55 32.5 0 40L245.35 509.7a25.68 25.68 0 0 0 21.29 0l233-105.59c16.5-7.5 16.5-32.5-.05-40z\"]]\n};\nvar faLayerMinus = {\n prefix: 'fad',\n iconName: 'layer-minus',\n icon: [512, 512, [], \"f5fe\", [\"M12.41 236.3l233-105.58a25.68 25.68 0 0 1 21.29 0L499.59 236.3c16.55 7.5 16.55 32.5 0 40L266.64 381.89a25.68 25.68 0 0 1-21.29 0L12.41 276.3c-16.55-7.5-16.55-32.5 0-40z\", \"M499.59 364.1l-58.09-26.33L279.87 411a57.64 57.64 0 0 1-47.72 0L70.51 337.77l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59a25.68 25.68 0 0 0 21.29 0l233-105.59c16.5-7.5 16.5-32.5-.05-40zM304 64h192a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\"]]\n};\nvar faLayerPlus = {\n prefix: 'fad',\n iconName: 'layer-plus',\n icon: [512, 512, [], \"f5ff\", [\"M400 288c16.73 0 32.68-2.91 48-7.29v18.58l-181.36 82.2a25.68 25.68 0 0 1-21.29 0L12.41 275.9c-16.55-7.5-16.55-32.5 0-40l213.87-97C239.28 223.32 312 288 400 288z\", \"M499.59 364.1l-58.54-26.53-161.19 73.06a57.64 57.64 0 0 1-47.72 0L71 337.57 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59a25.68 25.68 0 0 0 21.29 0l233-105.59c16.5-7.5 16.5-32.5-.05-40zM304 144h64v64a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-64h64a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16h-64V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v64h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\"]]\n};\nvar faLeaf = {\n prefix: 'fad',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", [\"M576 154.31c0 172.38-110.51 313.17-267.53 324.57A199 199 0 0 1 288 480v-.55h-.25a191.66 191.66 0 0 1-165.63-95.07l.77-.85c29.58-32.23 62.28-57.84 97.18-76.12a297.55 297.55 0 0 1 139.4-34.05 24.69 24.69 0 0 0 0-49.37 345.79 345.79 0 0 0-162.94 40.1c-33.77 17.81-65.56 41.48-94.77 70.49A192.06 192.06 0 0 1 96 287.72C96 181.83 181.86 96 287.77 96H368c63.4 0 118.91-33.59 149.91-87.49 6.7-11.8 22.71-11.3 28.31 1.2C565.2 52.12 576 104.11 576 154.31z\", \"M24.5 512a24.32 24.32 0 0 1-9.5-1.95 24.73 24.73 0 0 1-13-32.3c1.08-2.6 27.24-64.33 83.81-126.43 33.47-36.75 70.75-66.09 110.81-87.22A345.79 345.79 0 0 1 359.49 224a24.69 24.69 0 0 1 0 49.37 297.55 297.55 0 0 0-139.4 34.05c-34.9 18.28-67.6 43.89-97.18 76.12-51.25 55.85-75.58 112.83-75.82 113.4A24.54 24.54 0 0 1 24.5 512z\"]]\n};\nvar faLeafHeart = {\n prefix: 'fad',\n iconName: 'leaf-heart',\n icon: [576, 512, [], \"f4cb\", [\"M546.2 9.72c-5.6-12.5-21.61-13-28.31-1.2C486.89 62.42 431.38 96 368 96h-80.25C181.86 96 96 181.83 96 287.72a192.06 192.06 0 0 0 5.78 46.87q-8.16 8.1-16 16.73C29.17 413.42 3 475.15 1.93 477.75A24.73 24.73 0 0 0 15 510.05a24.41 24.41 0 0 0 32.11-13.11c.24-.57 24.33-57 75.05-112.55a191.66 191.66 0 0 0 165.63 95.07h.21v.54a199 199 0 0 0 20.45-1.12C465.49 467.48 576 326.69 576 154.31c0-50.2-10.8-102.19-29.8-144.59zm-115.65 284.7L345.85 380a13.94 13.94 0 0 1-19.8 0l-84.7-85.6a60.65 60.65 0 0 1 4.3-89.1c24-20 59.6-16.4 81.6 5.8l8.6 8.7 8.6-8.7c22-22.2 57.7-25.8 81.6-5.8a60.58 60.58 0 0 1 4.5 89.12z\", \"M245.65 205.32c24-20 59.6-16.4 81.6 5.8l8.6 8.7 8.6-8.7c22-22.2 57.7-25.8 81.6-5.8a60.58 60.58 0 0 1 4.5 89.1L345.85 380a13.94 13.94 0 0 1-19.8 0l-84.7-85.6a60.65 60.65 0 0 1 4.3-89.08z\"]]\n};\nvar faLeafMaple = {\n prefix: 'fad',\n iconName: 'leaf-maple',\n icon: [512, 512, [], \"f6f6\", [\"M504 195.56l-140.83 89.59L428 268.57a17.33 17.33 0 0 1 20.57 21.12l-13.8 25.72 51.31 45.3a17.34 17.34 0 0 1 0 27.07l-51.31 45.3 13.8 25.72A17.33 17.33 0 0 1 428 479.92l-160.19-33L251.94 484c-6 14-25.86 14-31.88 0l-49.14-108 141.86-141.91a24.65 24.65 0 1 0-34.86-34.87L136.06 341.1 28 291.94c-14-6-14-25.87 0-31.87l37.08-15.89L32.08 84a17.34 17.34 0 0 1 21.13-20.59l25.73 13.81 45.3-51.33a17.33 17.33 0 0 1 27.06 0l45.3 51.33 25.73-13.82A17.33 17.33 0 0 1 243.45 84l-16.58 64.84L316.46 8a17.35 17.35 0 0 1 29.5.39l22.33 37.23 88.77-9.86a17.34 17.34 0 0 1 19.15 19.14l-9.87 88.78 37.24 22.34a17.35 17.35 0 0 1 .42 29.54z\", \"M24.67 512a24.61 24.61 0 0 1-17.43-42l270.68-270.78a24.65 24.65 0 1 1 34.86 34.87L42.1 504.82A24.51 24.51 0 0 1 24.67 512z\"]]\n};\nvar faLeafOak = {\n prefix: 'fad',\n iconName: 'leaf-oak',\n icon: [512, 512, [], \"f6f7\", [\"M498.05 232.79c-6.27 6.76-14.7 11.71-22.66 16.65-12.63 7.82-25.7 14.94-39.93 23.13 5.51 6.72 9.75 11.65 13.73 16.77 22.23 28.61 16 59.63-15.4 77.62-22.74 13.04-47.07 11.64-71.79 8.47-12.84-1.65-25.76-2.69-42.31-4.38 4.27 6.14 6.24 8.58 7.78 11.27 14.94 26.1 4.3 55.32-24.64 63.17a80.79 80.79 0 0 1-37.58.86c-17.31-3.93-33.46-12.87-50.66-17.61-9.41-2.6-21-3.91-29.81-.72-16.38 6-42.38 15.09-68.62 2.7l196.62-196.63a24.65 24.65 0 1 0-34.86-34.87L81.31 395.87C68.88 369.61 78 343.58 84 327.19c3.19-8.77 1.88-20.4-.72-29.81-4.74-17.2-13.68-33.35-17.61-50.66a80.79 80.79 0 0 1 .86-37.58c7.85-28.94 37.07-39.58 63.17-24.64 2.69 1.54 5.13 3.51 11.27 7.78-1.69-16.55-2.73-29.47-4.38-42.31C133.4 125.28 132 101 145 78.21c18-31.36 49-37.63 77.62-15.4 5.12 4 10.05 8.22 16.77 13.73 8.19-14.23 15.31-27.3 23.13-39.93 4.94-8 9.89-16.39 16.65-22.66C303-8.1 338.37-3.38 357 23.6a75.46 75.46 0 0 1 7.36 12.47c3.19 7.33 11.8 10.35 19.56 8.06 33.07-9.76 57-2.91 71.5 12.43 15.34 14.49 22.18 38.43 12.43 71.5-2.29 7.76.73 16.37 8.06 19.56A75.46 75.46 0 0 1 488.4 155c26.98 18.63 31.7 54 9.65 77.79z\", \"M24.67 512a24.61 24.61 0 0 1-17.43-42l270.68-270.78a24.65 24.65 0 1 1 34.86 34.87L42.1 504.82A24.51 24.51 0 0 1 24.67 512z\"]]\n};\nvar faLemon = {\n prefix: 'fad',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", [\"M489 23C465.94-.13 434.65-5.93 414 6.13 355 40.44 232.7-46.95 92.87 92.88S40.44 355 6.13 413.94C-5.93 434.65-.13 465.94 23 489s54.39 28.89 75.1 16.83c58.9-34.27 181.2 53.17 321-86.7S471.56 157 505.87 98.06c12.06-20.71 6.26-52-16.87-75.06zM243.88 95.52c-58.19 14.55-133.81 90.16-148.36 148.36a16 16 0 0 1-31-7.76c17.38-69.69 101.8-154.19 171.6-171.64a16 16 0 0 1 7.76 31z\", \"M243.88 95.48c-58.19 14.55-133.81 90.16-148.36 148.36a16 16 0 0 1-31-7.76c17.38-69.65 101.8-154.15 171.6-171.6a16 16 0 0 1 7.76 31z\"]]\n};\nvar faLessThan = {\n prefix: 'fad',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", [\"M381 400.39l-13.56 29.08A32.09 32.09 0 0 1 324.79 445L18.48 302.16a32 32 0 0 1-18.48-29v-34.24a32 32 0 0 1 18.48-29L324.94 67a32 32 0 0 1 42.53 15.48l13.52 29A32 32 0 0 1 365.51 154L147 255.9l218.46 101.85A32.08 32.08 0 0 1 381 400.39z\", \"\"]]\n};\nvar faLessThanEqual = {\n prefix: 'fad',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", [\"M24 400h400a24 24 0 0 1 24 24v48a24 24 0 0 1-24 24H24a24 24 0 0 1-24-24v-48a24 24 0 0 1 24-24z\", \"M392.77 107.69l-175.56 68.09 175.44 68.05c18.39 6 27.89 24.39 21.21 41l-12.09 30.08c-6.67 16.61-27 25.18-45.38 19.15L55 214.19c-13.79-4.52-23-16.61-23-30.19v-16c0-13.57 9.21-25.66 23-30.18l301.71-120c18.29-6 38.51 2.53 45.15 19.06l12 29.92c6.65 16.62-2.8 34.89-21.09 40.89z\"]]\n};\nvar faLevelDown = {\n prefix: 'fad',\n iconName: 'level-down',\n icon: [352, 512, [], \"f149\", [\"M59.51 76.48l-56-56A12 12 0 0 1 12 0h196a24 24 0 0 1 24 24v348.71l-40 43.21-40-43.23V80H68a12 12 0 0 1-8.49-3.52z\", \"M345 367.28L209.09 504.87l-.09.13a24.08 24.08 0 0 1-33.95 0l-.14-.14L39 367.28a24.22 24.22 0 0 1 0-34l22-22.17a23.91 23.91 0 0 1 33.81-.11l.13.13c.21.21.42.43.62.65L192 415.92l96.45-104.21c.2-.22.41-.44.62-.65a23.92 23.92 0 0 1 33.82-.13l.12.13 22 22.17a24.22 24.22 0 0 1 0 34z\"]]\n};\nvar faLevelDownAlt = {\n prefix: 'fad',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", [\"M152 352V80H68a12 12 0 0 1-8.48-3.52l-56-56A12 12 0 0 1 12 0h196a24 24 0 0 1 24 24v328z\", \"M296 352c20.87 0 31.85 25 17.58 40.33l-104 112a24 24 0 0 1-33.91 1.26c-.44-.4-.86-.83-1.26-1.26l-104-112C56.25 377 67.07 352 88 352z\"]]\n};\nvar faLevelUp = {\n prefix: 'fad',\n iconName: 'level-up',\n icon: [352, 512, [], \"f148\", [\"M68,432h84V139.31l40-43.23,40,43.21V488a24,24,0,0,1-24,24H12a12,12,0,0,1-8.48-20.48l56-56A12,12,0,0,1,68,432Z\", \"M345,178.76l-22,22.17a23.93,23.93,0,0,1-33.83.13l-.12-.13c-.21-.21-.42-.43-.62-.65L192,96.08,95.53,200.29c-.2.22-.41.44-.62.65a23.93,23.93,0,0,1-33.83.13.53.53,0,0,0-.13-.13L39,178.76a24.22,24.22,0,0,1,0-34L174.91,7.13a.93.93,0,0,0,.14-.14A24.1,24.1,0,0,1,209,7l.14.14L345,144.72a24.22,24.22,0,0,1,0,34Z\"]]\n};\nvar faLevelUpAlt = {\n prefix: 'fad',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", [\"M232 160v328a24 24 0 0 1-24 24H12a12 12 0 0 1-8.48-20.48l56-56A12 12 0 0 1 68 432h84V160z\", \"M88 160c-20.94 0-31.76-25-17.6-40.33l104-112c.4-.43.82-.86 1.26-1.26a24 24 0 0 1 33.91 1.26l104 112C327.82 135 316.84 160 296 160z\"]]\n};\nvar faLifeRing = {\n prefix: 'fad',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", [\"M292.08 167l-.41-.17zm-66.62-2a96.5 96.5 0 0 1 61.08 0l112-112a248 248 0 0 0-285 0zm68.67 2.92l.52.22zm2.49 1.12l.46.21zM186.25 322l-.19-.21zm-5.51-6.36l.21.26zm1.65 2c.12.14.23.28.35.41-.12-.15-.23-.29-.35-.43zm1.74 2l.36.4zm135.51-135.51l.4.36zM177.51 311.29l-.1-.15zM304.18 173l.34.19zm11.42 7.78l.26.21zm6.36 5.51l-.21-.19zm-3.96-3.55l-.42-.35zm-11.6-8.43l.47.29zm4.68 3.09l.17.12zm-2-1.35l-.43-.29zm-9.71-5.68l-.1-.05zm-123.61 32.91c.1-.14.19-.28.28-.42-.04.14-.18.28-.28.42zm-1.45 2.28l.29-.46zm-1.31 2.25l.19-.32zm-2.6 4.77zm10.38-16.18l.21-.26zm2-2.43c-.12.13-.23.27-.35.41.08-.14.19-.28.31-.38zm-5.33 6.89l.1-.15zm-8.2 14.07c-.07.14-.13.29-.2.43.03-.14.09-.29.16-.43zm5.39 92l-.29-.46zm-4.27-7.53v.05zm2.82 5.14l-.19-.32zm2.61 4.21c.1.14.19.28.28.42-.08-.17-.22-.31-.32-.45zm-6.8-12.11c.07.14.13.29.2.43-.06-.14-.12-.29-.2-.43zm-2-76.7c0 .13-.1.25-.16.38.07-.13.16-.25.16-.38zm1.09-2.58c-.07.17-.15.34-.22.5.13-.16.13-.33.23-.5zm-.22 76.78c.07.16.15.33.22.5-.09-.17-.09-.34-.21-.5zm-1-2.46c.06.13.11.25.16.38-.03-.13-.12-.25-.18-.38zm172-84.19l.19.32zM327.51 320l.36-.4zm-1.57 1.71l-.19.21zM325.75 190l.19.21zm3.51 128c.12-.13.23-.27.35-.41-.12.17-.23.31-.35.41zm2-121.63l-.21-.26zm0 119.2l-.21.26zm-1.65-121.22c-.12-.14-.23-.28-.35-.41.12.16.23.3.35.44zm-1.74-2l-.36-.4zm6.62 8.35l.1.15zm.1 110.43l-.1.15zM398.49 53q2 1.41 4 2.85-2-1.43-4-2.85zM343.9 294.64c.07-.17.15-.34.22-.5-.07.16-.12.33-.22.5zm1.09-2.58c.05-.13.1-.25.16-.38-.06.13-.15.25-.15.38zm-3.35 7.36v-.05zm-5.4 9.3l-.28.42zm1.45-2.28l-.29.46zm1.35-2.25l-.19.32zm3.75-7.12c.07-.14.13-.29.2-.43-.07.14-.13.29-.2.43zM449 100.21q-1.41-1.75-2.85-3.46 1.39 1.71 2.85 3.46zM445.49 96c-1-1.18-2-2.35-3-3.51 1 1.19 2.01 2.36 3 3.51zm6.87 8.5q-1.36-1.74-2.76-3.5 1.4 1.76 2.76 3.53zm3.36 4.44c-.91-1.23-1.83-2.44-2.75-3.65.92 1.24 1.84 2.45 2.75 3.71zm-119.48 94.34l-.28-.42zm66.76-147q1.85 1.36 3.66 2.76-1.78-1.39-3.66-2.76zm12.23 9.62q-1.72-1.44-3.47-2.85 1.77 1.41 3.5 2.85zM411 62.4q-1.74-1.4-3.51-2.77Q409.24 61 411 62.4zm8.5 7.13q-1.74-1.53-3.51-3 1.75 1.47 3.49 3zm-75.38 148.33c-.07-.16-.15-.33-.22-.5.1.17.15.34.22.5zM184.49 192l-.36.4zM343 215.36c-.07-.14-.13-.29-.2-.43.06.14.12.29.2.43zm113.16-105.8c1 1.31 1.9 2.62 2.84 3.94-.95-1.32-1.89-2.63-2.85-3.94zM337.4 205.1l.29.46zm82.53-135.18a248.82 248.82 0 0 1 22.14 22.15 250.17 250.17 0 0 0-22.14-22.15zm-74.78 150.4a6.15 6.15 0 0 1-.16-.38c.01.13.1.25.16.38zM459 398.49a248 248 0 0 0 0-285L347 225.46a96.5 96.5 0 0 1 0 61.08zM341.67 212.63zM220.33 345.15l-.41-.17zm-2.46-1l-.52-.22zm-5.3-2.49l.1.05zM322 325.75l-.21.19zM309.14 336l-.43.29zm2-1.35l.17-.12zm4.48-3.34l.26-.21zm4-3.39l.4-.36zm-1.6 1.39l-.42.35zM215.38 343l-.46-.21zm-19-11.74l-.26-.21zm-4-3.39l-.4-.36zm-6.3-137.62l.19-.21zm4 135.5l.21.19zm15.52 11.94l-.47-.29zm2.26 1.35l-.34-.19zm78.72 8a96.5 96.5 0 0 1-61.08 0L113.51 459a248 248 0 0 0 285 0zM202.86 336l.43.29zm-2-1.35l-.17-.12zM416 445.49q1.77-1.49 3.51-3-1.77 1.51-3.51 3zm43-47c-.93 1.33-1.88 2.64-2.84 3.95.95-1.31 1.9-2.62 2.84-3.95zM411.79 449q1.74-1.41 3.47-2.85-1.72 1.39-3.47 2.85zm-4.32 3.42q1.77-1.38 3.51-2.77-1.74 1.35-3.51 2.72zM455.72 403q-1.37 1.85-2.76 3.66 1.4-1.78 2.76-3.66zm-10.23 13c-1 1.18-2 2.35-3 3.51 1-1.19 2.01-2.36 3-3.51zm3.46-4.18q-1.41 1.74-2.85 3.47 1.44-1.75 2.9-3.5zm.65-.81q1.39-1.74 2.77-3.51-1.37 1.74-2.77 3.5zm-150.17-69.38a.31.31 0 0 1-.1.05.31.31 0 0 0 .1-.05zm-5.3 2.49l.52-.22zm12.31-6.43l.47-.29zm-9.82 5.31l.46-.21zm7.56-4l.34-.19zm137.9 80.89a248.94 248.94 0 0 1-22.15 22.15 248.94 248.94 0 0 0 22.15-22.11zm-39.63 36.21q-2 1.44-4 2.85 2.04-1.37 4-2.81zM292.08 345l-.41.17zM403 455.72q1.85-1.37 3.66-2.76-1.78 1.4-3.66 2.76zM194 329.26l.42.35zM69.93 92.07a248.82 248.82 0 0 1 22.14-22.15 250.17 250.17 0 0 0-22.14 22.15zm30.28-29q-1.74 1.41-3.47 2.85 1.73-1.46 3.47-2.87zm90 123l-.21.19zm4.13-3.67l-.42.35zM109.55 55.86q2-1.44 4-2.85-2.03 1.41-4 2.85zM196.14 181l.26-.21zM104.53 59.63Q102.76 61 101 62.4q1.76-1.4 3.53-2.77zm.78-.59q1.81-1.4 3.66-2.76-1.84 1.37-3.66 2.72zm87.05 125.09l-.4.36zm22.56-14.92l.46-.21zm-2.25 1.11l-.1.05zm4.68-2.22l.52-.22zm2.57-1.08l.41-.17zm-17.06 9l.43-.29zm5-3.09l-.34.19zm-7.11 4.56l.17-.12zm4.38-2.92l.47-.29zM96.74 446.1q1.73 1.44 3.47 2.85-1.74-1.41-3.47-2.85zm-33.69-34.31q1.41 1.74 2.85 3.47-1.44-1.72-2.85-3.47zm3.46 4.21c1 1.18 2 2.35 3 3.51-1-1.19-2.01-2.36-3-3.51zm-10.23-13q1.36 1.85 2.76 3.66-1.39-1.78-2.76-3.66zm3.35 4.44q1.37 1.8 2.77 3.56-1.4-1.76-2.77-3.53zm32.89 35q1.74 1.53 3.51 3-1.77-1.44-3.51-2.97zM105.31 453q1.81 1.4 3.66 2.76-1.84-1.4-3.66-2.76zm8.2 6q-2-1.41-4-2.85 2.01 1.43 4 2.85zM101 449.6q1.74 1.39 3.51 2.77-1.75-1.37-3.51-2.77zm-45.15-47.16c-1-1.31-1.9-2.62-2.84-3.95.99 1.33 1.88 2.64 2.84 3.95zM65.9 96.75q-1.44 1.71-2.85 3.46 1.41-1.75 2.85-3.46zM56.29 109c.9-1.23 1.82-2.45 2.74-3.65-.92 1.17-1.84 2.39-2.74 3.65zm6.11-8q-1.4 1.74-2.76 3.51Q61 102.76 62.4 101zm7.12-8.5c-1 1.16-2 2.33-3 3.51.98-1.16 1.99-2.33 3-3.49zm23-23q1.74-1.53 3.51-3-1.77 1.5-3.51 3.03zm-.45 372.55a248.94 248.94 0 0 1-22.15-22.15 248.94 248.94 0 0 0 22.15 22.18zM165 286.54a96.5 96.5 0 0 1 0-61.08L53 113.51a248 248 0 0 0 0 285zm-109.11-177q-1.44 2-2.84 3.93 1.36-1.95 2.8-3.9z\", \"M347 225.46l112-111.95A249.4 249.4 0 0 0 398.49 53L286.54 165A96.26 96.26 0 0 1 347 225.46zm-182 61.08l-112 112a249.4 249.4 0 0 0 60.5 60.5L225.46 347A96.26 96.26 0 0 1 165 286.54zm-112-173l112 112a96.26 96.26 0 0 1 60.5-60.5L113.51 53A249.4 249.4 0 0 0 53 113.51zM286.54 347l112 112a249.4 249.4 0 0 0 60.5-60.5L347 286.54A96.26 96.26 0 0 1 286.54 347z\"]]\n};\nvar faLightCeiling = {\n prefix: 'fad',\n iconName: 'light-ceiling',\n icon: [512, 512, [], \"e016\", [\"M224.24,162.07V0h64.07V162.05a258.93,258.93,0,0,0-32-2.22A257.16,257.16,0,0,0,224.24,162.07Zm32,349.93a64,64,0,0,0,64.07-64H192.21A64,64,0,0,0,256.27,512Z\", \"M256.28,159.83c-127.93,0-238,94.42-255.95,219.62A32,32,0,0,0,32,416h0L480,415.83a32,32,0,0,0,31.72-36.39C494.32,254.24,384.52,159.83,256.28,159.83Z\"]]\n};\nvar faLightSwitch = {\n prefix: 'fad',\n iconName: 'light-switch',\n icon: [384, 512, [], \"e017\", [\"M96,272V240H288v32Z\", \"M320,0H64A64,64,0,0,0,0,64V448a64,64,0,0,0,64,64H320a64,64,0,0,0,64-64V64A64,64,0,0,0,320,0ZM192,32a16,16,0,1,1-16,16A16,16,0,0,1,192,32Zm0,448a16,16,0,1,1,16-16A16,16,0,0,1,192,480Zm96-224V368a48,48,0,0,1-48,48H144a48,48,0,0,1-48-48V144a48,48,0,0,1,48-48h96a48,48,0,0,1,48,48Z\"]]\n};\nvar faLightSwitchOff = {\n prefix: 'fad',\n iconName: 'light-switch-off',\n icon: [384, 512, [], \"e018\", [\"M288,256V368a48,48,0,0,1-48,48H144a48,48,0,0,1-48-48V256Z\", \"M320,0H64A64,64,0,0,0,0,64V448a64,64,0,0,0,64,64H320a64,64,0,0,0,64-64V64A64,64,0,0,0,320,0ZM192,32a16,16,0,1,1-16,16A16,16,0,0,1,192,32Zm0,448a16,16,0,1,1,16-16A16,16,0,0,1,192,480Zm96-224V368a48,48,0,0,1-48,48H144a48,48,0,0,1-48-48V144a48,48,0,0,1,48-48h96a48,48,0,0,1,48,48Z\"]]\n};\nvar faLightSwitchOn = {\n prefix: 'fad',\n iconName: 'light-switch-on',\n icon: [384, 512, [], \"e019\", [\"M96,256V144a48,48,0,0,1,48-48h96a48,48,0,0,1,48,48V256Z\", \"M64,512H320a64,64,0,0,0,64-64V64A64,64,0,0,0,320,0H64A64,64,0,0,0,0,64V448A64,64,0,0,0,64,512Zm128-32a16,16,0,1,1,16-16A16,16,0,0,1,192,480Zm0-448a16,16,0,1,1-16,16A16,16,0,0,1,192,32ZM96,256V144a48,48,0,0,1,48-48h96a48,48,0,0,1,48,48V368a48,48,0,0,1-48,48H144a48,48,0,0,1-48-48Z\"]]\n};\nvar faLightbulb = {\n prefix: 'fad',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", [\"M175.45 0C73.44.31 0 83 0 176a175 175 0 0 0 43.56 115.78c16.52 18.85 42.36 58.22 52.21 91.45 0 .26.07.52.11.78h160.24c0-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45A175.9 175.9 0 0 0 175.45 0zm.55 96a80.09 80.09 0 0 0-80 80 16 16 0 0 1-32 0A112.12 112.12 0 0 1 176 64a16 16 0 0 1 0 32z\", \"M96.06 454.35L96 416h160v38.35a32 32 0 0 1-5.41 17.65l-17.09 25.73A32 32 0 0 1 206.86 512h-61.71a32 32 0 0 1-26.64-14.28L101.42 472a32 32 0 0 1-5.36-17.65z\"]]\n};\nvar faLightbulbDollar = {\n prefix: 'fad',\n iconName: 'lightbulb-dollar',\n icon: [352, 512, [], \"f670\", [\"M175.45 0C73.44.31 0 83 0 176a175 175 0 0 0 43.56 115.78c16.52 18.85 42.36 58.22 52.21 91.45 0 .26.07.52.11.78h160.24c0-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45A175.9 175.9 0 0 0 175.45 0zM192 255.88V272a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16.29a57.26 57.26 0 0 1-31.37-11.35 8 8 0 0 1-.57-12.14L139.81 221a8.21 8.21 0 0 1 10.13-.73 24.08 24.08 0 0 0 12.82 3.73h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V80a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16.29a57.18 57.18 0 0 1 31.37 11.35 8 8 0 0 1 .57 12.14L212.18 131a8.21 8.21 0 0 1-10.13.73 24 24 0 0 0-12.82-3.73h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\", \"M96 416v38.35a32 32 0 0 0 5.42 17.65l17.09 25.69A32 32 0 0 0 145.15 512h61.71a32 32 0 0 0 26.64-14.28L250.59 472a32 32 0 0 0 5.41-17.65V416zm52.9-231.42l45 13.5c5.16 1.54 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.11a24.08 24.08 0 0 1-12.82-3.72 8.21 8.21 0 0 0-10.13.73l-11.75 11.21a8 8 0 0 0 .57 12.14A57.26 57.26 0 0 0 160 255.71V272a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-16.12c23.62-.63 42.67-20.54 42.67-45.07 0-20-13-37.81-31.58-43.39l-45-13.5c-5.16-1.54-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11a24 24 0 0 1 12.82 3.72 8.21 8.21 0 0 0 10.13-.73l11.75-11.21a8 8 0 0 0-.57-12.14A57.18 57.18 0 0 0 192 96.29V80a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07-.01 19.97 12.98 37.81 31.57 43.39z\"]]\n};\nvar faLightbulbExclamation = {\n prefix: 'fad',\n iconName: 'lightbulb-exclamation',\n icon: [352, 512, [], \"f671\", [\"M175.45 0C73.44.31 0 83 0 176a175 175 0 0 0 43.56 115.78c16.52 18.85 42.36 58.22 52.21 91.45 0 .26.07.52.11.78h160.24c0-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45A175.9 175.9 0 0 0 175.45 0zm.55 320a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.24-238.41l-12.8 128A16 16 0 0 1 185.52 224h-19a16 16 0 0 1-15.92-14.41l-12.8-128A16 16 0 0 1 153.68 64h44.64a16 16 0 0 1 15.92 17.59z\", \"M176 256a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-25.44-46.41A16 16 0 0 0 166.48 224h19a16 16 0 0 0 15.92-14.41l12.8-128A16 16 0 0 0 198.32 64h-44.64a16 16 0 0 0-15.92 17.59zM96 416v38.35a32 32 0 0 0 5.42 17.65l17.09 25.69A32 32 0 0 0 145.15 512h61.71a32 32 0 0 0 26.64-14.28L250.59 472a32 32 0 0 0 5.41-17.65V416z\"]]\n};\nvar faLightbulbOn = {\n prefix: 'fad',\n iconName: 'lightbulb-on',\n icon: [640, 512, [], \"f672\", [\"M319.45,0C217.44.31,144,83,144,176a175,175,0,0,0,43.56,115.78c16.52,18.85,42.36,58.22,52.21,91.44,0,.28.07.53.11.78H400.12c0-.25.07-.5.11-.78,9.85-33.22,35.69-72.59,52.21-91.44A175,175,0,0,0,496,176C496,78.63,416.91-.31,319.45,0ZM320,96a80.09,80.09,0,0,0-80,80,16,16,0,0,1-32,0A112.12,112.12,0,0,1,320,64a16,16,0,0,1,0,32Z\", \"M240.06,454.34A32,32,0,0,0,245.42,472l17.1,25.69c5.23,7.91,17.17,14.28,26.64,14.28h61.7c9.47,0,21.41-6.37,26.64-14.28L394.59,472A37.47,37.47,0,0,0,400,454.34L400,416H240ZM112,192a24,24,0,0,0-24-24H24a24,24,0,0,0,0,48H88A24,24,0,0,0,112,192Zm504-24H552a24,24,0,0,0,0,48h64a24,24,0,0,0,0-48ZM131.08,55.22l-55.42-32a24,24,0,1,0-24,41.56l55.42,32a24,24,0,1,0,24-41.56Zm457.26,264-55.42-32a24,24,0,1,0-24,41.56l55.42,32a24,24,0,0,0,24-41.56Zm-481.26-32-55.42,32a24,24,0,1,0,24,41.56l55.42-32a24,24,0,0,0-24-41.56ZM520.94,100a23.8,23.8,0,0,0,12-3.22l55.42-32a24,24,0,0,0-24-41.56l-55.42,32a24,24,0,0,0,12,44.78Z\"]]\n};\nvar faLightbulbSlash = {\n prefix: 'fad',\n iconName: 'lightbulb-slash',\n icon: [640, 512, [], \"f673\", [\"M163.75 94.79C192.16 39.71 249 .2 319.45 0a175.9 175.9 0 0 1 133 291.78c-3.86 4.41-8.24 9.94-12.79 16.25l-197-152.29A80.16 80.16 0 0 1 320 96a16 16 0 1 0 0-32 112.16 112.16 0 0 0-104.22 71zm0 161.77a176 176 0 0 0 23.83 35.22c16.52 18.85 42.36 58.23 52.21 91.45 0 .26.07.52.11.78h88.74zM240 416v38.35a32 32 0 0 0 5.41 17.65l17.09 25.69A32 32 0 0 0 289.14 512h61.71a32 32 0 0 0 26.64-14.28L394.58 472a32 32 0 0 0 5.36-17.69V439.1L370 416z\", \"M3.37 31.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45z\"]]\n};\nvar faLightsHoliday = {\n prefix: 'fad',\n iconName: 'lights-holiday',\n icon: [640, 512, [], \"f7b2\", [\"M147 236.07c-14.66-5.5-69.17-20-93.77 45.56-18.61 49.62 13 129.22 26.53 134.28s89.65-34 108.3-83.71c26.17-69.79-34.06-93.46-41.06-96.13zm173 20c-15.67 0-71.8 5.54-71.8 75.59 0 53 57.6 116.41 72 116.41s72-63.3 72-116.41c.01-74.59-64.67-75.59-72.2-75.59zm266.8 25.59c-24.6-65.59-79.11-51.06-93.8-45.59-7 2.64-67.24 26.31-41.06 96.13 18.65 49.73 94.81 88.77 108.3 83.71s45.18-84.63 26.57-134.25z\", \"M632.59 121.75c-38.09 22.4-81.09 40-127 53l20.35 56.14a82.79 82.79 0 0 0-60.2 22.28l-23.15-63.82a701.58 701.58 0 0 1-90.4 9.8v63.37a82.78 82.78 0 0 0-64 0v-63.37a699.63 699.63 0 0 1-90.4-9.8l-23.14 63.82a85.87 85.87 0 0 0-27.47-17.1 84.92 84.92 0 0 0-32.73-5.21l20.35-56.14c-45.89-13-88.89-30.6-127-53-7.9-4.6-10.1-15.1-5.2-22.9l17.5-27.4a16 16 0 0 1 21.8-5.1C118 110.75 216 135.07 320 135.07s202-24.3 278.1-68.7a16 16 0 0 1 21.79 5.1l17.5 27.4c4.9 7.78 2.7 18.28-4.8 22.88z\"]]\n};\nvar faLineColumns = {\n prefix: 'fad',\n iconName: 'line-columns',\n icon: [512, 512, [], \"f870\", [\"M496 288H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 128H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-256H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M208 288H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-384H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faLineHeight = {\n prefix: 'fad',\n iconName: 'line-height',\n icon: [640, 512, [], \"f871\", [\"M626.29 224H269.71c-7.57 0-13.71 7.16-13.71 16v32c0 8.84 6.14 16 13.71 16h356.58c7.57 0 13.71-7.16 13.71-16v-32c0-8.84-6.14-16-13.71-16zm0 160H269.71c-7.57 0-13.71 7.16-13.71 16v32c0 8.84 6.14 16 13.71 16h356.58c7.57 0 13.71-7.16 13.71-16v-32c0-8.84-6.14-16-13.71-16zm0-320H269.71C262.14 64 256 71.16 256 80v32c0 8.84 6.14 16 13.71 16h356.58c7.57 0 13.71-7.16 13.71-16V80c0-8.84-6.14-16-13.71-16z\", \"M176 144c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C-4.64 126 .36 144 16 144h48v224H16c-14.29 0-21.31 17.31-11.29 27.31l80 80a16 16 0 0 0 22.62 0l80-80C196.64 386 191.64 368 176 368h-48V144z\"]]\n};\nvar faLink = {\n prefix: 'fad',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", [\"M44.45 252.59l37.11-37.1c9.84-9.84 26.78-3.3 27.29 10.6a184.45 184.45 0 0 0 9.69 52.72 16.08 16.08 0 0 1-3.78 16.61l-13.09 13.09c-28 28-28.9 73.66-1.15 102a72.07 72.07 0 0 0 102.32.51L270 343.79A72 72 0 0 0 270 242a75.64 75.64 0 0 0-10.34-8.57 16 16 0 0 1-6.95-12.6A39.86 39.86 0 0 1 264.45 191l21.06-21a16.06 16.06 0 0 1 20.58-1.74A152.05 152.05 0 0 1 327 400l-.36.37-67.2 67.2c-59.27 59.27-155.7 59.26-215 0s-59.26-155.72.01-214.98z\", \"M410.33 203.49c28-28 28.9-73.66 1.15-102a72.07 72.07 0 0 0-102.32-.49L242 168.21A72 72 0 0 0 242 270a75.64 75.64 0 0 0 10.34 8.57 16 16 0 0 1 6.94 12.6A39.81 39.81 0 0 1 247.55 321l-21.06 21.05a16.07 16.07 0 0 1-20.58 1.74A152.05 152.05 0 0 1 185 112l.36-.37 67.2-67.2c59.27-59.27 155.7-59.26 215 0s59.27 155.7 0 215l-37.11 37.1c-9.84 9.84-26.78 3.3-27.29-10.6a184.45 184.45 0 0 0-9.69-52.72 16.08 16.08 0 0 1 3.78-16.61z\"]]\n};\nvar faLips = {\n prefix: 'fad',\n iconName: 'lips',\n icon: [640, 512, [], \"f600\", [\"M639.88 224a63 63 0 0 1-4.88 28.05C607 318.51 522.4 480 360.71 480h-81.43C117.59 480 33 318.51 5 252.06A62.88 62.88 0 0 1 .12 224H64s85.34 96 256 96 256-96 256-96z\", \"M.12 224a61.44 61.44 0 0 1 8.74-28.32C60.53 110 173.69 32 222.28 32c0 0 32.57 0 97.72 50 65.15-50 97.72-50 97.72-50 48.59 0 161.75 78 213.42 163.68a61.6 61.6 0 0 1 8.74 28.32H576s-64-32-160-32l-35.38 8.84A252.29 252.29 0 0 1 320 208a252.29 252.29 0 0 1-60.62-7.16L224 192c-96 0-160 32-160 32z\"]]\n};\nvar faLiraSign = {\n prefix: 'fad',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", [\"M0 232.82v41a11.71 11.71 0 0 0 .29 2.63 12 12 0 0 0 14.31 9.11l49.4-11V209L9.4 221.11A12 12 0 0 0 0 232.82zm0-96v41a11.71 11.71 0 0 0 .29 2.63 12 12 0 0 0 14.31 9.11l49.4-11V113L9.4 125.11A12 12 0 0 0 0 136.82zm287.71-61.24a12 12 0 0 0-14.31-9.12L144 95.22v65.56l134.6-29.88a12 12 0 0 0 9.4-11.72v-41a11.91 11.91 0 0 0-.29-2.6zm-14.31 86.88L144 191.22v65.56l134.6-29.89a12 12 0 0 0 9.4-11.71v-41a12 12 0 0 0-14.6-11.72z\", \"M64 468V44a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v372c86.18 0 168-48 168-148.75 0-6.34 5.64-11.25 12-11.25h48a12 12 0 0 1 12 12v.42C378.84 402.17 289.67 480 155.58 480H76a12 12 0 0 1-12-12z\"]]\n};\nvar faList = {\n prefix: 'fad',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", [\"M496 384H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16z\"]]\n};\nvar faListAlt = {\n prefix: 'fad',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", [\"M464 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM128 392a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm0-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm0-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm288 168a12 12 0 0 1-12 12H204a12 12 0 0 1-12-12v-32a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H204a12 12 0 0 1-12-12v-32a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H204a12 12 0 0 1-12-12v-32a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12z\", \"M128 200a40 40 0 1 0-40-40 40 40 0 0 0 40 40zm0 16a40 40 0 1 0 40 40 40 40 0 0 0-40-40zm0 96a40 40 0 1 0 40 40 40 40 0 0 0-40-40z\"]]\n};\nvar faListMusic = {\n prefix: 'fad',\n iconName: 'list-music',\n icon: [512, 512, [], \"f8c9\", [\"M272 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 80v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zM144 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M192 432c0 44.18 50.14 80 112 80s112-35.82 112-80V148.15l73-21.39a32 32 0 0 0 23-30.71V32a32 32 0 0 0-41.06-30.67l-96.53 28.51A32 32 0 0 0 352 60.34V360a148.76 148.76 0 0 0-48-8c-61.86 0-112 35.82-112 80z\"]]\n};\nvar faListOl = {\n prefix: 'fad',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", [\"M496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]]\n};\nvar faListUl = {\n prefix: 'fad',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", [\"M496 384H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48z\"]]\n};\nvar faLocation = {\n prefix: 'fad',\n iconName: 'location',\n icon: [512, 512, [], \"f601\", [\"M344 256a88 88 0 1 1-88-88 88 88 0 0 1 88 88z\", \"M496 224h-50.88A191.86 191.86 0 0 0 288 66.88V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v50.88A191.86 191.86 0 0 0 66.88 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h50.88A191.86 191.86 0 0 0 224 445.12V496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-50.88A191.86 191.86 0 0 0 445.12 288H496a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM256 384a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]]\n};\nvar faLocationArrow = {\n prefix: 'fad',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", [\"M461.91 0a45 45 0 0 0-17.4 3.52L28.73 195.42c-48 22.39-32 92.75 19.19 92.75h175.91v175.91c0 30 24.21 47.94 48.74 47.94 17.3 0 34.76-8.91 44-28.75L508.48 67.49C522.06 34.89 494.14 0 461.91 0zM303.83 320V208.17H192l207.67-95.85z\", \"M399.68 112.32L303.83 320V208.17H192l207.67-95.85\"]]\n};\nvar faLocationCircle = {\n prefix: 'fad',\n iconName: 'location-circle',\n icon: [496, 512, [], \"f602\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM358.24,177.74,262.29,385.63c-11.2,24-46.38,16-46.38-9.59V288H128c-25.59,0-33.58-35.18-9.59-46.38L326.3,145.71c19.15-8,39.94,12.84,31.94,32Z\", \"M118.36,241.7l207.89-95.95c19.2-8,40,12.8,32,32l-96,207.88c-11.2,24-46.38,16-46.38-9.59V288H128c-25.64,0-33.63-35.14-9.64-46.34Z\"]]\n};\nvar faLocationSlash = {\n prefix: 'fad',\n iconName: 'location-slash',\n icon: [640, 512, [], \"f603\", [\"M189.36 115.58A191.34 191.34 0 0 1 288 66.88V16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v50.88A191.86 191.86 0 0 1 509.12 224H560a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-50.88a190.53 190.53 0 0 1-20.3 59l-51.51-39.81A128 128 0 0 0 240.87 155.4zM320 384a127.93 127.93 0 0 1-125.55-103.7L121.61 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h50.88A191.86 191.86 0 0 0 288 445.12V496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-50.88c14.07-2.37 27.35-6.75 40.19-12l-64.57-49.9c-2.57.16-5.01.78-7.62.78zm0-216a87.6 87.6 0 0 0-46 13l130.2 100.63A88 88 0 0 0 320 168z\", \"M3.37 32.45L23 7.18a16 16 0 0 1 22.47-2.81L633.82 459.1a16 16 0 0 1 2.82 22.45L617 506.82a16 16 0 0 1-22.46 2.81L6.18 54.9a16 16 0 0 1-2.81-22.45z\"]]\n};\nvar faLock = {\n prefix: 'fad',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", [\"M152 224H72v-72C72 68.2 140.2 0 224 0s152 68.2 152 152v72h-80v-72a72 72 0 0 0-144 0z\", \"M448 272v192a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V272a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48z\"]]\n};\nvar faLockAlt = {\n prefix: 'fad',\n iconName: 'lock-alt',\n icon: [448, 512, [], \"f30d\", [\"M152 225H72v-72C72 69.2 140.2 1 224 1s152 68.2 152 152v72h-80v-72a72 72 0 0 0-144 0z\", \"M400 225H48a48 48 0 0 0-48 48v192a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V273a48 48 0 0 0-48-48zM264 392a40 40 0 0 1-80 0v-48a40 40 0 0 1 80 0z\"]]\n};\nvar faLockOpen = {\n prefix: 'fad',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", [\"M576 152v80a23.94 23.94 0 0 1-24 24h-32a23.94 23.94 0 0 1-24-24v-80a72.11 72.11 0 0 0-72.7-72c-39.6.4-71.3 33.3-71.3 72.9V224h-80v-70.5C272 69.5 339.5.3 423.5 0S576 68 576 152z\", \"M448 272v192a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V272a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48z\"]]\n};\nvar faLockOpenAlt = {\n prefix: 'fad',\n iconName: 'lock-open-alt',\n icon: [576, 512, [], \"f3c2\", [\"M576 152v80a23.94 23.94 0 0 1-24 24h-32a23.94 23.94 0 0 1-24-24v-80a72.11 72.11 0 0 0-72.7-72c-39.6.4-71.3 33.3-71.3 72.9V224h-80v-70.5C272 69.5 339.5.3 423.5 0S576 68 576 152z\", \"M400 224H48a48 48 0 0 0-48 48v192a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V272a48 48 0 0 0-48-48zM264 392a40 40 0 0 1-80 0v-48a40 40 0 0 1 80 0z\"]]\n};\nvar faLongArrowAltDown = {\n prefix: 'fad',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", [\"M168.11 44v301.94h-80V44a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12z\", \"M231.17 386.94L145.08 473a24 24 0 0 1-33.94 0l-86.06-86.09c-15.12-15.12-4.41-41 17-41h172.09c21.38.03 32.09 25.88 17 41.03z\"]]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fad',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", [\"M436.13 296H134.19v-80h301.94a12 12 0 0 1 12 12v56a12 12 0 0 1-12 12z\", \"M93.19 359.07L7.13 273a24 24 0 0 1 0-33.94L93.22 153c15.12-15.12 41-4.41 41 17v172.09c-.03 21.36-25.88 32.07-41.03 16.98z\"]]\n};\nvar faLongArrowAltRight = {\n prefix: 'fad',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", [\"M12.1 216H314v80H12.1a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12z\", \"M355 153l86.06 86.09a24 24 0 0 1 0 33.94L355 359.05c-15.12 15.12-41 4.41-41-17V170c0-21.42 25.89-32.13 41-17z\"]]\n};\nvar faLongArrowAltUp = {\n prefix: 'fad',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", [\"M88.12 468V166.09h80V468a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12z\", \"M25.06 125.09L111.15 39a24 24 0 0 1 33.94 0l86.06 86.09c15.12 15.12 4.41 41-17 41H42.06c-21.38 0-32.06-25.85-17-41z\"]]\n};\nvar faLongArrowDown = {\n prefix: 'fad',\n iconName: 'long-arrow-down',\n icon: [320, 512, [], \"f175\", [\"M124 351.93V56a24 24 0 0 1 24-24h24a24 24 0 0 1 24 24v295.93l-36 35.67z\", \"M313 337.46L177.48 473l-.06.06a25.23 25.23 0 0 1-34.84 0l-.06-.06L7 337.46a24 24 0 0 1 0-33.94l17-17a24 24 0 0 1 33.94 0L160 387.6l102-101.08a24 24 0 0 1 33.94 0l17 17a24 24 0 0 1 .06 33.94z\"]]\n};\nvar faLongArrowLeft = {\n prefix: 'fad',\n iconName: 'long-arrow-left',\n icon: [448, 512, [], \"f177\", [\"M128.09 220H424a24 24 0 0 1 24 24v24a24 24 0 0 1-24 24H128.09l-35.66-36z\", \"M142.56 409L7 273.5v-.06a25.23 25.23 0 0 1 0-34.84l.06-.06 135.5-135.49a24 24 0 0 1 33.94 0l17 17a24 24 0 0 1 0 33.94L92.43 256 193.5 358a24 24 0 0 1 0 33.94l-17 17a24 24 0 0 1-33.94.06z\"]]\n};\nvar faLongArrowRight = {\n prefix: 'fad',\n iconName: 'long-arrow-right',\n icon: [448, 512, [], \"f178\", [\"M319.91 292H24a24 24 0 0 1-24-24v-24a24 24 0 0 1 24-24h295.91l35.66 36z\", \"M305.44 103.05L441 238.54l.06.06a25.23 25.23 0 0 1 0 34.84l-.06.06L305.44 409a24 24 0 0 1-33.94 0l-17-17a24 24 0 0 1 0-33.94L355.57 256 254.5 154a24 24 0 0 1 0-33.94l17-17a24 24 0 0 1 33.94-.01z\"]]\n};\nvar faLongArrowUp = {\n prefix: 'fad',\n iconName: 'long-arrow-up',\n icon: [320, 512, [], \"f176\", [\"M196 160.11V456a24 24 0 0 1-24 24h-24a24 24 0 0 1-24-24V160.11l36-35.66z\", \"M7 174.58L142.52 39l.06-.06a25.23 25.23 0 0 1 34.84 0l.06.06L313 174.58a24 24 0 0 1 0 33.94l-17 17a24 24 0 0 1-33.94 0L160 124.45 58 225.52a24 24 0 0 1-33.94 0l-17-17A24 24 0 0 1 7 174.58z\"]]\n};\nvar faLoveseat = {\n prefix: 'fad',\n iconName: 'loveseat',\n icon: [512, 512, [], \"f4cc\", [\"M160 288v-64a64.06 64.06 0 0 0-64-64H64a96 96 0 0 1 96-96h192a96 96 0 0 1 96 96h-32a64.06 64.06 0 0 0-64 64v64z\", \"M512 256a63.84 63.84 0 0 1-32 55.1V432a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16v-16H128v16a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V311.1A63.79 63.79 0 0 1 64 192h32a32 32 0 0 1 32 32v96h256v-96a32 32 0 0 1 32-32h32a64.06 64.06 0 0 1 64 64z\"]]\n};\nvar faLowVision = {\n prefix: 'fad',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", [\"M320 192a32 32 0 0 0 60.57 14.41A105 105 0 0 1 372 319L256.19 155.91a105.27 105.27 0 0 1 81.4 7.52A32 32 0 0 0 320 192zm249.34 39.63C513 136 407.81 72 288 72a329.94 329.94 0 0 0-83.75 10.74l33.31 46.92A135.86 135.86 0 0 1 288 120a135.93 135.93 0 0 1 136 136 135.47 135.47 0 0 1-33.38 89.27l43.16 60.79a324.33 324.33 0 0 0 135.56-125.69A47.88 47.88 0 0 0 576 256a47.88 47.88 0 0 0-6.66-24.37zm-398.9-85.94L142.25 106A324.78 324.78 0 0 0 6.68 231.61a48 48 0 0 0 0 48.74 324.92 324.92 0 0 0 172.83 141.4L55.32 244.33a272.12 272.12 0 0 1 28.29-35.91L203 379l40.63 58a329.89 329.89 0 0 0 78.94 1.17l-190-271.4a277.74 277.74 0 0 1 37.87-21.08z\", \"M469.76 498.48l-13.11 9.18a24 24 0 0 1-33.43-5.9L100.34 46.94a24 24 0 0 1 5.9-33.42l13.11-9.18a24 24 0 0 1 33.43 5.9l322.88 454.82a24 24 0 0 1-5.9 33.42z\"]]\n};\nvar faLuchador = {\n prefix: 'fad',\n iconName: 'luchador',\n icon: [448, 512, [], \"f455\", [\"M372 160h-68c-37.9 0-69.3 28.3-77.5 66.2-.9-.7-4.2-.7-5.1 0C213.3 188.3 182 160 144 160H76a12 12 0 0 0-12 12v30.7c0 47.1 35.8 85.3 80 85.3h22.4a177.85 177.85 0 0 0-15.8 32.9A63.87 63.87 0 0 0 96 384c0 35.5 29.4 64 64.9 64H287c35.5 0 64.9-28.5 64.9-64a63.87 63.87 0 0 0-54.6-63.1 174.87 174.87 0 0 0-15.8-32.9H304c44.2 0 80-38.2 80-85.3V172a12 12 0 0 0-12-12zM224 266.7c20.2 19.9 31.9 38.5 38.7 53.3h-77.4c6.8-14.8 18.5-33.4 38.7-53.3zM144 256c-26.5 0-48-23.9-48-53.3V192h48c26.5 0 48 23.9 48 53.3v7.47a3.19 3.19 0 0 1-.85 2.17 3.21 3.21 0 0 1-2.36 1zm144 96a32 32 0 0 1 0 64H160a32 32 0 0 1 0-64zm64-149.3c0 29.4-21.5 53.3-48 53.3h-44.77a3.21 3.21 0 0 1-2.36-1 3.19 3.19 0 0 1-.85-2.17v-7.53c0-29.4 21.5-53.3 48-53.3h48z\", \"M224 0C100.3 0 0 100.3 0 224v128a160 160 0 0 0 160 160h128a160 160 0 0 0 160-160V224C448 100.3 347.7 0 224 0zm160 202.7c0 47.1-35.8 85.3-80 85.3h-22.5a174.87 174.87 0 0 1 15.8 32.9 63.87 63.87 0 0 1 54.6 63.1c0 35.5-29.4 64-64.9 64H160.9c-35.5 0-64.9-28.5-64.9-64a63.87 63.87 0 0 1 54.6-63.1 177.85 177.85 0 0 1 15.8-32.9H144c-44.2 0-80-38.2-80-85.3V172a12 12 0 0 1 12-12h68c38 0 69.3 28.3 77.4 66.2.9-.7 4.2-.7 5.1 0 8.2-37.9 39.6-66.2 77.5-66.2h68a12 12 0 0 1 12 12z\"]]\n};\nvar faLuggageCart = {\n prefix: 'fad',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", [\"M480 48a48 48 0 0 0-48-48h-96a48 48 0 0 0-48 48v272h192zm-48 48h-96V48h96zm-240 32v160a32 32 0 0 0 32 32h32V96h-32a32 32 0 0 0-32 32zm352-32h-32v224h32a32 32 0 0 0 32-32V128a32 32 0 0 0-32-32zm-93.26 352a48 48 0 1 0 90.52 0zm-288 0a48 48 0 1 0 90.52 0z\", \"M624 384H128V16a16 16 0 0 0-16-16H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h48v368a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM288 96h-32v224h32zm224 0h-32v224h32z\"]]\n};\nvar faLungs = {\n prefix: 'fad',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", [\"M170.16 373.57L256 316.34v87.49c0 41.15-29.08 77.32-71.26 88.62l-59.5 15.95C62.48 525.22 0 481 0 419.78a114.68 114.68 0 0 1 3.89-29.63 821.31 821.31 0 0 1 102-231C128 124.56 142 96 186 96c38.64 0 70 29.42 70 65.71v60.11l-128 85.33a16 16 0 0 0-4.44 22.19l8.88 13.31a16 16 0 0 0 17.77 6.5 8 8 0 0 0 0 8.89l8.88 13.31a8 8 0 0 0 11.07 2.22zm466 16.58a821.31 821.31 0 0 0-102-231C512 124.56 498 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l128 85.33a16 16 0 0 1 4.44 22.19l-8.88 13.31a16 16 0 0 1-17.78 6.49 8 8 0 0 1 0 8.89l-8.88 13.31a8 8 0 0 1-11.08 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481 640 419.78a114.68 114.68 0 0 0-3.89-29.63z\", \"M516.45 329.34l-8.88 13.31a16 16 0 0 1-22.19 4.44L320 236.84 154.63 347.09a16 16 0 0 1-22.19-4.44l-8.88-13.31a16 16 0 0 1 4.44-22.19L288.88 199.9a16 16 0 0 0 7.12-13.31V16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v170.59a16 16 0 0 0 7.12 13.31L512 307.15a16 16 0 0 1 4.45 22.19z\"]]\n};\nvar faLungsVirus = {\n prefix: 'fad',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", [\"M328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0V16A16,16,0,0,0,328,0ZM186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,47.9,47.9,0,0,1-41.71-81.18l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.63,96,186,96ZM636.13,390.13a819.8,819.8,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.57,113.57,0,0,0,636.13,390.13Z\", \"M448,304H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,1,0,22.63-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32Zm-160,0a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Z\"]]\n};\nvar faMace = {\n prefix: 'fad',\n iconName: 'mace',\n icon: [512, 512, [], \"f6f8\", [\"M215.92 341.35l-166 166a16 16 0 0 1-22.63 0l-22.6-22.66a16 16 0 0 1 0-22.63l166-166a161.12 161.12 0 0 0 45.23 45.29z\", \"M501 195l-75-23.8a127.4 127.4 0 0 0-87.67-85.95L313.05 10.8C308.13-3.7 295.59-3.57 291 11l-23.8 75a127.43 127.43 0 0 0-86 87.67L106.8 199c-14.5 4.92-14.37 17.46.22 22.08l75 23.77a127.43 127.43 0 0 0 87.67 86l25.26 74.44c4.92 14.5 17.46 14.37 22.08-.22l23.77-75a127.4 127.4 0 0 0 85.95-87.67l74.44-25.26c14.51-5.01 14.38-17.55-.19-22.14zm-197 45a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faMagic = {\n prefix: 'fad',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", [\"M80 0L53.34 53.33 0 80l53.34 26.67L80 160l26.66-53.33L160 80l-53.34-26.67zm192 48l-32-16-16-32-16 32-32 16 32 16 16 32 16-32zm186.66 293.33L432 288l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368zM399 243.07l86.6-86.55 17-17a32 32 0 0 0 0-45.26l-17-17-50.86-50.86-17-17a32 32 0 0 0-45.25 0l-17 17L269 112.94l-39.62 39.6 39.61 39.61 50.91 50.91 39.59 39.58zm-90.5-90.52L395.14 66l50.91 50.91-86.6 86.55z\", \"M359.44 282.64l-220 220a32 32 0 0 1-45.25 0L9.38 417.77a32 32 0 0 1 0-45.25l220-220z\"]]\n};\nvar faMagnet = {\n prefix: 'fad',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", [\"M476.1 20h-104a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9V56a36 36 0 0 0-36-36zm-336.1.1H36a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152.1a11.89 11.89 0 0 0 11.9-12v-80a36 36 0 0 0-36-36z\", \"M512 192.2c-.2 20.2-.6 40.4 0 53.2 0 150.7-134.5 246.7-255.1 246.7S.1 396.1.1 245.5c.6-13 .1-31.9 0-53.3a12 12 0 0 1 12-12.1h152a12 12 0 0 1 12 12v52c0 127.9 160 128.1 160 0v-52a12 12 0 0 1 12-12H500a12 12 0 0 1 12 12.1z\"]]\n};\nvar faMailBulk = {\n prefix: 'fad',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", [\"M288 256H32a32 32 0 0 0-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288a32 32 0 0 0-32-32zM160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480a32 32 0 0 0 32 32h256a32 32 0 0 0 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm288-224v64h64v-64z\", \"M544 160H224a32 32 0 0 0-32 32v32h96a64.09 64.09 0 0 1 63.71 57.82l.29-.22V416h192a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zm-32 128h-64v-64h64zm-64-160V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v192h96v-32a64.07 64.07 0 0 1 64-64z\"]]\n};\nvar faMailbox = {\n prefix: 'fad',\n iconName: 'mailbox',\n icon: [576, 512, [], \"f813\", [\"M432 64H144a144 144 0 0 1 144 144v208a32 32 0 0 1-32 32h288a32 32 0 0 0 32-32V208A144 144 0 0 0 432 64zm80 208a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-48h-56a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h104a16 16 0 0 1 16 16z\", \"M143.93 64C64.2 64 0 129.65 0 209.38V416a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V208A144 144 0 0 0 143.93 64zM224 240a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h128a16 16 0 0 1 16 16zm272-48H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16z\"]]\n};\nvar faMale = {\n prefix: 'fad',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", [\"M32 64a64 64 0 1 1 64 64 64 64 0 0 1-64-64z\", \"M48 144h11.36a87.91 87.91 0 0 0 73.28 0H144a48 48 0 0 1 48 48v136a24 24 0 0 1-24 24h-16v136a24 24 0 0 1-24 24H64a24 24 0 0 1-24-24V352H24a24 24 0 0 1-24-24V192a48 48 0 0 1 48-48z\"]]\n};\nvar faMandolin = {\n prefix: 'fad',\n iconName: 'mandolin',\n icon: [512, 512, [], \"f6f9\", [\"M278.63 278.63l-45.25-45.25 41.19-41.19C90.39 190.67 46 241 30.73 256.28c-46.8 46.79-39.51 150.36 17.54 207.45s160.66 64.34 207.45 17.53c15.28-15.26 65.6-59.64 64.08-243.8zM176 384a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\", \"M509.56 70.48l-40.07 64a32 32 0 0 1-19.11 14L394.28 163 278.63 278.63l-45.25-45.25L349 117.74l14.51-56.12a32 32 0 0 1 14-19.11l64-40.07a16 16 0 0 1 19.81 2.25l46 46a16 16 0 0 1 2.24 19.79z\"]]\n};\nvar faMap = {\n prefix: 'fad',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", [\"M192 32l192 64v384l-192-64z\", \"M0 117.66V464a16 16 0 0 0 21.94 14.86L160 416V32L20.12 88A32 32 0 0 0 0 117.66zm554.06-84.5L416 96v384l139.88-55.95A32 32 0 0 0 576 394.34V48a16 16 0 0 0-21.94-14.84z\"]]\n};\nvar faMapMarked = {\n prefix: 'fad',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", [\"M288 359.67a47.78 47.78 0 0 1-36.51-17C231.83 319.51 210.92 293.09 192 266v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72A47.8 47.8 0 0 1 288 359.67zM20.12 216A32 32 0 0 0 0 245.66V496a16 16 0 0 0 21.94 14.86L160 448V214.92a302.84 302.84 0 0 1-21.25-46.42zm533.94-54.79L416 224v288l139.88-55.95A32 32 0 0 0 576 426.34V176a16 16 0 0 0-21.94-14.84z\", \"M414 126c0 56.26-82.35 158.8-113.9 196a15.77 15.77 0 0 1-24.2 0C244.35 284.8 162 182.26 162 126a126 126 0 0 1 252 0z\"]]\n};\nvar faMapMarkedAlt = {\n prefix: 'fad',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", [\"M554.06 161.16L416 224v288l139.88-55.95A32 32 0 0 0 576 426.34V176a16 16 0 0 0-21.94-14.84zM20.12 216A32 32 0 0 0 0 245.66V496a16 16 0 0 0 21.94 14.86L160 448V214.92a302.84 302.84 0 0 1-21.25-46.42zM288 359.67a47.78 47.78 0 0 1-36.51-17C231.83 319.51 210.92 293.09 192 266v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72A47.8 47.8 0 0 1 288 359.67z\", \"M288 0a126 126 0 0 0-126 126c0 56.26 82.35 158.8 113.9 196a15.77 15.77 0 0 0 24.2 0C331.65 284.8 414 182.26 414 126A126 126 0 0 0 288 0zm0 168a42 42 0 1 1 42-42 42 42 0 0 1-42 42z\"]]\n};\nvar faMapMarker = {\n prefix: 'fad',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", [\"M384 192c0 77.41-27 99-172.27 309.67a24 24 0 0 1-39.46 0C27 291 0 269.41 0 192 0 86 86 0 192 0s192 86 192 192z\", \"\"]]\n};\nvar faMapMarkerAlt = {\n prefix: 'fad',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", [\"M192 0C86 0 0 86 0 192c0 77.41 27 99 172.27 309.67a24 24 0 0 0 39.46 0C357 291 384 269.41 384 192 384 86 298 0 192 0zm0 288a96 96 0 1 1 96-96 96 96 0 0 1-96 96z\", \"M192 256a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]]\n};\nvar faMapMarkerAltSlash = {\n prefix: 'fad',\n iconName: 'map-marker-alt-slash',\n icon: [640, 512, [], \"f605\", [\"M157.4 89.88A191.85 191.85 0 0 1 320 0c106 0 192 86 192 192 0 46.83-9.88 73.25-49.83 133.43l-79.06-61.1a96 96 0 1 0-149-115.17zM300.8 502.4a24 24 0 0 0 38.4 0c18.6-26.69 35.23-50.32 50.14-71.47L131.47 231.62c10.71 52.55 50.15 99.78 169.33 270.78zM320 128a64 64 0 0 0-59.84 41.3L357 244.18A64 64 0 0 0 320 128z\", \"M3.37 31.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45z\"]]\n};\nvar faMapMarkerCheck = {\n prefix: 'fad',\n iconName: 'map-marker-check',\n icon: [384, 512, [], \"f606\", [\"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4a24 24 0 0 0 38.4 0C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm114.08 163.83l-131 130a11 11 0 0 1-15.55-.06l-75.76-76.34a11 11 0 0 1 .06-15.56l26-25.82a11 11 0 0 1 15.56.06l42.15 42.49 97.2-96.42a11 11 0 0 1 15.55.06l25.82 26a11 11 0 0 1-.03 15.59z\", \"M306.08 163.83l-131 130a11 11 0 0 1-15.55-.06l-75.76-76.34a11 11 0 0 1 .06-15.56l26-25.82a11 11 0 0 1 15.56.06l42.15 42.49 97.2-96.42a11 11 0 0 1 15.55.06l25.82 26a11 11 0 0 1-.03 15.59z\"]]\n};\nvar faMapMarkerEdit = {\n prefix: 'fad',\n iconName: 'map-marker-edit',\n icon: [384, 512, [], \"f607\", [\"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4a24 24 0 0 0 38.4 0C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm-43.17 283.15L106 288a9 9 0 0 1-10-9.95l4.8-42.83 85.54-85.54 48 48zm133.91-133.9l-28.26 28.26-48-48 28.26-28.26a18 18 0 0 1 25.41 0l22.57 22.57a18 18 0 0 1 .02 25.43z\", \"M282.74 123.84l-22.57-22.57a18 18 0 0 0-25.41 0l-28.26 28.26 48 48 28.26-28.26a18 18 0 0 0-.02-25.43zM100.85 235.17L96.05 278a9 9 0 0 0 9.95 10l42.83-4.8 85.54-85.54-48-48z\"]]\n};\nvar faMapMarkerExclamation = {\n prefix: 'fad',\n iconName: 'map-marker-exclamation',\n icon: [384, 512, [], \"f608\", [\"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4a24 24 0 0 0 38.4 0C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm0 336a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.24-238.41l-12.8 128A16 16 0 0 1 201.52 240h-19a16 16 0 0 1-15.92-14.41l-12.8-128A16 16 0 0 1 169.68 80h44.64a16 16 0 0 1 15.92 17.59z\", \"M192 272a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm22.32-192h-44.64a16 16 0 0 0-15.92 17.59l12.8 128A16 16 0 0 0 182.48 240h19a16 16 0 0 0 15.92-14.41l12.8-128A16 16 0 0 0 214.32 80z\"]]\n};\nvar faMapMarkerMinus = {\n prefix: 'fad',\n iconName: 'map-marker-minus',\n icon: [384, 512, [], \"f609\", [\"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4a24 24 0 0 0 38.4 0C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm112 200a16 16 0 0 1-16 16H96a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\", \"M304 184v16a16 16 0 0 1-16 16H96a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]]\n};\nvar faMapMarkerPlus = {\n prefix: 'fad',\n iconName: 'map-marker-plus',\n icon: [384, 512, [], \"f60a\", [\"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4a24 24 0 0 0 38.4 0C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm112 200a16 16 0 0 1-16 16h-72v72a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-72H96a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h72V96a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v72h72a16 16 0 0 1 16 16z\", \"M304 200a16 16 0 0 1-16 16h-72v72a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-72H96a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h72V96a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v72h72a16 16 0 0 1 16 16z\"]]\n};\nvar faMapMarkerQuestion = {\n prefix: 'fad',\n iconName: 'map-marker-question',\n icon: [384, 512, [], \"f60b\", [\"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4a24 24 0 0 0 38.4 0C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm0 352a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm26.67-113.27v1.43A15.84 15.84 0 0 1 202.83 256h-16.32a15.84 15.84 0 0 1-15.84-15.84V224A24.09 24.09 0 0 1 184 202.5c30.61-15.31 50.67-26.54 50.67-42.5 0-19.39-14-40-40-40a40.06 40.06 0 0 0-38.2 28.12C154.32 155 148.36 160 141.14 160H124.3a15.92 15.92 0 0 1-15.44-19.55A88.14 88.14 0 0 1 194.67 72c55.08 0 88 44.75 88 88 0 41-32.75 62.47-64 78.73z\", \"M192 288a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm2.67-216a88.14 88.14 0 0 0-85.81 68.45A15.92 15.92 0 0 0 124.3 160h16.84c7.22 0 13.18-5 15.33-11.88a40.06 40.06 0 0 1 38.2-28.12c26 0 40 20.61 40 40 0 16-20.06 27.19-50.67 42.5a24.09 24.09 0 0 0-13.33 21.5v16.16A15.84 15.84 0 0 0 186.51 256h16.32a15.84 15.84 0 0 0 15.84-15.84v-1.43c31.25-16.26 64-37.78 64-78.73 0-43.25-32.92-88-88-88z\"]]\n};\nvar faMapMarkerSlash = {\n prefix: 'fad',\n iconName: 'map-marker-slash',\n icon: [640, 512, [], \"f60c\", [\"M157.4 89.88A191.85 191.85 0 0 1 320 0c106 0 192 86 192 192 0 46.83-9.88 73.25-49.83 133.43zM300.8 502.4a24 24 0 0 0 38.4 0c18.6-26.69 35.23-50.32 50.14-71.47L131.47 231.62c10.71 52.55 50.15 99.78 169.33 270.78z\", \"M3.37 31.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45z\"]]\n};\nvar faMapMarkerSmile = {\n prefix: 'fad',\n iconName: 'map-marker-smile',\n icon: [384, 512, [], \"f60d\", [\"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4a24 24 0 0 0 38.4 0C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm64 117.16A26.84 26.84 0 1 1 229.16 144 26.84 26.84 0 0 1 256 117.16zm-128 0A26.84 26.84 0 1 1 101.16 144 26.84 26.84 0 0 1 128 117.16zm164.17 141a132.31 132.31 0 0 1-200.33 0 16 16 0 0 1 24.32-20.78 100.31 100.31 0 0 0 151.67 0 16 16 0 1 1 24.34 20.79z\", \"M256 170.84A26.84 26.84 0 1 0 229.16 144 26.84 26.84 0 0 0 256 170.84zm-128 0A26.84 26.84 0 1 0 101.16 144 26.84 26.84 0 0 0 128 170.84zm162.39 64.72a16 16 0 0 0-22.56 1.78 100.31 100.31 0 0 1-151.67 0 16 16 0 0 0-24.32 20.78 132.31 132.31 0 0 0 200.33 0 16 16 0 0 0-1.78-22.56z\"]]\n};\nvar faMapMarkerTimes = {\n prefix: 'fad',\n iconName: 'map-marker-times',\n icon: [384, 512, [], \"f60e\", [\"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4a24 24 0 0 0 38.4 0C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm84.85 242.91a16 16 0 0 1 0 22.63l-11.31 11.31a16 16 0 0 1-22.63 0L192 225.94l-50.91 50.91a16 16 0 0 1-22.63 0l-11.31-11.31a16 16 0 0 1 0-22.63L158.06 192l-50.91-50.91a16 16 0 0 1 0-22.63l11.31-11.31a16 16 0 0 1 22.63 0L192 158.06l50.91-50.91a16 16 0 0 1 22.63 0l11.31 11.31a16 16 0 0 1 0 22.63L225.94 192z\", \"M276.85 242.91a16 16 0 0 1 0 22.63l-11.31 11.31a16 16 0 0 1-22.63 0L192 225.94l-50.91 50.91a16 16 0 0 1-22.63 0l-11.31-11.31a16 16 0 0 1 0-22.63L158.06 192l-50.91-50.91a16 16 0 0 1 0-22.63l11.31-11.31a16 16 0 0 1 22.63 0L192 158.06l50.91-50.91a16 16 0 0 1 22.63 0l11.31 11.31a16 16 0 0 1 0 22.63L225.94 192z\"]]\n};\nvar faMapPin = {\n prefix: 'fad',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", [\"M144 320a175.77 175.77 0 0 0 32-3.06v156.69l-22 33a12 12 0 0 1-20 0l-22-33V316.94a175.77 175.77 0 0 0 32 3.06z\", \"M144 0a144 144 0 1 0 144 144A144 144 0 0 0 144 0zm0 76a68.07 68.07 0 0 0-68 68 12 12 0 0 1-24 0 92.11 92.11 0 0 1 92-92 12 12 0 0 1 0 24z\"]]\n};\nvar faMapSigns = {\n prefix: 'fad',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", [\"M224 496a16 16 0 0 0 16 16h32a15.88 15.88 0 0 0 5.71-1.07l.52-.19.1-.05a16.08 16.08 0 0 0 5-3.38A15.91 15.91 0 0 0 288 496V384h-64zM272 0h-32a16 16 0 0 0-16 16v16h64V16a16 16 0 0 0-16-16zm-48 224h64v-32h-64z\", \"M456 224H70.63A32 32 0 0 0 48 233.37L4.69 276.69a16 16 0 0 0 0 22.63L48 342.63A32 32 0 0 0 70.63 352H456a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zm51.31-139.31L464 41.37A32 32 0 0 0 441.37 32H56a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h385.37a32 32 0 0 0 22.63-9.37l43.31-43.31a16 16 0 0 0 0-22.63z\"]]\n};\nvar faMarker = {\n prefix: 'fad',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", [\"M169.36 214.63l128 128L222 418.05a327 327 0 0 1-195.34 93.8A24 24 0 0 1 .15 485.34v-.23A327 327 0 0 1 94 290z\", \"M485.5 154.53L320 320 192 192l98.48-98.47-19.6-19.59-87.15 87.15a16 16 0 0 1-22.63 0l-22.62-22.62a16 16 0 0 1 0-22.63L242.6 11.72a40 40 0 0 1 56.56 0l36.56 36.55 21.76-21.76a90.52 90.52 0 0 1 128 128z\"]]\n};\nvar faMars = {\n prefix: 'fad',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", [\"M143.9 384a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\", \"M371.9 64h-79a12 12 0 0 0-8.5 20.5l16.9 16.9-80.7 80.7a143.94 143.94 0 1 0 45.2 45.2l80.7-80.7 16.9 16.9a12 12 0 0 0 20.5-8.5V76a12 12 0 0 0-12-12zm-228 320a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]]\n};\nvar faMarsDouble = {\n prefix: 'fad',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", [\"M380.7 246l48.7-48.7-16.9-16.9a12 12 0 0 1 8.5-20.5h79a12.06 12.06 0 0 1 12 12.1v79a12 12 0 0 1-12.1 12 11.73 11.73 0 0 1-8.4-3.5l-16.9-16.9-48.7 48.7a144 144 0 1 1-265.1 91.8 174.49 174.49 0 0 0 63.3-18.4c-.1 1-.1 2.1-.1 3.2a80 80 0 1 0 80-80c-1 0-2.1.1-3.2.1a176.47 176.47 0 0 0 18.4-63.3 144.29 144.29 0 0 1 61.5 21.3z\", \"M340 0h-79a12 12 0 0 0-8.5 20.5l16.9 16.9-48.7 48.7a143.94 143.94 0 1 0 45.2 45.2l48.7-48.7 16.9 16.9A12 12 0 0 0 352 91V12a12 12 0 0 0-12-12zM144 288a80 80 0 1 1 80-80 80.11 80.11 0 0 1-80 80z\"]]\n};\nvar faMarsStroke = {\n prefix: 'fad',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", [\"M144 384a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\", \"M372 64h-79a12 12 0 0 0-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1a12 12 0 0 0-17 0L224.5 133a12 12 0 0 0 0 17l14.1 14.1-18 18a143.3 143.3 0 0 0-76.7-22.1C64.5 160 0 224.5 0 304a144 144 0 1 0 265.9-76.7l18-18 14.1 14.1a12 12 0 0 0 17 0l28.3-28.3a12 12 0 0 0 0-17L329.2 164l17.5-17.5 16.9 16.9a12 12 0 0 0 20.5-8.5V76A12.19 12.19 0 0 0 372 64zM144 384a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]]\n};\nvar faMarsStrokeH = {\n prefix: 'fad',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", [\"M200.54 312.58a80.06 80.06 0 1 1 0-113.2 80.09 80.09 0 0 1 0 113.2z\", \"M476.41 247.44l-56-55.93A12 12 0 0 0 399.9 200v24h-23.74v-20a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v20h-27.69a144 144 0 1 0 0 64h27.63v20a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-20h23.93v23.91a12 12 0 0 0 20.52 8.51l55.95-55.93a12.12 12.12 0 0 0-.09-17.05zm-275.87 65.14a80.06 80.06 0 1 1 0-113.2 80.09 80.09 0 0 1 0 113.2z\"]]\n};\nvar faMarsStrokeV = {\n prefix: 'fad',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", [\"M200.58 408.27a80.12 80.12 0 1 1-.05-113.5l.05.05a80.45 80.45 0 0 1 0 113.45z\", \"M284.38 319.45a144.66 144.66 0 0 0-38.56-70.08A143 143 0 0 0 176 210.63v-25.45h20a12 12 0 0 0 12-12V133a12 12 0 0 0-12-12h-20V96.09h24a12 12 0 0 0 8.5-20.57l-55.89-56a12 12 0 0 0-17 0l-56 56.09A12 12 0 0 0 88.1 96.2h24V121h-20a12 12 0 0 0-12 12v40.13a12 12 0 0 0 12 12h20v25.45C34.52 228.34-14 305.76 3.62 383.56S98.42 510.07 176 492.37s126-95.13 108.38-172.92zm-83.8 88.82a80.12 80.12 0 1 1-.05-113.5l.05.05a80.45 80.45 0 0 1 0 113.45z\"]]\n};\nvar faMask = {\n prefix: 'fad',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", [\"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-23 47-23 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448 669 448 769.76 64 320.67 64zm-56.59 203.31c-12.32 15.4-39 41.05-80.08 41.05s-67.76-25.66-80.08-41.05a18.28 18.28 0 0 1 0-22.63c12.32-15.4 39-41.05 80.08-41.05s67.76 25.66 80.08 41.05a18.28 18.28 0 0 1 0 22.63zm272 0c-12.32 15.4-39 41.05-80.08 41.05s-67.76-25.66-80.08-41.05a18.28 18.28 0 0 1 0-22.63c12.32-15.4 39-41.05 80.08-41.05s67.76 25.66 80.08 41.05a18.28 18.28 0 0 1 0 22.63z\", \"M184 203.63c-41.08 0-67.76 25.65-80.08 41.05a18.28 18.28 0 0 0 0 22.63c12.32 15.39 39 41.05 80.08 41.05s67.76-25.65 80.08-41.05a18.28 18.28 0 0 0 0-22.63c-12.32-15.39-39-41.05-80.08-41.05zm352.08 41.05c-12.32-15.39-39-41.05-80.08-41.05s-67.76 25.65-80.08 41.05a18.28 18.28 0 0 0 0 22.63c12.32 15.39 39 41.05 80.08 41.05s67.76-25.65 80.08-41.05a18.28 18.28 0 0 0 0-22.63z\"]]\n};\nvar faMeat = {\n prefix: 'fad',\n iconName: 'meat',\n icon: [512, 512, [], \"f814\", [\"M376.27 136.1c-14.72-14.71-34.57-18.64-44.42-8.87s-5.85 29.67 8.88 44.37 34.61 18.68 44.42 8.87 5.85-29.66-8.88-44.37zM128 312v-2.11l-8.51 8.5c-9.71 9.69-24 11.07-36.79 6a60.33 60.33 0 0 0-65 98.72c15.3 15.28 36.51 19.59 56.13 15.1-4.49 19.6-.18 40.83 15.11 56.1a60.36 60.36 0 0 0 98.83-65c-5.1-12.73-3.72-27 6-36.75l8.57-8.56H200a72 72 0 0 1-72-72z\", \"M444 68.52C399.41 24.05 345.07 0 299.13 0c-23.64 0-44.77 6.79-61.47 20a41.75 41.75 0 0 0-7.3 5.82C191.64 64.5 128.1 139.6 128.1 209.42v100.37l-.1.1V312a72 72 0 0 0 72 72h102.84c69.89 0 145.07-63.46 183.8-102.15a40.45 40.45 0 0 0 6.66-9c37.42-49.43 17.37-137.66-49.3-204.33zm8.73 179.39c-9.76 9.75-24.3 11.8-34.79 11.8-34.72 0-77.19-20.87-110.82-54.47-27.19-27.16-46.31-60.32-52.45-91-4.74-23.7-1.19-43.56 9.74-54.48C274.09 50.05 288.65 48 299.14 48c34.72 0 77.18 20.87 110.82 54.46 53.88 53.84 67 121.19 42.7 145.45z\"]]\n};\nvar faMedal = {\n prefix: 'fad',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", [\"M127.18 0H16A16 16 0 0 0 2.92 25.18l111.27 159a207 207 0 0 1 109.56-53.39L154.62 15.54A32 32 0 0 0 127.18 0zM496 0H384.82a32 32 0 0 0-27.44 15.54l-69.13 115.21a207 207 0 0 1 109.56 53.38L509.08 25.18A16 16 0 0 0 496 0z\", \"M256 160a176 176 0 1 0 176 176 176 176 0 0 0-176-176zm92.52 157.26l-37.93 37 9 52.22a11.48 11.48 0 0 1-16.65 12.09L256 393.88l-46.9 24.65a11.48 11.48 0 0 1-16.65-12.09l9-52.22-37.93-37a11.49 11.49 0 0 1 6.35-19.59l52.4-7.63 23.43-47.52a11.5 11.5 0 0 1 20.61 0L289.74 290l52.43 7.64a11.49 11.49 0 0 1 6.35 19.62z\"]]\n};\nvar faMedkit = {\n prefix: 'fad',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", [\"M384 128v352h64V128zM64 480h64V128H64z\", \"M336 32H176a48 48 0 0 0-48 48v400h256V80a48 48 0 0 0-48-48zM192 96h128v32H192zm160 224a16 16 0 0 1-16 16h-48v48a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-48h-48a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h48v-48a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v48h48a16 16 0 0 1 16 16zM0 176v256a48 48 0 0 0 48 48h16V128H48a48 48 0 0 0-48 48zm464-48h-16v352h16a48 48 0 0 0 48-48V176a48 48 0 0 0-48-48z\"]]\n};\nvar faMegaphone = {\n prefix: 'fad',\n iconName: 'megaphone',\n icon: [576, 512, [], \"f675\", [\"M480 64L64 192v128l101.72 31.3a96 96 0 1 0 183.33 56.41L480 448zM256 432a48 48 0 0 1-44.27-66.54L303 393.55A48.07 48.07 0 0 1 256 432z\", \"M560 32h-32a16 16 0 0 0-16 16v416a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM32 160a32 32 0 0 0-32 32v128a32 32 0 0 0 64 0V192a32 32 0 0 0-32-32z\"]]\n};\nvar faMeh = {\n prefix: 'fad',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM168,176a32,32,0,1,1-32,32A32,32,0,0,1,168,176ZM344,368H152c-21.2,0-21.2-32,0-32H344C365.2,336,365.2,368,344,368ZM328,240a32,32,0,1,1,32-32A32,32,0,0,1,328,240Z\", \"M328,176a32,32,0,1,0,32,32A32,32,0,0,0,328,176Zm-160,0a32,32,0,1,0,32,32A32,32,0,0,0,168,176Z\"]]\n};\nvar faMehBlank = {\n prefix: 'fad',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM168,240a32,32,0,1,1,32-32A32,32,0,0,1,168,240Zm160,0a32,32,0,1,1,32-32A32,32,0,0,1,328,240Z\", \"M168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Zm160,0a32,32,0,1,0,32,32A32,32,0,0,0,328,176Z\"]]\n};\nvar faMehRollingEyes = {\n prefix: 'fad',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM88,224a64,64,0,1,1,64,64A64,64,0,0,1,88,224ZM312,400H184c-21.2,0-21.2-32,0-32H312C333.2,368,333.2,400,312,400Zm32-112a64,64,0,1,1,64-64A64,64,0,0,1,344,288Z\", \"M375,168a64,64,0,0,0-62,0,32,32,0,1,0,62,0Zm-223-8a63.66,63.66,0,0,0-31,8,32,32,0,1,0,62,0A63.66,63.66,0,0,0,152,160Z\"]]\n};\nvar faMemory = {\n prefix: 'fad',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", [\"M640 130.94V96a32 32 0 0 0-32-32H32A32 32 0 0 0 0 96v34.94A47.86 47.86 0 0 1 32 176a47.86 47.86 0 0 1-32 45.06V320h640v-98.94a47.73 47.73 0 0 1 0-90.12zM224 256h-64V128h64zm128 0h-64V128h64zm128 0h-64V128h64z\", \"M224 128h-64v128h64zm128 0h-64v128h64zm128 0h-64v128h64zM0 352v96h64v-26.67a16 16 0 0 1 32 0V448h128v-26.67a16 16 0 1 1 32 0V448h128v-26.67a16 16 0 1 1 32 0V448h128v-26.67a16 16 0 1 1 32 0V448h64v-96z\"]]\n};\nvar faMenorah = {\n prefix: 'fad',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", [\"M480 64a32 32 0 0 0 64 0c0-17.67-32-64-32-64s-32 46.33-32 64zm-96 0a32 32 0 0 0 64 0c0-17.67-32-64-32-64s-32 46.33-32 64zM0 64a32 32 0 0 0 64 0C64 46.33 32 0 32 0S0 46.33 0 64zm288 0a32 32 0 0 0 64 0c0-17.67-32-64-32-64s-32 46.33-32 64zm-96 0a32 32 0 0 0 64 0c0-17.67-32-64-32-64s-32 46.33-32 64zm-96 0a32 32 0 0 0 64 0c0-17.67-32-64-32-64S96 46.33 96 64zM608 0s-32 46.33-32 64a32 32 0 0 0 64 0c0-17.67-32-64-32-64z\", \"M160 144a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v144h64zm288 0a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v144h64zm-192 0a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v144h64zm288 0a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v144h64zm80-16h-32a16 16 0 0 0-16 16v144a32 32 0 0 1-32 32H352V144a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v176H96a32 32 0 0 1-32-32V144a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v144a96 96 0 0 0 96 96h192v64H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-64h192a96 96 0 0 0 96-96V144a16 16 0 0 0-16-16z\"]]\n};\nvar faMercury = {\n prefix: 'fad',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", [\"M143 288a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\", \"M287 208a143.64 143.64 0 0 0-51.2-110.1c2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8A11.89 11.89 0 0 0 275.83.08a12.79 12.79 0 0 0-1.52-.08h-40.5A12 12 0 0 0 222 9.8c-2.4 12.5-9.6 24.3-20.69 33.8C186 56.8 165.32 64 143 64s-43-7.2-58.4-20.4C73.5 34.1 66.4 22.3 63.9 9.8A12 12 0 0 0 52.23 0h-40.5a11.88 11.88 0 0 0-12 11.76 13.08 13.08 0 0 0 .09 1.54C3.23 43.4 18.23 71 43 92.2c2.3 2 4.7 3.9 7.2 5.8A143.9 143.9 0 0 0 111 348.4V400H75a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h36v36a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-36h36a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-36v-51.6A144 144 0 0 0 287 208zm-144 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]]\n};\nvar faMeteor = {\n prefix: 'fad',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", [\"M491.12794.70921c-38.6972,11.5936-111.77976,34.29644-187.67439,61.2961-2.09343-6.99991-3.99939-13.49983-5.5929-18.59351a16.058,16.058,0,0,0-22.90274-9.49988c-42.39976,22.09347-152.77349,82.59271-214.37343,142.4982-1.09359,1-2.49962,2-3.49947,3A194.83045,194.83045,0,1,0,332.6522,454.90662c.99985-1,1.9997-2.40622,2.99954-3.49995,59.78772-61.6086,120.3722-172.10721,142.47819-214.40356a16.06158,16.06158,0,0,0-9.49854-22.906c-5.20233-1.59373-11.6076-3.5-18.60653-5.59368,26.99587-75.999,49.69552-148.99813,61.30311-187.70077A16.18325,16.18325,0,0,0,491.12794.70921ZM191.97061,448.00046A127.99839,127.99839,0,1,1,319.951,320.00207,127.97573,127.97573,0,0,1,191.97061,448.00046Z\", \"M191.97061,192.00368A127.99839,127.99839,0,1,0,319.951,320.00207,127.97573,127.97573,0,0,0,191.97061,192.00368Zm-31.9951,127.99839a31.9996,31.9996,0,1,1,31.9951-31.9996A31.959,31.959,0,0,1,159.97551,320.00207Zm47.99265,63.9992a15.9998,15.9998,0,1,1,15.99755-15.9998A16.04976,16.04976,0,0,1,207.96816,384.00127Z\"]]\n};\nvar faMicrochip = {\n prefix: 'fad',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", [\"M24 190v6H6a6 6 0 0 0-6 6v12a6 6 0 0 0 6 6h18v6a6 6 0 0 0 6 6h42v-48H30a6 6 0 0 0-6 6zm0-96v6H6a6 6 0 0 0-6 6v12a6 6 0 0 0 6 6h18v6a6 6 0 0 0 6 6h42V88H30a6 6 0 0 0-6 6zm482 6h-18v-6a6 6 0 0 0-6-6h-42v48h42a6 6 0 0 0 6-6v-6h18a6 6 0 0 0 6-6v-12a6 6 0 0 0-6-6zm0 192h-18v-6a6 6 0 0 0-6-6h-42v48h42a6 6 0 0 0 6-6v-6h18a6 6 0 0 0 6-6v-12a6 6 0 0 0-6-6zm0-96h-18v-6a6 6 0 0 0-6-6h-42v48h42a6 6 0 0 0 6-6v-6h18a6 6 0 0 0 6-6v-12a6 6 0 0 0-6-6zm0 192h-18v-6a6 6 0 0 0-6-6h-42v48h42a6 6 0 0 0 6-6v-6h18a6 6 0 0 0 6-6v-12a6 6 0 0 0-6-6zm-482-6v6H6a6 6 0 0 0-6 6v12a6 6 0 0 0 6 6h18v6a6 6 0 0 0 6 6h42v-48H30a6 6 0 0 0-6 6zm0-96v6H6a6 6 0 0 0-6 6v12a6 6 0 0 0 6 6h18v6a6 6 0 0 0 6 6h42v-48H30a6 6 0 0 0-6 6z\", \"M144 512a48 48 0 0 1-48-48V48a48 48 0 0 1 48-48h224a48 48 0 0 1 48 48v416a48 48 0 0 1-48 48z\"]]\n};\nvar faMicrophone = {\n prefix: 'fad',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", [\"M80 256V96a96 96 0 0 1 192 0v160a96 96 0 0 1-192 0z\", \"M352 256c0 88.9-66.29 162.47-152 174.23V464h56a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16H96a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h56v-34.15C64 417.71 0 337.8 0 248.16V208a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v42.3c0 66.81 48.71 126.59 115.21 133.08A128.15 128.15 0 0 0 304 256v-48a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16z\"]]\n};\nvar faMicrophoneAlt = {\n prefix: 'fad',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", [\"M80 256V96a96 96 0 0 1 192 0h-85.33c-5.89 0-10.67 3.58-10.67 8v16c0 4.42 4.78 8 10.67 8H272v32h-85.33c-5.89 0-10.67 3.58-10.67 8v16c0 4.42 4.78 8 10.67 8H272v32h-85.33c-5.89 0-10.67 3.58-10.67 8v16c0 4.42 4.78 8 10.67 8H272a96 96 0 0 1-192 0z\", \"M186.67 128H272V96h-85.33c-5.89 0-10.67 3.58-10.67 8v16c0 4.42 4.78 8 10.67 8zm0 64H272v-32h-85.33c-5.89 0-10.67 3.58-10.67 8v16c0 4.42 4.78 8 10.67 8zM336 192h-16a16 16 0 0 0-16 16v48a128.15 128.15 0 0 1-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v40.16c0 89.64 64 169.55 152 181.69V464H96a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48a16 16 0 0 0-16-16zm-149.33 64H272v-32h-85.33c-5.89 0-10.67 3.58-10.67 8v16c0 4.42 4.78 8 10.67 8z\"]]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fad',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", [\"M437.52 306.66A127.18 127.18 0 0 0 448 256v-48a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v48a174.64 174.64 0 0 1-19.69 80.76zm-26.38-20.46A95.78 95.78 0 0 0 416 256h-43.79zM400 464h-56v-33.78a175.69 175.69 0 0 0 34-8.08l-50.4-39c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85l-52-40.22v6.85c0 89.64 64 169.55 152 181.69V464H240a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-69-240h85v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416a96 96 0 0 0-192 0v45z\", \"M3.37 31.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45z\"]]\n};\nvar faMicrophoneSlash = {\n prefix: 'fad',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", [\"M436.61 306.45A127.25 127.25 0 0 0 447 256v-48a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v48a174.58 174.58 0 0 1-19.54 80.47zM399 464h-56v-33.78a175.69 175.69 0 0 0 34-8.08l-50.4-39c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85l-52-40.22v6.85c0 89.64 64 169.55 152 181.69V464H239a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm11.2-178a95.94 95.94 0 0 0 4.8-30V96a96 96 0 0 0-192 0v45.35z\", \"M2.37 31.45L22 6.18a16 16 0 0 1 22.47-2.81L632.82 458.1a16 16 0 0 1 2.82 22.45L616 505.82a16 16 0 0 1-22.46 2.81L5.18 53.9a16 16 0 0 1-2.81-22.45z\"]]\n};\nvar faMicrophoneStand = {\n prefix: 'fad',\n iconName: 'microphone-stand',\n icon: [512, 512, [], \"f8cb\", [\"M6.73 423.18a26.67 26.67 0 0 0 1.08 36.57l44.44 44.44a26.67 26.67 0 0 0 36.57 1.07L344 280 232 168zM314.34 35.72l-22.62 22.62 161.94 161.94 22.62-22.63z\", \"M289.54 60.53c-23.84 23.84-34.56 55.55-33 86.77L364.7 255.44c31.21 1.58 62.93-9.14 86.77-33l2.19-2.18L291.72 58.34zm188.92-27a114.49 114.49 0 0 0-161.93 0l-2.19 2.18 161.94 161.94 2.18-2.18a114.49 114.49 0 0 0 0-161.93zM224 512h64V329.44l-64 56.49z\"]]\n};\nvar faMicroscope = {\n prefix: 'fad',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", [\"M104 384h208a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H104a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8z\", \"M464 448h-1.29A191 191 0 0 0 512 320c0-105.88-86.12-192-192-192v64a128 128 0 0 1 0 256H48a48 48 0 0 0-48 48 16 16 0 0 0 16 16h480a16 16 0 0 0 16-16 48 48 0 0 0-48-48zM160 320h12v16a16 16 0 0 0 16 16h40a16 16 0 0 0 16-16v-16h12a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32V16a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v16a32 32 0 0 0-32 32v224a32 32 0 0 0 32 32z\"]]\n};\nvar faMicrowave = {\n prefix: 'fad',\n iconName: 'microwave',\n icon: [512, 512, [], \"e01b\", [\"M384,352H64V128H384Z\", \"M464,64H48A48,48,0,0,0,0,112V368a48,48,0,0,0,48,48l24,32h48l24-32H368l24,32h48l24-32a48,48,0,0,0,48-48V112A48,48,0,0,0,464,64ZM384,352H64V128H384Zm64-72a24,24,0,1,1,24-24A24,24,0,0,1,448,280Zm0-96a24,24,0,1,1,24-24A24,24,0,0,1,448,184Z\"]]\n};\nvar faMindShare = {\n prefix: 'fad',\n iconName: 'mind-share',\n icon: [640, 512, [], \"f677\", [\"M467.14 118.15A59.61 59.61 0 0 0 408.47 45c-.71 0-1.36.18-2.07.21A60.14 60.14 0 0 0 288 60v324c12.64-57.14 64-102.33 122.42-110.89a124.7 124.7 0 0 1 18.64-1.11H480v-15.2a48.87 48.87 0 0 1 29-44.8c2.81-7.74 4.84-15.83 4.84-24.54a75 75 0 0 0-46.7-69.31zM256 60a60.14 60.14 0 0 0-118.4-14.79c-.7 0-1.36-.21-2.07-.21a60.12 60.12 0 0 0-60.23 60 59.46 59.46 0 0 0 1.56 13.16 75 75 0 0 0-46.74 69.34A74 74 0 0 0 38 220.23c-22.59 13-38 37-38 64.77a75 75 0 0 0 46.52 69.27A67.36 67.36 0 0 0 113 435a67 67 0 0 0 11.32-1.14A67.62 67.62 0 0 0 256 412.5z\", \"M635 364.21l-96 95.19c-10.12 10-27 2.6-27-12.21V400h-64c-65.85 0-69.27 68.95-60.28 95.52 3.77 11.13-8 20.9-17.82 14.38-35-23.3-56.08-67-48.29-113.67 7.84-46.92 46.39-84.56 93.45-91.46a113.79 113.79 0 0 1 17-.77H512v-47.19c0-14.82 16.88-22.23 27-12.21l96 95.19a17.38 17.38 0 0 1 0 24.42z\"]]\n};\nvar faMinus = {\n prefix: 'fad',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", [\"M448 240v32a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32v-32a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32z\", \"\"]]\n};\nvar faMinusCircle = {\n prefix: 'fad',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276a12 12 0 0 1-12 12H124a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h264a12 12 0 0 1 12 12z\", \"M400 284a12 12 0 0 1-12 12H124a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h264a12 12 0 0 1 12 12z\"]]\n};\nvar faMinusHexagon = {\n prefix: 'fad',\n iconName: 'minus-hexagon',\n icon: [576, 512, [], \"f307\", [\"M553.48 231.8l-112-192A48.11 48.11 0 0 0 400 16H176a48.11 48.11 0 0 0-41.5 23.8l-112 192a48.19 48.19 0 0 0 0 48.4l112 192A48.11 48.11 0 0 0 176 496h224a48.11 48.11 0 0 0 41.5-23.8l112-192a48.12 48.12 0 0 0 0-48.4zM432 284a12 12 0 0 1-12 12H156a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h264a12 12 0 0 1 12 12z\", \"M432 228v56a12 12 0 0 1-12 12H156a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h264a12 12 0 0 1 12 12z\"]]\n};\nvar faMinusOctagon = {\n prefix: 'fad',\n iconName: 'minus-octagon',\n icon: [512, 512, [], \"f308\", [\"M497.9 150.5L361.4 14.1A48 48 0 0 0 327.5 0H184.4a48 48 0 0 0-33.9 14.1L14.1 150.6A48 48 0 0 0 0 184.5v143.1a48 48 0 0 0 14.1 33.9l136.5 136.4a48 48 0 0 0 33.9 14.1h143.1a48 48 0 0 0 33.9-14.1l136.4-136.5a48 48 0 0 0 14.1-33.9V184.4a48 48 0 0 0-14.1-33.9zM400 284a12 12 0 0 1-12 12H124a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h264a12 12 0 0 1 12 12z\", \"M400 228v56a12 12 0 0 1-12 12H124a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h264a12 12 0 0 1 12 12z\"]]\n};\nvar faMinusSquare = {\n prefix: 'fad',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-32 252a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h264a12 12 0 0 1 12 12z\", \"M368 228v56a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h264a12 12 0 0 1 12 12z\"]]\n};\nvar faMistletoe = {\n prefix: 'fad',\n iconName: 'mistletoe',\n icon: [576, 512, [], \"f7b4\", [\"M554 394.1c-33.3 33.3-92.7 27.9-132.7-12.1-26-26-38.6-89.6-44.2-130.9l-65.2-65.2v96.3c28.4 32.7 72 89.2 72 127.3 0 56.6-43 102.4-96 102.4s-96-45.8-96-102.4c0-8.6 2.5-18.2 6.2-28.1a69.54 69.54 0 0 0 17.8 2.5 71.75 71.75 0 0 0 48-125.3v-72.8l-65.1 65.3c-.83 6.11-1.81 12.71-3 19.6a42.62 42.62 0 0 0-16 65.58c-6.46 18.72-14.75 35.26-25.2 45.72-40 40-99.4 45.4-132.7 12.1s-28-92.7 12-132.7c26-26 89.6-38.6 130.9-44.2l99.13-99.1V16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v16.3a74.59 74.59 0 0 0-13.3 42.4 73.84 73.84 0 0 0 13.3 42.4l99.2 100.1c41.3 5.6 104.9 18.2 130.9 44.2 39.97 40 45.4 99.4 11.97 132.7z\", \"M373.23 32a42.65 42.65 0 1 0 42.7 42.6 42.68 42.68 0 0 0-42.7-42.6zm-160 235a42.65 42.65 0 1 0 42.7 42.6 42.68 42.68 0 0 0-42.7-42.6z\"]]\n};\nvar faMitten = {\n prefix: 'fad',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", [\"M368 416a16 16 0 0 1 16 16v64a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16v-64a16 16 0 0 1 16-16z\", \"M433.12 297l-72.5 87h-309L3.72 176.42a144 144 0 0 1 107.9-172.7c77.4-17.9 154.8 30.5 172.8 108L314 240.12l20.9-25a63.94 63.94 0 1 1 98.2 81.9z\"]]\n};\nvar faMobile = {\n prefix: 'fad',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", [\"M0 384v80a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48v-80zm160 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M0 384V48A48 48 0 0 1 48 0h224a48 48 0 0 1 48 48v336z\"]]\n};\nvar faMobileAlt = {\n prefix: 'fad',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", [\"M272 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM160 480a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm112-108a12 12 0 0 1-12 12H60a12 12 0 0 1-12-12V60a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12z\", \"M272 372a12 12 0 0 1-12 12H60a12 12 0 0 1-12-12V60a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12z\"]]\n};\nvar faMobileAndroid = {\n prefix: 'fad',\n iconName: 'mobile-android',\n icon: [320, 512, [], \"f3ce\", [\"M0 384v80a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48v-80zm208 68a12 12 0 0 1-12 12h-72a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h72a12 12 0 0 1 12 12z\", \"M0 384V48A48 48 0 0 1 48 0h224a48 48 0 0 1 48 48v336z\"]]\n};\nvar faMobileAndroidAlt = {\n prefix: 'fad',\n iconName: 'mobile-android-alt',\n icon: [320, 512, [], \"f3cf\", [\"M272 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-64 452a12 12 0 0 1-12 12h-72a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h72a12 12 0 0 1 12 12zm64-80a12 12 0 0 1-12 12H60a12 12 0 0 1-12-12V60a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12z\", \"M272 372a12 12 0 0 1-12 12H60a12 12 0 0 1-12-12V60a12 12 0 0 1 12-12h200a12 12 0 0 1 12 12z\"]]\n};\nvar faMoneyBill = {\n prefix: 'fad',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", [\"M101.22 112A112.5 112.5 0 0 1 48 165.22v181.56A112.5 112.5 0 0 1 101.22 400h437.56A112.5 112.5 0 0 1 592 346.78V165.22A112.5 112.5 0 0 1 538.78 112zM320 352c-44.19 0-80-43-80-96s35.82-96 80-96 80 43 80 96-35.83 96-80 96z\", \"M616 64H24A24 24 0 0 0 0 88v336a24 24 0 0 0 24 24h592a24 24 0 0 0 24-24V88a24 24 0 0 0-24-24zm-24 282.78A112.5 112.5 0 0 0 538.78 400H101.22A112.5 112.5 0 0 0 48 346.78V165.22A112.5 112.5 0 0 0 101.22 112h437.56A112.5 112.5 0 0 0 592 165.22z\"]]\n};\nvar faMoneyBillAlt = {\n prefix: 'fad',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", [\"M101.22 112A112.5 112.5 0 0 1 48 165.22v181.56A112.5 112.5 0 0 1 101.22 400h437.56A112.5 112.5 0 0 1 592 346.78V165.22A112.5 112.5 0 0 1 538.78 112zM320 368c-53 0-96-50.16-96-112s43-112 96-112 96 50.14 96 112-43 112-96 112z\", \"M616 64H24A24 24 0 0 0 0 88v336a24 24 0 0 0 24 24h592a24 24 0 0 0 24-24V88a24 24 0 0 0-24-24zm-24 282.78A112.5 112.5 0 0 0 538.78 400H101.22A112.5 112.5 0 0 0 48 346.78V165.22A112.5 112.5 0 0 0 101.22 112h437.56A112.5 112.5 0 0 0 592 165.22zM352 288h-16v-88a8 8 0 0 0-8-8h-13.58a24 24 0 0 0-13.31 4l-15.33 10.22a8 8 0 0 0-2.22 11.08l8.88 13.31a8 8 0 0 0 11.08 2.22l.47-.31V288H288a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faMoneyBillWave = {\n prefix: 'fad',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", [\"M545.58 371.77a112.42 112.42 0 0 1 46.43-41V133.21a112.4 112.4 0 0 1-52.16-51.09 283.47 283.47 0 0 0-35.1-2.12c-55.6 0-112.61 14.43-173 29.7-63.39 16-128.95 32.64-196.51 32.64a385.14 385.14 0 0 1-40.83-2.12 112.42 112.42 0 0 1-46.42 41v197.57a112.42 112.42 0 0 1 52.15 51.09 283.47 283.47 0 0 0 35.1 2.12c55.6 0 112.62-14.43 173-29.71 63.4-16.05 129-32.64 196.53-32.64a385 385 0 0 1 40.81 2.12zM320 352c-44.19 0-80-43-80-96s35.82-96 80-96 80 43 80 96-35.83 96-80 96z\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.19 0-246.34 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72A34.19 34.19 0 0 0 32.25 79C15 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72a34.19 34.19 0 0 0 10.35 1.63C625 433 640 419.67 640 401.18V83.93c0-12.64-7.23-24.6-18.84-29.47zM308.23 402.29C247.87 417.57 190.85 432 135.25 432a283.47 283.47 0 0 1-35.1-2.12A112.42 112.42 0 0 0 48 378.79V181.21a112.42 112.42 0 0 0 46.42-41 385.14 385.14 0 0 0 40.83 2.12c67.56 0 133.12-16.59 196.51-32.64C392.11 94.43 449.12 80 504.72 80a283.47 283.47 0 0 1 35.1 2.12A112.4 112.4 0 0 0 592 133.21v197.58a112.42 112.42 0 0 0-46.43 41 385 385 0 0 0-40.82-2.12c-67.56-.02-133.12 16.57-196.52 32.62z\"]]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fad',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", [\"M320 352c-44.19 0-80-43-80-96s35.82-96 80-96 80 43 80 96-35.83 96-80 96z\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.19 0-246.34 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72A34 34 0 0 0 32.25 79C15 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72a34.34 34.34 0 0 0 10.35 1.63C625 433 640 419.67 640 401.18V83.93c0-12.64-7.23-24.6-18.84-29.47zM320 352c-44.19 0-80-43-80-96s35.82-96 80-96 80 43 80 96-35.83 96-80 96z\"]]\n};\nvar faMoneyCheck = {\n prefix: 'fad',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", [\"M0 448a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V128H0zm448-208a16 16 0 0 1 16-16h96a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-96a16 16 0 0 1-16-16zm0 120a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H456a8 8 0 0 1-8-8zM64 264a8 8 0 0 1 8-8h304a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8zm0 96a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8z\", \"M568 352H456a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-192-96H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h304a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-128 96H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM624 32H16A16 16 0 0 0 0 48v48h640V48a16 16 0 0 0-16-16z\"]]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fad',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", [\"M608 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zM176 327.88V344a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16.29a57.26 57.26 0 0 1-31.37-11.35 8 8 0 0 1-.57-12.14L123.81 293a8.21 8.21 0 0 1 10.13-.73 24.08 24.08 0 0 0 12.82 3.73h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16.29a57.18 57.18 0 0 1 31.37 11.35 8 8 0 0 1 .57 12.14L196.18 203a8.21 8.21 0 0 1-10.13.73 24 24 0 0 0-12.82-3.73h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312a8 8 0 0 1-8 8H296a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8zm160 0a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8H296a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h272a8 8 0 0 1 8 8z\", \"M144 168.12V152a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16.29a57.18 57.18 0 0 1 31.37 11.35 8 8 0 0 1 .57 12.14L196.18 203a8.21 8.21 0 0 1-10.13.73 24 24 0 0 0-12.82-3.73h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19 44.44-42.67 45.07V344a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16.29a57.26 57.26 0 0 1-31.37-11.35 8 8 0 0 1-.57-12.14L123.81 293a8.21 8.21 0 0 1 10.13-.73 24.08 24.08 0 0 0 12.82 3.73h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.68-45.07z\"]]\n};\nvar faMoneyCheckEdit = {\n prefix: 'fad',\n iconName: 'money-check-edit',\n icon: [640, 512, [], \"f872\", [\"M640 192v288a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32V192a32 32 0 0 1 32-32h171.06L331 288H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h259l64 64H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h456a16 16 0 0 0 16-16v-74.46a64 64 0 0 0-18.74-45.26L437 160h171a32 32 0 0 1 32 32z\", \"M534.64 302.91L303.18 71.47l-71.7 71.7 231.39 231.45a32 32 0 0 0 22.64 9.38H528a16 16 0 0 0 16-16v-42.46a32 32 0 0 0-9.36-22.63zM238.78 7a24.1 24.1 0 0 0-33.9 0L167 44.87a24 24 0 0 0 0 33.8l41.9 41.9 71.7-71.8z\"]]\n};\nvar faMoneyCheckEditAlt = {\n prefix: 'fad',\n iconName: 'money-check-edit-alt',\n icon: [640, 512, [], \"f873\", [\"M608 160H437l120.27 120.25A64 64 0 0 1 576 325.51V400a16 16 0 0 1-16 16H264a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h163l-64-64h-99a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h67L203 160H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM144 415.85V432a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16.32a57.32 57.32 0 0 1-31.37-11.35 8 8 0 0 1-.57-12.14L91.81 381a8.19 8.19 0 0 1 10.13-.73 24.06 24.06 0 0 0 12.82 3.73h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.45-31.58-43.42 0-24.52 19.05-44.44 42.67-45.07V240a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16.29a57.17 57.17 0 0 1 31.37 11.35 8 8 0 0 1 1.4 11.22 7.26 7.26 0 0 1-.83.92L164.18 291a8.22 8.22 0 0 1-10.13.73 24 24 0 0 0-12.82-3.73h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.5-19.05 44.41-42.67 45.04z\", \"M238.78 7a24.1 24.1 0 0 0-33.9 0L167 44.84a24 24 0 0 0 0 33.8l41.9 41.9 71.7-71.8zm295.86 295.88L303.18 71.44l-71.7 71.7 231.4 231.46a32 32 0 0 0 22.62 9.4H528a16 16 0 0 0 16-16v-42.49a32 32 0 0 0-9.36-22.63zm-379.55 24.51l-45-13.5c-5.16-1.54-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11a24 24 0 0 1 12.82 3.73 8.22 8.22 0 0 0 10.13-.73l11.75-11.22a7.26 7.26 0 0 0 .83-.92 8 8 0 0 0-1.4-11.22A57.17 57.17 0 0 0 144 256.26V240a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 20 13 37.81 31.58 43.39l45 13.5c5.16 1.54 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.12a24.06 24.06 0 0 1-12.82-3.73 8.19 8.19 0 0 0-10.13.73l-11.75 11.19a8 8 0 0 0 .57 12.14A57.32 57.32 0 0 0 112 415.68V432a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-16.15c23.62-.63 42.67-20.54 42.67-45.07 0-19.97-12.99-37.78-31.58-43.39z\"]]\n};\nvar faMonitorHeartRate = {\n prefix: 'fad',\n iconName: 'monitor-heart-rate',\n icon: [576, 512, [], \"f611\", [\"M512 64v384H64V288h118.11l27.58 55.16a16 16 0 0 0 28.62 0L288 243.78 310.11 288H400a16 16 0 0 0 0-32h-70.11l-27.58-55.16a16 16 0 0 0-28.62 0L224 300.22l-19.9-39.8A8 8 0 0 0 197 256H64V64z\", \"M528 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 448H64V64h448z\"]]\n};\nvar faMonkey = {\n prefix: 'fad',\n iconName: 'monkey',\n icon: [640, 512, [], \"f6fb\", [\"M549.47 267.22A127 127 0 0 1 480 288c-56.67 0-104.29-37.26-121.08-88.38C262.91 224.9 192 312.05 192 416v32a32 32 0 0 1-32-32V176a80 80 0 0 0-160 0v48a32 32 0 0 0 64 0v-48a16 16 0 0 1 32 0v240a96.1 96.1 0 0 0 96 96h240a16 16 0 0 0 16-16v-16a32 32 0 0 0-32-32h-64l155.68-103.79 34.68 104 1.64 10.13V496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-37.61a96 96 0 0 0-4.94-30.39zM592 64h-21.88C556.9 26.8 521.74 0 480 0s-76.9 26.8-90.12 64H368a48 48 0 0 0 0 96h16a96 96 0 0 0 192 0h16a48 48 0 0 0 0-96zm-32 48a48 48 0 0 1-32 45.26V176a48 48 0 0 1-48 48 48 48 0 0 1-48-48v-18.74A48 48 0 0 1 400 112a48 48 0 0 1 48-48h64a48 48 0 0 1 48 48z\", \"M512 64h-64a48 48 0 0 0-48 48 48 48 0 0 0 32 45.26V176a48 48 0 0 0 48 48 48 48 0 0 0 48-48v-18.74A48 48 0 0 0 560 112a48 48 0 0 0-48-48zm-72 56a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm80 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faMonument = {\n prefix: 'fad',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", [\"M384 464v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h352a16 16 0 0 1 16 16z\", \"M289.14 100.74a32 32 0 0 0-9.21-19.44L203.31 4.69a16 16 0 0 0-22.63 0l-76.6 76.61a32 32 0 0 0-9.21 19.44L64 416h256zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8z\"]]\n};\nvar faMoon = {\n prefix: 'fad',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", [\"\", \"M32,256C32,114.51,144.29,0,282.64,0a246.91,246.91,0,0,1,45.8,4.28c10.77,2,13.16,16.72,3.67,22.23-61.52,35.76-99.37,102.17-99.37,174.39,0,125.38,111.67,220.61,233.28,197,10.69-2.08,18.24,10.64,11.32,19.35C430.56,476.08,360,512,282.64,512,144.11,512,32,397.31,32,256Z\"]]\n};\nvar faMoonCloud = {\n prefix: 'fad',\n iconName: 'moon-cloud',\n icon: [576, 512, [], \"f754\", [\"M574.1 377a191.7 191.7 0 0 1-271.7 26.7c29.5-16.4 49.7-47.5 49.7-83.6a96 96 0 0 0-106.7-95.4 109.19 109.19 0 0 0-6.9-12.6C258.4 127.2 334.3 64 425.1 64a196.43 196.43 0 0 1 35 3.2c8.2 1.6 10.1 12.6 2.8 16.7a150.3 150.3 0 0 0-76.1 130.8c0 94 85.4 165.4 178.5 147.7 8.2-1.6 14 8 8.8 14.6z\", \"M320 320a64.06 64.06 0 0 1-64 64H64a64 64 0 0 1 0-128c.6 0 1.1.2 1.6.2a79.75 79.75 0 0 1 157.7 9A63.72 63.72 0 0 1 320 320z\"]]\n};\nvar faMoonStars = {\n prefix: 'fad',\n iconName: 'moon-stars',\n icon: [512, 512, [], \"f755\", [\"M320 32L304 0l-16 32-32 16 32 16 16 32 16-32 32-16zm138.7 149.3L432 128l-26.7 53.3L352 208l53.3 26.7L432 288l26.7-53.3L512 208z\", \"M332.2 426.4c8.1-1.6 13.9 8 8.6 14.5a191.18 191.18 0 0 1-149 71.1C85.8 512 0 426 0 320c0-120 108.7-210.6 227-188.8 8.2 1.6 10.1 12.6 2.8 16.7a150.3 150.3 0 0 0-76.1 130.8c0 94 85.4 165.4 178.5 147.7z\"]]\n};\nvar faMortarPestle = {\n prefix: 'fad',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", [\"M501.54 60.91L402.46 160H251.09L454.9 7.14a35.68 35.68 0 0 1 46.64 53.77z\", \"M16 192h480a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-16c0 81-50.2 150.11-121.13 178.32A128.08 128.08 0 0 1 383.82 493a16.43 16.43 0 0 1-16.07 19h-223.5a16.43 16.43 0 0 1-16.07-19 128.29 128.29 0 0 1 24.95-58.69C82.2 406.11 32 337 32 256H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16z\"]]\n};\nvar faMosque = {\n prefix: 'fad',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", [\"M64 0S0 32 0 96v32h128V96c0-64-64-96-64-96zm456.08 106.19c-41.94-26.47-80.63-57.77-112-96.22L400 0l-8.12 10c-31.33 38.45-70 69.76-112 96.22-46.13 29.11-87.92 70-87.92 122.9 0 21.57 11 41.52 28.84 58.91h358.36C597 270.61 608 250.66 608 229.09c0-52.86-41.79-93.79-87.92-122.9z\", \"M0 480a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32V160H0zm608-160H192a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32h32v-64a32 32 0 0 1 64 0v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64a32 32 0 0 1 64 0v64h32a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32z\"]]\n};\nvar faMotorcycle = {\n prefix: 'fad',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", [\"M252 352a127.94 127.94 0 1 1-87.42-154.7l-24 43.69A80 80 0 1 0 201.3 352zm260-160a127.81 127.81 0 0 0-41.46 6.87l25.61 42.71a80.22 80.22 0 1 1-42 23.26l-25.26-42.17A128 128 0 1 0 512 192z\", \"M175.83 176.8c-9.1-13.9-23.3-24.8-47.8-24.8H72a24 24 0 0 1-24-23.5C47.73 115 59 104 72.53 104H128c55 0 82.2 16.9 99.9 40h153.7l-19.2-32H296a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h80a24.16 24.16 0 0 1 20.6 11.6l22.8 38 37.5-41.7a24 24 0 0 1 17.8-7.9H520a23.94 23.94 0 0 1 24 24v32a23.94 23.94 0 0 1-24 24h-82.4l107.1 178.6a16.07 16.07 0 0 1-5.5 22l-13.7 8.2a16.07 16.07 0 0 1-22-5.5l-87.1-145.4a151.48 151.48 0 0 0-56.2 125 24 24 0 0 1-24 25.1H120a24 24 0 0 1-21-35.6z\"]]\n};\nvar faMountain = {\n prefix: 'fad',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", [\"M256 242.75l-66.66-66.67L293.08 14.7a32 32 0 0 1 53.84 0L460.9 192H306.75l-9.37 9.37z\", \"M636.09 495.33A32 32 0 0 1 608 512H32a32 32 0 0 1-26.92-49.3l166.55-259.07L256 288l64-64h161.47l153.45 238.7a32 32 0 0 1 1.17 32.63z\"]]\n};\nvar faMountains = {\n prefix: 'fad',\n iconName: 'mountains',\n icon: [640, 512, [], \"f6fd\", [\"M611.14 448h-69.72L357.48 159.68l32.84-50.37c11.57-17.75 39.8-17.75 51.37 0l194 297.6c11.77 18-2.05 41.09-24.55 41.09z\", \"M338.33 189.07L503.5 448H30.92C6.81 448-8 422.81 4.58 403.18l207.9-324.66c12.4-19.36 42.64-19.36 55 0z\"]]\n};\nvar faMouse = {\n prefix: 'fad',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", [\"M176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0zM0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0z\", \"M384 192v32H0v-32h176V0h32v192z\"]]\n};\nvar faMouseAlt = {\n prefix: 'fad',\n iconName: 'mouse-alt',\n icon: [384, 512, [], \"f8cd\", [\"M224 0h-64A160 160 0 0 0 0 160v192a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V160A160 160 0 0 0 224 0zm0 160a32 32 0 0 1-64 0v-32a32 32 0 0 1 64 0z\", \"M224 160a32 32 0 0 1-64 0v-32a32 32 0 0 1 64 0z\"]]\n};\nvar faMousePointer = {\n prefix: 'fad',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", [\"M302.19 329.13H196.1l55.84 136a18.58 18.58 0 0 1-9.45 24l-49.16 21.42c-9.17 4-19.45-.57-23.34-9.71l-53.05-129.15-86.66 89.14C18.73 472.71 0 463.55 0 448V18.3C0 1.9 19.92-6.1 30.28 5.44L314.69 298c11.47 11.16 3.01 31.13-12.5 31.13z\", \"\"]]\n};\nvar faMp3Player = {\n prefix: 'fad',\n iconName: 'mp3-player',\n icon: [384, 512, [], \"f8ce\", [\"M336 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM192 448a96 96 0 1 1 96-96 96 96 0 0 1-96 96zm128-256H64V64h256z\", \"M64 64v128h256V64zm128 192a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faMug = {\n prefix: 'fad',\n iconName: 'mug',\n icon: [576, 512, [], \"f874\", [\"M448 64h-32v288-32h32a128 128 0 0 0 0-256zm0 192h-32V128h32a64 64 0 0 1 0 128z\", \"M416 352a96 96 0 0 1-96 96H128a96 96 0 0 1-96-96V87.88A23.94 23.94 0 0 1 56 64h360v288z\"]]\n};\nvar faMugHot = {\n prefix: 'fad',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", [\"M139.3 67.3a94.83 94.83 0 0 1-26.4-53.5A16.11 16.11 0 0 0 96.8 0H80.4a16.31 16.31 0 0 0-16.3 18 145.36 145.36 0 0 0 40.6 84.4 81.22 81.22 0 0 1 22.4 44.1 16.23 16.23 0 0 0 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18a130.72 130.72 0 0 0-36.6-74.7zM287.9 142a130.72 130.72 0 0 0-36.6-74.7 94.83 94.83 0 0 1-26.4-53.5A16.11 16.11 0 0 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18a145.36 145.36 0 0 0 40.6 84.4 81.22 81.22 0 0 1 22.4 44.1 16.23 16.23 0 0 0 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18z\", \"M400 192H32a32 32 0 0 0-32 32v192a96 96 0 0 0 96 96h192a96 96 0 0 0 96-96h16a112 112 0 0 0 0-224zm0 160h-16v-96h16a48 48 0 0 1 0 96z\"]]\n};\nvar faMugMarshmallows = {\n prefix: 'fad',\n iconName: 'mug-marshmallows',\n icon: [512, 512, [], \"f7b7\", [\"M200.9 44.79C195 37.5 186.4 32.4 176.3 32.4H64a32 32 0 0 0-32 32v63.89h130.1a63.41 63.41 0 0 1 16.4-61.1zM96 224a32 32 0 0 0 64 0v-64H96zM343.3 89.79L294.8 41.4a32 32 0 0 0-45.26 0L201 89.79c-10.4 10.5-11.5 26.31-4.3 38.61h151c7.2-12.3 6.1-28.11-4.4-38.61z\", \"M400 160H224v.27h-64v63.5a32 32 0 0 1-64 0v-63.5H32a32 32 0 0 0-32 32v191.81A95.94 95.94 0 0 0 96 480h192a95.94 95.94 0 0 0 96-95.88V384h16a112 112 0 0 0 0-224zm0 160h-16v-96h16a48 48 0 0 1 0 96z\"]]\n};\nvar faMugTea = {\n prefix: 'fad',\n iconName: 'mug-tea',\n icon: [640, 512, [], \"f875\", [\"M595.6 416H12.35c-25 0-11.59 64 36 64h511.36c47.69 0 60.89-64 35.89-64zM192 256h64a32 32 0 0 0 32-32v-66.75a32 32 0 0 0-9.38-22.62L240 96V32h-32v64l-38.63 38.63a32 32 0 0 0-9.37 22.62V224a32 32 0 0 0 32 32z\", \"M512 32H240v64l38.62 38.63a32 32 0 0 1 9.38 22.62V224a32 32 0 0 1-32 32h-64a32 32 0 0 1-32-32v-66.75a32 32 0 0 1 9.37-22.62L208 96V32h-87.95a23.94 23.94 0 0 0-24 24v232a96 96 0 0 0 96 96H384a96 96 0 0 0 96-96h32a128 128 0 0 0 0-256zm0 192h-32V96h32a64 64 0 0 1 0 128z\"]]\n};\nvar faMusic = {\n prefix: 'fad',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", [\"M192 214.32V83.72l256-75.6V139.3z\", \"M128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V83.72L150.41 96A32 32 0 0 0 128 126.51zm342.38-125L448 8.12v315.81a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]]\n};\nvar faMusicAlt = {\n prefix: 'fad',\n iconName: 'music-alt',\n icon: [384, 512, [], \"f8cf\", [\"M352 32v64a32 32 0 0 1-23 30.71l-73 21.39V17.56l54.94-16.23A32 32 0 0 1 352 32z\", \"M256 432c0 44.18-50.14 80-112 80S32 476.18 32 432s50.14-80 112-80a148.76 148.76 0 0 1 48 8V60.34a32 32 0 0 1 22.41-30.5L256 17.56z\"]]\n};\nvar faMusicAltSlash = {\n prefix: 'fad',\n iconName: 'music-alt-slash',\n icon: [640, 512, [], \"f8d0\", [\"M272 352c-61.86 0-112 35.82-112 80s50.14 80 112 80 112-35.82 112-80v-5.18l-94.92-73.36A143.68 143.68 0 0 0 272 352zM438.94 1.33L342.4 29.84a32 32 0 0 0-22.4 30.5v155.22L384 265V148.15l73-21.39a32 32 0 0 0 23-30.71V32a32 32 0 0 0-41.06-30.67z\", \"M633.82 458.1L45.47 3.39A16 16 0 0 0 23 6.2L3.37 31.47a16 16 0 0 0 2.81 22.45l588.35 454.71a16 16 0 0 0 22.47-2.81l19.63-25.27a16 16 0 0 0-2.81-22.45z\"]]\n};\nvar faMusicSlash = {\n prefix: 'fad',\n iconName: 'music-slash',\n icon: [640, 512, [], \"f8d1\", [\"M192 387.92a139 139 0 0 0-32-3.92c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V327.88l-64-49.46zM534.38 1.51L214.41 96a31.87 31.87 0 0 0-21 21.73l107.82 83.32L512 139.3v184.62a139 139 0 0 0-32-3.92 136.93 136.93 0 0 0-22.15 2.11l110.91 85.71c4.51-7.37 7.24-15.35 7.24-23.82V32a32 32 0 0 0-41.62-30.49z\", \"M633.82 458.1L45.47 3.39A16 16 0 0 0 23 6.2L3.37 31.47a16 16 0 0 0 2.81 22.45l588.35 454.71a16 16 0 0 0 22.47-2.81l19.63-25.27a16 16 0 0 0-2.81-22.45z\"]]\n};\nvar faNarwhal = {\n prefix: 'fad',\n iconName: 'narwhal',\n icon: [640, 512, [], \"f6fe\", [\"M544 192c-243 0-315.29 224-380.12 224A35.92 35.92 0 0 1 128 380.11v-98l49.75-30.51A32 32 0 0 0 192 225v-81a16 16 0 0 0-24.88-13.31L96 178.11l-71.12-47.42A16 16 0 0 0 0 144v81a32 32 0 0 0 14.25 26.6L64 282.12v98A100 100 0 0 0 163.88 480H576a64 64 0 0 0 64-64V288a96.11 96.11 0 0 0-96-96zM432 360a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M634.6 33.32a10.48 10.48 0 0 0-14.25 4.07L535 192l.37.1c2.85-.1 5.73-.1 8.63-.1a95.55 95.55 0 0 1 56.9 18.73l38.83-165.87a10.49 10.49 0 0 0-5.13-11.54zM432 312a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faNetworkWired = {\n prefix: 'fad',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", [\"M624 232H344v-40h-48v40H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h104v40h48v-40h304v40h48v-40h104a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\", \"M224 192h192a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32zm32-128h128v64H256zm320 256H416a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32h160a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32zm-32 128h-96v-64h96zM224 320H64a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32h160a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32zm-32 128H96v-64h96z\"]]\n};\nvar faNeuter = {\n prefix: 'fad',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", [\"M144 256a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\", \"M284.37 144A144 144 0 1 0 112 316.41V468a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12V316.41A144 144 0 0 0 284.37 144zM144 256a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]]\n};\nvar faNewspaper = {\n prefix: 'fad',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", [\"M544 64H96a32 32 0 0 0-32 32v322.21c0 .36-.05.73-.09 1.09 0 .21 0 .42-.08.63s-.08.66-.13 1-.08.46-.12.68-.1.61-.16.91-.11.46-.16.69-.13.59-.21.87-.13.46-.19.69l-.24.84-.24.68c-.09.28-.18.55-.28.82s-.17.45-.26.67-.21.53-.32.79-.2.45-.3.67-.23.51-.35.76l-.33.65c-.13.25-.25.49-.39.74l-.36.63-.42.72-.39.61c-.15.23-.3.46-.46.69l-.42.6-.48.66c-.15.2-.3.39-.46.58s-.33.43-.51.64l-.48.55-.54.61-.51.53c-.18.2-.37.39-.57.59l-.53.5-.6.56-.55.48-.62.52-.58.46-.65.49-.6.43-.68.46c-.2.14-.41.27-.62.4l-.69.43-.65.37c-.23.13-.47.27-.71.39l-.67.34c-.24.13-.48.25-.73.36l-.69.31-.74.32-.71.28-.77.29-.72.24-.78.25-.75.21-.79.21-.76.17-.81.17-.77.14-.82.12-.79.1-.83.09-.81.06h-1.65H528a48 48 0 0 0 48-48V96a32 32 0 0 0-32-32zM304 372a12 12 0 0 1-12 12H140a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h152a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H140a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h152a12 12 0 0 1 12 12zm208 96a12 12 0 0 1-12 12H348a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h152a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H348a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h152a12 12 0 0 1 12 12zm0-96a12 12 0 0 1-12 12H140a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h360a12 12 0 0 1 12 12z\", \"M292 352H140a12 12 0 0 0-12 12v8a12 12 0 0 0 12 12h152a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12zm0-96H140a12 12 0 0 0-12 12v8a12 12 0 0 0 12 12h152a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12zm208 96H348a12 12 0 0 0-12 12v8a12 12 0 0 0 12 12h152a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12zm0-96H348a12 12 0 0 0-12 12v8a12 12 0 0 0 12 12h152a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12zM0 128v287.33c0 17.44 13.67 32.18 31.1 32.67A32 32 0 0 0 64 416V96H32a32 32 0 0 0-32 32z\"]]\n};\nvar faNotEqual = {\n prefix: 'fad',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", [\"M35.59 466.83a16 16 0 0 0 3 22.42L64 508.75a16 16 0 0 0 22.43-3L168.52 400h-81zM162 304h81l74.51-96h-81zM441 22.78L415.61 3.29a16 16 0 0 0-22.43 3L311.11 112h81L444 45.21a16 16 0 0 0-3-22.43z\", \"M416 304H32a32 32 0 0 0-32 32v32a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32v-32a32 32 0 0 0-32-32zm0-192H32a32 32 0 0 0-32 32v32a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32v-32a32 32 0 0 0-32-32z\"]]\n};\nvar faNotesMedical = {\n prefix: 'fad',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", [\"M335 63h-80a64 64 0 0 1 64 64H63a64 64 0 0 1 64-64H47a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V111a48 48 0 0 0-48-48zm-47 281a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\", \"M255 63a64 64 0 0 0-128 0 64 64 0 0 0-64 64h256a64 64 0 0 0-64-64zm-64 24a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm89 201h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8z\"]]\n};\nvar faObjectGroup = {\n prefix: 'fad',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", [\"M500 96a12 12 0 0 0 12-12V44a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v20H64V44a12 12 0 0 0-12-12H12A12 12 0 0 0 0 44v40a12 12 0 0 0 12 12h20v320H12a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-20h384v20a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-20V96zm-84 276a12 12 0 0 1-12 12H236a12 12 0 0 1-12-12v-84H108a12 12 0 0 1-12-12V140a12 12 0 0 1 12-12h168a12 12 0 0 1 12 12v84h116a12 12 0 0 1 12 12z\", \"M288 140v136a12 12 0 0 1-12 12H108a12 12 0 0 1-12-12V140a12 12 0 0 1 12-12h168a12 12 0 0 1 12 12z\"]]\n};\nvar faObjectUngroup = {\n prefix: 'fad',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", [\"M544 224v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H224v26a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26v-96h32v96h288V224H384v-32h128v-26a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6z\", \"M384 96v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6z\"]]\n};\nvar faOctagon = {\n prefix: 'fad',\n iconName: 'octagon',\n icon: [512, 512, [], \"f306\", [\"M497.9 150.6L361.43 14.1A48 48 0 0 0 327.54 0H184.46a48 48 0 0 0-33.89 14.1L14.1 150.5A48 48 0 0 0 0 184.4v143.1a48 48 0 0 0 14.1 33.9l136.47 136.5a48 48 0 0 0 33.89 14.1h143.08a48 48 0 0 0 33.89-14.1L497.9 361.4a48 48 0 0 0 14.1-33.9v-143a48 48 0 0 0-14.1-33.9zM424.39 323L323 424.38a26 26 0 0 1-18.35 7.62h-97.3a26 26 0 0 1-18.35-7.62L87.61 323A26 26 0 0 1 80 304.62v-97.33a26 26 0 0 1 7.62-18.39L189 87.61A26 26 0 0 1 207.35 80h97.3A26 26 0 0 1 323 87.62L424.39 189a26 26 0 0 1 7.61 18.38v97.24a26 26 0 0 1-7.61 18.38z\", \"M432 207.38v97.24a26 26 0 0 1-7.61 18.38L323 424.38a26 26 0 0 1-18.35 7.62h-97.3a26 26 0 0 1-18.35-7.62L87.61 323A26 26 0 0 1 80 304.62v-97.33a26 26 0 0 1 7.62-18.39L189 87.61A26 26 0 0 1 207.35 80h97.3A26 26 0 0 1 323 87.62L424.39 189a26 26 0 0 1 7.61 18.38z\"]]\n};\nvar faOilCan = {\n prefix: 'fad',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", [\"M629.81 160.31L416 224l-50.49-25.24A64.2 64.2 0 0 0 336.9 192H176L37.72 166.86A31.93 31.93 0 0 0 0 198.34v95a32 32 0 0 0 26.28 31.48L96 337.46V384a32 32 0 0 0 32 32h274.64a32 32 0 0 0 22.76-9.51l212.26-214.75a8 8 0 0 0 2.34-5.66V168a8 8 0 0 0-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73z\", \"M592 288s-42.67 61.77-42.67 85.33a42.67 42.67 0 0 0 85.34 0C634.67 349.76 592 288 592 288zM336 96H176a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h56v48h48v-48h56a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\"]]\n};\nvar faOilTemp = {\n prefix: 'fad',\n iconName: 'oil-temp',\n icon: [640, 512, [], \"f614\", [\"M512 352.16c23.26 19.66 57.36 31.84 96 31.84h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16c-26 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1-8.24 7.6-22.8 14.3-41.59 16.74a111.54 111.54 0 0 1-31 63.86c5.46.51 10.79 1.3 16.46 1.3 38.66 0 72.76-12.19 96.06-31.84zM624 448h-16c-26 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 439.58 442 448 416 448s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 439.58 250 448 224 448s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 439.58 58 448 32 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 384h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84 5.67 0 11-.79 16.46-1.3a111.47 111.47 0 0 1-31-63.86c-18.79-2.44-33.34-9.14-41.59-16.74-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 311.58 58 320 32 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M416 16v16a16 16 0 0 1-16 16h-48v32h48a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16h-48v32h48a16 16 0 0 1 16 16v16a16 16 0 0 1-16 16h-48v22.75a80 80 0 1 1-64 0V16a16 16 0 0 1 16-16h96a16 16 0 0 1 16 16z\"]]\n};\nvar faOm = {\n prefix: 'fad',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", [\"M339 39.37l21.6 21.56a10.43 10.43 0 0 0 14.75 0l21.57-21.56a10.43 10.43 0 0 0 0-14.75L375.35 3.05a10.45 10.45 0 0 0-14.76 0L339 24.61a10.43 10.43 0 0 0 0 14.75zm115.29 27.89c-85.55 65.12-169 2.75-172.58 0a16 16 0 0 0-23.8 20.35c1.61 3 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66a15.78 15.78 0 0 0 1.53-6.83V80a16 16 0 0 0-25.7-12.74z\", \"M224 384a64.07 64.07 0 0 0-64-64h-33a15.92 15.92 0 0 1-13.17-8.55l-16.18-32.18A16.08 16.08 0 0 1 112 256h31.9a48 48 0 1 0-30.27-85.29 15.57 15.57 0 0 1-19.2.21l-26.11-19.64a16.32 16.32 0 0 1-1.12-24.93c25.11-23.74 59.86-34.71 96-28.78 43.16 7.08 79.42 40.64 89.52 83.19A112.69 112.69 0 0 1 245 256h46.84a35.66 35.66 0 0 0 25.38-10.5l24.25-24.25A99.9 99.9 0 0 1 512 291.87V392c0 48.53-47.48 88-96 88-96 0-96-64-96-64v-37.88a8 8 0 0 1 14.2-5C349.31 391.75 376.58 416 416 416c13.24 0 32-10.77 32-24V291.87a35.89 35.89 0 0 0-61.26-25.38l-24.25 24.25A99.26 99.26 0 0 1 291.84 320h-21.69c11 18.9 17.81 40.58 17.81 64 0 70.58-57.43 128-128 128C41.13 512-.09 416 0 361.18c0-8.8 10.26-12.77 14.79-5.22 22.8 38 49.13 92 145.15 92A64.07 64.07 0 0 0 224 384z\"]]\n};\nvar faOmega = {\n prefix: 'fad',\n iconName: 'omega',\n icon: [512, 512, [], \"f67a\", [\"M512 440v48a24 24 0 0 1-24 24H352a32 32 0 0 1-32-32v-42.92a57.66 57.66 0 0 1 4-21.08h164a24 24 0 0 1 24 24zM24 416a24 24 0 0 0-24 24v48a24 24 0 0 0 24 24h136a32 32 0 0 0 32-32v-42.7a56.91 56.91 0 0 0-4.15-21.3z\", \"M56.61 416A254 254 0 0 1 0 256C0 104.82 131.74-16.18 286.45 1.77 399.19 14.85 492.12 104.36 509 216.6c11.41 75.72-10.75 146.23-53.64 199.4H324a63 63 0 0 1 22.92-28.62A159.66 159.66 0 0 0 416 256c0-99.51-91.32-178.1-194.56-156.36-62.49 13.16-112.1 65.08-123 128-11.3 65.36 17.46 125.15 65.68 159.07A66.53 66.53 0 0 1 187.85 416H56.61z\"]]\n};\nvar faOrnament = {\n prefix: 'fad',\n iconName: 'ornament',\n icon: [384, 512, [], \"f7b8\", [\"M384.1 320a190.88 190.88 0 0 1-11.2 64H11.2a186.89 186.89 0 0 1 .2-128h361.2a194 194 0 0 1 11.5 64zM136.58 96a64 64 0 1 1 110.84 0zM176 64a16 16 0 1 0 16-16 16 16 0 0 0-16 16z\", \"M192 512c71 0 132.9-38.7 166.1-96H25.9c33.2 57.3 95.1 96 166.1 96zm96-358.18V112a16 16 0 0 0-16-16H112a16 16 0 0 0-16 16v41.82A193.4 193.4 0 0 0 25.9 224h332.2a193.4 193.4 0 0 0-70.1-70.18z\"]]\n};\nvar faOtter = {\n prefix: 'fad',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", [\"M544 192h-22.86l-92.47 49.79.19.39-.86-.18-34.57-70.71L512 112h126.67A96 96 0 0 1 544 192z\", \"M512 352h-28.22l-54.92-109.82-.86-.18-34.57-70.71L512 112h126.67A97 97 0 0 0 640 96V64a32 32 0 0 0-32-32h-32l-13.25-13.25A64 64 0 0 0 517.49 0H497a64 64 0 0 0-31.75 8.43L312 96h-56C150 96 64 182 64 288v1.61c0 32.75-16 62.14-39.56 84.89a79.91 79.91 0 0 0-23.19 71.8C8 485.1 44.15 512 83.53 512H192a32 32 0 0 0 0-64H80a16 16 0 0 1 0-32h224a16 16 0 0 0 16-16v-16a32 32 0 0 0-32-32h-64l149.49-80.5L448 416h80a16 16 0 0 0 16-16v-16a32 32 0 0 0-32-32zm0-304a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]]\n};\nvar faOutdent = {\n prefix: 'fad',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", [\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62z\"]]\n};\nvar faOutlet = {\n prefix: 'fad',\n iconName: 'outlet',\n icon: [512, 512, [], \"e01c\", [\"M386.27,102.7A22.92,22.92,0,0,0,369.85,96H142.15a22.92,22.92,0,0,0-16.42,6.7C87.71,141.71,64,195.9,64,256s23.71,114.28,61.73,153.29A22.93,22.93,0,0,0,142.15,416h227.7a22.93,22.93,0,0,0,16.42-6.71c38-39,61.73-93.19,61.73-153.29S424.29,141.71,386.27,102.7ZM208,272a16,16,0,0,1-16,16H176a16,16,0,0,1-16-16V192a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16Zm80,80H224V336a32,32,0,0,1,64,0Zm64-80a16,16,0,0,1-16,16H320a16,16,0,0,1-16-16V192a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16Z\", \"M448,0H64A64,64,0,0,0,0,64V448a64,64,0,0,0,64,64H448a64,64,0,0,0,64-64V64A64,64,0,0,0,448,0ZM386.27,409.29A22.93,22.93,0,0,1,369.85,416H142.15a22.93,22.93,0,0,1-16.42-6.71C87.71,370.28,64,316.1,64,256s23.71-114.29,61.73-153.3A22.92,22.92,0,0,1,142.15,96h227.7a22.92,22.92,0,0,1,16.42,6.7c38,39,61.73,93.2,61.73,153.3S424.29,370.28,386.27,409.29Z\"]]\n};\nvar faOven = {\n prefix: 'fad',\n iconName: 'oven',\n icon: [448, 512, [], \"e01d\", [\"M64,256V448H384V256Zm288,64H96V288H352Z\", \"M384,0H64A64,64,0,0,0,0,64v96H448V64A64,64,0,0,0,384,0ZM80,104a24,24,0,1,1,24-24A24,24,0,0,1,80,104Zm96,0a24,24,0,1,1,24-24A24,24,0,0,1,176,104Zm96,0a24,24,0,1,1,24-24A24,24,0,0,1,272,104Zm96,0a24,24,0,1,1,24-24A24,24,0,0,1,368,104ZM0,480a32,32,0,0,0,32,32H416a32,32,0,0,0,32-32V192H0ZM64,256H384V448H64Zm32,64H352V288H96Z\"]]\n};\nvar faOverline = {\n prefix: 'fad',\n iconName: 'overline',\n icon: [448, 512, [], \"f876\", [\"M432 0H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16z\", \"M232.19 128h-16.38A167.81 167.81 0 0 0 48 295.81v48.38A167.81 167.81 0 0 0 215.81 512h16.38A167.81 167.81 0 0 0 400 344.19v-48.38A167.81 167.81 0 0 0 232.19 128zM320 344.19A87.91 87.91 0 0 1 232.19 432h-16.38A87.91 87.91 0 0 1 128 344.19v-48.38A87.91 87.91 0 0 1 215.81 208h16.38A87.91 87.91 0 0 1 320 295.81z\"]]\n};\nvar faPageBreak = {\n prefix: 'fad',\n iconName: 'page-break',\n icon: [576, 512, [], \"f877\", [\"M160 64h176v64a16 16 0 0 0 16 16h64v64h64v-76.06a48.16 48.16 0 0 0-14.09-34L382 14.09A48 48 0 0 0 348.09 0H144a48.14 48.14 0 0 0-48 48.07V208h64zm256 384H160v-80H96v96a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48v-96h-64z\", \"M243.6 256a19.59 19.59 0 0 0-19.6 19.6v24.8a19.59 19.59 0 0 0 19.6 19.6h88.8a19.59 19.59 0 0 0 19.6-19.6v-24.8a19.59 19.59 0 0 0-19.6-19.6zm316.4 0H432a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-400 48v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16z\"]]\n};\nvar faPager = {\n prefix: 'fad',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", [\"M448 224a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]]\n};\nvar faPaintBrush = {\n prefix: 'fad',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", [\"M512 49.55c0 16.14-6.52 31.64-13.9 46C385.06 306.53 349.06 352 287 352a92 92 0 0 1-22.39-3l-63.82-53.18a92.58 92.58 0 0 1-8.73-38.7c0-53.75 21.27-58 225.68-240.64C428.53 6.71 442.74 0 457.9 0 486 0 512 20.64 512 49.55z\", \"M255 382.68a86.64 86.64 0 0 1 1 9.13C256 468.23 203.87 512 128 512 37.94 512 0 439.62 0 357.27c9.79 6.68 44.14 34.35 55.25 34.35a15.26 15.26 0 0 0 14.59-10c20.66-54.44 57.07-69.72 97.19-72.3z\"]]\n};\nvar faPaintBrushAlt = {\n prefix: 'fad',\n iconName: 'paint-brush-alt',\n icon: [512, 512, [], \"f5a9\", [\"M490.92 133L272.11 354.51l-78-65L366 33.1c62-88.4 198.15 19.42 124.92 99.9z\", \"M167.87 309.29l87.07 72.56a86.87 86.87 0 0 1 1.06 10C256 468.23 203.86 512 128 512 37.93 512 0 439.62 0 357.27c9.79 6.68 44.14 34.35 55.25 34.35a15.26 15.26 0 0 0 14.59-10c20.8-54.8 57.58-69.92 98.03-72.33z\"]]\n};\nvar faPaintRoller = {\n prefix: 'fad',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", [\"M384 160H32a32 32 0 0 1-32-32V32A32 32 0 0 1 32 0h352a32 32 0 0 1 32 32v96a32 32 0 0 1-32 32z\", \"M512 128v64a96 96 0 0 1-96 96H256v32a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32h-64a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32v-32a64 64 0 0 1 64-64h160a32 32 0 0 0 32-32V64a64 64 0 0 1 64 64z\"]]\n};\nvar faPalette = {\n prefix: 'fad',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", [\"M204.29 5c-99.4 19.4-179.5 99.29-199.1 198.4-37 187 131.7 326.39 258.8 306.69 41.2-6.4 61.4-54.59 42.5-91.69-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.31C511.49 97.13 368.09-26.87 204.29 5zM96 320a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-128a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128-64a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 64a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M96 256a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm32-128a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm128-64a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm128 64a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faPallet = {\n prefix: 'fad',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", [\"M256 0v128l64-32 64 32V0h112a16 16 0 0 1 16 16v224a16 16 0 0 1-16 16H144a16 16 0 0 1-16-16V16a16 16 0 0 1 16-16z\", \"M624 384a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h48v64H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-48v-64zm-336 64H128v-64h160zm224 0H352v-64h160zM384 128V0H256v128l64-32z\"]]\n};\nvar faPalletAlt = {\n prefix: 'fad',\n iconName: 'pallet-alt',\n icon: [640, 512, [], \"f483\", [\"M560 64H400a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zM304 0H80a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16z\", \"M624 384a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h48v64H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-48v-64zm-336 64H128v-64h160zm224 0H352v-64h160z\"]]\n};\nvar faPaperPlane = {\n prefix: 'fad',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", [\"M245.53 410.5l-75 92.83c-14 17.1-42.5 7.8-42.5-15.8V358l280.26-252.77c5.5-4.9 13.3 2.6 8.6 8.3L191.72 387.87z\", \"M511.59 28l-72 432a24.07 24.07 0 0 1-33 18.2l-214.87-90.33 225.17-274.34c4.7-5.7-3.1-13.2-8.6-8.3L128 358 14.69 313.83a24 24 0 0 1-2.2-43.2L476 3.23c17.29-10 39 4.6 35.59 24.77z\"]]\n};\nvar faPaperclip = {\n prefix: 'fad',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", [\"M171.43 319.93c-4.94 5-5.24 13.43-.65 18.29a10.66 10.66 0 0 0 15.69.16l182.85-186.85a52.37 52.37 0 0 0 0-72.79 48 48 0 0 0-69.15 0L90.39 293.3c-34.76 35.56-35.3 93.12-1.19 128.31a85.28 85.28 0 0 0 123.06.28l172.06-176a16 16 0 0 1 22.62-.26L429.82 268a16 16 0 0 1 .26 22.63L258 466.63a149.21 149.21 0 0 1-214.77-.49c-58.43-60.29-57.35-157.51 1.38-217.58L254.39 34a111.9 111.9 0 0 1 160.67 0c43.89 44.89 43.95 117.33 0 162.28L232.21 383.13a74.61 74.61 0 0 1-108-1c-28.27-30-27.37-77.47 1.45-106.95l143.77-146.84a16 16 0 0 1 22.62-.24l22.86 22.38a16 16 0 0 1 .24 22.63z\", \"\"]]\n};\nvar faParachuteBox = {\n prefix: 'fad',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", [\"M487.1 192L350.3 343.9c.7 2.7 1.6 5.2 1.6 8.1v128a32 32 0 0 1-32 32h-128a32 32 0 0 1-32-32V352c0-2.9.9-5.5 1.6-8.1L24.8 192h43.1l116.6 129.5c2.5-.6 4.8-1.5 7.5-1.5h48V192h32v128h48c2.7 0 5 .9 7.5 1.5L444.1 192z\", \"M.1 175c-1.1 9.1 6.8 17 16 17H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175zM256 0c-59.1 0-128 76.8-128 192h256C384 76.8 315.1 0 256 0zm255.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h79.8c9.3 0 17.2-7.8 16.1-17z\"]]\n};\nvar faParagraph = {\n prefix: 'fad',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", [\"M368 96v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96z\", \"M432 48v32a16 16 0 0 1-16 16H272v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]]\n};\nvar faParagraphRtl = {\n prefix: 'fad',\n iconName: 'paragraph-rtl',\n icon: [384, 512, [], \"f878\", [\"M144 224h16v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h32v240a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V64h16a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H144C80 0 32 48 32 112s48 112 112 112z\", \"M368 384H112v-48c0-14.25-17.23-21.39-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 516.64 112 511.64 112 496v-48h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faParking = {\n prefix: 'fad',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", [\"M272 224a32.09 32.09 0 0 1-32 32h-48v-64h48a32.09 32.09 0 0 1 32 32zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zM336 224a96.15 96.15 0 0 0-96-96h-96a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-48h48a96.15 96.15 0 0 0 96-96z\", \"M240 128h-96a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-48h48a96 96 0 0 0 0-192zm0 128h-48v-64h48a32 32 0 0 1 0 64z\"]]\n};\nvar faParkingCircle = {\n prefix: 'fad',\n iconName: 'parking-circle',\n icon: [496, 512, [], \"f615\", [\"M280,208H232v32h48a16,16,0,0,0,0-32ZM248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm32,296H232v48a16,16,0,0,1-16,16H184a16,16,0,0,1-16-16V160a16,16,0,0,1,16-16h96a80,80,0,0,1,0,160Z\", \"M280,144H184a16,16,0,0,0-16,16V352a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V304h48a80,80,0,0,0,0-160Zm0,96H232V208h48a16,16,0,0,1,0,32Z\"]]\n};\nvar faParkingCircleSlash = {\n prefix: 'fad',\n iconName: 'parking-circle-slash',\n icon: [496, 512, [], \"f616\", [\"M168,352V234.61L257.78,304H232v48a16,16,0,0,1-16,16H184A16,16,0,0,1,168,352ZM360,224a80,80,0,0,0-80-80H184a16,16,0,0,0-15,10.49L238.22,208H280a16,16,0,0,1,0,32h-.38l54.95,42.47A79.75,79.75,0,0,0,360,224Z\", \"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm0,432C146.54,440,64,357.46,64,256a182.66,182.66,0,0,1,21.17-85.41L371.56,391.94A183.06,183.06,0,0,1,248,440Zm162.83-98.59L124.44,120.06A183.06,183.06,0,0,1,248,72c101.46,0,184,82.54,184,184a182.66,182.66,0,0,1-21.17,85.41Z\"]]\n};\nvar faParkingSlash = {\n prefix: 'fad',\n iconName: 'parking-slash',\n icon: [640, 512, [], \"f617\", [\"M106.27 50.36A47.91 47.91 0 0 1 144 32h352a48 48 0 0 1 48 48v308.68L410 285.09A95.93 95.93 0 0 0 336 128h-96a16.06 16.06 0 0 0-15.79 13.52zM336 192h-46.47l69.74 53.9A32 32 0 0 0 336 192zm-48 176a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-64.86L96 204.21V432a48 48 0 0 0 48 48h308.83L288 352.6z\", \"M3.37 31.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45z\"]]\n};\nvar faPassport = {\n prefix: 'fad',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", [\"M224 64a128 128 0 1 0 128 128A128 128 0 0 0 224 64zm94.38 112h-39.09c-1.49-27-6.53-51.35-14.21-70.41a95.85 95.85 0 0 1 53.3 70.41zm-188.76 32h39.09c1.49 27 6.53 51.35 14.21 70.41a95.87 95.87 0 0 1-53.3-70.41zm39.09-32h-39.09a95.85 95.85 0 0 1 53.3-70.41C175.25 124.65 170.2 149 168.71 176zM224 286.69c-7.69-7.45-20.77-34.43-23.44-78.69h46.87c-2.66 44.27-15.74 71.24-23.43 78.69zM200.57 176c2.66-44.26 15.74-71.24 23.44-78.69 7.69 7.45 20.77 34.43 23.43 78.69zm64.51 102.41c7.68-19.06 12.72-43.41 14.21-70.41h39.09a95.85 95.85 0 0 1-53.3 70.41z\", \"M224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM129.62 208a95.87 95.87 0 0 0 53.3 70.41C175.24 259.35 170.2 235 168.71 208zm0-32h39.09c1.49-27 6.54-51.35 14.21-70.41a95.85 95.85 0 0 0-53.3 70.41zm135.46-70.41c7.68 19.06 12.72 43.41 14.21 70.41h39.09a95.85 95.85 0 0 0-53.3-70.41zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zM416 0H64A64 64 0 0 0 0 64v384a64 64 0 0 0 64 64h352a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm-80 416H112a16 16 0 0 1 0-32h224a16 16 0 0 1 0 32zm-112-96a128 128 0 1 1 128-128 128 128 0 0 1-128 128zm41.08-41.59a95.85 95.85 0 0 0 53.3-70.41h-39.09c-1.49 27-6.53 51.35-14.21 70.41z\"]]\n};\nvar faPastafarianism = {\n prefix: 'fad',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", [\"M638.43 378.65a23.94 23.94 0 0 1-31 13.88c-8.11-3.09-14.34-.19-31.39 11.36-13.55 9.15-30.83 20.84-52.42 20.84a63.85 63.85 0 0 1-23-4.39C468 407.9 460.69 379 455.35 357.9c-2.21-8.72-4-14.49-6-18.87a194.54 194.54 0 0 1-61.62 34.16c10 37 32.28 90.81 60.22 90.81a24 24 0 0 1 0 48c-66.74 0-97.05-88.63-107.42-129.14-6.69.6-13.42 1.14-20.58 1.14s-13.89-.54-20.58-1.14C289.05 423.37 258.74 512 192 512a24 24 0 0 1 0-48c28.08 0 50.3-53.8 60.26-90.8a194.47 194.47 0 0 1-61.64-34.2c-2 4.38-3.74 10.15-6 18.87-5.35 21.11-12.67 50-45.33 62.44a63.85 63.85 0 0 1-23 4.39c-21.59 0-38.87-11.68-52.42-20.84-17.05-11.55-23.23-14.45-31.39-11.36a24 24 0 0 1-17.1-44.85c32.65-12.47 57.34 4.25 75.37 16.45 17.08 11.53 23.3 14.42 31.41 11.36s10.83-9.38 15.89-29.38c3.33-13.15 7.44-29.32 18-42.65-2.24-2.91-4.43-5.78-6.38-8.57C139.53 304.45 126.29 312 108 312c-33.95 0-50.87-25.78-62.06-42.83C35.34 253 30.94 248 24 248a24 24 0 0 1 0-48c34 0 50.88 25.78 62.06 42.83C96.66 259 101.06 264 108 264c17.15 0 37.68-61.56 97.27-101.9l-17.11-34.22c1.27.07 2.55.12 3.84.12a63.93 63.93 0 0 0 53.42-28.76l18.13 36.27a216 216 0 0 1 112.92 0l18.12-36.25A64 64 0 0 0 448 128c1.29 0 2.57 0 3.85-.13l-17.11 34.22C494.52 202.57 514.69 264 532 264c6.94 0 11.34-5 21.94-21.17C565.13 225.78 582.05 200 616 200a24 24 0 0 1 0 48c-6.94 0-11.35 5-21.94 21.17C582.87 286.22 566 312 532 312c-18.29 0-31.53-7.55-41.7-17.12-1.95 2.78-4.14 5.66-6.38 8.57 10.51 13.33 14.62 29.5 17.95 42.65 5.06 20 7.77 26.29 15.89 29.38s14.35.17 31.41-11.36c18-12.2 42.67-29 75.37-16.45a24 24 0 0 1 13.89 30.98z\", \"M192 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM448 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faPaste = {\n prefix: 'fad',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", [\"M320 264V160H184a24 24 0 0 0-24 24v304a24 24 0 0 0 24 24h240a24 24 0 0 0 24-24V288H344a24.07 24.07 0 0 1-24-24zm121-31l-66-66a24 24 0 0 0-17-7h-6v96h96v-6.06a24 24 0 0 0-7-16.94z\", \"M296 32h-80.61a63.94 63.94 0 0 0-110.78 0H24A24 24 0 0 0 0 56v336a24 24 0 0 0 24 24h104V184a56.06 56.06 0 0 1 56-56h136V56a24 24 0 0 0-24-24zM160 88a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faPause = {\n prefix: 'fad',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", [\"M144 31H48A48 48 0 0 0 0 79v352a48 48 0 0 0 48 48h96a48 48 0 0 0 48-48V79a48 48 0 0 0-48-48zm-16 368a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V111a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zM400 31h-96a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h96a48 48 0 0 0 48-48V79a48 48 0 0 0-48-48zm-16 368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V111a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\", \"M112 95H80a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V111a16 16 0 0 0-16-16zm256 0h-32a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V111a16 16 0 0 0-16-16z\"]]\n};\nvar faPauseCircle = {\n prefix: 'fad',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328a16 16 0 0 1-16 16h-48a16 16 0 0 1-16-16V176a16 16 0 0 1 16-16h48a16 16 0 0 1 16 16zm112 0a16 16 0 0 1-16 16h-48a16 16 0 0 1-16-16V176a16 16 0 0 1 16-16h48a16 16 0 0 1 16 16z\", \"M224 160h-48a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V176a16 16 0 0 0-16-16zm112 0h-48a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V176a16 16 0 0 0-16-16z\"]]\n};\nvar faPaw = {\n prefix: 'fad',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", [\"M448 424.26c0 34.9-26.81 55.75-71.74 55.75-48.41 0-80.75-25.08-120.26-25.08-39.17 0-71.42 25.08-120.26 25.08C90.82 480 64 459.16 64 424.26 64 346.77 176.6 224 256 224s192 122.77 192 200.26z\", \"M474.84 161.28c-29.12-7-61.15 15.48-71.56 50.13s4.77 68.38 33.89 75.34 61.15-15.48 71.56-50.13-4.73-68.38-33.89-75.34zm-437.67 0C8.05 168.23-7.12 202 3.28 236.61s42.44 57.09 71.56 50.13 44.29-40.69 33.89-75.34-42.44-57.09-71.56-50.13zm113.4-127.89c-30.94 8.14-46.42 49.94-34.58 93.36s46.53 72 77.46 63.87 46.42-49.94 34.55-93.36-46.49-72.01-77.43-63.87zm210.88 0c-30.94-8.15-65.62 20.45-77.45 63.87s3.64 85.22 34.58 93.36 65.62-20.45 77.46-63.87-3.65-85.21-34.59-93.36z\"]]\n};\nvar faPawAlt = {\n prefix: 'fad',\n iconName: 'paw-alt',\n icon: [448, 512, [], \"f701\", [\"M416 384a96 96 0 0 1-96 96c-51.71 1.76-72.19-32-96-32s-44.29 33.75-96 32a95.76 95.76 0 0 1-47.32-179.22c27.05-15.27 46.88-60.87 67.17-97.83C163.59 174.31 193.79 160 224 160s60.41 14.31 76.14 42.95c20 36.42 40.88 83 67.17 97.83A95.32 95.32 0 0 1 416 384z\", \"M400 144a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM304 32a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM48 144a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm96-112a48 48 0 1 0 48 48 48 48 0 0 0-48-48z\"]]\n};\nvar faPawClaws = {\n prefix: 'fad',\n iconName: 'paw-claws',\n icon: [512, 512, [], \"f702\", [\"M448 456.25c0 34.9-26.81 55.75-71.74 55.75-48.41 0-80.75-25.08-120.26-25.08-39.17 0-71.42 25.08-120.26 25.08C90.81 512 64 491.15 64 456.25 64 378.76 176.59 256 256 256s192 122.76 192 200.25z\", \"M320 0v75c-15.95 11.26-29.49 30.37-36 54.29-11.84 43.42 3.64 85.22 34.58 93.36s65.62-20.45 77.46-63.87c8.44-30.94 3-61.05-12-78.75zm173.51 190.37L448 128v66.94c-19.83 6.55-37.51 24.43-44.72 48.46-10.4 34.65 4.77 68.38 33.89 75.34s61.15-15.48 71.56-50.13a76 76 0 0 0 3.27-21.52 96.28 96.28 0 0 0-18.49-56.72zM192 75V0l-64 80c-15 17.7-20.45 47.82-12 78.75 11.84 43.42 46.53 72 77.46 63.87s46.42-49.94 34.58-93.36C221.49 105.33 208 86.21 192 75zM64 195v-67l-45.51 62.37A96.2 96.2 0 0 0 0 247.09a76.09 76.09 0 0 0 3.28 21.52c10.4 34.65 42.44 57.09 71.56 50.13s44.28-40.7 33.88-75.35c-7.21-24.03-24.89-41.91-44.72-48.46z\"]]\n};\nvar faPeace = {\n prefix: 'fad',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", [\"M409.54,344.25a184.93,184.93,0,0,1-31.43,41.86q-4.2,4.18-8.61,8.07L280,322.58V437.24a186.89,186.89,0,0,1-64,0V322.58l-89.5,71.6q-4.41-3.89-8.61-8.07a184.93,184.93,0,0,1-31.43-41.86L216,240.62V74.76a186.89,186.89,0,0,1,64,0V240.62Z\", \"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM378.11,386.11a184,184,0,0,1-260.22,0h0a183.93,183.93,0,0,1,0-260.21c71.74-72,188.25-72.15,260.21-.41s72.16,188.25.41,260.22Z\"]]\n};\nvar faPegasus = {\n prefix: 'fad',\n iconName: 'pegasus',\n icon: [576, 512, [], \"f703\", [\"M64.36 215.74A39.92 39.92 0 0 0 48 248v56a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-56a88 88 0 0 1 88-88h.46a95.62 95.62 0 0 0-24.1 55.74z\", \"M567.34 54.8c-3.78-4-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66A8.09 8.09 0 0 0 567.9 0h-120a128 128 0 0 0-128 128c-63.9 0-104.18-36.78-127.64-90.27-3.22-7.35-13.61-7.76-17-.5A158.37 158.37 0 0 0 160 105.1c0 67 51 133.09 128 147.74V256c-82.89 0-143.33-57.52-157-122.86q-1.5.49-3 1v-.7a95.72 95.72 0 0 0-33.46 160.44l-25.72 68.6a63.94 63.94 0 0 0-2.16 38l24.85 99.41A16 16 0 0 0 107 512h66a16 16 0 0 0 15.52-19.88l-26.33-105.26L186 323.27l134 22.33V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V318.22A111.55 111.55 0 0 0 448 240c0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7a32 32 0 0 0 40.49 15.37l32.55-13A32 32 0 0 0 576 154.31l-.06-77.71a31.76 31.76 0 0 0-8.6-21.8zM511.92 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faPen = {\n prefix: 'fad',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", [\"M498 142.08l-56.6 56.55-128-128 56.55-56.55a48 48 0 0 1 67.91 0L498 74.17a48 48 0 0 1 0 67.91z\", \"M12.85 371.11L.15 485.33a24 24 0 0 0 26.49 26.51l114.14-12.6 278-278-128-128z\"]]\n};\nvar faPenAlt = {\n prefix: 'fad',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", [\"M498 74.17a48 48 0 0 1 0 67.91l-56.6 56.55-128-128 56.55-56.55a48 48 0 0 1 67.91 0z\", \"M336 138.49l82.77 82.77L222 418.05a327 327 0 0 1-195.34 93.8A24 24 0 0 1 .15 485.34v-.23A327 327 0 0 1 94 290l151.52-151.52-22.63-22.62-101.82 101.82a16 16 0 0 1-22.63 0l-22.63-22.63a16 16 0 0 1 0-22.62L194.59 53.64a40 40 0 0 1 56.56 0z\"]]\n};\nvar faPenFancy = {\n prefix: 'fad',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", [\"M163.25 249.87l98.88 98.88-33.07 84.07a32 32 0 0 1-20.24 20.24L32 512l-4.68-4.68 92.89-92.89c2.56.66 5 1.57 7.8 1.57a32 32 0 1 0-32-32c0 2.77.91 5.24 1.57 7.8L4.69 484.69 0 480l58.94-176.82a32 32 0 0 1 20.24-20.24z\", \"M483.48 142.55L284 325.66l-97.85-97.85 183.1-199.49c74.48-84.26 199.15 39.16 114.23 114.23z\"]]\n};\nvar faPenNib = {\n prefix: 'fad',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", [\"M288 96l128 128-42.79 151.4a64 64 0 0 1-41.35 43.31L52 512l-14.69-14.69L187.42 347.2a48.45 48.45 0 1 0-22.62-22.62L14.69 474.69 0 460l93.29-279.86a64 64 0 0 1 43.31-41.35z\", \"M497.94 74.17a48 48 0 0 1 0 67.91l-56.55 56.55-128-128 56.55-56.55a48 48 0 0 1 67.91 0z\"]]\n};\nvar faPenSquare = {\n prefix: 'fad',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-97.8 210L166.5 377.7l-57.1 6.3a12.11 12.11 0 0 1-13.3-13.3l6.3-57.1 135.7-135.7a6.13 6.13 0 0 1 8.6.1l55.5 55.5a6.1 6.1 0 0 1 0 8.5zm42.8-43l-23.1 23.1a6.1 6.1 0 0 1-8.5 0l-55.5-55.5a6.1 6.1 0 0 1 0-8.5L281 135a23.9 23.9 0 0 1 33.9 0l30.1 30.1a24.08 24.08 0 0 1 0 33.9z\", \"M345 165.1L314.9 135a23.9 23.9 0 0 0-33.9 0l-23.1 23.1a6.1 6.1 0 0 0 0 8.5l55.5 55.5a6.1 6.1 0 0 0 8.5 0L345 199a24.08 24.08 0 0 0 0-33.9zM246.7 178a6.13 6.13 0 0 0-8.6-.1L102.4 313.6l-6.3 57.1a12.11 12.11 0 0 0 13.3 13.3l57.1-6.3L302.2 242a6.1 6.1 0 0 0 0-8.5z\"]]\n};\nvar faPencil = {\n prefix: 'fad',\n iconName: 'pencil',\n icon: [512, 512, [], \"f040\", [\"M96 352H32l-16 64 80 80 64-16v-64H96zM498 74.26l-.11-.11L437.77 14a48.09 48.09 0 0 0-67.9 0l-46.1 46.1a12 12 0 0 0 0 17l111 111a12 12 0 0 0 17 0l46.1-46.1a47.93 47.93 0 0 0 .13-67.74z\", \"M.37 483.85a24 24 0 0 0 19.47 27.8 24.27 24.27 0 0 0 8.33 0l67.32-16.16-79-79zM412.3 210.78l-111-111a12.13 12.13 0 0 0-17.1 0L32 352h64v64h64v64l252.27-252.25a12 12 0 0 0 .03-16.97z\"]]\n};\nvar faPencilAlt = {\n prefix: 'fad',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", [\"M96 352H32l-16 64 80 80 64-16v-64H96zM498 74.26l-.11-.11L437.77 14a48.09 48.09 0 0 0-67.9 0l-46.1 46.1a12 12 0 0 0 0 17l111 111a12 12 0 0 0 17 0l46.1-46.1a47.93 47.93 0 0 0 .13-67.74z\", \"M.37 483.85a24 24 0 0 0 19.47 27.8 24.27 24.27 0 0 0 8.33 0l67.32-16.16-79-79zM412.3 210.78l-111-111a12.13 12.13 0 0 0-17.1 0L32 352h64v64h64v64l252.27-252.25a12 12 0 0 0 .03-16.97zm-114.41-24.93l-154 154a14 14 0 1 1-19.8-19.8l154-154a14 14 0 1 1 19.8 19.8z\"]]\n};\nvar faPencilPaintbrush = {\n prefix: 'fad',\n iconName: 'pencil-paintbrush',\n icon: [512, 512, [], \"f618\", [\"M21.08 133l99.11 100.33L216 137.52 146 33.11C84.06-55.29-52.15 52.53 21.08 133zm435.68 258.63a15.26 15.26 0 0 1-14.59-10c-18.13-47.78-48.4-65.38-82.65-70.71l-101.69 101.7C266.65 476 315.43 512 384 512c90.07 0 128-72.38 128-154.73-9.78 6.73-44.14 34.36-55.24 34.36z\", \"M19.08 379.68L.33 487.12a21.23 21.23 0 0 0 24.59 24.56l107.44-18.84 296.93-296.93L316.08 82.72zM497.94 59.32l-45.26-45.25a48 48 0 0 0-67.94 0l-46 46 113.2 113.2 46-46a48 48 0 0 0 0-67.95z\"]]\n};\nvar faPencilRuler = {\n prefix: 'fad',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", [\"M138.25 127.05a7.92 7.92 0 0 1-11.2 0l-11.21-11.21a7.92 7.92 0 0 1 0-11.21L177.5 43 143.87 9.3A31.73 31.73 0 0 0 99 9.3L9.29 99a31.74 31.74 0 0 0 0 44.86l100.17 100.19L244 109.49l-44.08-44.12zm364.46 241.1l-33.63-33.64-61.68 61.68a7.92 7.92 0 0 1-11.21 0L385 385a7.92 7.92 0 0 1 0-11.21l61.68-61.68L402.52 268 267.94 402.51l100.21 100.2a31.7 31.7 0 0 0 44.85 0L502.71 413a31.72 31.72 0 0 0 0-44.85z\", \"M497.94 59.32l-45.25-45.25a48.05 48.05 0 0 0-67.95 0l-46 46 113.21 113.2 46-46a48 48 0 0 0-.01-67.95zM19.08 379.68L.33 487.12a21.23 21.23 0 0 0 24.59 24.56l107.45-18.84 296.92-296.93L316.08 82.72z\"]]\n};\nvar faPennant = {\n prefix: 'fad',\n iconName: 'pennant',\n icon: [576, 512, [], \"f456\", [\"M128 360.8V112.5a15.8 15.8 0 0 1 16.3-16c43.2 2 95.3 13.2 155.2 42.4 140.6 68.5 223.7 62.9 252.9 57.2 18-3.8 31.3 18.1 18.6 32.4-78.1 88.2-179.8 108.8-184.1 109.6-134.8 26.1-153.3 7.5-237.1 37.5-10.6 3.8-21.8-3.6-21.8-14.8z\", \"M0 56a56 56 0 1 1 80 50.4V504a8 8 0 0 1-8 8H40a8 8 0 0 1-8-8V106.4A56 56 0 0 1 0 56z\"]]\n};\nvar faPeopleArrows = {\n prefix: 'fad',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", [\"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm32,32H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53a44.37,44.37,0,0,1,0-64L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160Zm352-32a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160Z\", \"M444.4,310.44l-72.12,68.07A12,12,0,0,1,352,369.77V333.63H224v36.14a12,12,0,0,1-20.28,8.74L131.6,310.44a12.4,12.4,0,0,1,0-17.47l72.12-68.07A12,12,0,0,1,224,233.64v36H352v-36a12,12,0,0,1,20.28-8.74L444.4,293A12.4,12.4,0,0,1,444.4,310.44Z\"]]\n};\nvar faPeopleCarry = {\n prefix: 'fad',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", [\"M512 0a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM128 0a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm272 128H240a16 16 0 0 0-16 16v171.59c4.63 2.49 11.33 3.95 16 4.32h160c4.67-.37 11.35-1.83 16-4.3V143.7a16 16 0 0 0-16-15.7z\", \"M637.71 468.1l-44-110-41.09 46.4-2 18.2 27.69 69.2A32 32 0 0 0 608 512a31.09 31.09 0 0 0 11.9-2.3 32 32 0 0 0 17.81-41.6zm-591.4-110l-44 110a32 32 0 0 0 59.4 23.8l27.71-69.2-2-18.2zm150.31-162.2a108.86 108.86 0 0 0-48.1-59.4 61.72 61.72 0 0 0-56.1-3.3 64.81 64.81 0 0 0-37.5 44.9l-18.4 80.2a64 64 0 0 0 14.4 56.7l67.2 75.9 10.09 92.6A32 32 0 0 0 160 512c1.19 0 2.29-.1 3.5-.2a31.94 31.94 0 0 0 28.29-35.3l-10.1-92.8a64 64 0 0 0-15.59-35l-43.31-49 17.61-70.3 6.79 20.4c4.1 12.5 11.91 23.4 24.5 32.6l51.1 32.5c.38.24.78.46 1.19.68V240l-16.06-10.2zm406.9 62.4L585 178.1a64.81 64.81 0 0 0-37.5-44.9 61.7 61.7 0 0 0-56.1 3.3 109.53 109.53 0 0 0-48.11 59.4L432 229.8 416 240v75.6c.42-.23.83-.46 1.21-.7l51.1-32.5c12.61-9.2 20.4-20 24.5-32.6l6.81-20.4 17.59 70.3-43.29 49a63.86 63.86 0 0 0-15.61 35l-10.1 92.8a32 32 0 0 0 28.31 35.3c1.19.1 2.29.2 3.5.2a32 32 0 0 0 31.79-28.5l10.11-92.6 67.19-75.9a64.4 64.4 0 0 0 14.41-56.7z\"]]\n};\nvar faPepperHot = {\n prefix: 'fad',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", [\"M0 456a56 56 0 0 1 56-56c141.58 0 163.44-181.24 221.92-250.82l52.75 24.22v89.7h107.46l37.05 38.54C426.65 389.11 268.64 512 56 512a56 56 0 0 1-56-56z\", \"M362.67 152.86L288 118.57c22.34-14 48.34-22.59 76.34-22.59a142.91 142.91 0 0 1 57.16 12c18.45-37.22 8.26-62 1.4-72.32a8.07 8.07 0 0 1 .89-10.23l22.9-23a6.67 6.67 0 0 1 .68-.62A8 8 0 0 1 458.62 3c18.56 23.48 35.3 71.91 3.14 131.75A154 154 0 0 1 512 248.67c0 13.68-2.3 26.69-5.56 39.31l-54.68-56.88h-89.09z\"]]\n};\nvar faPercent = {\n prefix: 'fad',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", [\"M336 288a112 112 0 1 0 112 112 111.94 111.94 0 0 0-112-112zm0 160a48 48 0 1 1 48-48 48 48 0 0 1-48 48zM112 0a112 112 0 1 0 112 112A111.94 111.94 0 0 0 112 0zm0 160a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\", \"M4.7 474.1l368-463.7A24 24 0 0 1 392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a24 24 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8z\"]]\n};\nvar faPercentage = {\n prefix: 'fad',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", [\"M365.25 338.74a64 64 0 1 0 0 90.51 64 64 0 0 0 0-90.51zm-346.51-256a64 64 0 1 0 90.51 0 64 64 0 0 0-90.51 0z\", \"M363.31 152.56L88.56 427.31a32 32 0 0 1-45.25 0l-22.62-22.62a32 32 0 0 1 0-45.25L295.44 84.69a32 32 0 0 1 45.25 0l22.62 22.62a32 32 0 0 1 0 45.25z\"]]\n};\nvar faPersonBooth = {\n prefix: 'fad',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", [\"M192 32v160h64V0h-32a32 32 0 0 0-32 32zm0 464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V320h-64zM64 32a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM544 0h-32v496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V32a32 32 0 0 0-32-32z\", \"M288 0v32l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4A31.87 31.87 0 0 0 416 416a32 32 0 0 0 64 0V0zm-64 224h-50.9l-45.2-45.3A63.55 63.55 0 0 0 82.7 160H64a64 64 0 0 0-64 64.1L.2 320 0 480a32 32 0 1 0 63.9 0l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56a32 32 0 0 0 64 0v-56.5a64.27 64.27 0 0 0-6.7-28.6l-41.2-61.3V253l20.9 20.9a47.58 47.58 0 0 0 33.9 14.1H224a32 32 0 0 0 0-64z\"]]\n};\nvar faPersonCarry = {\n prefix: 'fad',\n iconName: 'person-carry',\n icon: [384, 512, [], \"f4cf\", [\"M80 0a48 48 0 1 0 48 48A48 48 0 0 0 80 0zm288 96H208a16 16 0 0 0-16 16v176h176a16 16 0 0 0 16-16V112a16 16 0 0 0-16-16z\", \"M0 479.9a32 32 0 0 0 64 0v-74.5C48 391.7.6 350.8 0 350.3zM128 288h64v-64h-25.4l-33.3-61.8A63.81 63.81 0 0 0 76.7 128H48a48 48 0 0 0-48 48v103a64.05 64.05 0 0 0 22.4 48.6l76 65.1 14.1 92.5c1 5.7 10.1 30.7 36.8 26.3a32 32 0 0 0 26.3-36.8l-14.1-92.5a64.41 64.41 0 0 0-21.5-38.1l-44-37.7v-78.3z\"]]\n};\nvar faPersonDolly = {\n prefix: 'fad',\n iconName: 'person-dolly',\n icon: [512, 512, [], \"f4d0\", [\"M511.74 404.81l-8.2-30.9a8 8 0 0 0-9.77-5.71l-154.1 41.3a63.53 63.53 0 0 0-40.9-24.5l-59.4-221.6a8 8 0 0 0-9.77-5.71l-30.9 8.3a8 8 0 0 0-5.71 9.77l58.9 220a63.87 63.87 0 1 0 100 60.1L506 414.58a8 8 0 0 0 5.74-9.77zM288.73 464a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM80 0h-.1a48.05 48.05 0 1 0 .1 0z\", \"M479 320.9L447.6 204a16 16 0 0 0-19.6-11.3L311 224a16 16 0 0 0-11.3 19.6l31.4 116.9a16 16 0 0 0 19.6 11.3l117-31.3a16 16 0 0 0 11.3-19.6zM0 479.9a32 32 0 0 0 64 0v-74.5C48 391.7.5 350.8 0 350.3zm128-192h94.8l-17.1-64h-39l-33.3-61.8a63.83 63.83 0 0 0-56.7-34.2H48a48 48 0 0 0-48 48v103a64.07 64.07 0 0 0 22.4 48.6l76 65.1 14.1 92.5c1 5.7 10.1 30.7 36.8 26.3a32 32 0 0 0 26.3-36.8l-14.1-92.5A64.4 64.4 0 0 0 140 344l-44-37.7V228z\"]]\n};\nvar faPersonDollyEmpty = {\n prefix: 'fad',\n iconName: 'person-dolly-empty',\n icon: [512, 512, [], \"f4d1\", [\"M80 0h-.1a48.05 48.05 0 1 0 .1 0zm431.74 404.82l-8.2-30.9a8 8 0 0 0-9.77-5.7l-154.1 41.3a63.57 63.57 0 0 0-40.9-24.5l-59.4-221.6a8 8 0 0 0-9.77-5.7l-30.9 8.3a8 8 0 0 0-5.71 9.77l58.9 220a63.87 63.87 0 1 0 100 60.1L506 414.58a8 8 0 0 0 5.74-9.76zM288.73 464a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M0 479.9a32 32 0 0 0 64 0v-74.5C48 391.7.5 350.8 0 350.3zm205.7-256h-39l-33.3-61.8a63.83 63.83 0 0 0-56.7-34.2H48a48 48 0 0 0-48 48v103a64.07 64.07 0 0 0 22.4 48.6l76 65.1 14.1 92.5c1 5.7 10.1 30.7 36.8 26.3a32 32 0 0 0 26.3-36.8l-14.1-92.5A64.4 64.4 0 0 0 140 344l-44-37.7V228l32 59.9h94.8z\"]]\n};\nvar faPersonSign = {\n prefix: 'fad',\n iconName: 'person-sign',\n icon: [512, 512, [], \"f757\", [\"M144 0a48 48 0 1 0 48 48 48.08 48.08 0 0 0-48-48zm357.5 66.6L321.08 1a16 16 0 0 0-20.5 9.6l-43.8 120.3a16 16 0 0 0 9.6 20.5l180.5 65.6a16 16 0 0 0 20.5-9.6L511 87.1a15.93 15.93 0 0 0-9.52-20.5z\", \"M321 212l-47.8-16-49.3-49.3a63.47 63.47 0 0 0-45.2-18.8h-62.9a63.63 63.63 0 0 0-57.2 35.4L3.38 273.7a32 32 0 1 0 57.2 28.6L80 263.6v54.8L64.08 476.8a32 32 0 0 0 28.6 35c1.1.1 2.2.2 3.2.2a32.05 32.05 0 0 0 31.8-28.8l13.2-131.2h15.3L192 423.5V480a32 32 0 0 0 64 0v-56.5a64.27 64.27 0 0 0-6.7-28.6l-41.2-82.5v-91.2l20 20a65 65 0 0 0 25 15.5l46.1 15.4-11.2 30.8a16 16 0 0 0 9.6 20.5l15 5.5a16 16 0 0 0 20.5-9.6l46.19-126.87L334 176zM429.68 6.5l-15-5.5a16 16 0 0 0-20.5 9.6l-5.49 15 45.1 16.4 5.49-15a16 16 0 0 0-9.6-20.5z\"]]\n};\nvar faPhone = {\n prefix: 'fad',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", [\"M336.23 167.12L406 4.43 389.41.61a24.16 24.16 0 0 0-27.5 13.9l-48 112a23.9 23.9 0 0 0 6.91 28zM154.6 320.71a24 24 0 0 0-28-6.91l-112 48a24.3 24.3 0 0 0-14 27.61l3.8 16.49 162.81-69.77zm338.81-296.1l-55.75-12.87L362 188.23l19.39 15.87A370.59 370.59 0 0 1 204.2 381.3l-15.88-19.4-176.6 75.69 12.89 55.82A24 24 0 0 0 48 512c256.1 0 464-207.49 464-464a24 24 0 0 0-18.59-23.39z\", \"M406 4.43l-69.77 162.69L362 188.23l75.66-176.49zM4.41 405.9l7.31 31.69 176.6-75.69-21.1-25.77z\"]]\n};\nvar faPhoneAlt = {\n prefix: 'fad',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", [\"M191.18 154.51a23.9 23.9 0 0 0 6.91-28l-48-112a24.16 24.16 0 0 0-27.5-13.9L106 4.43l69.73 162.69zm153.6 181.62l162.81 69.77 3.8-16.49a24.3 24.3 0 0 0-14-27.61l-112-48a24 24 0 0 0-28 6.91zM0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.59l12.89-55.82-176.61-75.69-15.88 19.4a370.59 370.59 0 0 1-177.21-177.2L150 188.23 74.34 11.74 18.59 24.61A24 24 0 0 0 0 48z\", \"M74.34 11.74L150 188.23l25.79-21.11L106 4.43zm270.44 324.39l-21.1 25.77 176.6 75.69 7.31-31.69z\"]]\n};\nvar faPhoneLaptop = {\n prefix: 'fad',\n iconName: 'phone-laptop',\n icon: [640, 512, [], \"f87a\", [\"M128 64h320v32h64V48a48.1 48.1 0 0 0-47.91-48H111.91A48.1 48.1 0 0 0 64 48v240H16a16 16 0 0 0-16 16v16a64.14 64.14 0 0 0 63.91 64H352v-96H128z\", \"M604 128H420a36 36 0 0 0-36 36v312a36 36 0 0 0 36 36h184a36 36 0 0 0 36-36V164a36 36 0 0 0-36-36zm-28 320H448V192h128z\"]]\n};\nvar faPhoneOffice = {\n prefix: 'fad',\n iconName: 'phone-office',\n icon: [576, 512, [], \"f67d\", [\"M192 0h-64a32 32 0 0 0-32 32v352a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm304 384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM368 384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M528 32H256v352a64.07 64.07 0 0 1-64 64h-64a64.07 64.07 0 0 1-64-64V32H48A48 48 0 0 0 0 80v384a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM384 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H320V96h192z\"]]\n};\nvar faPhonePlus = {\n prefix: 'fad',\n iconName: 'phone-plus',\n icon: [512, 512, [], \"f4d2\", [\"M144 16v64h64a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-64v64a16 16 0 0 1-16 16H96a16 16 0 0 1-16-16v-64H16a16 16 0 0 1-16-16V96a16 16 0 0 1 16-16h64V16A16 16 0 0 1 96 0h32a16 16 0 0 1 16 16z\", \"M512 48c0 256.5-207.9 464-464 464a24 24 0 0 1-23.4-18.6l-24-104a24.29 24.29 0 0 1 14-27.6l112-48a24 24 0 0 1 28 6.9l49.6 60.6a370.61 370.61 0 0 0 177.2-177.2l-60.6-49.6a23.94 23.94 0 0 1-6.9-28l48-112A24.16 24.16 0 0 1 389.41.61l104 24A24 24 0 0 1 512 48z\"]]\n};\nvar faPhoneRotary = {\n prefix: 'fad',\n iconName: 'phone-rotary',\n icon: [512, 512, [], \"f8d3\", [\"M256 240a72 72 0 1 0 72 72 72 72 0 0 0-72-72zm250.18-117C436.76 65 347.38 32 256 32S75.24 65 5.82 123A16.45 16.45 0 0 0 0 135.64V192a16 16 0 0 0 16 16h70.11a16 16 0 0 0 14.31-8.85L128 128c39.9-17.28 83.2-24 128-24 44.77 0 88.07 6.72 128 24l27.58 71.15a16 16 0 0 0 14.31 8.85H496a16 16 0 0 0 16-16v-56.36a16.45 16.45 0 0 0-5.82-12.64z\", \"M475.78 376.62L370.43 192.25A64 64 0 0 0 314.86 160H197.14a64 64 0 0 0-55.57 32.25L36.22 376.62A32 32 0 0 0 32 392.5V448a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32v-55.5a32 32 0 0 0-4.22-15.88zM256 384a72 72 0 1 1 72-72 72 72 0 0 1-72 72z\"]]\n};\nvar faPhoneSlash = {\n prefix: 'fad',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", [\"M377.91 126.51l48-112a24.16 24.16 0 0 1 27.5-13.9l104 24A24 24 0 0 1 576 48a462 462 0 0 1-100.17 288l-76-58.76a367.76 367.76 0 0 0 45.6-73.17l-60.6-49.6a23.94 23.94 0 0 1-6.92-27.96zm-109.74 254.9l-49.6-60.6a24 24 0 0 0-28-6.9l-112 48a24 24 0 0 0-13.9 27.5l24 104a24 24 0 0 0 23.4 18.6 461.2 461.2 0 0 0 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.69-33.6 18.1z\", \"M3.37 31.41L23 6.21a16.06 16.06 0 0 1 22.5-2.8l588.3 454.7a15.85 15.85 0 0 1 2.9 22.3l-19.6 25.3a16.06 16.06 0 0 1-22.5 2.8L6.17 53.81a15.93 15.93 0 0 1-2.8-22.4z\"]]\n};\nvar faPhoneSquare = {\n prefix: 'fad',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM94 416a15 15 0 0 1-14.62-11.63l-15-65a15 15 0 0 1 8.7-17.16l70-30a15 15 0 0 1 17.52 4.29l31 37.89a231.87 231.87 0 0 0 110.79-110.78l-37.89-31a15 15 0 0 1-4.29-17.52l30-70a15 15 0 0 1 17.16-8.7l65 15A15 15 0 0 1 384 126c0 160.29-129.95 290-290 290z\", \"M73.09 322.21l70-30a15 15 0 0 1 17.52 4.29l31 37.89a231.91 231.91 0 0 0 110.78-110.78l-37.89-31a15 15 0 0 1-4.29-17.52l30-70a15 15 0 0 1 17.16-8.7l65 15A15 15 0 0 1 384 126c0 160.29-129.94 290-290 290a15 15 0 0 1-14.62-11.63l-15-65a15 15 0 0 1 8.71-17.16z\"]]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fad',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.38 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15 15 0 0 1 11.63-14.61l65-15a15 15 0 0 1 17.16 8.7l30 70a15 15 0 0 1-4.29 17.52l-37.89 31A231.94 231.94 0 0 0 256.4 334.39l31-37.89a15 15 0 0 1 17.52-4.29l70 30a15 15 0 0 1 8.7 17.16z\", \"M383.62 339.37l-15 65A15 15 0 0 1 354 416C193.94 416 64 286.29 64 126a15 15 0 0 1 11.63-14.61l65-15a15 15 0 0 1 17.16 8.7l30 70a15 15 0 0 1-4.29 17.52l-37.89 31a231.92 231.92 0 0 0 110.78 110.78l31-37.89a15 15 0 0 1 17.52-4.29l70 30a15 15 0 0 1 8.71 17.16z\"]]\n};\nvar faPhoneVolume = {\n prefix: 'fad',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", [\"M292.94 49.23a12.06 12.06 0 0 0-17.85-1.31l-5.82 5.58A12 12 0 0 0 268 69.43a96.12 96.12 0 0 1 0 117.14 12 12 0 0 0 1.29 15.93l5.82 5.58a12.06 12.06 0 0 0 17.85-1.31 128.18 128.18 0 0 0-.02-157.54zm46-44.94a12 12 0 0 0-17.55-.94l-5.8 5.56a12 12 0 0 0-.93 16.38 160.22 160.22 0 0 1 0 205.42 12 12 0 0 0 .93 16.38l5.8 5.56a12 12 0 0 0 17.55-.94 192.25 192.25 0 0 0-.03-247.42zm-110.5 88.6l-6 5.73a12.09 12.09 0 0 0-2.27 14.38 32 32 0 0 1 0 29.94 12.09 12.09 0 0 0 2.26 14.41l6 5.73a12.05 12.05 0 0 0 18.72-2.58 64.07 64.07 0 0 0 0-65.06 12.05 12.05 0 0 0-18.74-2.55z\", \"M84.38 182.24a265.55 265.55 0 0 0 0 179.52l55.81-5.58a17.18 17.18 0 0 1 17.67 10.71l32.4 81a17.17 17.17 0 0 1-6.85 20.95l-64.81 40.55A17.2 17.2 0 0 1 97.33 507c-129.87-129.91-129.68-340.29 0-470a17.2 17.2 0 0 1 21.27-2.42l64.81 40.51a17.18 17.18 0 0 1 6.85 21l-32.41 81a17.18 17.18 0 0 1-17.66 10.72z\"]]\n};\nvar faPhotoVideo = {\n prefix: 'fad',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", [\"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9z\", \"M416 160H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]]\n};\nvar faPi = {\n prefix: 'fad',\n iconName: 'pi',\n icon: [512, 512, [], \"f67e\", [\"M128 286.46a169.35 169.35 0 0 1-36.62 105.62c-7.27 9.18-5.71 22.57 2.56 30.85L128.05 457c10.25 10.29 26.95 9 36.12-2.24A264.57 264.57 0 0 0 224 286.46V144h-96zm375 79.79l-37.46-30A24 24 0 0 0 431.8 340L414 361.67a16.84 16.84 0 0 1-30-10.51V144h-96v202.58c0 55 37.32 105.36 91.32 115.42 42.26 7.87 83.62-7.87 109.62-40.34l17.8-21.66a24 24 0 0 0-3.74-33.75z\", \"M512 72v48a24 24 0 0 1-24 24H16c-14.22 0-21.36-17.23-11.28-27.31l49.94-49.95A64 64 0 0 1 99.91 48H488a24 24 0 0 1 24 24z\"]]\n};\nvar faPiano = {\n prefix: 'fad',\n iconName: 'piano',\n icon: [512, 512, [], \"f8d4\", [\"M512,384v96a32,32,0,0,1-32,32H32A32,32,0,0,1,0,480V384H48v80H464V384Z\", \"M512,327.55V384H432v40a8,8,0,0,1-8,8H408a8,8,0,0,1-8-8V384H368v40a8,8,0,0,1-8,8H344a8,8,0,0,1-8-8V384H240v40a8,8,0,0,1-8,8H216a8,8,0,0,1-8-8V384H176v40a8,8,0,0,1-8,8H152a8,8,0,0,1-8-8V384H112v40a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V384H0V184.45A184.45,184.45,0,0,1,184.45,0h15.1A184.45,184.45,0,0,1,384,184.45h0a64,64,0,0,0,35.38,57.24l57.24,28.62A64,64,0,0,1,512,327.55Z\"]]\n};\nvar faPianoKeyboard = {\n prefix: 'fad',\n iconName: 'piano-keyboard',\n icon: [576, 512, [], \"f8d5\", [\"M576 224v192a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32V224h48v176h480V224z\", \"M576 96v128H464v80a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-80h-80v80a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-80h-80v80a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-80H0V96a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32z\"]]\n};\nvar faPie = {\n prefix: 'fad',\n iconName: 'pie',\n icon: [576, 512, [], \"f705\", [\"M88.75 426.08l-31-92.88c32.91-6.57 51.26-23.5 59.6-29.2h.22c10.17 7 36.21 32 85.34 32 50.09 0 78-27 85.28-32h.08c10.11 7 36.2 32 85.26 32s75.13-25.06 85.25-32h.06c7 4.8 26.35 22.58 59.46 29.2l-31 92.88A32 32 0 0 1 456.94 448H119.07a32 32 0 0 1-30.32-21.92z\", \"M544 240c-6.44 0-10.37-1.2-14.47-3.52C494.93 136.17 400.07 64 288 64S81 136.21 46.45 236.55c-4.07 2.28-8 3.45-14.45 3.45a32 32 0 0 0 0 64c32 0 50-13.47 61.92-22.39 9.08-6.8 12.83-9.61 23.53-9.61s14.47 2.81 23.55 9.61c11.91 8.92 29.89 22.39 61.91 22.39s50-13.48 61.88-22.41c9-6.78 12.8-9.59 23.45-9.59s14.39 2.81 23.44 9.59c11.89 8.92 29.86 22.41 61.86 22.41s49.95-13.48 61.84-22.41c9.05-6.78 12.8-9.59 23.44-9.59s14.34 2.81 23.38 9.58C494.06 290.52 512 304 544 304a32 32 0 0 0 0-64zm-337.69-88.84l-16 32c-9.44 18.83-38.17 4.79-28.62-14.31l16-32c9.53-18.85 38.09-4.63 28.62 14.31zM304 176c0 21.17-32 21.18-32 0v-32c0-21.17 32-21.18 32 0zm81.69 7.16l-16-32c-9.48-18.95 19.13-33.19 28.62-14.31l16 32c9.53 19.05-19.17 33.15-28.62 14.31z\"]]\n};\nvar faPig = {\n prefix: 'fad',\n iconName: 'pig',\n icon: [576, 512, [], \"f706\", [\"M560 192h-29.51a159.88 159.88 0 0 0-37.38-52.46L512 64h-32c-29.4 0-55.39 13.5-73 34.32-7.57-1.1-15.12-2.32-23-2.32H256c-94.82 0-160 78.88-160 160a159.75 159.75 0 0 0 64 128v80a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-48h128v48a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-80.72A160.37 160.37 0 0 0 511.28 352H560a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zm-128 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M51.26 223.52a24 24 0 0 1-18.74-28.3C34.74 183.82 45.4 176 57 176h1a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6C29.5 144 4.1 164.4.47 192.62a54.64 54.64 0 0 0-.47 7.23A56.08 56.08 0 0 0 56 256h40a155.05 155.05 0 0 1 3.37-32H56a23.63 23.63 0 0 1-4.74-.48zM432 224a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faPiggyBank = {\n prefix: 'fad',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", [\"M560 224h-29.51a159.88 159.88 0 0 0-37.38-52.46L512 96h-32c-29.4 0-55.39 13.5-73 34.32-7.57-1.1-15.12-2.32-23-2.32H256c-94.82 0-160 78.88-160 160a159.75 159.75 0 0 0 64 128v80a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-48h128v48a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-80.72A160.37 160.37 0 0 0 511.28 384H560a16 16 0 0 0 16-16V240a16 16 0 0 0-16-16zm-128 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M51.26 255.52a24 24 0 0 1-18.74-28.3C34.74 215.82 45.4 208 57 208h1a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6C29.5 176 4.1 196.4.47 224.62a54.64 54.64 0 0 0-.47 7.23A56.08 56.08 0 0 0 56 288h40a155.05 155.05 0 0 1 3.37-32H56a23.63 23.63 0 0 1-4.74-.48zM432 256a16 16 0 1 0 16 16 16 16 0 0 0-16-16zM306.5 0a96 96 0 0 0-88.81 132.51A162.64 162.64 0 0 1 256 128h128a104.31 104.31 0 0 1 12.71.88A96.06 96.06 0 0 0 306.5 0z\"]]\n};\nvar faPills = {\n prefix: 'fad',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", [\"M299.7 226.3a8.21 8.21 0 0 0-12.3.8c-45.3 62.5-40.4 150.1 15.9 206.4s143.9 61.2 206.4 15.9a8.14 8.14 0 0 0 .8-12.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9a8.14 8.14 0 0 0-.8 12.3l210.8 210.8a8.21 8.21 0 0 0 12.3-.8c45.3-62.6 40.5-150.1-15.9-206.4zM112 32A111.94 111.94 0 0 0 0 144v112h224V144A111.94 111.94 0 0 0 112 32z\", \"M224 256v112a112 112 0 0 1-224 0V256z\"]]\n};\nvar faPizza = {\n prefix: 'fad',\n iconName: 'pizza',\n icon: [576, 512, [], \"f817\", [\"M380.61 131.55a175.76 175.76 0 0 0-248.61-.13l-.14.13c-68.68 68.73-68.68 180.17 0 248.9a175.77 175.77 0 0 0 248.58.13l.13-.13L256.25 256zM160.25 280a24 24 0 0 1 0-48 24 24 0 0 1 0 48zm48-96a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm72 184a24 24 0 1 1-24-24 24 24 0 0 1 24 24zm174.94-224.92L342.35 256l112.84 112.93a176.6 176.6 0 0 0 0-225.85zM424.1 288a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M256.25 392a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm-48-256a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm195 267.08c-81.87 81.92-215 81.22-296-2.11-77-79.19-77-210.74 0-289.94 81-83.33 214.14-84 296-2.11l22-22.07c6.46-6.46 6.44-17.36-.42-23.39-112.89-99.22-292.24-82.09-382.21 51.37-56.83 84.3-56.83 198.05 0 282.34 90 133.46 269.32 150.59 382.23 51.37 6.86-6 6.88-16.93.42-23.39zm120-302.95c-5.79-7.55-17.22-7.92-23.95-1.19l-21.42 21.44c66.7 77.84 66.7 193.4 0 271.24l21.42 21.44c6.73 6.73 18.16 6.37 23.95-1.19a256.62 256.62 0 0 0-.01-311.74zM160.25 232a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm263.85 8a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faPizzaSlice = {\n prefix: 'fad',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", [\"M100.39 112.19L.54 491.64a16.2 16.2 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M128 352a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm48-152a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm335.76 145.86C490.88 165.08 340.77 17.32 158.86.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.46 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9zM280 304a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faPlaceOfWorship = {\n prefix: 'fad',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", [\"M620.61 366.55L512 320v192h112a16 16 0 0 0 16-16V396a32 32 0 0 0-19.39-29.45zM0 396v100a16 16 0 0 0 16 16h112V320L19.39 366.55A32 32 0 0 0 0 396z\", \"M416 102.63v115l48.46 29.08A32 32 0 0 1 480 274.12V512h-96v-96a64 64 0 0 0-128 0v96h-96V274.12a32 32 0 0 1 15.54-27.44L224 217.6v-115a32 32 0 0 1 9.38-22.6l75.31-75.31a16 16 0 0 1 22.62 0L406.62 80a32 32 0 0 1 9.38 22.63z\"]]\n};\nvar faPlane = {\n prefix: 'fad',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", [\"M214.86 192h150.85L260.61 8.06A16 16 0 0 0 246.71 0h-65.5a16 16 0 0 0-15.38 20.39zm-49 299.6a16 16 0 0 0 15.35 20.4h65.5a16 16 0 0 0 13.89-8.06L365.71 320H214.86z\", \"M480 320H112l-43.2 57.6A16 16 0 0 1 56 384H16A16 16 0 0 1 .49 364.12L32 256 .49 147.88A16 16 0 0 1 16 128h40a16 16 0 0 1 12.8 6.4L112 192h368c35.35 0 96 28.65 96 64s-60.65 64-96 64z\"]]\n};\nvar faPlaneAlt = {\n prefix: 'fad',\n iconName: 'plane-alt',\n icon: [576, 512, [], \"f3de\", [\"M197.2 200.4c-32.6 1 150.5-.4 150.5-.4l-38.6-72H324a12 12 0 0 0 12-12V76a12 12 0 0 0-12-12h-49.2L243.5 5.7A12.18 12.18 0 0 0 233.3 0h-57.8a11.94 11.94 0 0 0-11.6 15zm0 111.2L163.9 497a12 12 0 0 0 11.6 15h57.8a12 12 0 0 0 10.2-5.7l31.3-58.3H324a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-14.9l38.6-72s-183.1-1.4-150.5-.4z\", \"M576 256c0 30.9-46.6 56-104 56l-274.8-.4a755.21 755.21 0 0 1-89.9-7.8l-39.8 66.4a12.08 12.08 0 0 1-10.3 5.8H14.6a12 12 0 0 1-11.7-14.4l16.5-82.8C6.9 271.9 0 264.1 0 256s6.9-15.9 19.4-22.8L2.8 150.4A12 12 0 0 1 14.6 136h42.6a12.08 12.08 0 0 1 10.3 5.8l39.8 66.4a755.21 755.21 0 0 1 89.9-7.8L472 200c57.4 0 104 25.1 104 56z\"]]\n};\nvar faPlaneArrival = {\n prefix: 'fad',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", [\"M640 464v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h608a16 16 0 0 1 16 16z\", \"M32.23 182.41L32 80.63a16.52 16.52 0 0 1 20.72-15.88l39.73 10.83a16.54 16.54 0 0 1 11 9.93l27.59 67.88 102.2 27.84L185.34 17A16.51 16.51 0 0 1 206.05.58l65.09 17.73a16.62 16.62 0 0 1 11.66 11.91l100.36 191.85 97.51 26.56c26.48 7.21 51.55 20.18 70.83 40 21.64 22.25 27.2 40.46 23.37 55S557.29 371 527.62 379.3c-26.44 7.36-54.52 5.85-81-1.36L159 299.59a62.52 62.52 0 0 1-25.47-13.93l-88.74-80c-6.53-5.91-12.37-14.34-12.56-23.25z\"]]\n};\nvar faPlaneDeparture = {\n prefix: 'fad',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", [\"M640 448v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h608a16 16 0 0 1 16 16z\", \"M636.11 59.08c7.23 14.56 5.24 35.17-13.07 63.65-16.31 25.37-40.28 44.74-67 58.31l-291 147.65a65.79 65.79 0 0 1-29.64 7.12l-130.52.19a33 33 0 0 1-24.33-10.71l-76.21-83a18.28 18.28 0 0 1 5.57-28.08L50 193.86a17.8 17.8 0 0 1 16.07 0l72.35 36.47 103.21-52.38L85.45 79.83a18.27 18.27 0 0 1 5.17-28.53l65.75-33.37a17.8 17.8 0 0 1 18 1.11l218.7 82.06 98.51-50c26.74-13.55 56.42-21.41 86.28-19.47 33.51 2.18 51.04 12.88 58.25 27.45z\"]]\n};\nvar faPlaneSlash = {\n prefix: 'fad',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", [\"M32.48,147.87,64,256,32.48,364.12A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.46,15.46,0,0,0,32.48,147.87ZM512,192H397.7L292.6,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L455.14,320H512c35.34,0,96-28.66,96-64S547.34,192,512,192Z\", \"M6.18,53.91A16,16,0,0,1,3.37,31.46L23,6.19A16,16,0,0,1,45.46,3.38L633.82,458.1a16,16,0,0,1,2.81,22.45L617,505.82a16,16,0,0,1-22.45,2.81Z\"]]\n};\nvar faPlanetMoon = {\n prefix: 'fad',\n iconName: 'planet-moon',\n icon: [576, 512, [], \"e01f\", [\"M448,288c0,123.71289-100.28906,224-224,224S0,411.71289,0,288a223.139,223.139,0,0,1,18.20312-88.4375C34.44531,228.56055,59.72266,256,89.71875,255.99805L114.74609,256a32.00934,32.00934,0,0,1,22.62891,9.37109L192,320v32a32.00158,32.00158,0,0,0,32,32c-.00781,0-.00391,39.58984,0,63.06836a16.03058,16.03058,0,0,0,17.60547,15.98437q5.25587-.5625,10.418-1.43359A28.68661,28.68661,0,0,0,272.918,446.166l40.32422-80.64844A63.99788,63.99788,0,0,0,320,336.89062V320a32.00033,32.00033,0,0,0-32-32H223.45312a37.32164,37.32164,0,0,1-26.38281-10.92773,32.00089,32.00089,0,0,1-1.54687-43.58985L245.25,176.125A64.01635,64.01635,0,0,0,256,140.62109c0-9.418-18.28906-47.91015-35.97656-76.41992L224,64C347.71094,64,448,164.28516,448,288Z\", \"M512,0a64,64,0,1,0,64,64A64.00066,64.00066,0,0,0,512,0ZM288,288H223.45312a37.32164,37.32164,0,0,1-26.38281-10.92773,32.00089,32.00089,0,0,1-1.54687-43.58985L245.25,176.125A64.01635,64.01635,0,0,0,256,140.62109c0-9.418-18.28906-47.91015-35.97656-76.41992A223.91914,223.91914,0,0,0,18.20312,199.5625C34.44531,228.56055,59.72266,256,89.71875,255.99805L114.74609,256a32.00934,32.00934,0,0,1,22.62891,9.37109L192,320v32a32.00158,32.00158,0,0,0,32,32c-.00781,0-.00391,39.58984,0,63.06836a16.03058,16.03058,0,0,0,17.60547,15.98437q5.25587-.5625,10.418-1.43359A28.68661,28.68661,0,0,0,272.918,446.166l40.32422-80.64844A63.99788,63.99788,0,0,0,320,336.89062V320A32.00033,32.00033,0,0,0,288,288Z\"]]\n};\nvar faPlanetRinged = {\n prefix: 'fad',\n iconName: 'planet-ringed',\n icon: [512, 512, [], \"e020\", [\"M323.33815,323.33517C186.95939,459.71018,46.2602,540.11093,9.06777,502.9165c-23.48893-23.4909.01172-88.30917,54.81792-167.21379a206.56361,206.56361,0,0,0,25.02022,43.78446c-22.45765,34.20607-32.036,58.99194-23.71941,67.31053,18.59817,18.59624,119.10094-51.75539,224.47885-157.13342C395.04325,184.2882,465.39675,83.78336,446.79858,65.18712c-8.32054-8.3186-33.10638,1.26176-67.31045,23.71748a206.52984,206.52984,0,0,0-43.78245-25.0183C414.61019,9.082,479.42839-14.42259,502.91732,9.06832,540.10975,46.2608,459.70909,186.96211,323.33815,323.33517Z\", \"M448.0994,176.28016c-31.96573,46.02281-74.52549,96.81528-124.76125,147.055-50.24357,50.24168-101.034,92.79954-147.05874,124.76531,75.41614,31.25675,165.47721,16.29343,226.79531-45.02474S479.35807,251.69834,448.0994,176.28016Zm-25.02022-43.78251A208.22535,208.22535,0,0,0,403.07472,108.911c-81.2288-81.23281-212.93555-81.23281-294.16435,0-81.22881,81.23085-81.22881,212.93385,0,294.1647A208.25527,208.25527,0,0,0,132.497,423.08023c42.25117-27.73908,98.93242-75.1799,157.1684-133.41595C347.90133,231.43018,395.34013,174.75473,423.07918,132.49765Z\"]]\n};\nvar faPlay = {\n prefix: 'fad',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", [\"M424.41 214.66L72.41 6.55C43.81-10.34 0 6.05 0 47.87V464c0 37.5 40.69 60.09 72.41 41.3l352-208c31.4-18.54 31.5-64.14 0-82.64zM321.89 283.5L112.28 407.35C91 420 64 404.58 64 379.8V132c0-24.78 27-40.16 48.28-27.54l209.61 123.95a32 32 0 0 1 0 55.09z\", \"M112.28 104.48l209.61 123.93a32 32 0 0 1 0 55.09L112.28 407.35C91 420 64 404.58 64 379.8V132c0-24.76 27-40.14 48.28-27.52z\"]]\n};\nvar faPlayCircle = {\n prefix: 'fad',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\", \"M371.7 280l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]]\n};\nvar faPlug = {\n prefix: 'fad',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", [\"M288,0a32,32,0,0,0-32,32V160h64V32A32,32,0,0,0,288,0ZM96,0A32,32,0,0,0,64,32V160h64V32A32,32,0,0,0,96,0Z\", \"M384,176v32a16,16,0,0,1-16,16H352v32A160.07,160.07,0,0,1,224,412.8V512H160V412.8A160.07,160.07,0,0,1,32,256V224H16A16,16,0,0,1,0,208V176a16,16,0,0,1,16-16H368A16,16,0,0,1,384,176Z\"]]\n};\nvar faPlus = {\n prefix: 'fad',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", [\"M176 448a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V304h-96zm64-416h-32a32 32 0 0 0-32 32v144h96V64a32 32 0 0 0-32-32z\", \"M448 240v32a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32v-32a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32z\"]]\n};\nvar faPlusCircle = {\n prefix: 'fad',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276a12 12 0 0 1-12 12h-92v92a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-92h-92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h92v-92a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v92h92a12 12 0 0 1 12 12z\", \"M400 284a12 12 0 0 1-12 12h-92v92a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-92h-92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h92v-92a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v92h92a12 12 0 0 1 12 12z\"]]\n};\nvar faPlusHexagon = {\n prefix: 'fad',\n iconName: 'plus-hexagon',\n icon: [576, 512, [], \"f300\", [\"M553.5 231.8l-112-192A48.14 48.14 0 0 0 400 16H176a48.09 48.09 0 0 0-41.5 23.8l-112 192a48.19 48.19 0 0 0 0 48.4l112 192A48.09 48.09 0 0 0 176 496h224a48.13 48.13 0 0 0 41.5-23.8l112-192a48.19 48.19 0 0 0 0-48.4zM432 284a12 12 0 0 1-12 12h-92v92a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-92h-92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h92v-92a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v92h92a12 12 0 0 1 12 12z\", \"M432 284a12 12 0 0 1-12 12h-92v92a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-92h-92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h92v-92a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v92h92a12 12 0 0 1 12 12z\"]]\n};\nvar faPlusOctagon = {\n prefix: 'fad',\n iconName: 'plus-octagon',\n icon: [512, 512, [], \"f301\", [\"M497.9 150.5L361.4 14.1A48 48 0 0 0 327.5 0H184.4a48 48 0 0 0-33.9 14.1L14.1 150.6A48 48 0 0 0 0 184.5v143.1a48 48 0 0 0 14.1 33.9l136.5 136.4a48 48 0 0 0 33.9 14.1h143.1a48 48 0 0 0 33.9-14.1l136.4-136.5a48 48 0 0 0 14.1-33.9V184.4a48 48 0 0 0-14.1-33.9zM400 284a12 12 0 0 1-12 12h-92v92a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-92h-92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h92v-92a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v92h92a12 12 0 0 1 12 12z\", \"M400 284a12 12 0 0 1-12 12h-92v92a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-92h-92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h92v-92a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v92h92a12 12 0 0 1 12 12z\"]]\n};\nvar faPlusSquare = {\n prefix: 'fad',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-32 252a12 12 0 0 1-12 12h-92v92a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-92H92a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h92v-92a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v92h92a12 12 0 0 1 12 12z\", \"M80 228a12 12 0 0 1 12-12h92v-92a12 12 0 0 1 12-12h56a12 12 0 0 1 12 12v92h92a12 12 0 0 1 12 12v56a12 12 0 0 1-12 12h-92v92a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-92H92a12 12 0 0 1-12-12z\"]]\n};\nvar faPodcast = {\n prefix: 'fad',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", [\"M224 0A223.88 223.88 0 0 0 0 224c0 90 52.6 165.65 125.74 201.41a6 6 0 0 0 8.53-6.31c-2.38-15.51-4.34-31-5.4-44.34a6 6 0 0 0-2.68-4.51A176 176 0 0 1 48 222.9c.59-96.24 79.29-174.65 175.53-174.9C320.79 47.75 400 126.8 400 224a176 176 0 0 1-80.65 147.87c-1 14-3.07 30.59-5.62 47.23a6 6 0 0 0 8.53 6.31C395.23 389.73 448 314.19 448 224A223.89 223.89 0 0 0 224 0zm98.45 325A143.63 143.63 0 0 0 368 216.43c-1.86-76.21-63.6-138.21-139.8-140.37C146.87 73.75 80 139.21 80 220a143.62 143.62 0 0 0 45.55 105 6 6 0 0 0 9.45-1.9 66.57 66.57 0 0 1 21.24-25.36 6 6 0 0 0 .63-9.19 96 96 0 1 1 134.26 0 6 6 0 0 0 .63 9.19A66.57 66.57 0 0 1 313 323.1a6 6 0 0 0 9.45 1.9z\", \"M224 312c-32.86 0-64 8.59-64 43.75 0 33.15 12.93 104.38 20.57 132.81 5.14 19 24.57 23.44 43.43 23.44s38.29-4.43 43.43-23.44c7.7-28.63 20.57-99.86 20.57-132.81 0-35.16-31.14-43.75-64-43.75zm0-24a64 64 0 1 0-64-64 64 64 0 0 0 64 64z\"]]\n};\nvar faPodium = {\n prefix: 'fad',\n iconName: 'podium',\n icon: [448, 512, [], \"f680\", [\"M384 224l-22.22 240H86.22L64 224z\", \"M400 464H48a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm32-320H113.68c6.2-30.29 29.85-54.3 61-61.55A47.72 47.72 0 0 0 208 96h64a48 48 0 0 0 0-96h-64a47.89 47.89 0 0 0-46.31 36C110.81 48.48 71.66 91.15 65 144H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\"]]\n};\nvar faPodiumStar = {\n prefix: 'fad',\n iconName: 'podium-star',\n icon: [448, 512, [], \"f758\", [\"M384 224l-22.22 240H86.22L64 224z\", \"M400 464H48a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-92.63-143a10.05 10.05 0 0 0-8.47-11.43l-45.6-6.7-20.4-41.4a10 10 0 0 0-17.9 0l-20.4 41.4-45.6 6.73a10 10 0 0 0-5.5 17.1l33 32.2-7.8 45.5a10 10 0 0 0 14.5 10.5l40.8-21.5 40.8 21.5a10 10 0 0 0 14.5-10.5l-7.8-45.5 33-32.2a10 10 0 0 0 2.87-5.7zM432 144H113.68c6.2-30.29 29.85-54.3 61-61.55A47.72 47.72 0 0 0 208 96h64a48 48 0 0 0 0-96h-64a47.89 47.89 0 0 0-46.31 36C110.81 48.48 71.66 91.15 65 144H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\"]]\n};\nvar faPoliceBox = {\n prefix: 'fad',\n iconName: 'police-box',\n icon: [384, 512, [], \"e021\", [\"M208,200a8.00039,8.00039,0,0,0,8,8h24V176H208Zm80,0V176H256v32h24A8.00039,8.00039,0,0,0,288,200Zm-80-40h32V128H216a8.00039,8.00039,0,0,0-8,8Zm80-24a8.00039,8.00039,0,0,0-8-8H256v32h32ZM104,208h24V176H96v24A8.00039,8.00039,0,0,0,104,208Zm24-80H104a8.00039,8.00039,0,0,0-8,8v24h32Zm48,72V176H144v32h24A8.00039,8.00039,0,0,0,176,200Zm0-64a8.00039,8.00039,0,0,0-8-8H144v32h32ZM208,16a16,16,0,0,0-32,0V32h32ZM368,464H16A15.99954,15.99954,0,0,0,0,480v16a16.00079,16.00079,0,0,0,16,16H368a16.00079,16.00079,0,0,0,16-16V480A15.99954,15.99954,0,0,0,368,464Z\", \"M352,464V88a23.99993,23.99993,0,0,0-24-24h-8.02344V48a15.99954,15.99954,0,0,0-16-16H80A15.99954,15.99954,0,0,0,64,48V64H56A23.99993,23.99993,0,0,0,32,88V464ZM96,136a8.00039,8.00039,0,0,1,8-8h24v32H96Zm0,40h32v32H104a8.00039,8.00039,0,0,1-8-8Zm80,136a8.00039,8.00039,0,0,1-8,8H104a8.00039,8.00039,0,0,1-8-8V248a8.00039,8.00039,0,0,1,8-8h64a8.00039,8.00039,0,0,1,8,8Zm0-112a8.00039,8.00039,0,0,1-8,8H144V176h32Zm0-40H144V128h24a8.00039,8.00039,0,0,1,8,8Zm64,48H216a8.00039,8.00039,0,0,1-8-8V176h32Zm0-48H208V136a8.00039,8.00039,0,0,1,8-8h24Zm48,40a8.00039,8.00039,0,0,1-8,8H256V176h32Zm0-40H256V128h24a8.00039,8.00039,0,0,1,8,8Z\"]]\n};\nvar faPoll = {\n prefix: 'fad',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", [\"M0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48H48A48 48 0 0 0 0 80zm112 304a16 16 0 0 1-16-16V240a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v128a16 16 0 0 1-16 16zm224-96a16 16 0 0 1 16 16v64a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-64a16 16 0 0 1 16-16zm-96-160a16 16 0 0 1 16 16v224a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V144a16 16 0 0 1 16-16z\", \"M160 368V240a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16zm128-64v64a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16zm-96-160v224a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V144a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16z\"]]\n};\nvar faPollH = {\n prefix: 'fad',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM96 144a16 16 0 0 1 16-16h128a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16zm96 224a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16zm160-96a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16z\", \"M112 192h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm64 128h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm160-96H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faPollPeople = {\n prefix: 'fad',\n iconName: 'poll-people',\n icon: [640, 512, [], \"f759\", [\"M616.12 32H248a23.94 23.94 0 0 0-24 23.88V168a23.94 23.94 0 0 0 23.88 24H616a23.94 23.94 0 0 0 24-23.88V56a23.94 23.94 0 0 0-23.88-24zM576 128H288V96h288zm40.12 192H248a23.94 23.94 0 0 0-24 23.88V456a23.94 23.94 0 0 0 23.88 24H616a23.94 23.94 0 0 0 24-23.88V344a23.94 23.94 0 0 0-23.88-24zM576 416H288v-32h288z\", \"M96 416H64a64.06 64.06 0 0 0-64 64v16a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-16a64.06 64.06 0 0 0-64-64zM80 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm48 240a48 48 0 1 0-48 48 48 48 0 0 0 48-48zM288 96v32h224V96zm0 320h128v-32H288zM96 128H64a64.06 64.06 0 0 0-64 64v16a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-16a64.06 64.06 0 0 0-64-64z\"]]\n};\nvar faPoo = {\n prefix: 'fad',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", [\"M451.4 369.1A71.77 71.77 0 0 0 408 240h-14.1A63.74 63.74 0 0 0 352 128h-5.9a94.61 94.61 0 0 0 5.9-32 96 96 0 0 0-96-96 93.1 93.1 0 0 0-15.1 1.5A79.79 79.79 0 0 1 176 128h-16a63.74 63.74 0 0 0-41.9 112H104a71.77 71.77 0 0 0-43.4 129.1A71.9 71.9 0 0 0 72 512h368a71.9 71.9 0 0 0 11.4-142.9zM320 256a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm-128 0a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53a8.2 8.2 0 0 1 7.8-11h175.4a8.2 8.2 0 0 1 7.8 11z\", \"M320 256a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-128 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faPooStorm = {\n prefix: 'fad',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", [\"M318.4 354l-88 152a12 12 0 0 1-22.1-8.8l23-97.2H172a12 12 0 0 1-11.9-13.6l16-120A12.06 12.06 0 0 1 188 256h68a12 12 0 0 1 11.6 15.1L250.3 336H308a12 12 0 0 1 10.4 18z\", \"M374.4 224.7c41 3.3 73.6 37.5 73.5 79.3a80.24 80.24 0 0 1-80 80h-30l8.1-14a44 44 0 0 0-38.1-66h-16l6.6-24.7A44 44 0 0 0 256 224h-68a44.26 44.26 0 0 0-43.7 38.2l-16 120a10.82 10.82 0 0 1 0 1.8H80a80.24 80.24 0 0 1-80-80c0-41.8 32.6-76 73.6-79.3A62 62 0 0 1 64 192a64.06 64.06 0 0 1 64-64h16A79.79 79.79 0 0 0 208.9 1.5 93.1 93.1 0 0 1 224 0a96 96 0 0 1 96 96 94.61 94.61 0 0 1-5.9 32h5.9a64.06 64.06 0 0 1 64 64 62 62 0 0 1-9.6 32.7z\"]]\n};\nvar faPoop = {\n prefix: 'fad',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", [\"M480 311v2a70.89 70.89 0 0 1-27.34 56 71.2 71.2 0 0 0-11.66-1H71a71.2 71.2 0 0 0-11.66 1A70.89 70.89 0 0 1 32 313v-2a71 71 0 0 1 71-71h306a71 71 0 0 1 71 71z\", \"M118.05 240H394a63.76 63.76 0 0 0-42-112h-5.88a98.21 98.21 0 0 0 4.36-50.78A94.18 94.18 0 0 0 240.91 1.55 79.78 79.78 0 0 1 176 128h-16a63.76 63.76 0 0 0-42 112zm333.33 129.17l.42-.33A71.12 71.12 0 0 0 441 368H71a70.69 70.69 0 0 0-10.76.84c.14.11.27.23.42.33A71.87 71.87 0 0 0 72 512h368a71.87 71.87 0 0 0 11.36-142.86z\"]]\n};\nvar faPopcorn = {\n prefix: 'fad',\n iconName: 'popcorn',\n icon: [512, 512, [], \"f819\", [\"M101.46,118a37.17,37.17,0,0,1,.33-37.43c9.11-16,28-23.66,45.57-20.12.34-16.64,11.46-32,29-37.43a43.36,43.36,0,0,1,38.82,6.08A41.63,41.63,0,0,1,242.5,2c22.27-6.78,46.23,4.42,53.33,25.54a4.22,4.22,0,0,1,.68,1.92A43.29,43.29,0,0,1,335.65,23c17.53,5.43,28.67,20.79,29,37.43C382.2,57,401.09,64.6,410.2,80.6a37.88,37.88,0,0,1,.33,37.43,42.7,42.7,0,0,1,33.09,20.79c3.91,6.75,4.76,14,4.24,21.12H64.13c-.5-7.12.35-14.38,4.27-21.12C75.14,126.67,88,119.31,101.46,118Z\", \"M64,192h81.56l28,256h45.05L197.05,192H315L293.39,448h45l28-256H448L404.09,484.73A32,32,0,0,1,372.44,512H139.56a32,32,0,0,1-31.65-27.25Z\"]]\n};\nvar faPortalEnter = {\n prefix: 'fad',\n iconName: 'portal-enter',\n icon: [512, 512, [], \"e022\", [\"M512,256c0,141.38477-35.81641,256-80,256-40.78906,0-74.38281-97.75781-79.3125-224.00781H384a32.001,32.001,0,0,0,0-64.002H352.69141C357.625,97.74805,391.21094,0,432,0,476.18359,0,512,114.61523,512,256Z\", \"M113.6875,317.47852,98.875,351.99414H32a32.001,32.001,0,0,0,0,64.00195h77.4375a47.9242,47.9242,0,0,0,44.125-29.07812l8.78125-20.5332-10.65625-6.29688A95.3862,95.3862,0,0,1,113.6875,317.47852ZM272,96.00195a48.001,48.001,0,1,0-48-48A48.00237,48.00237,0,0,0,272,96.00195ZM384,223.99023H339.96875l-26.0625-53.25195c-12.5-25.54687-35.46875-44.21875-61.78125-50.9375L181.0625,98.6582a95.69075,95.69075,0,0,0-80.875,17.14258L60.5625,146.207A31.99634,31.99634,0,1,0,99.5,196.99023l39.6875-30.4082c7.65625-5.89062,17.4375-8,25.25-6.14062l14.6875,4.375-37.4375,87.39453A64.16017,64.16017,0,0,0,168,332.52539l84.9375,50.17383L225.5,470.41992a31.96894,31.96894,0,0,0,20.9375,40.0957,31.9422,31.9422,0,0,0,40.125-20.9707l31.625-101.06445a48.16,48.16,0,0,0-21.625-54.39258l-61.25-36.14258,31.3125-78.2832,20.28125,41.43945A48.2689,48.2689,0,0,0,330,287.99219h54a32.001,32.001,0,0,0,0-64.002Z\"]]\n};\nvar faPortalExit = {\n prefix: 'fad',\n iconName: 'portal-exit',\n icon: [512, 512, [], \"e023\", [\"M142.39844,415.99609C127.73438,474.47266,105.25,512,80,512,35.81641,512,0,397.38477,0,256S35.81641,0,80,0c32.41406,0,60.25781,61.79492,72.82812,150.47461-10.21484,11.23437-11.78124,28.14062-2.20312,40.59375a31.09936,31.09936,0,0,0,7.17969,6.27148C159.19141,216.207,160,235.78125,160,256a768.85148,768.85148,0,0,1-5.86719,95.99414H128a32.001,32.001,0,0,0,0,64.00195Z\", \"M368,96.00195a48.001,48.001,0,1,0-48-48A48.00237,48.00237,0,0,0,368,96.00195ZM209.6875,317.47852,194.875,351.99414H128a32.001,32.001,0,0,0,0,64.00195h77.4375a47.9242,47.9242,0,0,0,44.125-29.07812l8.78125-20.5332-10.65625-6.29688A95.3862,95.3862,0,0,1,209.6875,317.47852ZM480,223.99023H435.96875l-26.0625-53.25195c-12.5-25.54687-35.46875-44.21875-61.78125-50.9375L277.0625,98.6582a95.69075,95.69075,0,0,0-80.875,17.14258L156.5625,146.207A31.99634,31.99634,0,1,0,195.5,196.99023l39.6875-30.4082c7.65625-5.89062,17.4375-8,25.25-6.14062l14.6875,4.375-37.4375,87.39453A64.16017,64.16017,0,0,0,264,332.52539l84.9375,50.17383L321.5,470.41992a31.96894,31.96894,0,0,0,20.9375,40.0957,31.9422,31.9422,0,0,0,40.125-20.9707l31.625-101.06445a48.16,48.16,0,0,0-21.625-54.39258l-61.25-36.14258,31.3125-78.2832,20.28125,41.43945A48.2689,48.2689,0,0,0,426,287.99219h54a32.001,32.001,0,0,0,0-64.002Z\"]]\n};\nvar faPortrait = {\n prefix: 'fad',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", [\"M336 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM192 128a64 64 0 1 1-64 64 64.06 64.06 0 0 1 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5a103 103 0 0 0 79.6 0h5c37.1 0 67.2 25.8 67.2 57.6z\", \"M192 256a64 64 0 1 0-64-64 64.06 64.06 0 0 0 64 64zm44.8 32h-5a103 103 0 0 1-79.6 0h-5c-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6z\"]]\n};\nvar faPoundSign = {\n prefix: 'fad',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", [\"M8 236v40a12 12 0 0 0 12 12h28v-64H20a12 12 0 0 0-12 12zm204-12h-84v64h84a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12z\", \"M48 416V158c0-73.26 58-126 139.93-126 48.65 0 85.19 22.56 101.58 34.93a12 12 0 0 1 2.31 16.81 2.56 2.56 0 0 1-.2.26l-28.49 35.51a12 12 0 0 1-15.69 2.69c-11.77-7.35-34-18.85-57.65-18.85-37.23 0-61.79 24.82-61.79 57.08v254.42h122.51V364a12 12 0 0 1 12-12H308a12 12 0 0 1 12 12v104a12 12 0 0 1-12 12H12a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12z\"]]\n};\nvar faPowerOff = {\n prefix: 'fad',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", [\"M272 0a23.94 23.94 0 0 1 24 24v240a23.94 23.94 0 0 1-24 24h-32a23.94 23.94 0 0 1-24-24V24a23.94 23.94 0 0 1 24-24z\", \"M504 256c0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4A248 248 0 0 1 111.8 54.2a24.07 24.07 0 0 1 35 7.7L162.6 90a24 24 0 0 1-6.6 31 168 168 0 0 0 100 303c91.6 0 168.6-74.2 168-169.1a168.07 168.07 0 0 0-68.1-134 23.86 23.86 0 0 1-6.5-30.9l15.8-28.1a24 24 0 0 1 34.8-7.8A247.51 247.51 0 0 1 504 256z\"]]\n};\nvar faPray = {\n prefix: 'fad',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", [\"M256 128a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\", \"M201.22 269l-34.8 64.87 109.86 109.85C301.77 469.21 282.08 512 248 512H40a40 40 0 0 1 0-80h91.56l-44.81-34.89C43.87 369.73 29.16 317 52.56 273.36l49.37-92c11.12-20.65 32.18-34.44 56.37-36.92 24.78-2.59 48.56 6.94 64 25.33l38.91 46.31 57.44-47A40 40 0 1 1 369.34 231l-88 72a40 40 0 0 1-56-5.22z\"]]\n};\nvar faPrayingHands = {\n prefix: 'fad',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", [\"M640 384v96c0 10.82-8.52 32-32 32a32.16 32.16 0 0 1-8.06-1l-179.19-46.65A117.32 117.32 0 0 1 336 352V224a32 32 0 0 1 64 0v80a16 16 0 0 0 32 0v-76.54a95.86 95.86 0 0 0-13.69-49.39L340.56 48.48a31.8 31.8 0 0 1 53.27-34.7c.2.24.61.21.79.48l117.26 175.89A95.66 95.66 0 0 1 528 243.38v80.23l90.12 30A32 32 0 0 1 640 384z\", \"M32 511.92c-23.48 0-32-21.18-32-32v-96a32 32 0 0 1 21.88-30.35l90.12-30V243.3a95.66 95.66 0 0 1 16.12-53.23l117.26-175.9c.17-.27.59-.25.79-.48a31.8 31.8 0 0 1 53.27 34.7L221.69 178A95.86 95.86 0 0 0 208 227.37v76.55a16 16 0 1 0 32 0v-80a32 32 0 1 1 64 0v128a117.35 117.35 0 0 1-84.75 112.35L40.06 510.89a32 32 0 0 1-8.06 1.03z\"]]\n};\nvar faPrescription = {\n prefix: 'fad',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", [\"M379.32 274l-78.06 78L256 397.29l-78 78.07a16 16 0 0 1-22.63 0l-22.63-22.63a16 16 0 0 1 0-22.63l201.32-201.38a16 16 0 0 1 22.63 0l22.63 22.63a16 16 0 0 1 0 22.65z\", \"M379.32 430.09l-78.06-78-45.26 45.2 78.06 78.06a16 16 0 0 0 22.63 0l22.63-22.63a16 16 0 0 0 0-22.63zM172 222.78c47.27-6 84-45.89 84-94.78a96 96 0 0 0-96-96H16A16 16 0 0 0 0 48v256a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-80h18.75l128 128L256 306.78zM64 160V96h96a32 32 0 1 1 0 64z\"]]\n};\nvar faPrescriptionBottle = {\n prefix: 'fad',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", [\"M32 128h320v352a32.09 32.09 0 0 1-32 32H64a32.09 32.09 0 0 1-32-32v-64h120a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H32v-64h120a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H32v-64h120a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H32z\", \"M360 0H24A24.07 24.07 0 0 0 0 24v48a24.07 24.07 0 0 0 24 24h336a24.07 24.07 0 0 0 24-24V24a24.07 24.07 0 0 0-24-24zM152 384H32v32h120a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-192H32v32h120a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0 96H32v32h120a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fad',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", [\"M32 480a32.09 32.09 0 0 0 32 32h256a32.09 32.09 0 0 0 32-32V128H32zm64-184a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8z\", \"M280 288h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zM360 0H24A24.07 24.07 0 0 0 0 24v48a24.07 24.07 0 0 0 24 24h336a24.07 24.07 0 0 0 24-24V24a24.07 24.07 0 0 0-24-24z\"]]\n};\nvar faPresentation = {\n prefix: 'fad',\n iconName: 'presentation',\n icon: [576, 512, [], \"f685\", [\"M480 64h64v256a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32V64h64v224h384z\", \"M560 0H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zM320 386.75V352h-64v34.75l-75.31 75.31a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0L288 445.25l62.06 62.06a16 16 0 0 0 22.63 0l22.62-22.62a16 16 0 0 0 0-22.63z\"]]\n};\nvar faPrint = {\n prefix: 'fad',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", [\"M64 480a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32v-96H64zM368 96a16 16 0 0 1-16-16V0H96a32 32 0 0 0-32 32v192h384V96z\", \"M368 96h80v-4.58a17.92 17.92 0 0 0-5.25-12.67l-73.43-73.5A18 18 0 0 0 356.57 0H352v80a16 16 0 0 0 16 16zm80 96v32H64v-32a64 64 0 0 0-64 64v112a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16V256a64 64 0 0 0-64-64zm-16 136a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faPrintSearch = {\n prefix: 'fad',\n iconName: 'print-search',\n icon: [672, 512, [], \"f81a\", [\"M366.86 433.14A159.41 159.41 0 0 1 333.33 384H64v96a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32v-3.2a159.82 159.82 0 0 1-81.14-43.66zM368 96a16 16 0 0 1-16-16V0H96a32 32 0 0 0-32 32v192h288a162.84 162.84 0 0 1 14.88-17.14A159.82 159.82 0 0 1 448 163.2V96z\", \"M368 96h80v-4.58a17.92 17.92 0 0 0-5.25-12.67l-73.43-73.5A18 18 0 0 0 356.57 0H352v80a16 16 0 0 0 16 16zm-16 128H64v-32a64 64 0 0 0-64 64v112a16 16 0 0 0 16 16h317.33c-.24-.57-.5-1.14-.74-1.71A159.92 159.92 0 0 1 352 224zm315.31 238.06l-77.41-77.41A126.65 126.65 0 0 0 608 320a128 128 0 1 0-128 128c23.7 0 45.61-6.88 64.65-18.11l77.41 77.42a16 16 0 0 0 22.63 0l22.62-22.62a16 16 0 0 0 0-22.63zM480 384a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]]\n};\nvar faPrintSlash = {\n prefix: 'fad',\n iconName: 'print-slash',\n icon: [640, 512, [], \"f686\", [\"M176 104.26V48h240v32a16 16 0 0 0 16 16h32v96H289.53L538 384h22a16 16 0 0 0 16-16V256a64 64 0 0 0-64-64V77.25a32 32 0 0 0-9.37-22.63L457.37 9.37A32 32 0 0 0 434.74 0H160a32 32 0 0 0-32 32v35.16zM496 248a24 24 0 1 1-24 24 24 24 0 0 1 24-24zm-64 216l59.29 45.72A31.48 31.48 0 0 1 480 512H160a32 32 0 0 1-32-32v-96H80a16 16 0 0 1-16-16V256a63.83 63.83 0 0 1 29.47-53.75L328 384H176v80z\", \"M636.64 480.55L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45z\"]]\n};\nvar faProcedures = {\n prefix: 'fad',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", [\"M160 224a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm368 0H272a16 16 0 0 0-16 16v144h384v-48.09A111.93 111.93 0 0 0 528 224z\", \"M136 96h126.1l27.6 55.2a16 16 0 0 0 28.6 0L368 51.83 390.1 96H512a16 16 0 0 0 0-32H409.9L382.3 8.83a16 16 0 0 0-28.6 0l-49.7 99.4-19.9-39.8a8 8 0 0 0-7.2-4.4H136a8 8 0 0 0-8 8V88a8 8 0 0 0 8 8zm120 288H64V144a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v352a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-48h512v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V384z\"]]\n};\nvar faProjectDiagram = {\n prefix: 'fad',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", [\"M416 128H164.65l91.63 160H256a63.79 63.79 0 0 0-55.12 32L54.78 64H416z\", \"M384 320H256a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32zM160 0H32A32 32 0 0 0 0 32v128a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm448 0H480a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32z\"]]\n};\nvar faProjector = {\n prefix: 'fad',\n iconName: 'projector',\n icon: [640, 512, [], \"f8d6\", [\"M592 192h-95.41C543.47 215.77 576 263.93 576 320c0 61.88-39.44 114.31-94.34 134.64L493 499.88A16 16 0 0 0 508.49 512h39A16 16 0 0 0 563 499.88L576 448h16a48 48 0 0 0 48-48V240a48 48 0 0 0-48-48zm-224.59 0H48a48 48 0 0 0-48 48v160a48 48 0 0 0 48 48h16l13 51.88A16 16 0 0 0 92.49 512h39A16 16 0 0 0 147 499.88L160 448h207.41C320.53 424.23 288 376.07 288 320s32.53-104.23 79.41-128zM96 352a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm325.66-218.35a16 16 0 0 0 22.62 0l67.88-67.88a16 16 0 0 0 0-22.63l-11.32-11.31a16 16 0 0 0-22.62 0l-67.88 67.89a16 16 0 0 0 0 22.62zM440 0h-16a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zM323.72 133.65a16 16 0 0 0 22.62 0l11.32-11.31a16 16 0 0 0 0-22.62l-67.88-67.89a16 16 0 0 0-22.62 0l-11.32 11.31a16 16 0 0 0 0 22.63z\", \"M96 288a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm336-112a144 144 0 1 0 144 144 144 144 0 0 0-144-144zm0 240a96 96 0 1 1 96-96 96.14 96.14 0 0 1-96 96z\"]]\n};\nvar faPumpMedical = {\n prefix: 'fad',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", [\"M299.37,218.21A64,64,0,0,0,235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79ZM240,333.33a13.33,13.33,0,0,1-13.33,13.34h-40v40A13.33,13.33,0,0,1,173.33,400H146.67a13.33,13.33,0,0,1-13.34-13.33v-40h-40A13.33,13.33,0,0,1,80,333.33V306.67a13.33,13.33,0,0,1,13.33-13.34h40v-40A13.33,13.33,0,0,1,146.67,240h26.66a13.33,13.33,0,0,1,13.34,13.33v40h40A13.33,13.33,0,0,1,240,306.67Z\", \"M226.67,293.33h-40v-40A13.33,13.33,0,0,0,173.33,240H146.67a13.33,13.33,0,0,0-13.34,13.33v40h-40A13.33,13.33,0,0,0,80,306.67v26.66a13.33,13.33,0,0,0,13.33,13.34h40v40A13.33,13.33,0,0,0,146.67,400h26.66a13.33,13.33,0,0,0,13.34-13.33v-40h40A13.33,13.33,0,0,0,240,333.33V306.67A13.33,13.33,0,0,0,226.67,293.33ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]]\n};\nvar faPumpSoap = {\n prefix: 'fad',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", [\"M299.37,218.21A64,64,0,0,0,235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416Z\", \"M379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06ZM152,260c-16.33,21.8-52,72.27-52,97.27,0,32.42,26.88,58.75,60,58.75s60-26.33,60-58.75c0-25-35.7-75.47-52-97.27A10,10,0,0,0,152,260Z\"]]\n};\nvar faPumpkin = {\n prefix: 'fad',\n iconName: 'pumpkin',\n icon: [576, 512, [], \"f707\", [\"M244 103.93l37.55-93.86a16 16 0 0 1 22-8.37l39.6 19.8A16 16 0 0 1 352 35.81v77.4C334.23 102.12 313.16 96 288 96a128.55 128.55 0 0 0-44 7.93z\", \"M495.31 486.87c-38.63 33-100.82 33.34-140.12 1.25C337.35 503.51 315.28 512 288 512s-49.35-8.49-67.18-23.88c-39.3 32.09-101.49 31.78-140.12-1.25-107.6-92-107.6-241.73 0-333.74 31.61-27 78.8-31.69 116.51-15-3.08 4-6.52 7.38-9.21 11.92-8.33 14.27-14.5 31.77-19.11 51.61a138.4 138.4 0 0 1 12.86-24.11Q215.76 128 288 128t106.25 49.5a138.5 138.5 0 0 1 12.86 24.12C402.5 181.78 396.32 164.27 388 150c-2.69-4.54-6.14-7.95-9.21-11.92 37.71-16.64 84.9-12 116.51 15 107.6 92.06 107.6 241.78.01 333.79z\"]]\n};\nvar faPuzzlePiece = {\n prefix: 'fad',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", [\"M576 354.44C576 388 556.71 416 521.08 416c-39.89 0-50.35-36.15-86.31-36.15-60.55 0-25.83 120.1-25.83 120.1-51.55 0-181.23 35.07-181.23-25.73 0-35.83 36.29-46.25 36.29-86 0-35.5-28.12-54.71-61.79-54.71-34.33 0-63.58 18.89-63.58 56.34 0 41.37 40 59 40 81.47C178.63 541 0 500 0 500V166.76s175.88 41 175.88-28.66c0-22.48-31.71-40.39-31.71-81.75C144.17 18.89 175.88 0 210.54 0 243.88 0 272 19.22 272 54.72c0 39.73-36.29 50.16-36.29 86C235.71 224 432 144 432 144s-54.59 176.24 5.38 176.24c22.56 0 40.54-31.59 82.06-31.59 37.56 0 56.56 31.59 56.56 65.79z\", \"\"]]\n};\nvar faQrcode = {\n prefix: 'fad',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", [\"M0 480h192V288H0zm64-128h64v64H64zM256 32v192h192V32zm128 128h-64V96h64zM0 224h192V32H0zM64 96h64v64H64z\", \"M416 480h32v-32h-32zm-64 0h32v-32h-32zm64-192v32h-64v-32h-96v192h64v-96h32v32h96V288z\"]]\n};\nvar faQuestion = {\n prefix: 'fad',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", [\"M182.4,373.5c-38.3,0-69.3,31-69.3,69.3s31,69.3,69.3,69.3c38.3,0,69.3-31,69.3-69.3 C251.7,404.5,220.7,373.5,182.4,373.5z\", \"M367.9,153.6c0,116-125.3,117.8-125.3,160.6v5.8c0,13.3-10.7,24-24,24h-72.5c-13.3,0-24-10.7-24-24v-9.8 c0-61.8,46.9-86.5,82.3-106.4c30.4-17,49-28.6,49-51.2c0-29.8-38-49.6-68.8-49.6c-39.1,0-57.8,18.1-82.8,49.4 c-8.1,10.2-22.9,12-33.3,4.1l-43.1-32.7c-10.3-7.8-12.6-22.3-5.2-32.9C60.9,32.7,112.6,0,192.4,0C277.3,0,367.9,66.3,367.9,153.6z\"]]\n};\nvar faQuestionCircle = {\n prefix: 'fad',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", [\"M256 8C119 8 8 119.08 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 422a46 46 0 1 1 46-46 46.05 46.05 0 0 1-46 46zm40-131.33V300a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-4c0-41.06 31.13-57.47 54.65-70.66 20.17-11.31 32.54-19 32.54-34 0-19.82-25.27-33-45.7-33-27.19 0-39.44 13.14-57.3 35.79a12 12 0 0 1-16.67 2.13L148.82 170a12 12 0 0 1-2.71-16.26C173.4 113 208.16 90 262.66 90c56.34 0 116.53 44 116.53 102 0 77-83.19 78.21-83.19 106.67z\", \"M256 338a46 46 0 1 0 46 46 46 46 0 0 0-46-46zm6.66-248c-54.5 0-89.26 23-116.55 63.76a12 12 0 0 0 2.71 16.24l34.7 26.31a12 12 0 0 0 16.67-2.13c17.86-22.65 30.11-35.79 57.3-35.79 20.43 0 45.7 13.14 45.7 33 0 15-12.37 22.66-32.54 34C247.13 238.53 216 254.94 216 296v4a12 12 0 0 0 12 12h56a12 12 0 0 0 12-12v-1.33c0-28.46 83.19-29.67 83.19-106.67 0-58-60.19-102-116.53-102z\"]]\n};\nvar faQuestionSquare = {\n prefix: 'fad',\n iconName: 'question-square',\n icon: [448, 512, [], \"f2fd\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM224 430a46 46 0 1 1 46-46 46.06 46.06 0 0 1-46 46zm40-131.33V300a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12v-4c0-41.06 31.13-57.47 54.65-70.66 20.17-11.31 32.54-19 32.54-34 0-19.81-25.27-33-45.7-33-27.19 0-39.44 13.13-57.3 35.79a12 12 0 0 1-16.67 2.13L116.82 170a12 12 0 0 1-2.71-16.26C141.4 113 176.16 90 230.66 90c56.34 0 116.53 44 116.53 102 0 77-83.19 78.21-83.19 106.67z\", \"M224 338a46 46 0 1 0 46 46 46.05 46.05 0 0 0-46-46zm6.66-248c-54.5 0-89.26 23-116.55 63.76a12 12 0 0 0 2.71 16.24l34.7 26.31a12 12 0 0 0 16.67-2.13c17.86-22.66 30.11-35.79 57.3-35.79 20.43 0 45.7 13.14 45.7 33 0 15-12.37 22.67-32.54 34C215.13 238.53 184 254.94 184 296v4a12 12 0 0 0 12 12h56a12 12 0 0 0 12-12v-1.33c0-28.46 83.19-29.67 83.19-106.67 0-58-60.19-102-116.53-102z\"]]\n};\nvar faQuidditch = {\n prefix: 'fad',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", [\"M494.5 351.82a79.9 79.9 0 1 0 79.8 79.9 79.91 79.91 0 0 0-79.8-79.9zM636.5 31L616.7 6a16 16 0 0 0-22.4-2.6L361.8 181.32l39.7 50.1L634 53.52A16 16 0 0 0 636.5 31z\", \"M93.2 257.72c-21.9 17.5-40.2 55.8-54.6 97.5l60.4-22.1a6 6 0 0 1 6.6 9.5L11 454.82c-7.2 32.3-11 55.4-11 55.4s206.7 13.6 266.6-34.1S343.2 326 343.2 326l-86.7-109.2s-103.4-6.88-163.3 40.92zm342.4 16.6l-107.9-136a11 11 0 0 0-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4a11 11 0 0 0 6.3-17.6z\"]]\n};\nvar faQuoteLeft = {\n prefix: 'fad',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", [\"M464 256h-80v-64a64.06 64.06 0 0 1 64-64h8a23.94 23.94 0 0 0 24-23.88V56a23.94 23.94 0 0 0-23.88-24H448a160 160 0 0 0-160 160v240a48 48 0 0 0 48 48h128a48 48 0 0 0 48-48V304a48 48 0 0 0-48-48z\", \"M176 256H96v-64a64.06 64.06 0 0 1 64-64h8a23.94 23.94 0 0 0 24-23.88V56a23.94 23.94 0 0 0-23.88-24H160A160 160 0 0 0 0 192v240a48 48 0 0 0 48 48h128a48 48 0 0 0 48-48V304a48 48 0 0 0-48-48z\"]]\n};\nvar faQuoteRight = {\n prefix: 'fad',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", [\"M176 32H48A48 48 0 0 0 0 80v128a48 48 0 0 0 48 48h80v64a64.06 64.06 0 0 1-64 64h-8a23.94 23.94 0 0 0-24 23.88V456a23.94 23.94 0 0 0 23.88 24H64a160 160 0 0 0 160-160V80a48 48 0 0 0-48-48z\", \"M464 32H336a48 48 0 0 0-48 48v128a48 48 0 0 0 48 48h80v64a64.06 64.06 0 0 1-64 64h-8a23.94 23.94 0 0 0-24 23.88V456a23.94 23.94 0 0 0 23.88 24H352a160 160 0 0 0 160-160V80a48 48 0 0 0-48-48z\"]]\n};\nvar faQuran = {\n prefix: 'fad',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", [\"M96 448c-19.2 0-32-12.8-32-32s16-32 32-32h319.33c-1.93 16.24-1.76 48.38.53 64z\", \"M96 384h328a24 24 0 0 0 24-24V32a32 32 0 0 0-32-32H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h328a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24H96c-19.2 0-32-12.8-32-32s16-32 32-32zm208-240a3.23 3.23 0 0 1 2.92 1.82l11.18 22.65 25 3.63a3.26 3.26 0 0 1 1.81 5.56l-18.09 17.63 4.27 24.89a3.25 3.25 0 0 1-4.73 3.44L304 211.87l-22.36 11.75a3.25 3.25 0 0 1-4.73-3.44l4.27-24.89-18.09-17.63a3.26 3.26 0 0 1 1.81-5.56l25-3.63 11.19-22.65A3.23 3.23 0 0 1 304 144zm-60.81-67.19a114.69 114.69 0 0 1 40.38 7.41 6.78 6.78 0 1 1 0 13.55 6.85 6.85 0 0 1-2.37-.43c-.67 0-3.09-.21-4.13-.21a94.86 94.86 0 0 0 0 189.72c1 0 3.48-.21 4.13-.21a6.78 6.78 0 0 1 2.18 13.2 115.14 115.14 0 1 1-40.18-223z\"]]\n};\nvar faRabbit = {\n prefix: 'fad',\n iconName: 'rabbit',\n icon: [448, 512, [], \"f708\", [\"M445.56 487.52L352 337.85V272h7.35a56.65 56.65 0 0 0 32.95-102.75l-48.65-34.75c-1.1-.54-2.27-.74-3.38-1.21 7.8-12.49 15.21-29.76 20.54-49.66 11.32-42.24 9.08-79.55-5-83.32s-34.67 27.41-46 69.69A221.91 221.91 0 0 0 304 99.12 223.51 223.51 0 0 0 298.24 70c-11.33-42.28-31.92-73.46-46-69.69s-16.32 41.08-5 83.32c6.94 25.9 17.37 47.54 27.64 59.62-9.11 7.93-15.9 18.5-18 31.55A63.35 63.35 0 0 0 256 185v71h-14A178 178 0 0 0 64 434v12a66 66 0 0 0 66 66h142a16 16 0 0 0 16-16v-16a32 32 0 0 0-32-32h-22.57l74.35-60.18 72.91 116.66a16 16 0 0 0 13.57 7.52H432a16 16 0 0 0 13.54-24.48zM336 208a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M64 434a178.22 178.22 0 0 1 5.69-44.81 48 48 0 1 0 .74 85.25A65.57 65.57 0 0 1 64 446zm272-258a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faRabbitFast = {\n prefix: 'fad',\n iconName: 'rabbit-fast',\n icon: [576, 512, [], \"f709\", [\"M135.5 396.68a16 16 0 0 0-7.5 13.57V448a16 16 0 0 0 24.48 13.57l66.69-39.87-47.84-47.85zm416.77-195.42l-56.42-34.62c-.06-13.95-2.29-30.77-7.08-48.67-11.31-42.24-31.9-73.43-46-69.66s-16.33 41.08-5 83.32c.65 2.44 1.44 4.7 2.15 7.06a224.93 224.93 0 0 0-16.32-18.32C392.7 89.45 359.27 72.73 349 83s6.41 43.73 37.33 74.66a198.36 198.36 0 0 0 37.42 29.78 60.18 60.18 0 0 0-6.88 19.32 63.07 63.07 0 0 0-.75 9.31C364.54 179.12 261.59 112 192 112a121.32 121.32 0 0 0-111.51 73.53 61.82 61.82 0 0 0 13.1 68.06l165.82 165.82a43 43 0 0 0 30.4 12.59H432a16 16 0 0 0 16-16v-16a32 32 0 0 0-32-32h-96v-55.58a80.3 80.3 0 0 0-58-76.91l-42.4-12.11a16 16 0 0 1 8.78-30.78l42.39 12.11A112.46 112.46 0 0 1 352 312.42V336l64-32h103.33a56.66 56.66 0 0 0 32.94-102.75zM496 240a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M17.46 154.94A48 48 0 0 0 78.54 229a61.77 61.77 0 0 1 1.95-43.5 121.83 121.83 0 0 1 9.18-17.35 47 47 0 0 0-4.67-6.72 48 48 0 0 0-67.54-6.49zM496 208a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faRacquet = {\n prefix: 'fad',\n iconName: 'racquet',\n icon: [640, 512, [], \"f45a\", [\"M6.65 431.11A16.1 16.1 0 0 0 3 453.41l36.8 51.8a16 16 0 0 0 22.2 3.9l120.7-82.6-56.7-80S6.75 431.21 6.65 431.11zM486 64c-106.4 0-178.6 90-195 141.1-21.3 66.2 13.3 112.8 83.9 112.8 84.1 0 171.1-66.8 195-141.1C591.15 110.71 556.55 64 486 64z\", \"M615.55 59.81c-55.2-77.9-182.9-78.9-283.4-7.7-57.3 40.6-94.6 96.4-106.8 151.1-11 49.5-35 94.5-67.7 132.7l45.7 64.5c87.4-33.7 144.3-18.6 171.9-18.6 49.6 0 104.4-17.2 153.5-52 102.25-72.4 141.1-193.3 86.8-270zM210.15 347a355.28 355.28 0 0 0 26.2-41c9.2 18 9.5 17.4 21.2 29.7a379.24 379.24 0 0 0-47.4 11.3zm359.7-170.2c-23.9 74.3-110.9 141.1-195 141.1-70.6 0-105.2-46.6-83.9-112.8C307.35 154 379.55 64 486 64c70.55 0 105.15 46.71 83.85 112.81z\"]]\n};\nvar faRadar = {\n prefix: 'fad',\n iconName: 'radar',\n icon: [512, 512, [], \"e024\", [\"M112,256c0-10.60156-5.49219-19.543-13.4375-25.36719C110.82422,154.49805,176.46094,96,256,96c35.44141,0,67.64844,12.2832,94.12891,31.93359l-45.6211,45.6211A93.809,93.809,0,0,0,256,160a96,96,0,1,0,96,96h64c0,79.53906-58.5,145.17578-134.63281,157.43555C275.54688,405.49414,266.60156,400,256,400s-19.54688,5.49414-25.36719,13.43555A159.59946,159.59946,0,0,1,98.5625,281.36523C106.50781,275.541,112,266.59961,112,256Zm336,0c0,96.25977-70.91406,175.74023-163.30469,189.625a31.59351,31.59351,0,0,1-57.39062,0A191.79742,191.79742,0,0,1,66.375,284.69531a31.595,31.595,0,0,1,0-57.39258C80.25781,134.91406,159.74219,64,256,64a190.7065,190.7065,0,0,1,117.57812,40.48633l39.86719-39.873A246.65387,246.65387,0,0,0,256,8C119.03125,8,8,119.0332,8,256S119.03125,504,256,504,504,392.9668,504,256ZM251.3125,271.99609l-11.30859-11.31054a16.00359,16.00359,0,0,1,0-22.627l40.71093-40.71289A61.78522,61.78522,0,0,0,256,192a64,64,0,1,0,64,64H289.9375l-15.99609,15.99609A16.00242,16.00242,0,0,1,251.3125,271.99609Z\", \"M227.30469,445.625A191.79742,191.79742,0,0,1,66.375,284.69531,31.429,31.429,0,0,0,80,288c7.07031,0,13.26562-2.75,18.5625-6.63477A159.59946,159.59946,0,0,0,230.63281,413.43555C226.75,418.73242,224,424.92773,224,432A31.429,31.429,0,0,0,227.30469,445.625Zm54.0625-32.18945C285.25,418.73242,288,424.92773,288,432a31.429,31.429,0,0,1-3.30469,13.625C377.08594,431.74023,448,352.25977,448,256H416C416,335.53906,357.5,401.17578,281.36719,413.43555ZM475.3125,47.99609,464.00391,36.68555a16.00242,16.00242,0,0,0-22.62891,0l-67.79688,67.80078A190.69456,190.69456,0,0,0,256,64C159.74219,64,80.25781,134.91406,66.375,227.30273A31.42748,31.42748,0,0,1,80,224c7.07031,0,13.26562,2.74805,18.5625,6.63281C110.82422,154.49805,176.46094,96,256,96c35.44141,0,67.64844,12.28125,94.12891,31.93359l-45.6211,45.6211A93.809,93.809,0,0,0,256,160a96,96,0,1,0,96,96H320a64,64,0,1,1-64-64,61.81853,61.81853,0,0,1,24.71875,5.3457l-40.71484,40.71289a16.00359,16.00359,0,0,0,0,22.627l11.30859,11.31054a16.00242,16.00242,0,0,0,22.62891,0L475.3125,70.62305A15.99653,15.99653,0,0,0,475.3125,47.99609Z\"]]\n};\nvar faRadiation = {\n prefix: 'fad',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", [\"M296,255.82a48,48,0,1,1-48-48A48,48,0,0,1,296,255.82Z\", \"M125.23,452c-4.8,7.7-2.4,18.1,5.6,22.4a246.73,246.73,0,0,0,234.36,0c8-4.3,10.4-14.8,5.6-22.4L290.41,323.52a78.67,78.67,0,0,1-84.78,0Zm-109-196.18H167.82c0-28.59,15.2-53.49,37.8-67.69L125.23,59.74c-4.8-7.7-15.3-10.2-22.7-4.8C44.44,96.94,5.14,163.33,0,239.12c-.6,9,7.1,16.7,16.2,16.7Zm312,0H479.79c9.1,0,16.79-7.7,16.2-16.8-5.1-75.79-44.4-142.18-102.49-184.18-7.4-5.3-17.9-2.9-22.7,4.8L290.41,188c22.6,14.3,37.79,39.2,37.79,67.79Z\"]]\n};\nvar faRadiationAlt = {\n prefix: 'fad',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", [\"M248,288a32,32,0,1,0-32-32A32,32,0,0,0,248,288Zm0,216c137,0,248-111,248-248S385,8,248,8,0,119,0,256,111,504,248,504Zm0-432c101.5,0,184,82.5,184,184S349.5,440,248,440,64,357.5,64,256,146.5,72,248,72Z\", \"M104.9,256H184a63.76,63.76,0,0,1,30.2-54.1l-41.7-66.8a16.2,16.2,0,0,0-22.37-5h0a17,17,0,0,0-1.61,1.17A159.25,159.25,0,0,0,89,239.1C87.9,248.3,95.7,256,104.9,256ZM312,256h79.1c9.2,0,16.9-7.7,16-16.8-4.6-43.6-27-81.8-59.5-107.8a16.22,16.22,0,0,0-22.83,2.19,18.34,18.34,0,0,0-1.17,1.61L281.9,202A63.64,63.64,0,0,1,312,256ZM172.4,377c-4.9,7.8-2.4,18.4,5.8,22.5a156.1,156.1,0,0,0,139.7,0c8.2-4.1,10.6-14.7,5.8-22.5l-41.8-66.9a62.82,62.82,0,0,1-67.7,0Z\"]]\n};\nvar faRadio = {\n prefix: 'fad',\n iconName: 'radio',\n icon: [512, 512, [], \"f8d7\", [\"M448 128H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zM80 248a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H88a8 8 0 0 1-8-8zm128 144a8 8 0 0 1-8 8H88a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8zm16-64a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8zm222.37 8.13a96 96 0 1 1 0-32.26 80.62 80.62 0 0 1 0 32.26z\", \"M511.4 27.05l-4.33-15.38A16 16 0 0 0 487.33.6L64 128h147.5l288.83-81.21a16 16 0 0 0 11.07-19.74zM352 224a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 144a48 48 0 1 1 48-48 48.05 48.05 0 0 1-48 48z\"]]\n};\nvar faRadioAlt = {\n prefix: 'fad',\n iconName: 'radio-alt',\n icon: [512, 512, [], \"f8d8\", [\"M448 128H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zM224 424a8 8 0 0 1-8 8H104a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8zm32-64a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8zm112 104a80 80 0 1 1 80-80 80 80 0 0 1-80 80zm80-208H64v-64h384z\", \"M511.4 27.05l-4.33-15.38A16 16 0 0 0 487.33.6L64 128h147.5l288.83-81.21a16 16 0 0 0 11.07-19.74zM64 256h384v-64H64zm304 48a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 112a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faRainbow = {\n prefix: 'fad',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", [\"M287.83 224a96.24 96.24 0 0 0-18.93 1.9c-45.6 8.9-76.9 51.5-76.9 97.9V464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V320a32 32 0 0 1 64 0v144a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V320a96.11 96.11 0 0 0-96.17-96zM268.3 32.67C115.4 42.87 0 176.87 0 330.17V464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.37 512 214 512 327.77V464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V320c0-165.33-140-298.63-307.7-287.33z\", \"M480 320v144a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V325.69c0-66.89-48.7-126.58-115.2-133.08C224.5 185.21 160 245.2 160 320v144a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V326.69c0-97.58 70-184.69 166.7-197.07C379.8 114.62 480 205.81 480 320z\"]]\n};\nvar faRaindrops = {\n prefix: 'fad',\n iconName: 'raindrops',\n icon: [448, 512, [], \"f75c\", [\"M169.3 38.9c-2.5-9-15.7-9.4-18.6 0-14.9 49.3-46.7 62.7-46.7 97.4a56 56 0 0 0 112 0c0-34.9-31.8-47.9-46.7-97.4zm-122.6 192C31.8 280.2 0 293.6 0 328.3a56 56 0 0 0 112 0c0-34.9-31.8-47.9-46.7-97.4-2.5-9-15.7-9.4-18.6 0z\", \"M341.2 143.2C375.4 252.1 448 280.7 448 357.6c0 67.6-57.2 122.4-128 122.4s-128-54.7-128-122.4c0-76.5 72.7-106 106.7-214.4 6.5-20.7 36.7-19.8 42.5 0z\"]]\n};\nvar faRam = {\n prefix: 'fad',\n iconName: 'ram',\n icon: [640, 512, [], \"f70a\", [\"M488.14 303.26a58.45 58.45 0 0 1-7.44 51.21 53.12 53.12 0 0 1-43.45 23.3c-1.11 0-2.22 0-3.33-.11-7.84 21.52-27.89 36.18-50.23 36.18a51.08 51.08 0 0 1-30.4-10.18 51.46 51.46 0 0 1-65.62 1 51.74 51.74 0 0 1-32.21 11.2 50.43 50.43 0 0 1-31.86-11.17 50.77 50.77 0 0 1-31.34 10.57 55.21 55.21 0 0 1-34.18-11.78 52.9 52.9 0 0 1-30.58 9.86c-22.73 0-42.32-14.45-50-36.42-1.11.07-2.23.11-3.34.11-16.93 0-33.07-8.7-43.17-23.27a58.55 58.55 0 0 1-7.42-51.28C8.92 292.3 0 274.74 0 255.8c0-19.24 8.86-36.49 23.86-46.86a58.59 58.59 0 0 1 7.48-51.28c10.09-14.57 26.27-23.28 43.27-23.28q1.74 0 3.48.12c7.85-21.5 27.91-36.12 50.2-36.12a51.2 51.2 0 0 1 30.49 10.21A56 56 0 0 1 193 96.91a49.43 49.43 0 0 1 31 10.56 52 52 0 0 1 64.26 0A52 52 0 0 1 304 98.71a96 96 0 0 0 173 54.56 56.5 56.5 0 0 1 4 5.07 58.58 58.58 0 0 1 7.45 51.32c14.63 10.22 23.55 27.78 23.55 46.72 0 19.24-8.86 36.5-23.86 46.88z\", \"M622.25 106L576 83.22V64a32 32 0 0 0-32-32h-72.45a96 96 0 1 0 5.5 121.27A57.42 57.42 0 0 1 491.31 192h108.35A25.71 25.71 0 0 0 622 179.06c7.59-13.26 18-33.45 18-44.59A31.8 31.8 0 0 0 622.25 106zM400 144a48 48 0 1 1 48-48 48.05 48.05 0 0 1-48 48zm112-32a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM193.46 418.86l1.37-3.64c-.86 0-1.71.07-2.57.07a55.21 55.21 0 0 1-34.18-11.78 52.9 52.9 0 0 1-30.58 9.86 51.69 51.69 0 0 1-30.12-9.6 64 64 0 0 0 .54 28.7l16.85 67.41A16 16 0 0 0 130.29 512h66a16 16 0 0 0 15.52-19.88zm240.46-41.2c-7.84 21.52-27.89 36.18-50.23 36.18a51.08 51.08 0 0 1-30.4-10.18c-.42.36-.86.7-1.29 1V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V376.59a50.8 50.8 0 0 1-10.75 1.18c-1.11 0-2.25-.04-3.33-.11z\"]]\n};\nvar faRampLoading = {\n prefix: 'fad',\n iconName: 'ramp-loading',\n icon: [384, 512, [], \"f4d4\", [\"M355.4 383.3L321 314.5a13 13 0 0 0-1-1.5V64H64v249c-.3.5-.7.9-1 1.5l-34.4 68.8C12.6 381.5 0 368.5 0 352V32A32 32 0 0 1 32 0h320a32 32 0 0 1 32 32v320c0 16.4-12.6 29.5-28.6 31.3z\", \"M292.4 328.8l80 160a16 16 0 0 1-14.3 23.2H25.9a16 16 0 0 1-14.3-23.2l80-160a15.92 15.92 0 0 1 14.3-8.8h172.2a15.92 15.92 0 0 1 14.3 8.8z\"]]\n};\nvar faRandom = {\n prefix: 'fad',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", [\"M505 359l-80-80c-15-15-41-4.47-41 17v40h-32l-52.78-56.55-53.33 57.14 70.55 75.6a12 12 0 0 0 8.77 3.81H384v40c0 21.46 26 32 41 17l80-80a24 24 0 0 0 0-34zM122.79 96H12a12 12 0 0 0-12 12v56a12 12 0 0 0 12 12h84l52.78 56.55 53.33-57.14-70.55-75.6a12 12 0 0 0-8.77-3.81z\", \"M505 119a24 24 0 0 1 0 34l-80 80c-15 15-41 4.48-41-17v-40h-32L131.56 412.19a12 12 0 0 1-8.77 3.81H12a12 12 0 0 1-12-12v-56a12 12 0 0 1 12-12h84L316.44 99.81a12 12 0 0 1 8.78-3.81H384V56c0-21.44 25.94-32 41-17z\"]]\n};\nvar faRaygun = {\n prefix: 'fad',\n iconName: 'raygun',\n icon: [576, 512, [], \"e025\", [\"M112,288.00049A111.74872,111.74872,0,0,1,92.80859,286.065L22.40625,407.95153A47.93847,47.93847,0,0,0,40.00391,473.5374l55.41015,31.99606a47.96036,47.96036,0,0,0,65.60156-17.59178L281.07812,279.981A111.32567,111.32567,0,0,1,240,288.00049ZM320,32.00077H304a15.99954,15.99954,0,0,0-16,16V304.00048a16.00078,16.00078,0,0,0,16,16h16a16.00078,16.00078,0,0,0,16-16V48.00076A15.99954,15.99954,0,0,0,320,32.00077Zm80,32H384a15.99953,15.99953,0,0,0-16,16V272.00051a16.00078,16.00078,0,0,0,16,16h16a16.00078,16.00078,0,0,0,16-16V80.00072A15.99953,15.99953,0,0,0,400,64.00074Zm-208-.00781L87.16406,1.70979A15.99925,15.99925,0,0,0,64.00781,16.01837v59.164c-.09375.04492-.17969.10937-.27734.15625A110.90446,110.90446,0,0,1,112,64.00074Z\", \"M554.9375,119.01044,480,143.98307H416.043v63.99212h64.07422l74.8125,24.97068A16.00416,16.00416,0,0,0,576,217.76815v-83.58A16.00251,16.00251,0,0,0,554.9375,119.01044ZM112,64.00074a111.99988,111.99988,0,1,0,0,223.99975H240a110.93642,110.93642,0,0,0,48-11.19139V75.19213a110.93642,110.93642,0,0,0-48-11.19139Zm-.04688,135.97641a23.998,23.998,0,1,1,24-23.998A24.00159,24.00159,0,0,1,111.95312,199.97715Zm96.00782,0a23.998,23.998,0,1,1,24-23.998A23.99825,23.99825,0,0,1,207.96094,199.97715Z\"]]\n};\nvar faReceipt = {\n prefix: 'fad',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", [\"M358.4 3.23L320 48 265.6 3.23a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.23a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.23A16 16 0 0 0 0 16v480a16 16 0 0 0 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8A16 16 0 0 0 384 496V16a16 16 0 0 0-25.6-12.77zM320 360a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h240a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h240a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h240a8 8 0 0 1 8 8z\", \"M312 144H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0 96H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0 96H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faRecordVinyl = {\n prefix: 'fad',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", [\"M256 128a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 152a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]]\n};\nvar faRectangleLandscape = {\n prefix: 'fad',\n iconName: 'rectangle-landscape',\n icon: [512, 512, [], \"f2fa\", [\"M464 64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zm-16 304a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V144a16 16 0 0 1 16-16h352a16 16 0 0 1 16 16z\", \"M64 368V144a16 16 0 0 1 16-16h352a16 16 0 0 1 16 16v224a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16z\"]]\n};\nvar faRectanglePortrait = {\n prefix: 'fad',\n iconName: 'rectangle-portrait',\n icon: [384, 512, [], \"f2fb\", [\"M336 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 432a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16z\", \"M64 432V80a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16v352a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16z\"]]\n};\nvar faRectangleWide = {\n prefix: 'fad',\n iconName: 'rectangle-wide',\n icon: [640, 512, [], \"f2fc\", [\"M592 96H48a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h544a48 48 0 0 0 48-48V144a48 48 0 0 0-48-48zm-16 240a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V176a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16z\", \"M64 336V176a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16v160a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16z\"]]\n};\nvar faRecycle = {\n prefix: 'fad',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", [\"M497.29 301.1L469.77 257a12 12 0 0 0-16.53-3.83l-33.86 21.16a12 12 0 0 0-3.81 16.54L443.12 335c13.26 21.21-2.06 49-27.14 49H320v64h95.88c75.27 0 121.33-83 81.41-146.9zM148 384H96c-25 0-40.4-27.73-27.12-49l50.87-81.4-54.22-33.89-50.82 81.39C-25.19 365 20.78 448 96.11 448H148a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm230.67-272.86l-41.26-66.08c-37.52-60-125.21-60.17-162.82 0l-18 28.76a12 12 0 0 0 3.81 16.54l33.92 21.19a12 12 0 0 0 16.54-3.78L228.9 79c12.72-20.34 42-19.68 54.26 0l41.29 66.07z\", \"M184.56 261.88l-25.45-110.23a16 16 0 0 0-19.18-12L29.68 165.11c-13.84 3.19-17 21.61-4.88 29.16L160.48 279c12 7.47 27.3-3.17 24.07-17.17zm108.13 62.79l-80 80a16 16 0 0 0 0 22.63l80 80c10 10 27.31 3 27.31-11.31V336c0-14.23-17.24-21.4-27.31-11.33zm126.67-239l-135.65 84.85c-12 7.53-9 25.95 4.88 29.16l110.24 25.45a16 16 0 0 0 19.19-12l25.41-110.25c3.19-13.88-12-24.72-24.07-17.17z\"]]\n};\nvar faRedo = {\n prefix: 'fad',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", [\"M422.36 422.69a12 12 0 0 1 0 17l-.49.46A247.1 247.1 0 0 1 255.67 504c-136.9 0-247.9-110.93-248-247.81C7.57 119.53 119 8 255.67 8a247.45 247.45 0 0 1 188.9 87.33l3.52 64.43-46.5-2.22A176 176 0 1 0 372 388.15a12 12 0 0 1 16.38.54z\", \"M512 12v200a12 12 0 0 1-12 12H300a12 12 0 0 1-12-12v-47.32a12 12 0 0 1 12-12h.58l147.54 7.06-7.44-147.19A12 12 0 0 1 452.07 0H500a12 12 0 0 1 12 12z\"]]\n};\nvar faRedoAlt = {\n prefix: 'fad',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", [\"M422.66 422.66a12 12 0 0 1 0 17l-.49.46A247.11 247.11 0 0 1 256 504C119 504 8 393 8 256 8 119.19 119.65 7.76 256.46 8a247.12 247.12 0 0 1 170.85 68.69l-56.62 56.56A166.73 166.73 0 0 0 257.49 88C165.09 87.21 87.21 162 88 257.45 88.76 348 162.18 424 256 424a166.77 166.77 0 0 0 110.63-41.56A12 12 0 0 1 383 383z\", \"M504 57.94V192a24 24 0 0 1-24 24H345.94c-21.38 0-32.09-25.85-17-41L463 41c15.15-15.15 41-4.44 41 16.94z\"]]\n};\nvar faRefrigerator = {\n prefix: 'fad',\n iconName: 'refrigerator',\n icon: [384, 512, [], \"e026\", [\"M336,.5H48a48,48,0,0,0-48,48v112H288v-88a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8v88h64V48.5A48,48,0,0,0,336,.5Zm-16,376a8,8,0,0,1-8,8H296a8,8,0,0,1-8-8v-184H0v272a48,48,0,0,0,48,48H336a48,48,0,0,0,48-48v-272H320Z\", \"M0,192.5H288v-32H0Zm320-32v32h64v-32Z\"]]\n};\nvar faRegistered = {\n prefix: 'fad',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", [\"M250.43 179.77h-23.37v56.14h29.87c18.6 0 28.43-9.83 28.43-28.44 0-18.93-6.26-27.7-34.93-27.7zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm86.39 388h-24.46a24 24 0 0 1-21.19-12.73l-44.13-82.93h-25.55V372a24 24 0 0 1-24 24h-22.57a24 24 0 0 1-24-24V139.68a24 24 0 0 1 24-24h70.67c74 0 105.49 35 105.49 89.25 0 31.48-14.51 59.31-37.94 74.48 1.4 2.37-2-3.82 44.7 81a24 24 0 0 1-21 35.59z\", \"M363.41 360.41c-46.73-84.82-43.3-78.63-44.7-81 23.43-15.17 37.94-43 37.94-74.48 0-54.25-31.5-89.25-105.49-89.25h-70.67a24 24 0 0 0-24 24V372a24 24 0 0 0 24 24h22.57a24 24 0 0 0 24-24v-71.66h25.55l44.13 82.93A24 24 0 0 0 317.93 396h24.46a24 24 0 0 0 21-35.59zm-106.48-124.5h-29.87v-56.14h23.37c28.67 0 34.93 8.77 34.93 27.7 0 18.61-9.83 28.44-28.43 28.44z\"]]\n};\nvar faRemoveFormat = {\n prefix: 'fad',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", [\"M160 91.9V48a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16v96a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32H426.17L377 259.59l-67.06-51.83L341.82 112H224v29.36l-3.18-2.45zM336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M633.82 458.1L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45z\"]]\n};\nvar faRepeat = {\n prefix: 'fad',\n iconName: 'repeat',\n icon: [512, 512, [], \"f363\", [\"M494.84 183.65a159 159 0 0 1 17.16 72c0 88.23-71.77 160-160 160H170.07l34.51 32.42a24 24 0 0 1 .54 34.47l-10.78 10.77a24 24 0 0 1-33.94 0l-92.68-92.65a24 24 0 0 1 0-33.94L160.4 274a24 24 0 0 1 33.94 0l10.78 10.77a24 24 0 0 1-.54 34.47l-34.51 32.41H352a96 96 0 0 0 87.62-135.2 23.77 23.77 0 0 1 4.73-26.63l12.18-12.19a24 24 0 0 1 38.31 6.02z\", \"M67.65 321.52l-12.18 12.19a24 24 0 0 1-38.31-6A159 159 0 0 1 0 255.68c0-88.22 71.77-160 160-160h181.93l-34.51-32.41a24 24 0 0 1-.54-34.47L317.66 18a24 24 0 0 1 33.94 0l92.68 92.69a24 24 0 0 1 0 33.94l-92.68 92.71a24 24 0 0 1-33.94 0l-10.78-10.77a24 24 0 0 1 .54-34.47l34.51-32.42H160a96 96 0 0 0-87.62 135.21 23.78 23.78 0 0 1-4.73 26.63z\"]]\n};\nvar faRepeat1 = {\n prefix: 'fad',\n iconName: 'repeat-1',\n icon: [512, 512, [], \"f365\", [\"M494.84 183.65a159 159 0 0 1 17.16 72c0 88.22-71.77 160-160 160H170.07l34.51 32.41a24 24 0 0 1 .54 34.47l-10.78 10.77a24 24 0 0 1-33.94 0l-92.68-92.64a24 24 0 0 1 0-33.94L148 286.45a24 24 0 0 1 33.94 0l10.77 10.77a24 24 0 0 1-.54 34.47l-22.09 20H352a96 96 0 0 0 87.62-135.21 23.78 23.78 0 0 1 4.73-26.63l12.18-12.18a24 24 0 0 1 38.31 5.98z\", \"M306.13 287.64h-15.49v-84.38c0-7.66-4.09-11.58-11.75-11.58h-12.1c-6.06 0-10 1.61-14.42 5.7l-21.72 19.94c-5.52 5.16-5.88 11-.54 16.38l5.52 6.23c5.16 5.52 11.22 5.34 15.67 1.07a34.35 34.35 0 0 0 2.85-3.74h.35s-.53 5.34-.53 10.5v39.88h-15.13c-7.66 0-11.58 4.1-11.58 11.57v8.9c0 7.48 3.92 11.57 11.58 11.57h67.29c7.65 0 11.57-4.09 11.57-11.57v-8.9c0-7.48-3.92-11.57-11.57-11.57zm138.15-176.92L351.6 18a24 24 0 0 0-33.94 0l-10.78 10.8a24 24 0 0 0 .54 34.47l34.51 32.42H160c-88.23 0-160 71.77-160 160a159 159 0 0 0 17.16 72 24 24 0 0 0 38.31 6l12.18-12.19a23.77 23.77 0 0 0 4.73-26.63A96 96 0 0 1 160 159.69h181.93l-22.09 20a24 24 0 0 0-.54 34.46l10.77 10.78a24 24 0 0 0 33.95 0l80.26-80.27a24 24 0 0 0 0-33.94z\"]]\n};\nvar faRepeat1Alt = {\n prefix: 'fad',\n iconName: 'repeat-1-alt',\n icon: [512, 512, [], \"f366\", [\"M493.54 181.5A159 159 0 0 1 512 257.25C511.34 345.4 438.56 416 350.4 416H192v47.5c0 22.5-26.18 32.3-41 17.5l-80-80a24 24 0 0 1 0-33.94l80-80c15.11-15.11 41-4.34 41 17v48h158.87c52.82 0 96.58-42.18 97.12-95a95.53 95.53 0 0 0-9.21-42.06 23.94 23.94 0 0 1 4.8-27.28c4.74-4.71 8.64-8.55 11.87-11.79a24 24 0 0 1 38.09 5.57z\", \"M441 111.06l-80-80c-15-14.95-41-4.77-41 17.52V96H161.6C73.44 96 .66 166.67 0 254.82a159 159 0 0 0 18.46 75.75 24 24 0 0 0 38.09 5.57c3.23-3.23 7.13-7.08 11.87-11.78a24 24 0 0 0 4.8-27.29A95.46 95.46 0 0 1 64 255c.55-52.82 44.31-95 97.12-95H320v47.51c0 22.37 26.12 32.31 41 17.46l80-80a24 24 0 0 0 0-33.91zM306.13 288h-15.49v-84.4c0-7.65-4.09-11.57-11.75-11.57h-12.1c-6.06 0-10 1.6-14.42 5.7l-21.72 19.94c-5.52 5.16-5.88 11-.54 16.38l5.52 6.23c5.16 5.52 11.22 5.34 15.67 1.06a33.07 33.07 0 0 0 2.84-3.73h.36s-.5 5.39-.5 10.5V288h-15.16c-7.66 0-11.58 4.09-11.58 11.57v8.9c0 7.48 3.92 11.57 11.58 11.57h67.29c7.65 0 11.57-4.09 11.57-11.57v-8.9c0-7.49-3.92-11.57-11.57-11.57z\"]]\n};\nvar faRepeatAlt = {\n prefix: 'fad',\n iconName: 'repeat-alt',\n icon: [512, 512, [], \"f364\", [\"M493.54 181.5A159 159 0 0 1 512 257.25C511.34 345.4 438.56 416 350.4 416H192v47.5c0 22.5-26.18 32.3-41 17.5l-80-80a24 24 0 0 1 0-33.94l80-80c15.11-15.11 41-4.34 41 17v48h158.87c52.82 0 96.58-42.18 97.12-95a95.53 95.53 0 0 0-9.21-42.06 23.94 23.94 0 0 1 4.8-27.28c4.74-4.71 8.64-8.55 11.87-11.79a24 24 0 0 1 38.09 5.57z\", \"M68.42 324.35c-4.74 4.71-8.64 8.56-11.87 11.79a24 24 0 0 1-38.09-5.57A159 159 0 0 1 0 254.82C.66 166.67 73.44 96 161.6 96H320V48.58c0-22.29 26-32.47 41-17.52l80 80a24 24 0 0 1 0 33.94l-80 80c-14.85 14.85-41 4.91-41-17.46V160H161.12c-52.81 0-96.57 42.18-97.12 95a95.47 95.47 0 0 0 9.22 42 23.94 23.94 0 0 1-4.8 27.35z\"]]\n};\nvar faReply = {\n prefix: 'fad',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", [\"M512 322.33c0 61.44-39.58 122.3-83.33 154.13-13.66 9.93-33.11-2.54-28.08-18.63 45.34-145-21.51-183.51-176.59-185.75v-136c160.63 1.83 288 34.02 288 186.25z\", \"M224 360c0 20.7-24.3 31.45-39.69 18.16l-176-152a24 24 0 0 1 0-36.32l176-152C199.72 24.55 224 35.35 224 56z\"]]\n};\nvar faReplyAll = {\n prefix: 'fad',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", [\"M115.39 250.38L224 344.17V360c0 20.7-24.3 31.45-39.69 18.16l-176-152a24 24 0 0 1 0-36.32l176-152C199.72 24.55 224 35.35 224 56v15.83l-108.61 93.79a56 56 0 0 0 0 84.76z\", \"M576 321.33c0 61.44-39.58 122.3-83.33 154.13-13.66 9.93-33.11-2.54-28.08-18.63 38.51-123.17-3.92-169.49-112.59-182V359c0 20.7-24.3 31.45-39.69 18.16l-176-152a24 24 0 0 1 0-36.32l176-152C327.72 23.55 352 34.35 352 55v82.77C481.18 148 576 190 576 321.33z\"]]\n};\nvar faRepublican = {\n prefix: 'fad',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", [\"M0 464V288h544v112a16 16 0 0 0 32 0v-64a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v64a80.14 80.14 0 0 1-88.4 79.6c-41.6-4.2-71.6-42.5-71.6-84.3V352h-32v112a16 16 0 0 1-16 16h-96a16 16 0 0 1-16-16v-80H128v80a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16z\", \"M384 32H160A160 160 0 0 0 0 192v64h544v-64A160 160 0 0 0 384 32zM176.3 170.4l-19.8 19.3 4.7 27.3a6 6 0 0 1-8.7 6.3L128 210.4l-24.5 12.9a6 6 0 0 1-8.7-6.3l4.7-27.3-19.8-19.3a6 6 0 0 1 3.3-10.2l27.4-4 12.2-24.8a6 6 0 0 1 10.7 0l12.2 24.8 27.4 4a6 6 0 0 1 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3a6 6 0 0 1-8.7 6.3L272 210.4l-24.5 12.9a6 6 0 0 1-8.7-6.3l4.7-27.3-19.8-19.3a6 6 0 0 1 3.3-10.2l27.4-4 12.2-24.8a6 6 0 0 1 10.7 0l12.2 24.8 27.4 4a6 6 0 0 1 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3a6 6 0 0 1-8.7 6.3L416 210.4l-24.5 12.9a6 6 0 0 1-8.7-6.3l4.7-27.3-19.8-19.3a6 6 0 0 1 3.3-10.2l27.4-4 12.2-24.8a6 6 0 0 1 10.7 0l12.2 24.8 27.4 4a6 6 0 0 1 3.4 10.2z\"]]\n};\nvar faRestroom = {\n prefix: 'fad',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", [\"M112 0a64 64 0 1 0 64 64 64.06 64.06 0 0 0-64-64zm208 0h-32a16 16 0 0 0-16 16v480a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zm176 0a64 64 0 1 0 64 64 64.06 64.06 0 0 0-64-64z\", \"M623.3 354.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2a95 95 0 0 1-104 0c-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C365 369.6 377 384 393.2 384H448v104a23.94 23.94 0 0 0 24 24h48a23.94 23.94 0 0 0 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM164.1 144.4a94.8 94.8 0 0 1-104.2 0A47.82 47.82 0 0 0 16 192v136a23.94 23.94 0 0 0 24 24h8v136a23.94 23.94 0 0 0 24 24h80a23.94 23.94 0 0 0 24-24V352h8a23.94 23.94 0 0 0 24-24V192a47.82 47.82 0 0 0-43.9-47.6z\"]]\n};\nvar faRetweet = {\n prefix: 'fad',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", [\"M10 202.66a24 24 0 0 1 0-33.94L110.72 68a24 24 0 0 1 33.94 0l100.68 100.71a24 24 0 0 1 0 33.95l-10.82 10.82a24 24 0 0 1-34.42-.48l-40.41-42.8v182.11h187.54a24 24 0 0 1 17 7l16 16c15.12 15.12 4.41 41-17 41H119.69a24 24 0 0 1-24-24V170.19L55.27 213a24 24 0 0 1-34.42.49z\", \"M259.17 137.28c-15.12-15.12-4.41-41 17-41h243.52a24 24 0 0 1 24 24v222.15l40.41-42.79a24 24 0 0 1 34.42-.49L629.34 310a24 24 0 0 1 0 33.94L528.66 444.6a24 24 0 0 1-33.94 0L394 343.91a24 24 0 0 1 0-33.91l10.82-10.82a24 24 0 0 1 34.42.49l40.42 42.79V160.31H292.14a24 24 0 0 1-17-7z\"]]\n};\nvar faRetweetAlt = {\n prefix: 'fad',\n iconName: 'retweet-alt',\n icon: [640, 512, [], \"f361\", [\"M96 192H48c-21.36 0-32-25.9-17-41l80-80a24 24 0 0 1 34 0l80 80c15.11 15.1 4.35 41-17 41h-48v160h202.08a18.9 18.9 0 0 1 17.67 12.08 55.89 55.89 0 0 0 12.68 19.52c11.95 11.95 3.49 32.4-13.43 32.4H120a24 24 0 0 1-24-24z\", \"M609 361l-80 80a24 24 0 0 1-33.94 0l-80-80c-15.11-15.11-4.34-41 17-41h48V160H278a18.91 18.91 0 0 1-17.68-12.08 55.72 55.72 0 0 0-12.67-19.52c-12-12-3.49-32.4 13.42-32.4H520a24 24 0 0 1 24 24v200h48c21.39 0 32.06 25.9 17 41z\"]]\n};\nvar faRibbon = {\n prefix: 'fad',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", [\"M6 444.29l117.2-130 79.2 87.9-91.8 101.9a24.15 24.15 0 0 1-31.3 3.8L10.54 480A23.91 23.91 0 0 1 6 444.29z\", \"M89.34 228.69c-48.6-53.8-13-113.5-11.5-116l43.6-73.2a56.71 56.71 0 0 1 16.8-18c44-29.7 130.7-27.6 171.4 0a56.71 56.71 0 0 1 16.8 18l43.7 73.5a97.84 97.84 0 0 1-11.4 115.5l-34.2 38-79.1-87.7s52.7-59 56-64.6c-15.4-8.4-40.2-17.9-77.5-17.9s-62.1 9.5-77.5 17.9c3.4 5.5 295.4 330.1 295.4 330.1a23.76 23.76 0 0 1-4.3 35.6l-68.8 27.9a24 24 0 0 1-31.3-3.8z\"]]\n};\nvar faRing = {\n prefix: 'fad',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", [\"M64 208c0-44.18 86-80 192-80s192 35.82 192 80c0 21.81-20.95 41.57-54.9 56-34.85-14.81-83.39-24-137.1-24s-102.25 9.19-137.1 24C85 249.57 64 229.81 64 208z\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 224c-106 0-192-35.82-192-80s86-80 192-80 192 35.82 192 80-86 80-192 80z\"]]\n};\nvar faRingsWedding = {\n prefix: 'fad',\n iconName: 'rings-wedding',\n icon: [512, 512, [], \"f81b\", [\"M130.92 101.84L96 32l32-32h96l32 32-34.92 69.84a176.91 176.91 0 0 0-90.16 0zM350 160.56a207.16 207.16 0 0 1 29.06 72 111.89 111.89 0 1 1-96.46 4.95q-1.5-4.65-3.4-9.14l-.08-.2c-.39-.9-.78-1.8-1.19-2.69a3.54 3.54 0 0 0-.16-.34c-.41-.9-.84-1.79-1.27-2.68l-.09-.18q-1.44-2.91-3.06-5.73v-.07c-.5-.87-1-1.72-1.52-2.57-.11-.18-.22-.36-.34-.54-.43-.71-.87-1.41-1.33-2.11-.13-.21-.27-.42-.41-.63-.46-.7-.92-1.39-1.4-2.07L268 208q-1.8-2.58-3.74-5l-.48-.59c-.48-.61-1-1.21-1.47-1.81l-.67-.8c-.45-.53-.91-1.06-1.37-1.58l-.72-.83c-.49-.53-1-1.06-1.47-1.59l-.66-.72c-.71-.75-1.44-1.5-2.17-2.24a114.18 114.18 0 0 0-9.1-8.13 176.23 176.23 0 0 0-79.63 198.89A175.18 175.18 0 0 0 184 424.69q1.11 1.91 2.26 3.77c.76 1.24 1.54 2.46 2.34 3.68a.21.21 0 0 0 0 .06q1.18 1.82 2.42 3.6l.05.07q1.23 1.79 2.51 3.54c.85 1.18 1.73 2.35 2.61 3.5q1.33 1.75 2.72 3.46A176 176 0 1 0 350 160.56z\", \"M199 446.5a176 176 0 1 1 94-43 80.87 80.87 0 0 1-13.56-10.91 79.37 79.37 0 0 1-22.32-43.33 112 112 0 1 0-90.59 34.36A175.41 175.41 0 0 0 199 446.5z\"]]\n};\nvar faRoad = {\n prefix: 'fad',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", [\"M267.74 192h40.54a12 12 0 0 0 11.93-13.26l-4.6-43.58a8 8 0 0 0-8-7.16h-39.25a8 8 0 0 0-8 7.16l-4.59 43.58A12 12 0 0 0 267.74 192zm5.68-96h29.16a8 8 0 0 0 8-8.84L308.09 64h-40.18l-2.45 23.16a8 8 0 0 0 7.96 8.84zm64.89 254.32A16 16 0 0 0 322.4 336h-68.8a16 16 0 0 0-15.91 14.32L227.38 448h121.24zm-78-46.32h55.29a16 16 0 0 0 15.91-17.68l-5.07-48A16 16 0 0 0 310.57 224h-45.15a16 16 0 0 0-15.91 14.32l-5.07 48A16 16 0 0 0 260.35 304z\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16a8 8 0 0 1-8 8.84h-29.12a8 8 0 0 1-8-8.84L267.91 64h-97.59a30.45 30.45 0 0 0-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68A16 16 0 0 1 253.6 336h68.8a16 16 0 0 1 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM255.81 178.74l4.59-43.58a8 8 0 0 1 8-7.16h39.29a8 8 0 0 1 8 7.16l4.6 43.58A12 12 0 0 1 308.28 192h-40.54a12 12 0 0 1-11.93-13.26zM315.64 304h-55.29a16 16 0 0 1-15.91-17.68l5.07-48A16 16 0 0 1 265.42 224h45.15a16 16 0 0 1 15.91 14.32l5.07 48A16 16 0 0 1 315.64 304z\"]]\n};\nvar faRobot = {\n prefix: 'fad',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", [\"M288,416h64V384H288Zm-96,0h64V384H192ZM0,256V384a31.96166,31.96166,0,0,0,32,32H64V224H32A31.96166,31.96166,0,0,0,0,256ZM384,416h64V384H384ZM608,224H576V416h32a31.96166,31.96166,0,0,0,32-32V256A31.96166,31.96166,0,0,0,608,224ZM320,0a32.00033,32.00033,0,0,0-32,32V96h64V32A32.00033,32.00033,0,0,0,320,0Z\", \"M464,96H176a79.974,79.974,0,0,0-80,80V448a64.06328,64.06328,0,0,0,64,64H480a64.06328,64.06328,0,0,0,64-64V176A79.974,79.974,0,0,0,464,96ZM256,416H192V384h64ZM224,296a40,40,0,1,1,40-40A39.997,39.997,0,0,1,224,296ZM352,416H288V384h64Zm96,0H384V384h64ZM416,296a40,40,0,1,1,40-40A39.997,39.997,0,0,1,416,296Z\"]]\n};\nvar faRocket = {\n prefix: 'fad',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", [\"M51.94117,154.48438,2.531,253.29688A28.125,28.125,0,0,0-.00023,264a24.00619,24.00619,0,0,0,24,24H117.4607c23.44141-47.41211,61.01172-123.373,77.89063-157.32812.51953-.91407,1-1.76758,1.52344-2.67188H94.82008C78.47633,128.01562,59.28883,139.875,51.94117,154.48438Zm172.0586,240.1621V488.209A24.12394,24.12394,0,0,0,247.9607,512a28.02965,28.02965,0,0,0,10.625-2.53125l98.72657-49.39063c14.625-7.3125,26.5-26.5,26.5-42.85937V315.70312c.0664-.041.125-.08789.1875-.1289v-.52734c-.90625.51953-1.7461,1.002-2.66407,1.52539C347.37477,333.58008,271.2732,371.252,223.99977,394.64648Z\", \"M505.15992,19.51562A16.73971,16.73971,0,0,0,492.62477,6.94531C460.22633,0,434.37477,0,409.48414,0,320.3357,0,252.80836,40.61523,196.97633,127.81836c-.5586.97852-1.07031,1.877-1.625,2.85352-19.59766,39.42578-67.20313,135.70312-88.04688,177.877a31.91421,31.91421,0,0,0,6.09766,36.76172L167.05445,398.709a31.88923,31.88923,0,0,0,36.64844,5.98047l14.17578-7.01367c46.57422-23.04883,128.06641-63.3789,163.457-81.10351.96094-.54883,1.832-1.04883,2.78907-1.59766,87.23437-56.06055,127.85937-123.51172,127.85937-212.27734C512.06227,77.60742,512.12867,52.08789,505.15992,19.51562ZM367.99977,192a48,48,0,1,1,48-48.00195A48.02156,48.02156,0,0,1,367.99977,192Z\"]]\n};\nvar faRocketLaunch = {\n prefix: 'fad',\n iconName: 'rocket-launch',\n icon: [512, 512, [], \"e027\", [\"M35.67945,352.06641C9.82789,377.91992-2.94945,442.59375.57789,511.41016c69.10156,3.55859,133.58984-9.35157,159.33984-35.10547,40.28516-40.2793,42.8711-93.98633,6.3086-130.54883C129.66773,309.19727,75.9607,311.78516,35.67945,352.06641Zm94.957,81.05468c-10.73046,10.73243-37.60546,16.11133-66.40234,14.627-1.46484-28.67383,3.85938-55.623,14.63281-66.39649,16.78125-16.78515,39.16407-17.86328,54.39844-2.6289C148.49586,393.959,147.42164,416.33789,130.63648,433.12109ZM51.94117,154.48438,2.531,253.29688A28.125,28.125,0,0,0-.00023,264a24.00619,24.00619,0,0,0,24,24H117.4607c23.44141-47.41211,61.01172-123.373,77.89063-157.32812.51953-.91407,1-1.76758,1.52344-2.67188H94.82008C78.47633,128.01562,59.28883,139.875,51.94117,154.48438ZM381.3357,316.57227c-33.96093,17.00781-110.0625,54.67968-157.33593,78.07421V488.209A24.12394,24.12394,0,0,0,247.9607,512a28.02965,28.02965,0,0,0,10.625-2.53125l98.72657-49.39063c14.625-7.3125,26.5-26.5,26.5-42.85937V315.70312c.0664-.041.125-.08789.1875-.1289v-.52734C383.09352,315.56641,382.25367,316.04883,381.3357,316.57227Z\", \"M505.15992,19.51562A16.73971,16.73971,0,0,0,492.62477,6.94531C460.22633,0,434.37477,0,409.48414,0,320.3357,0,252.80836,40.61523,196.97633,127.81836c-.5586.97852-1.07031,1.877-1.625,2.85352C178.47242,164.627,140.90211,240.58789,117.4607,288h10.53907a95.99975,95.99975,0,0,1,96,96v10.64648c47.27343-23.39453,123.375-61.0664,157.33593-78.07421.96094-.54883,1.832-1.04883,2.78907-1.59766,87.23437-56.06055,127.85937-123.51172,127.85937-212.27734C512.06227,77.60742,512.12867,52.08789,505.15992,19.51562ZM367.99977,192a48,48,0,1,1,48-48.00195A48.02156,48.02156,0,0,1,367.99977,192ZM78.867,381.35156C68.09352,392.125,62.7693,419.07422,64.23414,447.74805c28.79688,1.48437,55.67188-3.89453,66.40234-14.627,16.78516-16.7832,17.85938-39.16211,2.62891-54.39843C118.031,363.48828,95.6482,364.56641,78.867,381.35156Z\"]]\n};\nvar faRoute = {\n prefix: 'fad',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", [\"M512 416a96.15 96.15 0 0 1-96 96H138.2a690.4 690.4 0 0 0 47.3-64H416a32 32 0 0 0 0-64h-96a96 96 0 0 1 0-192h45.24A799.82 799.82 0 0 0 416 256h-96a32 32 0 0 0 0 64h96a96.15 96.15 0 0 1 96 96z\", \"M96 256a96 96 0 0 0-96 96c0 53 96 160 96 160s96-107 96-160a96 96 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32zM416 0a96 96 0 0 0-96 96c0 53 96 160 96 160s96-107 96-160a96 96 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faRouteHighway = {\n prefix: 'fad',\n iconName: 'route-highway',\n icon: [448, 512, [], \"f61a\", [\"M428.4 269.21c37.94 56.52 18.55 139.43-38.81 166L224 512 58.41 435.25c-57.36-26.6-76.75-109.51-38.81-166A93.67 93.67 0 0 0 35 224h378a93.55 93.55 0 0 0 15.4 45.21z\", \"M6.6 113.82a24.73 24.73 0 0 1 1.87-25.13l41.18-58.37c5-7.09 15.67-13.13 27.49-8.61a141.61 141.61 0 0 0 50.25 8.89c29.51 0 59.82-8.47 83.17-26.11a22.36 22.36 0 0 1 26.88 0c23.35 17.64 53.65 26.11 83.16 26.11a141.7 141.7 0 0 0 50.26-8.89c11.73-4.49 22.43 1.43 27.49 8.61l41.18 58.36a24.73 24.73 0 0 1 1.87 25.13c-12.16 25-22.84 51.88-27 78.19H33.58c-4.15-26.31-14.82-53.22-26.98-78.18z\"]]\n};\nvar faRouteInterstate = {\n prefix: 'fad',\n iconName: 'route-interstate',\n icon: [480, 512, [], \"f61b\", [\"M475.24 224c-16.7 107.6-80.3 224.14-235.24 288C85.05 448.14 21.46 331.6 4.76 224z\", \"M1.1 192c-3.81-51.73 2.64-99.8 14.08-136.87 3.61-11.69 15-19.1 26.18-16a214.52 214.52 0 0 0 58.1 8c49.12 0 93.61-16.07 126.17-42.1a23 23 0 0 1 28.75 0c32.56 26 77.05 42.1 126.17 42.1a214.52 214.52 0 0 0 58.1-8c11.26-3.15 22.58 4.29 26.18 16 11.43 37.09 17.88 85.16 14.07 136.87z\"]]\n};\nvar faRouter = {\n prefix: 'fad',\n iconName: 'router',\n icon: [576, 512, [], \"f8da\", [\"M566.22 82.05C444.81-27.34 259.26-27.34 137.78 82a16.11 16.11 0 0 0-.71 23.34l22.34 22.34a15.85 15.85 0 0 0 21.86.64c96.45-86.55 244.24-85.85 341.11.42a16 16 0 0 0 21.85-.63l22.7-22.7a16.1 16.1 0 0 0-.71-23.36zm-360.34 83.61a16.12 16.12 0 0 0-.86 23.61L227.73 212a15.94 15.94 0 0 0 21.7.78c58.77-49.84 145.8-49.36 205.14.21a16.07 16.07 0 0 0 21.63-.84l22.8-22.8a16.22 16.22 0 0 0-.84-23.63c-83.83-71.91-208.42-71.91-292.28-.06zM96 384a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\", \"M528 320H376v-80a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v80H48a48 48 0 0 0-48 48v96a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48v-96a48 48 0 0 0-48-48zM96 448a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faRss = {\n prefix: 'fad',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", [\"M303.74 463.21c-8.35-154.6-132.18-278.59-286.95-286.95A16 16 0 0 0 0 192.25v48.07a16 16 0 0 0 14.89 16c111.83 7.28 201.47 96.7 208.77 208.77a16 16 0 0 0 16 14.89h48.07a16 16 0 0 0 16-16.79zM16.5 32A16 16 0 0 0 0 48v48.08a16 16 0 0 0 15.45 16c191.18 7.84 344.63 161.32 352.47 352.47a16 16 0 0 0 16 15.45H432a16 16 0 0 0 16-16.5C439.6 229.68 251.46 40.45 16.5 32z\", \"M0 416a64 64 0 1 1 64 64 64 64 0 0 1-64-64z\"]]\n};\nvar faRssSquare = {\n prefix: 'fad',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM112 416a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm157.53 0H235.2a11.44 11.44 0 0 1-11.44-10.63A160.07 160.07 0 0 0 74.63 256.24 11.44 11.44 0 0 1 64 244.8v-34.33A11.42 11.42 0 0 1 76 199c110.55 6 199 94.54 205 205a11.42 11.42 0 0 1-11.47 12zm103 0h-34.3a11.45 11.45 0 0 1-11.43-11C321.2 268.43 211.59 158.8 75 153.2a11.45 11.45 0 0 1-11-11.43v-34.33A11.42 11.42 0 0 1 75.79 96C243.62 102 378 237.2 384 404.21A11.42 11.42 0 0 1 372.56 416z\", \"M112 320a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM75.79 96A11.42 11.42 0 0 0 64 107.44v34.33a11.45 11.45 0 0 0 11 11.43c136.59 5.6 246.2 115.23 251.8 251.8a11.45 11.45 0 0 0 11.43 11h34.33A11.42 11.42 0 0 0 384 404.21C378 237.2 243.62 102 75.79 96zM76 199a11.42 11.42 0 0 0-12 11.43v34.37a11.44 11.44 0 0 0 10.63 11.44 160.07 160.07 0 0 1 149.13 149.13A11.44 11.44 0 0 0 235.2 416h34.33A11.42 11.42 0 0 0 281 404c-6-110.42-94.46-199-205-205z\"]]\n};\nvar faRubleSign = {\n prefix: 'fad',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", [\"M320 368v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16z\", \"M239.36 32H76a12 12 0 0 0-12 12v206.63H12a12 12 0 0 0-12 12V308a12 12 0 0 0 12 12h52v148a12 12 0 0 0 12 12h58.56a12 12 0 0 0 12-12V320h92.8C324.48 320 384 260.54 384 175.07S324.48 32 239.36 32zM224 250.63h-77.44V100.75h78.72c46.72 0 74.88 29.11 74.88 74.32 0 45.83-28.16 75.56-76.16 75.56z\"]]\n};\nvar faRuler = {\n prefix: 'fad',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", [\"M624.16 210l-496.8 281.9a32.18 32.18 0 0 1-43.5-11.5L4.26 344.77A31.1 31.1 0 0 1 16 302l69-39.1 59.7 101.4a8 8 0 0 0 10.9 2.9l13.8-7.8a7.78 7.78 0 0 0 2.9-10.7l-59.6-101.52 55.19-31.32 27.81 47.34a8 8 0 0 0 10.9 2.9l13.8-7.8a7.76 7.76 0 0 0 2.9-10.7l-27.93-47.4 55.19-31.31 59.7 101.68a8 8 0 0 0 10.9 2.9l13.8-7.8a7.78 7.78 0 0 0 2.9-10.7l-59.8-101.68 55.2-31.29 27.9 47.3a8 8 0 0 0 10.9 2.9l13.8-7.8a7.76 7.76 0 0 0 2.9-10.7l-27.89-47.38L416.06 75l59.7 101.59a8 8 0 0 0 10.9 2.9l13.8-7.8a7.76 7.76 0 0 0 2.9-10.7L443.68 59.31l69-39.14a32.18 32.18 0 0 1 43.5 11.5l79.6 135.5A31 31 0 0 1 624.16 210z\", \"M112.66 247.15L85 262.87l59.7 101.4a8 8 0 0 0 10.9 2.9l13.8-7.8a7.78 7.78 0 0 0 2.9-10.7zm165.4-93.88l-27.5 15.61 59.7 101.69a8 8 0 0 0 10.9 2.9l13.8-7.8a7.78 7.78 0 0 0 2.9-10.7zm-82.69 46.93l-27.52 15.63 27.81 47.34a8 8 0 0 0 10.9 2.9l13.8-7.8a7.76 7.76 0 0 0 2.9-10.7zm308-39.23l-59.7-101.7L416.06 75l59.7 101.6a8 8 0 0 0 10.9 2.9l13.8-7.8a7.76 7.76 0 0 0 2.9-10.7zm-142.5-54.7L333.26 122l27.9 47.3a8 8 0 0 0 10.9 2.9l13.8-7.8a7.76 7.76 0 0 0 2.9-10.7z\"]]\n};\nvar faRulerCombined = {\n prefix: 'fad',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", [\"M512 384v96a32 32 0 0 1-32 32H32c-2.76 0-5.24-.91-7.8-1.57L182.63 352H224v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h64v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h64v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h32a32 32 0 0 1 32 32zm-352-96h-56a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h56v-64h-56a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h56V96h-56a8 8 0 0 1-8-8V72a8 8 0 0 1 8-8h56V32a32 32 0 0 0-32-32H32A32 32 0 0 0 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38z\", \"M96 264v16a8 8 0 0 0 8 8h56v-32h-56a8 8 0 0 0-8 8zm0-192v16a8 8 0 0 0 8 8h56V64h-56a8 8 0 0 0-8 8zm0 96v16a8 8 0 0 0 8 8h56v-32h-56a8 8 0 0 0-8 8zm320 184v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56zm-192 56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h-32zm96 0a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h-32z\"]]\n};\nvar faRulerHorizontal = {\n prefix: 'fad',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", [\"M576 160v192a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h48v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88h64v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88h64v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88h64v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88h64v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88h48a32 32 0 0 1 32 32z\", \"M176 216a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88h-32zm-96 0a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88H80zm192 0a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88h-32zm192-88v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88zm-96 88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-88h-32z\"]]\n};\nvar faRulerTriangle = {\n prefix: 'fad',\n iconName: 'ruler-triangle',\n icon: [512, 512, [], \"f61c\", [\"M501.65 452.08l-51.16-51.16-38.57 38.57a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31l38.57-38.57-56.57-56.57-38.57 38.57a8 8 0 0 1-11.31 0L310.11 349a8 8 0 0 1 0-11.31l38.57-38.57-56.57-56.57-38.57 38.57a8 8 0 0 1-11.31 0l-11.31-11.32a8 8 0 0 1 0-11.31l38.57-38.57-56.57-56.57-38.57 38.57a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31l38.57-38.57-56.6-56.59-38.57 38.57a8 8 0 0 1-11.31 0L72.51 111.4a8 8 0 0 1 0-11.31l38.57-38.57-51.17-51.17A34.36 34.36 0 0 0 35.35 0C17.31 0 0 14 0 35.17V476.9A35.09 35.09 0 0 0 35.1 512h441.73c31.27 0 46.93-37.8 24.82-59.92zM128 384V259.46L252.54 384z\", \"M310.11 337.68l38.57-38.57 22.62 22.62-38.57 38.57a8 8 0 0 1-11.31 0L310.11 349a8 8 0 0 1 0-11.32zM174.35 201.92l38.57-38.57-22.62-22.62-38.57 38.57a8 8 0 0 0 0 11.31L163 201.92a8 8 0 0 0 11.35 0zm-90.53-79.21a8 8 0 0 0 11.31 0l38.57-38.57-22.62-22.62-38.57 38.57a8 8 0 0 0 0 11.31zm208.29 119.83l-11.3-11.29-11.32-11.33-38.57 38.57a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0zM427.87 378.3l-38.57 38.57a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0l38.57-38.57z\"]]\n};\nvar faRulerVertical = {\n prefix: 'fad',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", [\"M160 104v16a8 8 0 0 0 8 8h88v64h-88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h88v64h-88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h88v64h-88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h88v64a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32V32A32 32 0 0 1 32 0h192a32 32 0 0 1 32 32v64h-88a8 8 0 0 0-8 8z\", \"M160 296v16a8 8 0 0 0 8 8h88v-32h-88a8 8 0 0 0-8 8zm0 96v16a8 8 0 0 0 8 8h88v-32h-88a8 8 0 0 0-8 8zm0-192v16a8 8 0 0 0 8 8h88v-32h-88a8 8 0 0 0-8 8zm8-104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h88V96z\"]]\n};\nvar faRunning = {\n prefix: 'fad',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", [\"M272 96a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\", \"M384 223.81h-44l-26.06-53.2c-12.5-25.53-35.45-44.2-61.78-50.9l-71.11-21.13a95.65 95.65 0 0 0-80.84 17.12l-39.67 30.39A32 32 0 1 0 99.3 197l.18-.13 39.69-30.39c7.67-5.88 17.44-8 25.27-6.13l14.7 4.36L141.68 252A64.09 64.09 0 0 0 168 332.23l85 50.13L225.53 470a32 32 0 0 0 60.79 20c.1-.3.19-.6.28-.9l31.6-101a48.15 48.15 0 0 0-21.64-54.35l-61.24-36.11 31.31-78.21 20.27 41.39a48.31 48.31 0 0 0 43.1 26.94h54a32 32 0 1 0 0-63.95zm-270.31 93.4l-14.8 34.5H32a32 32 0 1 0 0 63.94h77.45a47.88 47.88 0 0 0 44.11-29.06l8.79-20.5-10.67-6.3a95.23 95.23 0 0 1-38-42.58z\"]]\n};\nvar faRupeeSign = {\n prefix: 'fad',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", [\"M320 144v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16z\", \"M320 44v40a12 12 0 0 1-12 12h-76.26a144 144 0 0 1-114.87 223.91l150.88 139.27a12 12 0 0 1-8.14 20.82h-82.56a12 12 0 0 1-8.14-3.18L3.86 324.46A12 12 0 0 1 0 315.64v-48A12 12 0 0 1 9.13 256H96a79.68 79.68 0 0 0 31.39-6.4 68.32 68.32 0 0 0 6.21-3 80 80 0 0 0-4.83-143.6 71.06 71.06 0 0 0-31.52-7.28H12a12 12 0 0 1-12-12V44a12 12 0 0 1 12-12h296a12 12 0 0 1 12 12z\"]]\n};\nvar faRv = {\n prefix: 'fad',\n iconName: 'rv',\n icon: [640, 512, [], \"f7be\", [\"M240 448a64 64 0 1 1-64-64 64 64 0 0 1 64 64zm400-133.5V384a32.09 32.09 0 0 1-32 32h-21.56a96 96 0 0 0-170.5-21.07V192l101.58.2a64.3 64.3 0 0 1 45.39 18.8l58.29 58.3a64.29 64.29 0 0 1 18.8 45.2zM572 288l-43.29-43.3a15.89 15.89 0 0 0-11.3-4.7h-37.48v48zm-76.08 96a64 64 0 1 0 64 64 64 64 0 0 0-64-64z\", \"M512 32H384V16a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v16H64A64.07 64.07 0 0 0 0 96v197.54a64 64 0 0 0 18.7 45.31l69.78 69.7a96 96 0 0 1 178 7.45H384V160h192c17.9 0 32.1-14.8 32-32.8A96 96 0 0 0 512 32zM256 208a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16v-64a16 16 0 0 1 16-16h128a16 16 0 0 1 16 16z\"]]\n};\nvar faSack = {\n prefix: 'fad',\n iconName: 'sack',\n icon: [512, 512, [], \"f81c\", [\"M192 96h128l47.4-71.12A16 16 0 0 0 354.09 0H157.94a16 16 0 0 0-13.31 24.88zm128 32H192C-10.38 243.4.09 396.64.09 416c0 53 49.11 96 109.68 96h292.48c60.58 0 109.68-43 109.68-96 0-19 9.35-173.24-191.93-288z\", \"M337 104v16a8 8 0 0 1-8 8H183a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h146a8 8 0 0 1 8 8z\"]]\n};\nvar faSackDollar = {\n prefix: 'fad',\n iconName: 'sack-dollar',\n icon: [512, 512, [], \"f81d\", [\"M192 96h128l47.4-71.12A16 16 0 0 0 354.09 0H157.94a16 16 0 0 0-13.31 24.88zm128 32H192C-10.38 243.4.09 396.64.09 416c0 53 49.11 96 109.68 96h292.48c60.58 0 109.68-43 109.68-96 0-19 9.35-173.24-191.93-288zm-46.58 278v17.34a8.68 8.68 0 0 1-8.7 8.62h-17.41a8.69 8.69 0 0 1-8.71-8.62v-17.51a63.14 63.14 0 0 1-34.16-12.17 8.52 8.52 0 0 1-.67-13l12.84-12.06a8.93 8.93 0 0 1 11-.76 26.71 26.71 0 0 0 13.93 4h30.58c7.07 0 12.84-6.35 12.84-14.22 0-6.46-3.92-12.06-9.58-13.67l-49-14.54c-20.24-6-34.39-25.2-34.39-46.74 0-26.38 20.68-47.82 46.46-48.57v-17.48a8.69 8.69 0 0 1 8.75-8.62h17.41a8.68 8.68 0 0 1 8.7 8.62v17.55a63.15 63.15 0 0 1 34.17 12.17 8.54 8.54 0 0 1 1.58 12 8.72 8.72 0 0 1-.92 1l-12.73 12.2a8.91 8.91 0 0 1-11 .75 26.8 26.8 0 0 0-13.93-4h-30.57c-7.07 0-12.84 6.35-12.84 14.21 0 6.46 3.92 12.06 9.57 13.68l49 14.54c20.24 6 34.38 25.2 34.38 46.74-.14 26.4-20.92 47.94-46.6 48.54z\", \"M285.64 310.72l-49-14.54c-5.65-1.62-9.57-7.22-9.57-13.68 0-7.86 5.77-14.21 12.84-14.21h30.56a26.8 26.8 0 0 1 13.93 4 8.91 8.91 0 0 0 11-.75l12.73-12.2a8.72 8.72 0 0 0 .92-1 8.54 8.54 0 0 0-1.56-12 63.15 63.15 0 0 0-34.17-12.17v-17.55a8.68 8.68 0 0 0-8.7-8.62H247.2a8.69 8.69 0 0 0-8.74 8.62v17.48c-25.78.75-46.46 22.19-46.46 48.57 0 21.54 14.15 40.74 34.39 46.74l49 14.54c5.66 1.61 9.58 7.21 9.58 13.67 0 7.87-5.77 14.22-12.84 14.22h-30.58a26.71 26.71 0 0 1-13.93-4 8.93 8.93 0 0 0-11 .76l-12.84 12.06a8.52 8.52 0 0 0 .67 13 63.14 63.14 0 0 0 34.16 12.17v17.51a8.69 8.69 0 0 0 8.71 8.62h17.41a8.68 8.68 0 0 0 8.7-8.62V406c25.68-.6 46.46-22.14 46.6-48.54-.03-21.54-14.15-40.74-34.39-46.74zM329 96H183a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h146a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faSadCry = {\n prefix: 'fad',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", [\"M365,474.72l2.52-1.37Zm-2.2,1.16-2.46,1.28Zm-13.92,6.74,2.51-1.13Zm7.32-3.4-2.46,1.17ZM496,256A247.82,247.82,0,0,1,375.82,468.57l.18-.1V288a16,16,0,0,0-32,0V484.74a248.88,248.88,0,0,1-192,0V288a16,16,0,0,0-32,0V468.47h.06A247.81,247.81,0,0,1,0,256C0,119,111,8,248,8S496,119,496,256ZM192.2,233A12,12,0,0,0,212,222.2c-4-25.2-34.2-42.1-59.9-42.1S96.2,197,92.2,222.2A12,12,0,0,0,112,233l9.5-8.5c14.8-13.2,46.2-13.2,61,0ZM296,352c0-35.3-21.5-64-48-64s-48,28.7-48,64,21.5,64,48,64S296,387.3,296,352ZM404,222.2c-4-25.2-34.2-42.1-59.9-42.1s-55.9,16.9-59.9,42.1A12,12,0,0,0,304,233l9.6-8.6c14.8-13.2,46.2-13.2,61,0l9.5,8.5a11.92,11.92,0,0,0,13.7,1.6,12.36,12.36,0,0,0,6.2-12.3ZM344,484.74l2.42-1ZM128.48,473.35l2.52,1.37Zm4.72,2.53,2.46,1.28Zm-6.81-3.7c-.83-.47-1.67-.93-2.5-1.41C124.72,471.25,125.56,471.71,126.39,472.18Zm13.42,7c.81.4,1.63.78,2.45,1.17-.82-.35-1.64-.73-2.45-1.13Zm232.3-8.45c-.83.48-1.67.94-2.5,1.41.83-.43,1.67-.89,2.5-1.37Zm-227.5,10.72,2.51,1.13ZM152,484.7l-2.42-1Z\", \"M152.1,180.1c-25.7,0-55.9,16.9-59.9,42.1A12,12,0,0,0,112,233l9.5-8.5c14.8-13.2,46.2-13.2,61,0l9.7,8.5A12,12,0,0,0,212,222.2C208,197,177.8,180.1,152.1,180.1ZM404,222.2c-4-25.2-34.2-42.1-59.9-42.1s-55.9,16.9-59.9,42.1A12,12,0,0,0,304,233l9.6-8.6c14.8-13.2,46.2-13.2,61,0l9.5,8.5a11.92,11.92,0,0,0,13.7,1.6,12.36,12.36,0,0,0,6.2-12.3ZM360,272a16,16,0,0,0-16,16V484.74a247.25,247.25,0,0,0,32-16.27V288A16,16,0,0,0,360,272Zm-224,0a16,16,0,0,0-16,16V468.47a247.25,247.25,0,0,0,32,16.27V288A16,16,0,0,0,136,272Z\"]]\n};\nvar faSadTear = {\n prefix: 'fad',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm80,168a32,32,0,1,1-32,32A32,32,0,0,1,328,176ZM152,416c-26.5,0-48-21-48-47,0-20,28.5-60.4,41.6-77.8a8,8,0,0,1,11.2-1.6,7.58,7.58,0,0,1,1.6,1.6C171.5,308.6,200,349,200,369,200,395,178.5,416,152,416Zm16-176a32,32,0,1,1,32-32A32,32,0,0,1,168,240ZM338.2,394.2A117.35,117.35,0,0,0,248,352c-21.2,0-21.2-32,0-32a148.8,148.8,0,0,1,114.7,53.8c13.8,16.4-11.2,36.5-24.5,20.4Z\", \"M328,176a32,32,0,1,0,32,32A32,32,0,0,0,328,176ZM145.6,291.2C132.5,308.6,104,349,104,369c0,26,21.5,47,48,47s48-21,48-47c0-20-28.5-60.4-41.6-77.8a8,8,0,0,0-11.2-1.6,7.58,7.58,0,0,0-1.6,1.6ZM168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Z\"]]\n};\nvar faSalad = {\n prefix: 'fad',\n iconName: 'salad',\n icon: [512, 512, [], \"f81e\", [\"M416 96c2.65 0 5.12.62 7.73.78C406.14 76.87 380.69 64 352 64a95.2 95.2 0 0 0-25.15 3.75 111.94 111.94 0 0 0-205.7 0A95.2 95.2 0 0 0 96 64a96 96 0 0 0 0 192h73.37l-87-87a8 8 0 0 1 0-11.31l11.32-11.29a8 8 0 0 1 11.31 0l103 103V104a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v152h52.54a126.78 126.78 0 0 1-4.54-32A128.14 128.14 0 0 1 416 96zm33.25 38a95.3 95.3 0 0 0-123.37 122h169.29a48.23 48.23 0 0 1 10.57 1.24A95.86 95.86 0 0 0 449.25 134z\", \"M384 468.52V480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32v-11.28C58.27 444.26 6.69 381.24.06 304.87-.74 295.75 7 288 16.17 288h479c9.15 0 16.89 7.72 16.1 16.84C504.66 381 453.4 443.9 384 468.52z\"]]\n};\nvar faSandwich = {\n prefix: 'fad',\n iconName: 'sandwich',\n icon: [512, 512, [], \"f81f\", [\"M512 271.07v32.14c0 .47 0 .93-.08 1.4a16.27 16.27 0 0 1-17.78 14.6c-28.52-2.6-45.94-11.36-60.41-18.6S408.54 288 384.12 288s-35 5.3-49.64 12.62c-17.26 8.63-38.7 19.38-78.26 19.38s-61.08-10.73-78.34-19.38C163.2 293.3 152.58 288 128.11 288S93 293.3 78.36 300.63s-31.93 16-60.51 18.59c-.47 0-.94.07-1.41.08A16.26 16.26 0 0 1 0 303.22v-32.14a15.93 15.93 0 0 1 14.1-15.79c15.16-1.67 24.16-6.17 35.67-11.91C67 234.73 88.53 224 128.11 224s61.08 10.75 78.36 19.38C221.14 250.7 231.8 256 256.22 256s35-5.3 49.64-12.62c17.26-8.63 38.72-19.38 78.26-19.38s61 10.75 78.27 19.39c11.51 5.73 20.43 10.22 35.51 11.9a15.94 15.94 0 0 1 14.1 15.78z\", \"M480 352h-64l-96 48-96-48H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm0-320H32A32 32 0 0 0 0 64v96a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32z\"]]\n};\nvar faSatellite = {\n prefix: 'fad',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", [\"M111.94322,377.45123l-17.802,17.80239c-2.60029-.70011-5.00057-1.60022-7.80089-1.60022a32.00433,32.00433,0,1,0,32.00362,32.00433c0-2.80037-.9001-5.20072-1.60018-7.801l17.802-17.8024ZM502.77737,265.126l-.09-.09-80.38909-80.43088-33.95384,34.0046L280.53226,326.42434l80.35908,80.36087a31.87308,31.87308,0,0,0,45.00509,0l96.7109-96.71306a31.78484,31.78484,0,0,0,.17-44.94608ZM247.02847,9.30144A32.0032,32.0032,0,0,0,224.45592.00018a31.6132,31.6132,0,0,0-22.50254,9.30126l-96.71093,96.71308a32.00484,32.00484,0,0,0,0,45.10611l80.33908,80.34086,141.716-141.85918Z\", \"M470.18369,136.81869l-199.52254,199.477a190.48961,190.48961,0,0,1-5.4006,168.47279c-4.50051,8.50115-16.40185,9.60128-23.20262,2.80037L4.43107,270.0367c-6.80077-6.8009-5.70064-18.59251,2.80032-23.19314a190.61773,190.61773,0,0,1,168.519-5.40072L375.173,41.82584a33.64327,33.64327,0,0,1,47.50536,0l47.50537,47.49643a33.615,33.615,0,0,1,0,47.49643Z\"]]\n};\nvar faSatelliteDish = {\n prefix: 'fad',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", [\"M224.03705,256.18768a32.003,32.003,0,0,0-32.00489,32.00119c0,2.80009.90013,5.20021,1.60025,7.80028l-27.40418,27.401L188.83168,346.041l27.40418-27.401c2.6004.7,5.00076,1.60007,7.80119,1.60007a32.0012,32.0012,0,1,0,0-64.00239Zm287.944,46.85175C503.47977,139.88336,372.25973,8.67846,209.03476.02814a16.0818,16.0818,0,0,0-16.99755,15.11031l-.005.09026V47.65992a15.85138,15.85138,0,0,0,15.00229,15.90059c129.41978,7.00026,233.43569,112.00417,240.93683,241.509a16.00167,16.00167,0,0,0,15.90243,15.00056h32.10491a16.12153,16.12153,0,0,0,16.00245-16.1806A4.82409,4.82409,0,0,0,511.98107,303.03943ZM209.33481,96.03172a16.12184,16.12184,0,0,0-17.25227,14.90555l-.00037.005c0,.4-.05.79-.05,1.19v32.10121a15.94134,15.94134,0,0,0,14.80227,15.90058c76.81174,6.30024,138.02108,68.20254,144.92216,145.2054A16.08172,16.08172,0,0,0,367.659,320.04007H399.864a16.19152,16.19152,0,0,0,16.14248-16.24045l0-.01016v-1C407.56511,192.68531,319.45163,104.582,209.33481,96.03172Z\", \"M302.449,487.5963C224.73716,529.39784,125.722,517.49744,60.112,451.895s-77.51184-164.50613-35.70545-242.309c4.90074-9.10034,17.7027-10.30038,25.00382-3.00011L305.44949,462.59537C312.85062,469.89562,311.65045,482.69612,302.449,487.5963Z\"]]\n};\nvar faSausage = {\n prefix: 'fad',\n iconName: 'sausage',\n icon: [512, 512, [], \"f820\", [\"M416 64a96 96 0 0 0-96 96c0 88.22-71.78 160-160 160a96 96 0 0 0 0 192 351.79 351.79 0 0 0 352-352 96 96 0 0 0-96-96zM160 400a16 16 0 0 1 0-32c114.69 0 208-93.31 208-208a16 16 0 0 1 32 0c0 132.34-107.66 240-240 240z\", \"M24.18 369A18.36 18.36 0 0 0 1 380.59a18.11 18.11 0 0 0-1 5.79v59.24A18.38 18.38 0 0 0 24.18 463l45.26-15.08a96.4 96.4 0 0 1 0-63.88zM451.41 1a18.11 18.11 0 0 0-5.79-1h-59.24a18.36 18.36 0 0 0-18.33 18.39 18.68 18.68 0 0 0 .95 5.79l15.08 45.26a96.4 96.4 0 0 1 63.88 0l15-45.27A18.36 18.36 0 0 0 451.41 1zM384 144a16 16 0 0 0-16 16c0 114.69-93.31 208-208 208a16 16 0 0 0 0 32c132.34 0 240-107.66 240-240a16 16 0 0 0-16-16z\"]]\n};\nvar faSave = {\n prefix: 'fad',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", [\"M288 352a64 64 0 1 1-64-64 64 64 0 0 1 64 64z\", \"M433.94 129.94l-83.88-83.88A48 48 0 0 0 316.12 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V163.88a48 48 0 0 0-14.06-33.94zM224 416a64 64 0 1 1 64-64 64 64 0 0 1-64 64zm96-204a12 12 0 0 1-12 12H76a12 12 0 0 1-12-12V108a12 12 0 0 1 12-12h228.52a12 12 0 0 1 8.48 3.52l3.48 3.48a12 12 0 0 1 3.52 8.48z\"]]\n};\nvar faSaxHot = {\n prefix: 'fad',\n iconName: 'sax-hot',\n icon: [640, 512, [], \"f8db\", [\"M635.28 100.69L608 73.37A32 32 0 0 0 585.34 64h-46.83a64 64 0 0 0-45.26 18.74L210 366a25.41 25.41 0 0 1-39.76-31l47.39-79H240a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a15.91 15.91 0 0 0 15.21 15.84C7.48 288.56 0 326.72 0 352c0 61.4 35 114.09 85.73 140.92A150 150 0 0 0 160 512c77.1 0 116.46-51.33 128-64l246.39-308a32 32 0 0 1 25-12H624c14.22 0 21.36-17.23 11.28-27.31zM88 392a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm32-88a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M320 212.69L308.69 224a16 16 0 0 0 0 22.63L319 257l34-34-10.35-10.34a16 16 0 0 0-22.65.03zM177.77 25.6a301.94 301.94 0 0 0-28.1 30A387.31 387.31 0 0 0 100 0C50.88 45.58 16 105 16 140.8a117 117 0 0 0 5.89 35.2h61.34A60.88 60.88 0 0 1 72 140.8c0-7.62 8.66-30.3 28.46-57.54q2 2.61 3.89 5.22L147 147.26l27.06-33.08c6.07 12.1 9.54 22.24 9.92 26.62a60.88 60.88 0 0 1-11.21 35.2h61.34a117 117 0 0 0 5.89-35.2c0-26.63-26-81.57-62.23-115.2zM368 164.69L356.69 176a16 16 0 0 0 0 22.63L367 209l34-34-10.35-10.34a16 16 0 0 0-22.65.03zm70.62-48a16 16 0 0 0-22.62 0L404.69 128a16 16 0 0 0 0 22.63L415 161l34-34z\"]]\n};\nvar faSaxophone = {\n prefix: 'fad',\n iconName: 'saxophone',\n icon: [640, 512, [], \"f8dc\", [\"M635.28 68.69L608 41.37A32 32 0 0 0 585.34 32h-46.83a64 64 0 0 0-45.26 18.74L210 334a25.41 25.41 0 0 1-39.76-31l76.16-127H272a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h11.46C18.65 207.92 0 280.13 0 320c0 61.4 35 114.09 85.73 140.92A150 150 0 0 0 160 480c77.1 0 116.46-51.33 128-64l246.39-308a32 32 0 0 1 25-12H624c14.22 0 21.36-17.23 11.28-27.31zM96 344a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm32-96a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M320 180.69L308.69 192a16 16 0 0 0 0 22.63L319 225l34-34-10.34-10.34a16 16 0 0 0-22.66.03zm118.63-96a16 16 0 0 0-22.63 0L404.69 96a16 16 0 0 0 0 22.63L415 129l34-34zm-70.63 48L356.69 144a16 16 0 0 0 0 22.63L367 177l34-34-10.34-10.34a16 16 0 0 0-22.66.03zM96 296a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm32-96a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faScalpel = {\n prefix: 'fad',\n iconName: 'scalpel',\n icon: [512, 512, [], \"f61d\", [\"M176 320h105.6v8c0 38.39-15.35 76.61-46.72 102.32l-.59.48C170.28 482.82 87 512.07 0 512z\", \"M199.9 288a16 16 0 0 1-12.19-26.47l201.5-235.46C412.52-1.18 453.5-9 482.7 11.85c33.76 24.08 38.9 71.69 12.53 102.49l-139 162.44A32.08 32.08 0 0 1 331.84 288z\"]]\n};\nvar faScalpelPath = {\n prefix: 'fad',\n iconName: 'scalpel-path',\n icon: [640, 512, [], \"f61e\", [\"M234.29 430.84C170.28 482.82 87 512.07 0 512l176-192h105.6v8c0 38.39-15.35 76.61-46.72 102.32z\", \"M482.71 11.85c-29.2-20.83-70.18-13-93.49 14.22l-201.5 235.46A16 16 0 0 0 199.91 288h131.94a32.08 32.08 0 0 0 24.37-11.22l139-162.44c26.38-30.8 21.24-78.41-12.51-102.49zM632 480h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-160 0h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-160 0h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faScanner = {\n prefix: 'fad',\n iconName: 'scanner',\n icon: [640, 512, [], \"f488\", [\"M256 448a32 32 0 0 0 32-32V304.27L205 448zM368 64H96a95.91 95.91 0 0 0-1.7 191.79L6.44 408A48 48 0 0 0 24 473.53l55.4 32A48 48 0 0 0 145 488l134-232h89.09a16 16 0 0 0 16-16V80a16 16 0 0 0-16.03-16z\", \"M632 448H456a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zm0-96H456a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-64H456a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-224H456a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zm0 96H456a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zm0-160H456a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8z\"]]\n};\nvar faScannerImage = {\n prefix: 'fad',\n iconName: 'scanner-image',\n icon: [640, 512, [], \"f8f3\", [\"M0 320v128a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V288H32a32 32 0 0 0-32 32zm120 80a8 8 0 0 1-8 8H80a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8zm96 0a8 8 0 0 1-8 8h-32a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8z\", \"M617.84 220.84L36.31 32.83a16 16 0 0 0-20.25 10.1L.83 88.46a16 16 0 0 0 10.1 20.25L566.88 288H640v-36.71a32 32 0 0 0-22.16-30.45zM112 360H80a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8z\"]]\n};\nvar faScannerKeyboard = {\n prefix: 'fad',\n iconName: 'scanner-keyboard',\n icon: [576, 512, [], \"f489\", [\"M400 96H16a16 16 0 0 0-16 16v137.4a16 16 0 0 0 4.7 11.3L32 288v176a48 48 0 0 0 48 48h256a48 48 0 0 0 48-48V288l27.3-27.3a16 16 0 0 0 4.7-11.3V112a16 16 0 0 0-16-16zM192 440a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8zm128 96a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h80a8 8 0 0 1 8 8zm32-128a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h272a8 8 0 0 1 8 8z\", \"M568 0h-48a8 8 0 0 0-8 8v272a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8zM320 8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v56h32zm-64 0a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h64zm152-8h-48a8 8 0 0 0-8 8v56h64V8a8 8 0 0 0-8-8zm64 0h-16a8 8 0 0 0-8 8v272a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8zM344 160H72a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h272a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8z\"]]\n};\nvar faScannerTouchscreen = {\n prefix: 'fad',\n iconName: 'scanner-touchscreen',\n icon: [576, 512, [], \"f48a\", [\"M400 96H16a16 16 0 0 0-16 16v137.4a16 16 0 0 0 4.7 11.3L32 288v176a48 48 0 0 0 48 48h256a48 48 0 0 0 48-48V288l27.3-27.3a16 16 0 0 0 4.7-11.3V112a16 16 0 0 0-16-16zm-80 336a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16V176a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\", \"M312 0h-16a8 8 0 0 0-8 8v56h32V8a8 8 0 0 0-8-8zm-56 8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h64zm152-8h-48a8 8 0 0 0-8 8v56h64V8a8 8 0 0 0-8-8zm160 0h-48a8 8 0 0 0-8 8v272a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8zm-96 0h-16a8 8 0 0 0-8 8v272a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8zM304 160H112a16 16 0 0 0-16 16v256a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16V176a16 16 0 0 0-16-16z\"]]\n};\nvar faScarecrow = {\n prefix: 'fad',\n iconName: 'scarecrow',\n icon: [448, 512, [], \"f70d\", [\"M216.84 414.2L192 401v95a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-95l-24.87 13.2a15.08 15.08 0 0 1-14.29 0zM224 0a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm-32 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm64 16a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M445.75 186.39l-.08-.09-26.39-26.3 18.29-18.3a8 8 0 0 0-5.7-13.7H314.48a96 96 0 0 1-181 0H16a8 8 0 0 0-5.7 13.7L28.72 160 2.34 186.3a8 8 0 0 0 0 11.3L28.72 224l-18.3 18.3a8 8 0 0 0 5.7 13.7h106.09l-26 141.3a16 16 0 0 0 22.9 16.9l32.71-24.2a16 16 0 0 1 17.08-1.3l47.91 25.5a15.08 15.08 0 0 0 14.29 0l47.9-25.5a16 16 0 0 1 17.1 1.3l32.7 24.2a15.93 15.93 0 0 0 22.89-16.9L325.88 256h106.06a8.05 8.05 0 0 0 5.69-13.7L419.28 224l26.29-26.3a8 8 0 0 0 .18-11.31zM256 112a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-64-16a16 16 0 1 0-16-16 16 16 0 0 0 16 16z\"]]\n};\nvar faScarf = {\n prefix: 'fad',\n iconName: 'scarf',\n icon: [512, 512, [], \"f7c1\", [\"M509.72 395.71l-117.39-117.1-22.61 22.6L487 418.31a8 8 0 0 0 11.3 0L509.62 407a7.92 7.92 0 0 0 .1-11.29zm-207.89-26.8l-22.61 22.6 117.4 117.2a8 8 0 0 0 11.3 0l11.3-11.3a8 8 0 0 0 0-11.3zM166 323.71L47.62 441.91a8 8 0 0 0 0 11.3l11.3 11.3a8 8 0 0 0 11.3 0l118.4-118.2zm-45.31-45.1L2.33 396.71a8 8 0 0 0 0 11.3l11.29 11.3a8 8 0 0 0 11.3 0l118.41-118.2zM347 323.71l-22.61 22.6 117.41 117.2a8 8 0 0 0 11.29 0l11.3-11.3a8 8 0 0 0 0-11.3zM92.92 487.11a8 8 0 0 0 0 11.3l11.3 11.3a8 8 0 0 0 11.31 0l118.39-118.2-22.59-22.6z\", \"M279.12 120.51l19.5-19.4a185.4 185.4 0 0 0-84.4-.2L369.62 256 256.53 369.11l-135.1-140.7c-48.6-53.7-13-113.3-11.5-115.8l43.6-73.1a56.71 56.71 0 0 1 16.8-18c44-29.7 130.7-27.6 171.3-.1a56.71 56.71 0 0 1 16.8 18l43.7 73.4c7.2 12 33.4 65.6-13.2 117.3z\"]]\n};\nvar faSchool = {\n prefix: 'fad',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", [\"M360 176h-24v-40a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v64a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM0 224v272a16 16 0 0 0 16 16h80V192H32a32 32 0 0 0-32 32zm608-32h-64v320h80a16 16 0 0 0 16-16V224a32 32 0 0 0-32-32z\", \"M497.75 112l-160-106.63a32 32 0 0 0-35.5 0L142.25 112A32 32 0 0 0 128 138.66V512h128V368a16 16 0 0 1 16-16h96a16 16 0 0 1 16 16v144h128V138.67A32 32 0 0 0 497.75 112zM320 256a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]]\n};\nvar faScrewdriver = {\n prefix: 'fad',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", [\"M448 0l64 64-96 128h-62.07l-83 83A98.45 98.45 0 0 0 237 241.09l83-83V96z\", \"M63.61 501.08l-52.7-52.7a37.28 37.28 0 0 1 0-52.71L128 278.59A74.54 74.54 0 0 1 233.4 384L116.32 501.08a37.26 37.26 0 0 1-52.71 0z\"]]\n};\nvar faScroll = {\n prefix: 'fad',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", [\"M544 96v288H304a16 16 0 0 0-16 16v32a80 80 0 0 1-160 0V65A65 65 0 0 0 63 0h385a96.1 96.1 0 0 1 96 96z\", \"M64 0A64 64 0 0 0 0 64v48a16 16 0 0 0 16 16h112V65A65 65 0 0 0 64 0zm128 512h16c-2.59 0-5.14-.13-7.66-.37-2.75.24-5.53.37-8.34.37zm432-128H304a16 16 0 0 0-16 16v32a80 80 0 0 1-80 80h320a112 112 0 0 0 112-112.06A16 16 0 0 0 624 384z\"]]\n};\nvar faScrollOld = {\n prefix: 'fad',\n iconName: 'scroll-old',\n icon: [640, 512, [], \"f70f\", [\"M539.31 228.69L512 256l27.31 27.31a16 16 0 0 1 4.69 11.32V384h-89.37a16 16 0 0 0-11.32 4.69L416 416l-27.31-27.31a16 16 0 0 0-11.32-4.69H304a16 16 0 0 0-16 16v32a80 80 0 0 1-80.61 80c-44.11-.33-79.39-36.89-79.39-81V262.63a16 16 0 0 1 4.69-11.32L160 224l-27.31-27.31a16 16 0 0 1-4.69-11.32V65A65 65 0 0 0 63 0h385a96.1 96.1 0 0 1 95.68 88.2 16.15 16.15 0 0 1-4.63 12.8L512 128l27.31 27.31a16 16 0 0 1 4.69 11.32v50.74a16 16 0 0 1-4.69 11.32z\", \"M192 512h16c-2.59 0-5.14-.13-7.66-.37-2.75.24-5.53.37-8.34.37zM64 0A64 64 0 0 0 0 64v48a16 16 0 0 0 16 16h112V65A65 65 0 0 0 64 0zm560 384H454.63a16 16 0 0 0-11.32 4.69L416 416l-27.31-27.31a16 16 0 0 0-11.32-4.69H304a16 16 0 0 0-16 16v32a80 80 0 0 1-80 80h320a112 112 0 0 0 112-112.06A16 16 0 0 0 624 384z\"]]\n};\nvar faScrubber = {\n prefix: 'fad',\n iconName: 'scrubber',\n icon: [496, 512, [], \"f2f8\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm0,312a64,64,0,1,1,64-64A64,64,0,0,1,248,320Z\", \"M248,320a64,64,0,1,1,64-64A64,64,0,0,1,248,320Z\"]]\n};\nvar faScythe = {\n prefix: 'fad',\n iconName: 'scythe',\n icon: [640, 512, [], \"f710\", [\"M549.87 0L510 192H0C64 64 192 0 338.87 0z\", \"M639.44 38l-96.27 461a16 16 0 0 1-15.72 13H496a16 16 0 0 1-16-16 16.16 16.16 0 0 1 .27-2.94l29.26-141H400a16 16 0 0 1-16-16V304a16 16 0 0 1 16-16h122.81L582.55 0H608a32 32 0 0 1 31.44 38z\"]]\n};\nvar faSdCard = {\n prefix: 'fad',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", [\"M112 160h48V64h-48zm80 0h48V64h-48zm80-96v96h48V64z\", \"M320 0H128L0 128v320a64.06 64.06 0 0 0 64 64h256a64.06 64.06 0 0 0 64-64V64a64.06 64.06 0 0 0-64-64zM160 160h-48V64h48zm80 0h-48V64h48zm80 0h-48V64h48z\"]]\n};\nvar faSearch = {\n prefix: 'fad',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", [\"M208 80a128 128 0 1 1-90.51 37.49A127.15 127.15 0 0 1 208 80m0-80C93.12 0 0 93.12 0 208s93.12 208 208 208 208-93.12 208-208S322.88 0 208 0z\", \"M504.9 476.7L476.6 505a23.9 23.9 0 0 1-33.9 0L343 405.3a24 24 0 0 1-7-17V372l36-36h16.3a24 24 0 0 1 17 7l99.7 99.7a24.11 24.11 0 0 1-.1 34z\"]]\n};\nvar faSearchDollar = {\n prefix: 'fad',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", [\"M208 80a128 128 0 1 1-90.51 37.49A127.15 127.15 0 0 1 208 80m0-80C93.12 0 0 93.12 0 208s93.12 208 208 208 208-93.12 208-208S322.88 0 208 0z\", \"M235.13 199.42l-45-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11a24 24 0 0 1 12.82 3.72 8.21 8.21 0 0 0 10.13-.73L256 151.78a8 8 0 0 0-.57-12.14A57.26 57.26 0 0 0 224 128.29V112a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 20 13 37.81 31.58 43.39l45 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19H194.8a24 24 0 0 1-12.8-3.72 8.21 8.21 0 0 0-10.13.73l-11.77 11.21a8 8 0 0 0 .57 12.14A57.26 57.26 0 0 0 192 287.71V304a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07.04-19.97-12.95-37.81-31.55-43.39zM505 442.7L405.3 343a24 24 0 0 0-17-7H372l-36 36v16.3a24 24 0 0 0 7 17l99.7 99.7a23.9 23.9 0 0 0 33.9 0l28.3-28.3a24.11 24.11 0 0 0 .1-34z\"]]\n};\nvar faSearchLocation = {\n prefix: 'fad',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", [\"M208 80a128 128 0 1 1-90.51 37.49A127.15 127.15 0 0 1 208 80m0-80C93.12 0 0 93.12 0 208s93.12 208 208 208 208-93.12 208-208S322.88 0 208 0z\", \"M208 112a73.83 73.83 0 0 0-73.84 73.83c0 33 48.26 93 66.75 114.86a9.22 9.22 0 0 0 13 1.16 8.55 8.55 0 0 0 1.17-1.16c18.49-21.81 66.75-81.89 66.75-114.86A73.83 73.83 0 0 0 208 112zm0 96a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm297 234.7L405.3 343a24 24 0 0 0-17-7H372l-36 36v16.3a24 24 0 0 0 7 17l99.7 99.7a23.9 23.9 0 0 0 33.9 0l28.3-28.3a24.11 24.11 0 0 0 .1-34z\"]]\n};\nvar faSearchMinus = {\n prefix: 'fad',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", [\"M208 80a128 128 0 1 1-90.51 37.49A127.15 127.15 0 0 1 208 80m0-80C93.12 0 0 93.12 0 208s93.12 208 208 208 208-93.12 208-208S322.88 0 208 0z\", \"M292 180H124a12 12 0 0 0-12 12v32a12 12 0 0 0 12 12h168a12 12 0 0 0 12-12v-32a12 12 0 0 0-12-12zm213 262.7L405.3 343a24 24 0 0 0-17-7H372l-36 36v16.3a24 24 0 0 0 7 17l99.7 99.7a23.9 23.9 0 0 0 33.9 0l28.3-28.3a24.11 24.11 0 0 0 .1-34z\"]]\n};\nvar faSearchPlus = {\n prefix: 'fad',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", [\"M208 80a128 128 0 1 1-90.51 37.49A127.15 127.15 0 0 1 208 80m0-80C93.12 0 0 93.12 0 208s93.12 208 208 208 208-93.12 208-208S322.88 0 208 0z\", \"M292 180h-56v-56a12 12 0 0 0-12-12h-32a12 12 0 0 0-12 12v56h-56a12 12 0 0 0-12 12v32a12 12 0 0 0 12 12h56v56a12 12 0 0 0 12 12h32a12 12 0 0 0 12-12v-56h56a12 12 0 0 0 12-12v-32a12 12 0 0 0-12-12zm213 262.7L405.3 343a24 24 0 0 0-17-7H372l-36 36v16.3a24 24 0 0 0 7 17l99.7 99.7a23.9 23.9 0 0 0 33.9 0l28.3-28.3a24.11 24.11 0 0 0 .1-34z\"]]\n};\nvar faSeedling = {\n prefix: 'fad',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", [\"M512 32c0 115.9-88 211.1-200.7 222.8a256.38 256.38 0 0 0-59-107.6C290.6 78.5 363.8 32 448 32z\", \"M288 320v144a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320C100.3 320 0 219.7 0 96h64c123.7 0 224 100.3 224 224z\"]]\n};\nvar faSendBack = {\n prefix: 'fad',\n iconName: 'send-back',\n icon: [640, 512, [], \"f87e\", [\"M608 256H416a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h192a32 32 0 0 0 32-32V288a32 32 0 0 0-32-32zm-32 192H448V320h128zM224 0H32A32 32 0 0 0 0 32v192a32 32 0 0 0 32 32h192a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm-32 192H64V64h128z\", \"M384 416H208a48 48 0 0 1-48-48V256h64a32 32 0 0 0 32-32V96h176a48 48 0 0 1 48 48v112h-64a32 32 0 0 0-32 32z\"]]\n};\nvar faSendBackward = {\n prefix: 'fad',\n iconName: 'send-backward',\n icon: [514, 512, [], \"f87f\", [\"M464,160H208a48,48,0,0,0-48,48V464a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48h0V208A48,48,0,0,0,464,160ZM448,448H224V224H448Z\", \"M160,352H48A48,48,0,0,1,0,304V48A48,48,0,0,1,48,0H304a48,48,0,0,1,48,48V160H208a48,48,0,0,0-48,48Z\"]]\n};\nvar faSensor = {\n prefix: 'fad',\n iconName: 'sensor',\n icon: [448, 512, [], \"e028\", [\"M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32ZM96,272a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Z\", \"M80,96a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,80,96Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,144,96Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,208,96Z\"]]\n};\nvar faSensorAlert = {\n prefix: 'fad',\n iconName: 'sensor-alert',\n icon: [640, 512, [], \"e029\", [\"M448,96a64,64,0,0,0-64-64H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H242.51c-2.47-3.15-5.24-6-7.29-9.54a82.22,82.22,0,0,1,0-83.08L376,143.23a82.24,82.24,0,0,1,72-41.58ZM96,272a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Z\", \"M633.09,403.37,492.27,159.22c-19.67-34.1-68.87-34.1-88.53,0L262.91,403.36C243.26,437.43,267.84,480,307.18,480H588.82C628.15,480,652.74,437.43,633.09,403.37ZM448,432a24,24,0,1,1,24-24A24,24,0,0,1,448,432Zm19.08-82.8A12,12,0,0,1,455.14,360H440.87a12,12,0,0,1-11.95-10.8l-9.59-96A12,12,0,0,1,431.27,240h33.47a12,12,0,0,1,11.94,13.2ZM80,96a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,80,96Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,144,96Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,208,96Z\"]]\n};\nvar faSensorFire = {\n prefix: 'fad',\n iconName: 'sensor-fire',\n icon: [640, 512, [], \"e02a\", [\"M288,315.43C288,254.32,341.59,162,418.27,90.82a27.79,27.79,0,0,1,28.42-7.3A64,64,0,0,0,384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H375.35A197.67,197.67,0,0,1,288,315.43ZM96,272a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,1,1-32,0V112a16,16,0,1,1,32,0Zm341.17,10.83c-2.51-4.83-5.33-9.86-8.44-15l-44,50.14s-68.92-88-74.1-94c-36.37,43.59-54.6,69.11-54.6,98.07,0,58.12,44,93.93,98.13,93.93a100.87,100.87,0,0,0,57.91-18.1C577,372.05,585.66,322,565.14,282.83Z\", \"M551.13,150.86A427.29,427.29,0,0,0,511,193.7,552.55,552.55,0,0,0,440,114.29c-70.18,65.11-120,150-120,201.14C320,406.33,391.66,480,480,480s160-73.67,160-164.57C640,277.38,602.88,198.89,551.13,150.86Zm-11.06,247A100.87,100.87,0,0,1,482.16,416C428.05,416,384,380.19,384,322.07c0-29,18.23-54.48,54.6-98.07,5.18,6,74.1,94,74.1,94l44-50.14c3.11,5.12,5.93,10.15,8.44,15C585.66,322,577,372.05,540.07,397.9ZM208,96a16,16,0,0,0-16,16V272a16,16,0,1,0,32,0V112A16,16,0,0,0,208,96ZM80,96a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,80,96Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,144,96Z\"]]\n};\nvar faSensorOn = {\n prefix: 'fad',\n iconName: 'sensor-on',\n icon: [640, 512, [], \"e02b\", [\"M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32ZM96,272a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Z\", \"M616,232H552a24,24,0,0,0,0,48h64a24,24,0,0,0,0-48Zm-80-88a23.87,23.87,0,0,0,13.29-4l48-32a24,24,0,1,0-26.62-39.92l-48,32A24,24,0,0,0,536,144Zm13.29,228A24,24,0,1,0,522.69,412l48,32A24,24,0,1,0,597.31,404ZM80,96a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,80,96Zm128,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,208,96Zm-64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,144,96Z\"]]\n};\nvar faSensorSmoke = {\n prefix: 'fad',\n iconName: 'sensor-smoke',\n icon: [640, 512, [], \"e02c\", [\"M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H257.86a111.81,111.81,0,0,1,46.73-187.52A112.15,112.15,0,0,1,416,192c11.14,0,21.74,2.15,32,5.22V96A64,64,0,0,0,384,32ZM96,272a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Zm64,0a16,16,0,0,1-32,0V112a16,16,0,0,1,32,0Z\", \"M572.66,321.28a47.81,47.81,0,0,0-82.39-46.63,79.94,79.94,0,0,0-152.63,45.52c-.56,0-1.08-.17-1.64-.17a80,80,0,0,0,0,160H560a79.85,79.85,0,0,0,12.66-158.72ZM80,96a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,80,96Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,144,96Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V112A16,16,0,0,0,208,96Z\"]]\n};\nvar faServer = {\n prefix: 'fad',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", [\"M432 120a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm0 272a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm48-200H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm-112 88a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm64 0a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M456 256a24 24 0 1 0-24 24 24 24 0 0 0 24-24zm24-224H32A32 32 0 0 0 0 64v64a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-112 88a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm64 0a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm48 232H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm-112 88a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm64 0a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faShapes = {\n prefix: 'fad',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", [\"M128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm379.51-80l-95-160c-12.67-21.33-44.35-21.33-57 0l-95 160c-12.67 21.33 3.17 48 28.51 48H479c25.34 0 41.18-26.67 28.51-48z\", \"M512 320v160a32 32 0 0 1-32 32H320a32 32 0 0 1-32-32V320a32 32 0 0 1 32-32h160a32 32 0 0 1 32 32z\"]]\n};\nvar faShare = {\n prefix: 'fad',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", [\"M288 136.08v136c-155.08 2.24-221.93 40.73-176.59 185.75 5 16.09-14.42 28.56-28.08 18.63C39.58 444.64 0 383.78 0 322.34c0-152.23 127.37-184.42 288-186.26z\", \"M506.16 223.7a24 24 0 0 1-2.47 2.47l-176 152C312.3 391.46 288 380.71 288 360V56c0-20.66 24.28-31.46 39.69-18.16l176 152a24 24 0 0 1 2.47 33.86z\"]]\n};\nvar faShareAll = {\n prefix: 'fad',\n iconName: 'share-all',\n icon: [576, 512, [], \"f367\", [\"M567.69 226.16l-176 152C376.3 391.44 352 380.69 352 360v-15.83l108.61-93.79a56 56 0 0 0 0-84.76L352 71.83V56c0-20.66 24.28-31.46 39.69-18.16l176 152a24 24 0 0 1 0 36.32z\", \"M439.69 226.16l-176 152C248.3 391.44 224 380.69 224 360v-84.19c-108.67 12.53-151.1 58.85-112.59 182 5 16.09-14.42 28.56-28.08 18.63C39.58 444.63 0 383.77 0 322.33 0 191 94.82 149 224 138.78V56c0-20.66 24.28-31.46 39.69-18.16l176 152a24 24 0 0 1 0 36.32z\"]]\n};\nvar faShareAlt = {\n prefix: 'fad',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", [\"M155.79 180.9l102.49-64.06a95.93 95.93 0 0 0 33.93 54.26l-102.49 64.06a95.93 95.93 0 0 0-33.93-54.26zm136.42 160l-102.49-64.06a95.93 95.93 0 0 1-33.93 54.26l102.49 64.06a95.93 95.93 0 0 1 33.93-54.26z\", \"M96 160a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm256 32a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm0 128a96 96 0 1 0 96 96 96 96 0 0 0-96-96z\"]]\n};\nvar faShareAltSquare = {\n prefix: 'fad',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-96 376a56 56 0 0 1-54.26-69.9l-68-40.77a56 56 0 1 1 0-82.66l68-40.77a56 56 0 1 1 16.48 27.43l-68 40.77a56.39 56.39 0 0 1 0 27.8l68 40.77A56 56 0 1 1 304 408z\", \"M360 352a56 56 0 1 1-110.26-13.9l-68-40.77a56 56 0 1 1 0-82.66l68-40.77a56 56 0 1 1 16.48 27.43l-68 40.77a56.39 56.39 0 0 1 0 27.8l68 40.77A56 56 0 0 1 360 352z\"]]\n};\nvar faShareSquare = {\n prefix: 'fad',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", [\"M0 464V112a48 48 0 0 1 48-48h121c12.55 0 16.68 16.83 5.55 22.63a195.1 195.1 0 0 0-51 37.68 12 12 0 0 1-8.64 3.69H64v320h320v-68.87a12 12 0 0 1 13.8-11.86 71.73 71.73 0 0 0 34.2-3.38 12 12 0 0 1 16 11.3V464a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48z\", \"M424.48 6.56l144 136a24 24 0 0 1 0 34.9l-144 136C409.3 327.77 384 317.14 384 296v-72c-144.58 1-205.57 35.12-164.78 171.36 4.49 15-12.84 26.56-25 17.33-39-29.6-74.22-86.22-74.22-143.37C120 125.4 237.6 96.84 384 96V24c0-21.16 25.32-31.76 40.48-17.44z\"]]\n};\nvar faSheep = {\n prefix: 'fad',\n iconName: 'sheep',\n icon: [640, 512, [], \"f711\", [\"M320.09 96a50.51 50.51 0 0 0-31.8 11.46 52 52 0 0 0-64.26 0 49.43 49.43 0 0 0-31-10.56 56 56 0 0 0-34.25 11.68 51.2 51.2 0 0 0-30.49-10.21C106 98.38 85.94 113 78.09 134.5q-1.74-.12-3.48-.12c-17 0-33.18 8.71-43.27 23.28a58.59 58.59 0 0 0-7.48 51.28C8.86 219.31 0 236.56 0 255.8c0 18.94 8.92 36.5 23.53 46.71A58.55 58.55 0 0 0 31 353.79c10.1 14.57 26.24 23.27 43.17 23.27 1.11 0 2.23 0 3.34-.11 7.72 22 27.31 36.42 50 36.42a52.9 52.9 0 0 0 30.58-9.86 55.21 55.21 0 0 0 34.18 11.78 50.77 50.77 0 0 0 31.34-10.57 50.43 50.43 0 0 0 31.86 11.17 51.74 51.74 0 0 0 32.21-11.2 51.46 51.46 0 0 0 65.62-1 51.08 51.08 0 0 0 30.4 10.18c22.34 0 42.39-14.66 50.23-36.18 1.11.07 2.22.11 3.33.11a53.12 53.12 0 0 0 43.45-23.3 58.45 58.45 0 0 0 7.44-51.21c15-10.38 23.85-27.64 23.86-46.88 0-18.94-8.92-36.5-23.53-46.72a58.58 58.58 0 0 0-7.48-51.35c-10.09-14.55-26.2-23.24-43.09-23.24-1.13 0-2.27 0-3.4.11-7.7-21.7-27.73-36.51-50.14-36.51a52.51 52.51 0 0 0-30.4 9.9A53.08 53.08 0 0 0 320.09 96z\", \"M433.92 377.66c-7.84 21.52-27.89 36.18-50.23 36.18a51.08 51.08 0 0 1-30.4-10.18c-.42.36-.86.7-1.29 1V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V376.59a50.8 50.8 0 0 1-10.75 1.18c-1.11 0-2.25-.04-3.33-.11zm-240.46 41.2l1.37-3.64c-.86 0-1.71.07-2.57.07a55.21 55.21 0 0 1-34.18-11.78 52.9 52.9 0 0 1-30.58 9.86 51.69 51.69 0 0 1-30.12-9.6 64 64 0 0 0 .54 28.7l16.85 67.41A16 16 0 0 0 130.29 512h66a16 16 0 0 0 15.52-19.88zM622.25 106L576 83.22V64a32 32 0 0 0-32-32h-64a32 32 0 0 0-64 0v77.6a55.82 55.82 0 0 1 18.53 25.61c1.13-.07 2.27-.11 3.4-.11 16.89 0 33 8.69 43.09 23.24A58.11 58.11 0 0 1 491.31 192h108.35A25.71 25.71 0 0 0 622 179.06c7.59-13.26 18-33.45 18-44.59A31.8 31.8 0 0 0 622.25 106zM512 112a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faShekelSign = {\n prefix: 'fad',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", [\"M200 176v224h112a56 56 0 0 0 56-56V48a16 16 0 0 1 16-16h48a16 16 0 0 1 16 16v296a136 136 0 0 1-136 136H144a24 24 0 0 1-24-24V176a16 16 0 0 1 16-16h48a16 16 0 0 1 16 16z\", \"M328 168v168a16 16 0 0 1-16 16h-48a16 16 0 0 1-16-16V168a56 56 0 0 0-56-56H80v352a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V56a24 24 0 0 1 24-24h168a136 136 0 0 1 136 136z\"]]\n};\nvar faShield = {\n prefix: 'fad',\n iconName: 'shield',\n icon: [512, 512, [], \"f132\", [\"M256 224v288a48.12 48.12 0 0 0 18.41-3.68c72.34-30.14 180.16-123 212.09-284.29zM237.59 3.67l-192 80A47.92 47.92 0 0 0 16 128a485.36 485.36 0 0 0 9.63 96H256V0a57.58 57.58 0 0 0-18.41 3.67z\", \"M237.5 508.32A48 48 0 0 0 256 512V224H25.63C55.11 370.52 148.77 471.34 237.5 508.32zm229-424.64l-192-80A57.34 57.34 0 0 0 256.06 0H256v224h230.5a491.56 491.56 0 0 0 9.5-96 48 48 0 0 0-29.5-44.32z\"]]\n};\nvar faShieldAlt = {\n prefix: 'fad',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", [\"M496 128c0 221.29-135.9 344.6-221.6 380.32A48.29 48.29 0 0 1 256 512V0a48.18 48.18 0 0 1 18.5 3.67l192 80A48 48 0 0 1 496 128z\", \"M256 0v512a48.18 48.18 0 0 1-18.5-3.67C130.5 463.72 16 326.52 16 128a48 48 0 0 1 29.6-44.32l192-80A48.29 48.29 0 0 1 256 0z\"]]\n};\nvar faShieldCheck = {\n prefix: 'fad',\n iconName: 'shield-check',\n icon: [512, 512, [], \"f2f7\", [\"M466.5 83.67l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80A48 48 0 0 0 16 128c0 198.5 114.5 335.69 221.5 380.29a48.15 48.15 0 0 0 36.9 0C360.1 472.58 496 349.27 496 128a48 48 0 0 0-29.5-44.33zm-47.2 114.21l-184 184a16.06 16.06 0 0 1-22.6 0l-104-104a16.07 16.07 0 0 1 0-22.61l22.6-22.6a16.07 16.07 0 0 1 22.6 0l70.1 70.1 150.1-150.1a16.07 16.07 0 0 1 22.6 0l22.6 22.6a15.89 15.89 0 0 1 0 22.61z\", \"M419.3 197.88l-184 184a16.06 16.06 0 0 1-22.6 0l-104-104a16.07 16.07 0 0 1 0-22.61l22.6-22.6a16.07 16.07 0 0 1 22.6 0l70.1 70.1 150.1-150.1a16.07 16.07 0 0 1 22.6 0l22.6 22.6a15.89 15.89 0 0 1 0 22.61z\"]]\n};\nvar faShieldCross = {\n prefix: 'fad',\n iconName: 'shield-cross',\n icon: [448, 512, [], \"f712\", [\"M192 501.06V224H8.76C34.6 361.89 113.71 459.21 192 501.06zM0 128c0 10.86.34 21.52 1 32h191V10.28L27.57 83.69C10.88 91.14 0 108.62 0 128zm420.43-44.31L256 10.28V160h191.08q.9-15.65.92-32c0-19.38-10.88-36.86-27.57-44.31zM256 501c66.65-36.25 155.84-126.92 183.48-277H256z\", \"M447.08 160a517.11 517.11 0 0 1-7.6 64H256v277c-5.06 2.75-10 5.2-14.77 7.33a42.07 42.07 0 0 1-34.46 0c-4.91-2.19-9.84-4.62-14.77-7.25V224H8.76A509.43 509.43 0 0 1 1 160h191V10.28l14.77-6.59a42.07 42.07 0 0 1 34.46 0L256 10.28V160z\"]]\n};\nvar faShieldVirus = {\n prefix: 'fad',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", [\"M466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Z\", \"M384,224H371.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,0,0-22.63-22.63l-8.57,8.58C306.47,166.91,272,152.63,272,124.12V112a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H128a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V368a16,16,0,0,0,32,0V355.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,0,0,22.63-22.63l-8.58-8.57C329.09,290.47,343.37,256,371.88,256H384a16,16,0,0,0,0-32Zm-160,0a16,16,0,1,1,16-16A16,16,0,0,1,224,224Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,288,288Z\"]]\n};\nvar faShip = {\n prefix: 'fad',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", [\"M594.3,447.89c-21.53-2.4-42.13-10.51-57.93-22.92a38.77,38.77,0,0,0-48.22,0c-37.91,30.43-107.24,30.43-145.75-1.5-13.5-11.21-33-9.11-46.71,1.8-38,30.13-106.93,30-145.25-1.7-13.5-11.21-33.31-8.91-47.12,2-15.5,12.21-36,20.12-57.72,22.42-7.9.8-13.6,7.81-13.6,15.72v32.23c0,9.11,7.6,16.81,16.7,16,28.81-2.5,56.12-11.41,79.44-25.92,56.52,34.63,137,34.13,192,0,56.51,34.63,137,34.13,192,0a184.89,184.89,0,0,0,79.14,25.82c9.1.8,16.7-6.9,16.7-16V464.21c.16-8-5.64-15.42-13.74-16.32ZM192,128H448v87.53l64,20.58V96a32,32,0,0,0-32-32H416V24A24,24,0,0,0,392,0H248a24,24,0,0,0-24,24V64H160a32,32,0,0,0-32,32V236.11l64-20.58Z\", \"M574.56,289.82a32.13,32.13,0,0,1-7.84,12.83l-92.5,89.25A83.19,83.19,0,0,1,417,415.61h-.5c-21.23,0-40.79-6.12-53.64-16.77A64.17,64.17,0,0,0,321.29,384a73.55,73.55,0,0,0-45.5,16.19c-12.38,9.8-31.12,15.42-51.44,15.42h-.51a85,85,0,0,1-58.48-24.22l-92-88.74a32,32,0,0,1,12.85-53.09l224-72a31.94,31.94,0,0,1,19.58,0l224,72a32,32,0,0,1,20.7,40.25h0Z\"]]\n};\nvar faShippingFast = {\n prefix: 'fad',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", [\"M248 160H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-24 88v-16a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8zm-48 104a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm288 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80zM280 96H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h272a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\", \"M624 352h-16V243.9a48 48 0 0 0-14.1-33.9L494 110.1A48 48 0 0 0 460.1 96H416V48a48 48 0 0 0-48-48H112a48 48 0 0 0-48 48v48h216a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H64v32h184a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H64v32h152a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H64v112a47.74 47.74 0 0 0 7 25 112 112 0 0 1 215.86 23h66.28a112 112 0 0 1 221.72 0H624a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64-96H416V144h44.1l99.9 99.9z\"]]\n};\nvar faShippingTimed = {\n prefix: 'fad',\n iconName: 'shipping-timed',\n icon: [640, 512, [], \"f48c\", [\"M464 352a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm-288 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm72-208h-24V88a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v80a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\", \"M624 352h-16V243.9a48 48 0 0 0-14.1-33.9L494 110.1A48 48 0 0 0 460.1 96H416V48a48 48 0 0 0-48-48H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h18.16C74 361.93 119.78 320 176 320s102.54 41.86 110.38 96h67.24c7.85-54.14 54.1-96 110.38-96s102 41.93 109.84 96H624a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-416-80a112 112 0 1 1 112-112 111.94 111.94 0 0 1-112 112zm352-16H416V144h44.1l99.9 99.9z\"]]\n};\nvar faShishKebab = {\n prefix: 'fad',\n iconName: 'shish-kebab',\n icon: [512, 512, [], \"f821\", [\"M511.21 84.07c-3.78-29.71-21.06-55.68-47.42-71.21a95.15 95.15 0 0 0-97.93 1.43C323.2 41 307.71 94 330 138.88c1.44 2.93 2.28 7.16 0 9.49l-24.47 24.45 33.93 33.93 24.48-24.46c16.72-16.73 20.28-42.14 9.09-64.72-9.62-19.43-6-48.25 19.61-63.36a45.55 45.55 0 0 1 45.92-.53c14.22 8 23.15 21 25.13 36.45a47.82 47.82 0 0 1-6 30.09c-3.71 6.39-3.31 14.32 1.91 19.55l12.29 12.29c6.72 6.72 18.17 6.09 23.54-1.75a95.27 95.27 0 0 0 15.78-66.24zM4.55 473.52a15.5 15.5 0 0 0 0 21.91l12 12a15.49 15.49 0 0 0 21.91 0l61.78-61.73-33.92-33.91z\", \"M126.55 255.59a30.61 30.61 0 0 0-43.28 0L41 297.89a30.59 30.59 0 0 0 0 43.27L170.82 471a30.61 30.61 0 0 0 43.28 0l42.3-42.3a30.61 30.61 0 0 0 0-43.28zm238.05 21.65L234.77 147.38a30.62 30.62 0 0 0-43.29 0l-42.3 42.3a30.62 30.62 0 0 0 0 43.28L279 362.82a30.61 30.61 0 0 0 43.28 0l42.3-42.3a30.61 30.61 0 0 0 .02-43.28z\"]]\n};\nvar faShoePrints = {\n prefix: 'fad',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", [\"M0 416a64 64 0 0 0 64 64h32V352H64a64 64 0 0 0-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 16c26.21 7.28 53 13.12 80.31 15 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96z\", \"M128 96a64 64 0 0 0 64 64h32V32h-32a64 64 0 0 0-64 64zM491.42 7.19c-32-6.87-64.89-8.52-97.58-6.2-27.3 1.93-54.1 7.77-80.31 15L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]]\n};\nvar faShoppingBag = {\n prefix: 'fad',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", [\"M.06 160v-.13l96 .06v-32C96.12 57.35 153.57 0 224.15 0s128 57.49 127.92 128.07V160h-64v-32a64 64 0 0 0-128-.08v32h64z\", \"M.06 159.87l-.16 272a80 80 0 0 0 79.95 80.05l288 .16a80 80 0 0 0 80-80l.16-272zM128 247.94a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm192 .12a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faShoppingBasket = {\n prefix: 'fad',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", [\"M242.82 38.12a32 32 0 0 0-44.7 7.06L91.34 192h79.14l79.4-109.18a32 32 0 0 0-7.06-44.7zm135.06 7.06a32 32 0 1 0-51.76 37.64L405.52 192h79.14z\", \"M552 192H24a24 24 0 0 0-24 24v16a24 24 0 0 0 24 24h8l26.11 182.79A48 48 0 0 0 105.63 480h364.74a48 48 0 0 0 47.52-41.21L544 256h8a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24zM200 392a24 24 0 0 1-48 0V280a24 24 0 0 1 48 0zm112 0a24 24 0 0 1-48 0V280a24 24 0 0 1 48 0zm112 0a24 24 0 0 1-48 0V280a24 24 0 0 1 48 0z\"]]\n};\nvar faShoppingCart = {\n prefix: 'fad',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", [\"M552 64H159.21l52.36 256h293.15a24 24 0 0 0 23.4-18.68l47.27-208a24 24 0 0 0-18.08-28.72A23.69 23.69 0 0 0 552 64z\", \"M218.12 352h268.42a24 24 0 0 1 23.4 29.32l-5.52 24.28a56 56 0 1 1-63.6 10.4H231.18a56 56 0 1 1-67.05-8.57L93.88 64H24A24 24 0 0 1 0 40V24A24 24 0 0 1 24 0h102.53A24 24 0 0 1 150 19.19z\"]]\n};\nvar faShovel = {\n prefix: 'fad',\n iconName: 'shovel',\n icon: [512, 512, [], \"f713\", [\"M500.28 96.39l-84.67-84.68a40 40 0 0 0-56.56 0l-32.67 32.67a98.91 98.91 0 0 0-18.77 114.77L197.35 269.4l45.26 45.23 110.25-110.24a98.88 98.88 0 0 0 114.75-18.76L500.28 153a40 40 0 0 0 0-56.57zm-77.91 44a35.89 35.89 0 0 1-50.75-50.75l15.7-15.7 50.75 50.75z\", \"M287.87 405.13L220 473c-50 50-181 45.3-203.66 22.65S-11 342 39 292l67.85-67.88a32 32 0 0 1 45.25 0l135.77 135.76a32 32 0 0 1 0 45.25z\"]]\n};\nvar faShovelSnow = {\n prefix: 'fad',\n iconName: 'shovel-snow',\n icon: [512, 512, [], \"f7c3\", [\"M203.72 244.36a15.88 15.88 0 0 0-22.45-.13l-.12.13-79.9 79.9a16 16 0 0 0 21.46 23.68 14.53 14.53 0 0 0 1.11-1.11l79.9-79.9a16 16 0 0 0 0-22.57zm41.34 63.92l-79.89 79.9a16 16 0 0 0 21.46 23.68c.38-.35.76-.72 1.11-1.11l79.89-79.9a16 16 0 1 0-22.57-22.57zm258.17-236.1L439.81 8.76a30 30 0 0 0-42.34 0L373 33.23a74.58 74.58 0 0 0-20.38 67.65 77.16 77.16 0 0 0 6.4 18.37l-99.18 99.16 33.86 33.87 99.17-99.18a76.19 76.19 0 0 0 18.38 6.39A74.41 74.41 0 0 0 478.76 139l24.47-24.47a30 30 0 0 0 0-42.35zm-58.29 33a26.9 26.9 0 0 1-45.34-13.79 27.18 27.18 0 0 1 7.29-24.28l11.79-11.78 38.05 38.06z\", \"M342.66 301.9l-132.5-132.5a31.77 31.77 0 0 0-41.9-2.71L12.36 287a31.69 31.69 0 0 0-5.78 44.45 33.3 33.3 0 0 0 2.78 3.15l168 168a31.77 31.77 0 0 0 44.93 0 29.52 29.52 0 0 0 2.67-3l120.4-155.81a31.73 31.73 0 0 0-2.7-41.89zm-220 46a16 16 0 0 1-21.46-23.68l79.9-79.9.12-.13a16 16 0 0 1 22.45 22.7l-79.9 79.9a14.53 14.53 0 0 1-1.06 1.15zm144.92-17.09l-79.89 79.9c-.35.39-.73.76-1.11 1.11a16 16 0 0 1-21.46-23.68l79.89-79.9a16 16 0 1 1 22.57 22.57z\"]]\n};\nvar faShower = {\n prefix: 'fad',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", [\"M336,224a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm0,96a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32,0a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm128-96a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-64,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm16-48a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-80,16a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm32,96a16,16,0,1,0,16,16A16,16,0,0,0,336,352ZM464,224a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-96,96a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-192a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm0,128a16,16,0,1,0,16,16A16,16,0,0,0,368,320Z\", \"M389.66,101.65,378.34,90.34a16,16,0,0,0-22.62,0L350.05,96A111.17,111.17,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.2,111.2,0,0,0,32,78.05l-5.68,5.67a16,16,0,0,0,0,22.62l11.32,11.31a16,16,0,0,0,22.62,0L389.66,124.28A16,16,0,0,0,389.66,101.65Z\"]]\n};\nvar faShredder = {\n prefix: 'fad',\n iconName: 'shredder',\n icon: [512, 512, [], \"f68a\", [\"M448 96v128H64V32A32 32 0 0 1 96 0h256v80a16 16 0 0 0 16 16zM232 416h48v80a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16zm-96 0h48v80a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16zm-96 0h48v80a16 16 0 0 1-16 16H56a16 16 0 0 1-16-16zm288 0h48v80a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16zm96 0h48v80a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16z\", \"M368 96h80v-4.58a17.92 17.92 0 0 0-5.25-12.67l-73.43-73.5A18 18 0 0 0 356.57 0H352v80a16 16 0 0 0 16 16zm80 96v32H64v-32a64 64 0 0 0-64 64v112a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16V256a64 64 0 0 0-64-64zm-16 136a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faShuttleVan = {\n prefix: 'fad',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", [\"M160 320a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm320 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80z\", \"M628.88 210.65L494.39 49.27A48 48 0 0 0 457.52 32H32A32 32 0 0 0 0 64v288a32 32 0 0 0 32 32h17.14a112 112 0 0 1 221.72 0h98.28a112 112 0 0 1 221.72 0H608a32 32 0 0 0 32-32V241.38a48.05 48.05 0 0 0-11.12-30.73zM160 192H64V96h96zm160 0h-96V96h96zm64 0V96h66l80 96z\"]]\n};\nvar faShuttlecock = {\n prefix: 'fad',\n iconName: 'shuttlecock',\n icon: [512, 512, [], \"f45b\", [\"M181.05 481a106.07 106.07 0 0 1-150-150l2.6-2.6 150 150z\", \"M512 220v54.6a28.15 28.15 0 0 1-16.2 25.4L245.45 416.5l-39.2 39.2-150-150 39.2-39.2L212 16.2A28.09 28.09 0 0 1 237.35 0H292a28.08 28.08 0 0 1 28 28v20c-12.3 0-56.6-1.3-71.1 44.7l-28.8 91.2-45.4 26.4-36.3 78 25.7 25.7 70.8-70.8 44.5-140.8A32 32 0 0 1 309.85 80H404a28 28 0 0 1 28 28v94.1a32.08 32.08 0 0 1-22.4 30.5l-140.8 44.5-70.8 70.8 25.7 25.8 78-36.3 26.4-45.4 91.2-28.8c49-15.5 44.7-65.2 44.7-71.2h20a28.08 28.08 0 0 1 28 28z\"]]\n};\nvar faSickle = {\n prefix: 'fad',\n iconName: 'sickle',\n icon: [512, 512, [], \"f822\", [\"M203.37 382.05a16 16 0 0 1 0 22.63l-22.62 22.62a16 16 0 0 1-22.62 0l-2.74-2.74-82.76 82.75a16 16 0 0 1-22.62 0L4.69 462.06a16 16 0 0 1 0-22.63l82.74-82.74-2.74-2.75a16 16 0 0 1 0-22.63l22.62-22.62a16 16 0 0 1 22.63 0l73.43 73.36z\", \"M511.82 155.39c1.65 8.41-9.06 13.38-14.14 6.48a148.08 148.08 0 0 0-47.33-41.42c-44.47-24.9-101-23.24-144 4-70.76 44.73-85.41 131.8-46.88 196L224 355.87l-31.71-30.09c-45.7-45.69-70.15-111.2-56.41-174.34C153.75 69.31 224 0 320 0c128 0 181.17 100.72 191.82 155.39z\"]]\n};\nvar faSigma = {\n prefix: 'fad',\n iconName: 'sigma',\n icon: [384, 512, [], \"f68b\", [\"M360 352h-48a24 24 0 0 0-24 23.44V480h64a32 32 0 0 0 32-32v-72a24 24 0 0 0-24-24zm-8-320h-64v104.56A24 24 0 0 0 312 160h48a24 24 0 0 0 24-24V64a32 32 0 0 0-32-32z\", \"M288 136v-8H142.24l109.09 128-109.09 128H288v-8.56V480H52a52 52 0 0 1-42-82.64L132.65 256 10 114.6A52 52 0 0 1 52 32h236v104z\"]]\n};\nvar faSign = {\n prefix: 'fad',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", [\"M0 80a16 16 0 0 1 16-16h48V16A16 16 0 0 1 80 0h32a16 16 0 0 1 16 16v48h368a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H128v368a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V128H16a16 16 0 0 1-16-16z\", \"M160 384V160h320v224z\"]]\n};\nvar faSignIn = {\n prefix: 'fad',\n iconName: 'sign-in',\n icon: [512, 512, [], \"f090\", [\"M512 160v192a96 96 0 0 1-96 96h-84a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h84a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32h-84a12 12 0 0 1-12-12V76a12 12 0 0 1 12-12h84a96 96 0 0 1 96 96z\", \"M215.6 295.9H24a23.94 23.94 0 0 1-24-24v-32a23.94 23.94 0 0 1 24-24h191.5l-77.6-71.1a23.84 23.84 0 0 1-.7-34.5l21.9-21.9a24.08 24.08 0 0 1 33.9-.1L344.9 239a24 24 0 0 1 0 34.1L193 423.7a24 24 0 0 1-33.9-.1l-21.9-21.9a24 24 0 0 1 .8-34.7z\"]]\n};\nvar faSignInAlt = {\n prefix: 'fad',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", [\"M512 160v192a96 96 0 0 1-96 96h-84a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h84a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32h-84a12 12 0 0 1-12-12V76a12 12 0 0 1 12-12h84a96 96 0 0 1 96 96z\", \"M369 273L201 441c-15 15-41 4.5-41-17v-96H24a23.94 23.94 0 0 1-24-24v-96a23.94 23.94 0 0 1 24-24h136V88c0-21.5 26-32 41-17l168 168a24.2 24.2 0 0 1 0 34z\"]]\n};\nvar faSignLanguage = {\n prefix: 'fad',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", [\"M448 256.2l-5-152.45a28.57 28.57 0 1 0-57.11 1.87l1.24 38.4L283.56 11a28.57 28.57 0 0 0-39.65-5.33c-12.83 9.6-14.93 28.24-5.08 40.88l76.88 98.75-4.5 3.51-94.79-121.7a28.57 28.57 0 0 0-39.66-5.32c-12.82 9.6-14.93 28.24-5.08 40.88L266.12 184l-4.51 3.51-77.67-99.8a28.6 28.6 0 0 0-39.66-5.33c-12.82 9.6-14.93 28.24-5.08 40.89l57.56 72.83a28.58 28.58 0 0 1 31.47 1.42l123.36 89.71A34.29 34.29 0 0 1 365.71 315v23l69.07-53.62A34.31 34.31 0 0 0 448 256.2zm-259.68-52.38a28 28 0 0 1 3.63-4.1l-18.2-22.79c-9.84-12.64-28.43-15.17-40.88-5.08a28.56 28.56 0 0 0-4.55 39.75l42.76 54.74h54.63l-31.09-22.61a28.55 28.55 0 0 1-6.3-39.91z\", \"M365.71 315v141.07a34.28 34.28 0 0 1-26.43 33.37l-80.47 18.93A136.78 136.78 0 0 1 227.4 512H120a28.57 28.57 0 0 1-28.57-28c-.31-16 13.11-29.13 29.13-29.13h62.3v-5.72H57C41 449.16 27.56 436 27.86 420a28.57 28.57 0 0 1 28.57-28h126.43v-5.71H29.14c-16 0-29.44-13.12-29.13-29.13a28.56 28.56 0 0 1 28.56-28h154.29v-5.71H57.71c-16 0-29.44-13.11-29.13-29.13a28.56 28.56 0 0 1 28.56-28h168.57l-31.09-22.61a28.57 28.57 0 1 1 33.61-46.21l123.36 89.71A34.29 34.29 0 0 1 365.71 315z\"]]\n};\nvar faSignOut = {\n prefix: 'fad',\n iconName: 'sign-out',\n icon: [512, 512, [], \"f08b\", [\"M180 448H96a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96h84a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12H96a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h84a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12z\", \"M353 88.3l151.9 150.6a24 24 0 0 1 0 34.1l-152 150.8a24.08 24.08 0 0 1-33.9-.1l-21.9-21.9a24.07 24.07 0 0 1 .8-34.7l77.6-71.1H184a23.94 23.94 0 0 1-24-24v-32a23.94 23.94 0 0 1 24-24h191.5l-77.6-71.1a24 24 0 0 1-.7-34.6l21.9-21.9a24 24 0 0 1 33.9-.1z\"]]\n};\nvar faSignOutAlt = {\n prefix: 'fad',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", [\"M64 160v192a32 32 0 0 0 32 32h84a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12H96a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96h84a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12H96a32 32 0 0 0-32 32z\", \"M288 424v-96H152a23.94 23.94 0 0 1-24-24v-96a23.94 23.94 0 0 1 24-24h136V88c0-21.4 25.9-32 41-17l168 168a24.2 24.2 0 0 1 0 34L329 441c-15 15-41 4.52-41-17z\"]]\n};\nvar faSignal = {\n prefix: 'fad',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", [\"\", \"M216 288h-48a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16zM88 384H40a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm256-192h-48a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zM600 0h-48a16 16 0 0 0-16 16v480a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zM472 96h-48a16 16 0 0 0-16 16v384a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V112a16 16 0 0 0-16-16z\"]]\n};\nvar faSignal1 = {\n prefix: 'fad',\n iconName: 'signal-1',\n icon: [640, 512, [], \"f68c\", [\"M216 288h-48a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16zm128-96h-48a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zM600 0h-48a16 16 0 0 0-16 16v480a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zM472 96h-48a16 16 0 0 0-16 16v384a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V112a16 16 0 0 0-16-16z\", \"M104 400v96a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h48a16 16 0 0 1 16 16z\"]]\n};\nvar faSignal2 = {\n prefix: 'fad',\n iconName: 'signal-2',\n icon: [640, 512, [], \"f68d\", [\"M344 192h-48a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zm128-96h-48a16 16 0 0 0-16 16v384a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V112a16 16 0 0 0-16-16zM600 0h-48a16 16 0 0 0-16 16v480a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16z\", \"M88 384H40a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm128-96h-48a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16z\"]]\n};\nvar faSignal3 = {\n prefix: 'fad',\n iconName: 'signal-3',\n icon: [640, 512, [], \"f68e\", [\"M472 96h-48a16 16 0 0 0-16 16v384a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V112a16 16 0 0 0-16-16zM600 0h-48a16 16 0 0 0-16 16v480a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16z\", \"M88 384H40a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm256-192h-48a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zm-128 96h-48a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16z\"]]\n};\nvar faSignal4 = {\n prefix: 'fad',\n iconName: 'signal-4',\n icon: [640, 512, [], \"f68f\", [\"M616 16v480a16 16 0 0 1-16 16h-48a16 16 0 0 1-16-16V16a16 16 0 0 1 16-16h48a16 16 0 0 1 16 16z\", \"M216 288h-48a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V304a16 16 0 0 0-16-16zM88 384H40a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm256-192h-48a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zm128-96h-48a16 16 0 0 0-16 16v384a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V112a16 16 0 0 0-16-16z\"]]\n};\nvar faSignalAlt = {\n prefix: 'fad',\n iconName: 'signal-alt',\n icon: [640, 512, [], \"f690\", [\"\", \"M96 384H64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm160-128h-32a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V288a32 32 0 0 0-32-32zm160-128h-32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zM576 0h-32a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32z\"]]\n};\nvar faSignalAlt1 = {\n prefix: 'fad',\n iconName: 'signal-alt-1',\n icon: [640, 512, [], \"f691\", [\"M576 0h-32a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM416 128h-32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zM256 256h-32a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V288a32 32 0 0 0-32-32z\", \"M128 416v64a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h32a32 32 0 0 1 32 32z\"]]\n};\nvar faSignalAlt2 = {\n prefix: 'fad',\n iconName: 'signal-alt-2',\n icon: [640, 512, [], \"f692\", [\"M576 0h-32a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM416 128h-32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\", \"M96 384H64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm160-128h-32a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V288a32 32 0 0 0-32-32z\"]]\n};\nvar faSignalAlt3 = {\n prefix: 'fad',\n iconName: 'signal-alt-3',\n icon: [640, 512, [], \"f693\", [\"M608 32v448a32 32 0 0 1-32 32h-32a32 32 0 0 1-32-32V32a32 32 0 0 1 32-32h32a32 32 0 0 1 32 32z\", \"M96 384H64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm160-128h-32a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V288a32 32 0 0 0-32-32zm160-128h-32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]]\n};\nvar faSignalAltSlash = {\n prefix: 'fad',\n iconName: 'signal-alt-slash',\n icon: [640, 512, [], \"f694\", [\"M512 364V32a32 32 0 0 1 32-32h32a32 32 0 0 1 32 32v406.14zm-64-49.47V160a32 32 0 0 0-32-32h-32a32 32 0 0 0-32 32v80.28zM96 384H64a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zm96-96v192a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V352.6l-94.33-72.9c-.74 2.71-1.67 5.36-1.67 8.3zm160 192a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-3.73l-96-74.2z\", \"M636.64 480.55L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45z\"]]\n};\nvar faSignalSlash = {\n prefix: 'fad',\n iconName: 'signal-slash',\n icon: [640, 512, [], \"f695\", [\"M290.71 192.91A16 16 0 0 1 296 192h48a16 16 0 0 1 16 16v38.47zM88 384H40a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm400-38.6V112a16 16 0 0 0-16-16h-48a16 16 0 0 0-16 16v171.57zm128 98.93V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-16 16v366.5zM408 496a16 16 0 0 0 16 16h48a15.72 15.72 0 0 0 13-7.15l-77-59.5zm-128 0a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16v-87.75l-80-61.83zM168 288a16 16 0 0 0-16 16v192a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V309.32L204.41 288z\", \"M636.63 480.54L617 505.81a15.77 15.77 0 0 1-14.93 5.77 14.47 14.47 0 0 1-2.07.42h-2.56a15.42 15.42 0 0 0-2.9-3.37L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.81 22.44z\"]]\n};\nvar faSignalStream = {\n prefix: 'fad',\n iconName: 'signal-stream',\n icon: [576, 512, [], \"f8dd\", [\"M198.27 168.37l-22.76-22.23a16.44 16.44 0 0 0-24 1.31 168.77 168.77 0 0 0 0 217.1 16.44 16.44 0 0 0 24 1.31l22.76-22.22a15.12 15.12 0 0 0 1.45-20.32 107.39 107.39 0 0 1 0-134.64 15.11 15.11 0 0 0-1.45-20.31zm226.19-20.92a16.44 16.44 0 0 0-24-1.31l-22.76 22.23a15.12 15.12 0 0 0-1.45 20.31 107.39 107.39 0 0 1 0 134.64 15.14 15.14 0 0 0 1.45 20.32l22.76 22.22a16.44 16.44 0 0 0 24-1.31 168.77 168.77 0 0 0 0-217.1z\", \"M288 200a56 56 0 1 0 56 56 56 56 0 0 0-56-56zM64 256a214.3 214.3 0 0 1 55.42-144.06c5.59-6.22 4.91-15.74-1.08-21.59L96 68.53a16.41 16.41 0 0 0-23.56 1C25.59 121 0 186.56 0 256s25.59 135 72.44 186.52a16.41 16.41 0 0 0 23.56 1l22.34-21.82c6-5.85 6.67-15.37 1.08-21.59A214.3 214.3 0 0 1 64 256zM503.56 69.48a16.41 16.41 0 0 0-23.56-1l-22.34 21.87c-6 5.85-6.67 15.37-1.08 21.59a214.95 214.95 0 0 1 0 288.12c-5.59 6.22-4.91 15.74 1.08 21.59L480 443.47a16.41 16.41 0 0 0 23.56-1C550.41 391 576 325.44 576 256s-25.59-135-72.44-186.52z\"]]\n};\nvar faSignature = {\n prefix: 'fad',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", [\"M639.77 208.21v32.1c0 8.5-6.7 15.1-15.2 15.8-39.4 3.2-105.4 51-138.4 65.8-34.3 15.4-66.7 30-102.3 30-28.2 0-50.2-8.5-65.5-25.3-22.7-24.9-22.8-55.3-20.6-83.8-56.5 45.1-169 153.6-211.2 195.8A31.63 31.63 0 0 1 64 448c-27 0-36.5-27-29.7-43.9l98.2-245.6c8-19.9-14.3-38.8-32.7-27.1l-58 38.9a15.91 15.91 0 0 1-22.1-4.9l-17.2-27a16.08 16.08 0 0 1 4.9-22.1l54.9-36.9c76.5-48.7 160.1 26.9 129.7 102.8l-41.5 103.7c105.2-101.2 144.4-124.5 169.5-126 54.4-3.1 43.8 68.1 42.7 76.1-4.7 35.7-1.3 51.9 21.3 51.9 21.9 0 47-11.3 76.1-24.4 37.4-16.8 111.3-68 163.1-71.5 9.07-.59 16.8 7.11 16.57 16.21z\", \"\"]]\n};\nvar faSimCard = {\n prefix: 'fad',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", [\"M128 192H96a32 32 0 0 0-32 32v32h64zM64 416a32 32 0 0 0 32 32h32v-64H64zm160-224h-64v64h64zm32 256h32a32 32 0 0 0 32-32v-32h-64zm-96 0h64v-64h-64zm128-256h-32v64h64v-32a32 32 0 0 0-32-32zM64 352h256v-64H64z\", \"M256 0H64A64.06 64.06 0 0 0 0 64v384a64.06 64.06 0 0 0 64 64h256a64.06 64.06 0 0 0 64-64V128zm64 416a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32h192a32 32 0 0 1 32 32z\"]]\n};\nvar faSink = {\n prefix: 'fad',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", [\"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\", \"M352,112a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288h64V96a32,32,0,0,1,64,0Zm112,96H384a32,32,0,0,0-32,32v48h48V256h64a16,16,0,0,0,16-16V224A16,16,0,0,0,464,208Zm-336,0H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32h48V240A32,32,0,0,0,128,208Z\"]]\n};\nvar faSiren = {\n prefix: 'fad',\n iconName: 'siren',\n icon: [448, 512, [], \"e02d\", [\"M128.21,134.94a8,8,0,0,1,9-6.87l15.86,2.13a8,8,0,0,1,6.87,9L135.82,320H400L375,120.06A64,64,0,0,0,311.5,64h-175A64,64,0,0,0,73,120.06L48,320h55.54Z\", \"M432,352H16A16,16,0,0,0,0,368v64a16,16,0,0,0,16,16H432a16,16,0,0,0,16-16V368A16,16,0,0,0,432,352Z\"]]\n};\nvar faSirenOn = {\n prefix: 'fad',\n iconName: 'siren-on',\n icon: [640, 512, [], \"e02e\", [\"M224.21,134.94a8,8,0,0,1,9-6.87l15.86,2.13a8,8,0,0,1,6.87,9L231.82,320H496L471,120.06A64,64,0,0,0,407.5,64h-175A64,64,0,0,0,169,120.06L144,320h55.54Z\", \"M528,352H112a16,16,0,0,0-16,16v64a16,16,0,0,0,16,16H528a16,16,0,0,0,16-16V368A16,16,0,0,0,528,352ZM112,192a24,24,0,0,0-24-24H24a24,24,0,0,0,0,48H88A24,24,0,0,0,112,192Zm504-24H552a24,24,0,0,0,0,48h64a24,24,0,0,0,0-48ZM90.69,76a24,24,0,1,0,26.62-39.92l-48-32A24,24,0,1,0,42.69,44ZM536,80a23.87,23.87,0,0,0,13.29-4l48-32A24,24,0,1,0,570.69,4.06l-48,32A24,24,0,0,0,536,80Z\"]]\n};\nvar faSitemap = {\n prefix: 'fad',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", [\"M104 320H56v-57.59A38.45 38.45 0 0 1 94.41 224H296v-64h48v64h201.59A38.46 38.46 0 0 1 584 262.41V320h-48v-48H344v48h-48v-48H104z\", \"M128 352H32a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32zM384 0H256a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm224 352h-96a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32zm-240 0h-96a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32z\"]]\n};\nvar faSkating = {\n prefix: 'fad',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", [\"M400 448a16 16 0 0 0-16 16 16 16 0 0 1-16 16h-96a16 16 0 0 0 0 32h96a48 48 0 0 0 48-48 16 16 0 0 0-16-16zm-282.2 8.6a16 16 0 0 1-22.6 0l-67.9-67.9a16 16 0 1 0-22.6 22.6l67.9 67.9a48.16 48.16 0 0 0 67.9 0 16 16 0 1 0-22.7-22.6zM400 0a48 48 0 1 0 48 48 48 48 0 0 0-48-48z\", \"M360.85 164.3a40 40 0 0 0-28.3-68.3H128a32 32 0 1 0 0 64h105.5l-20.1 17.2a63.94 63.94 0 0 0-3.6 93.8l78.2 78.2V432a32 32 0 0 0 64 0v-89.4a48 48 0 0 0-14.1-33.9l-61-61a16.29 16.29 0 0 0 1.7-1.1zm-187 112.5l-93.7 93.7a32 32 0 0 0 22.6 54.6 31.55 31.55 0 0 0 22.6-9.4l91.9-91.9-30.2-30.2a94 94 0 0 1-13.2-16.8z\"]]\n};\nvar faSkeleton = {\n prefix: 'fad',\n iconName: 'skeleton',\n icon: [512, 512, [], \"f620\", [\"M224 224H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h208zM80 128h144V64H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm208 0h144a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16H288zm160 176v-32a16 16 0 0 0-16-16H288v64h144a16 16 0 0 0 16-16zm32 128a80 80 0 1 1-158.39-16H190.39A80 80 0 1 1 112 352h288a80 80 0 0 1 80 80zm-336 0a32 32 0 1 0-32 32 32 32 0 0 0 32-32zm288 0a32 32 0 1 0-32 32 32 32 0 0 0 32-32zM64 272v32a16 16 0 0 0 16 16h144v-64H80a16 16 0 0 0-16 16zm432-112H288v64h208a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M224 16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v336h-64z\"]]\n};\nvar faSkiJump = {\n prefix: 'fad',\n iconName: 'ski-jump',\n icon: [512, 512, [], \"f7c7\", [\"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm110.7 94.2a24 24 0 0 0-47.4 8c3.3 19.3-6 38.9-22.1 48.1L13 466.7A24 24 0 0 0 24.1 512a24.14 24.14 0 0 0 11-2.7l429.2-220.9a95.42 95.42 0 0 0 46.4-98.2z\", \"M113.7 414.8a31.85 31.85 0 0 1-7.3-35c60.4-146.9 56.8-138.9 60.2-143.3l58.9-76.5H128a32 32 0 0 1 0-64h184a40 40 0 0 1 28.3 68.3L218.9 274.8l-44.9 109z\"]]\n};\nvar faSkiLift = {\n prefix: 'fad',\n iconName: 'ski-lift',\n icon: [512, 512, [], \"f7c8\", [\"M488 288a24.07 24.07 0 0 0-24 24 33.54 33.54 0 0 1-21.8 31.3L111.65 465.5a24 24 0 1 0 16.6 45l330.5-122.1A81.87 81.87 0 0 0 512 312a24 24 0 0 0-24-24zM112 128a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm79.6 253.4a24 24 0 1 0-15.2-45.6L158 342a40 40 0 0 1-48.7-20.7l-63.6-133A24 24 0 1 0 2.35 209L66 342a88.31 88.31 0 0 0 79.5 50c12.55 0 16.95-.9 46.05-10.6zM256 0h-32v184l32-8z\", \"M307.65 222.8a31.61 31.61 0 0 0-27.5-5.8l-68.3 17-24.1-53.7a48 48 0 1 0-87.6 39.4L128 287.8c7.9 19.1 22.7 27.6 39.8 23.3L256 289v123.2l64-23.7V248a31.69 31.69 0 0 0-12.35-25.2z\"]]\n};\nvar faSkiing = {\n prefix: 'fad',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", [\"M432 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm73 356.1a23.9 23.9 0 0 0-33.9 0c-12.1 12.1-30.5 15.4-45.1 8.7L35 258.7a24 24 0 1 0-22 42.6l391.9 202.5a88.06 88.06 0 0 0 37.1 8.1 89 89 0 0 0 63-26 24 24 0 0 0 0-33.8zM120 91.6l-11.5 22.5a39.15 39.15 0 0 0 42.8-4.8l216.28 109.75a47.52 47.52 0 0 1-16-22.65l-10.76-29-175.92-87A38.77 38.77 0 0 0 144 44.8l-11.1 21.7h-.2l-34.4-7a5.11 5.11 0 0 0-5 1.7 5.23 5.23 0 0 0 .5 7.4z\", \"M293 215.7l-107-53.1a63.8 63.8 0 0 0 17.7 54.4l75.1 75.2-45.9 68.8 57.3 29.6 49.2-73.8a48 48 0 0 0-6-60.6zm169.3-20.3l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.43 32.28 113.67 56.18 10.76 29a47.6 47.6 0 0 0 24 27.7l58.1 29a32.2 32.2 0 0 0 28.6-57.7z\"]]\n};\nvar faSkiingNordic = {\n prefix: 'fad',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", [\"M336 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm216 320a24 24 0 0 0-24 24 24.07 24.07 0 0 1-24 24h-69.5L460 285.67a31.85 31.85 0 0 1-12 2.33h-20.7l-25.2 176H99.5l52.21-260.94a32 32 0 0 1-30.88-9L66.9 464H24a24 24 0 0 0 0 48h480a72.08 72.08 0 0 0 72-72 24.07 24.07 0 0 0-24-24z\", \"M186.2 332.2L123.7 464h70.9l43.1-91-22-13a95.84 95.84 0 0 1-29.5-27.8zM448 224h-43.9L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7a95.74 95.74 0 0 0-80.8 17.1l-39.7 30.4a32.17 32.17 0 1 0 42.21 48.35l36.49-28c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4A64.18 64.18 0 0 0 232 332.6l85 50.2-25.5 81.2h67l23.6-75.5a48.25 48.25 0 0 0-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4A48.35 48.35 0 0 0 394 288h54a32 32 0 0 0 32-32 32 32 0 0 0-32-32z\"]]\n};\nvar faSkull = {\n prefix: 'fad',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", [\"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2a15.87 15.87 0 0 0 13.37 18 16.49 16.49 0 0 0 2.33.17H192V456a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v56h64v-56a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v56h77.7a15.87 15.87 0 0 0 15.87-15.87 16.49 16.49 0 0 0-.17-2.33l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320a64 64 0 1 1 64-64 64 64 0 0 1-64 64zm192 0a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\", \"M160 192a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm192 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64z\"]]\n};\nvar faSkullCow = {\n prefix: 'fad',\n iconName: 'skull-cow',\n icon: [640, 512, [], \"f8de\", [\"M60.07,113.24C43.35,89.15,56.88,37.69,63,21.58a16,16,0,0,0-26.21-17C13.05,27.82,0,60.17,0,95.67,0,166.12,57.43,224,128,224h32V160a63.33,63.33,0,0,1,8.88-32H96C78.61,128,66.87,123,60.07,113.24ZM603.26,4.57a16,16,0,0,0-26.21,17c6.07,16.11,19.6,67.57,2.88,91.66C573.13,123,561.39,128,544,128H471.12A63.32,63.32,0,0,1,480,160v64h32c70.59,0,128-57.88,128-128.33C640,60.17,627,27.82,603.26,4.57Z\", \"M416,96H224a64,64,0,0,0-64,64V288a64,64,0,0,0,64,64L250.8,486.27A32,32,0,0,0,282.19,512h75.53a32,32,0,0,0,31.38-25.72L416,352a64,64,0,0,0,64-64V160A64,64,0,0,0,416,96ZM240,288a32,32,0,1,1,32-32A32,32,0,0,1,240,288Zm160,0a32,32,0,1,1,32-32A32,32,0,0,1,400,288Z\"]]\n};\nvar faSkullCrossbones = {\n prefix: 'fad',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", [\"M368 128C368 57.31 303.51 0 224 0S80 57.31 80 128c0 46.53 28.21 86.87 70 109.28l-5.48 25.87C141.84 275.77 149.93 288 161 288h126c11 0 19.12-12.22 16.45-24.84L298 237.28c41.76-22.41 70-62.75 70-109.28zm-200 48a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm112 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M280 176a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm159.15 277.05l-142-69.05 142-69.06a16 16 0 0 0 7.15-21.46L432 264.85a16 16 0 0 0-21.46-7.15L224 348.4 37.47 257.69A16 16 0 0 0 16 264.85L1.69 293.47a16 16 0 0 0 7.16 21.46l142 69.06-142 69.06a16 16 0 0 0-7.15 21.47L16 503.15a16 16 0 0 0 21.47 7.13L224 419.58l186.51 90.72a16 16 0 0 0 21.49-7.15l14.33-28.63a16 16 0 0 0-7.18-21.47zM168 176a32 32 0 1 0-32-32 32 32 0 0 0 32 32z\"]]\n};\nvar faSlash = {\n prefix: 'fad',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", [\"M636.63 480.55L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.81 22.45z\", \"\"]]\n};\nvar faSledding = {\n prefix: 'fad',\n iconName: 'sledding',\n icon: [512, 512, [], \"f7cb\", [\"M400 128a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm105 292.1a23.9 23.9 0 0 0-33.9 0c-12.1 12.1-30.5 15.4-45.1 8.7L35 226.6a24 24 0 0 0-22 42.7l391.9 202.6A88.06 88.06 0 0 0 442 480a89 89 0 0 0 63-26 24.08 24.08 0 0 0 0-33.9z\", \"M384.1 288v96c0 7.5-3 14-7.2 19.4L320 374v-54H215.47l-54.77-28.3a31.93 31.93 0 0 1 1.8-15.9 30.52 30.52 0 0 1 6.9-10.4l73.4-73.4H160a32 32 0 0 1 0-64h153.5a48 48 0 0 1 33.9 81.9L301.3 256h50.8a32 32 0 0 1 32 32z\"]]\n};\nvar faSleigh = {\n prefix: 'fad',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", [\"M639.9 411.7c-2.2 39-36.9 68.3-75.9 68.3H48a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h519.3a24.61 24.61 0 0 0 15.4-43.8l-9.3-7.4a16 16 0 0 1-2.5-22.5l10-12.5a16 16 0 0 1 22.5-2.5l9.3 7.4a72.06 72.06 0 0 1 27.2 61z\", \"M0 64a32 32 0 0 1 32-32h20.7A173.75 173.75 0 0 1 208 128a173.64 173.64 0 0 0 155.3 96H384a64.06 64.06 0 0 0 64-64V96h96a32 32 0 0 1 0 64v96a96 96 0 0 1-96 96v48h-64v-48H192v48h-64v-52.5C72.9 333.2 32 283.6 32 224V96A32 32 0 0 1 0 64z\"]]\n};\nvar faSlidersH = {\n prefix: 'fad',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", [\"M496 64H288v64h208a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zM16 128h176V64H16A16 16 0 0 0 0 80v32a16 16 0 0 0 16 16zm0 160h304v-64H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm480-64h-80v64h80a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 160H160v64h336a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM0 400v32a16 16 0 0 0 16 16h48v-64H16a16 16 0 0 0-16 16z\", \"M272 32h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm128 160h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zM144 352h-32a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16z\"]]\n};\nvar faSlidersHSquare = {\n prefix: 'fad',\n iconName: 'sliders-h-square',\n icon: [448, 512, [], \"f3f0\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 324a12 12 0 0 1-12 12h-52v24a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24v-24H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h180v-24a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v24h52a12 12 0 0 1 12 12zm0-160a12 12 0 0 1-12 12H192v24a23.94 23.94 0 0 1-24 24h-16a23.94 23.94 0 0 1-24-24v-24H76a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h52v-24a23.94 23.94 0 0 1 24-24h16a23.94 23.94 0 0 1 24 24v24h180a12 12 0 0 1 12 12z\", \"M168 256a23.94 23.94 0 0 0 24-24V120a23.94 23.94 0 0 0-24-24h-16a23.94 23.94 0 0 0-24 24v112a23.94 23.94 0 0 0 24 24zm112 160h16a23.94 23.94 0 0 0 24-24V280a23.94 23.94 0 0 0-24-24h-16a23.94 23.94 0 0 0-24 24v112a23.94 23.94 0 0 0 24 24z\"]]\n};\nvar faSlidersV = {\n prefix: 'fad',\n iconName: 'sliders-v',\n icon: [448, 512, [], \"f3f1\", [\"M80 0H48a16 16 0 0 0-16 16v80h64V16A16 16 0 0 0 80 0zm112 496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-48h-64zm-160 0a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V192H32zM240 0h-32a16 16 0 0 0-16 16v336h64V16a16 16 0 0 0-16-16zm112 496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V320h-64zM400 0h-32a16 16 0 0 0-16 16v208h64V16a16 16 0 0 0-16-16z\", \"M112 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm320 128h-96a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM272 352h-96a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faSlidersVSquare = {\n prefix: 'fad',\n iconName: 'sliders-v-square',\n icon: [448, 512, [], \"f3f2\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM200 224h-24v180a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12V224H88a23.94 23.94 0 0 1-24-24v-16a23.94 23.94 0 0 1 24-24h24v-52a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v52h24a23.94 23.94 0 0 1 24 24v16a23.94 23.94 0 0 1-24 24zm184 104a23.94 23.94 0 0 1-24 24h-24v52a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-52h-24a23.94 23.94 0 0 1-24-24v-16a23.94 23.94 0 0 1 24-24h24V108a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12v180h24a23.94 23.94 0 0 1 24 24z\", \"M224 184a23.94 23.94 0 0 0-24-24H88a23.94 23.94 0 0 0-24 24v16a23.94 23.94 0 0 0 24 24h112a23.94 23.94 0 0 0 24-24zm136 104H248a23.94 23.94 0 0 0-24 24v16a23.94 23.94 0 0 0 24 24h112a23.94 23.94 0 0 0 24-24v-16a23.94 23.94 0 0 0-24-24z\"]]\n};\nvar faSmile = {\n prefix: 'fad',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm80,168a32,32,0,1,1-32,32A32,32,0,0,1,328,176Zm-160,0a32,32,0,1,1-32,32A32,32,0,0,1,168,176ZM362.8,346.2a149.38,149.38,0,0,1-229.6,0c-13.6-16.3,11-36.7,24.6-20.5a117.5,117.5,0,0,0,180.4,0C351.6,309.5,376.3,329.9,362.8,346.2Z\", \"M328,176a32,32,0,1,0,32,32A32,32,0,0,0,328,176Zm-160,0a32,32,0,1,0,32,32A32,32,0,0,0,168,176Z\"]]\n};\nvar faSmileBeam = {\n prefix: 'fad',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", [\"M245.47,8C108.5,9.43-1.36,121.56,0,258.53S113.56,505.36,250.53,504,497.36,390.44,496,253.47,382.44,6.64,245.47,8ZM112,223.4c3.3-42.1,32.2-71.38,56-71.38s52.7,29.28,56,71.38c.7,8.6-10.8,11.9-14.9,4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.78,7.9-31.48,21.6l-9.5,17C122.82,235.3,111.32,231.9,112,223.4ZM363.69,345a149.34,149.34,0,0,1-229.54,2.35c-13.67-16.17,10.62-36.81,24.37-20.75a117.57,117.57,0,0,0,180.39-1.84c13.41-16.32,38.08,3.93,24.78,20.24ZM369,227.9l-9.5-17c-7.7-13.7-19.18-21.6-31.48-21.6s-23.8,7.9-31.5,21.6l-9.5,17c-4.1,7.3-15.6,4-14.9-4.5,3.3-42.1,32.2-71.38,56-71.38s52.68,29.28,56,71.38c.58,8.6-11,11.9-15.11,4.5Z\", \"M168,152c-23.78,0-52.68,29.28-56,71.38-.7,8.5,10.8,11.9,15.1,4.5l9.5-17c7.7-13.7,19.18-21.6,31.48-21.6s23.8,7.9,31.5,21.6l9.5,17c4.1,7.4,15.6,4.1,14.9-4.5C220.7,181.3,191.8,152,168,152ZM384.08,223.4c-3.3-42.1-32.2-71.38-56-71.38s-52.7,29.28-56,71.38c-.7,8.5,10.8,11.8,14.9,4.5l9.5-17c7.7-13.7,19.2-21.6,31.5-21.6s23.78,7.9,31.48,21.6l9.5,17c4.11,7.4,15.71,4.1,15.11-4.5Z\"]]\n};\nvar faSmilePlus = {\n prefix: 'fad',\n iconName: 'smile-plus',\n icon: [640, 512, [], \"f5b9\", [\"M208 96C93.1 96 0 189.1 0 304s93.1 208 208 208 208-93.1 208-208S322.9 96 208 96zm64 133.2a26.8 26.8 0 1 1-26.8 26.8 26.8 26.8 0 0 1 26.8-26.8zm-128 0a26.8 26.8 0 1 1-26.8 26.8 26.8 26.8 0 0 1 26.8-26.8zm164.2 140.9a132.32 132.32 0 0 1-200.4 0 16 16 0 1 1 24.3-20.7 100.23 100.23 0 0 0 151.6-.1 16.07 16.07 0 0 1 24.5 20.8z\", \"M624 80h-64V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v64h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64v64a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-64h64a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM272 229.2a26.8 26.8 0 1 0 26.8 26.8 26.8 26.8 0 0 0-26.8-26.8zm-128 0a26.8 26.8 0 1 0 26.8 26.8 26.8 26.8 0 0 0-26.8-26.8z\"]]\n};\nvar faSmileWink = {\n prefix: 'fad',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM168,176a32,32,0,1,1-32,32A32,32,0,0,1,168,176ZM362.8,346.3a149.48,149.48,0,0,1-229.6-.1c-13.5-16.3,11.2-36.7,24.6-20.4a117.5,117.5,0,0,0,180.4,0C351.8,309.6,376.3,330,362.8,346.3ZM368.2,233l-9.7-8.5c-14.8-13.2-46.2-13.2-61,0L288,233c-8.3,7.4-21.6.4-19.8-10.8,4-25.2,34.2-42.1,59.9-42.1S384,197,388,222.2c1.7,11.1-11.4,18.3-19.8,10.8Z\", \"M388,222.2c-4-25.2-34.2-42.1-59.9-42.1s-55.9,16.9-59.9,42.1c-1.8,11.2,11.5,18.2,19.8,10.8l9.5-8.5c14.8-13.2,46.2-13.2,61,0l9.7,8.5c8.4,7.5,21.5.3,19.8-10.8ZM168,176a32,32,0,1,0,32,32A32,32,0,0,0,168,176Z\"]]\n};\nvar faSmog = {\n prefix: 'fad',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", [\"M624 368H80a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-480 96H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm416 0H224a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h336a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\", \"M0 144a143.73 143.73 0 0 1 248-99.2A143.18 143.18 0 0 1 352 0c54.8 0 102 31 126.3 76.1A110.53 110.53 0 0 1 528 64a112 112 0 0 1 0 224h-60.1c-22.6 19.7-51.6 32-83.9 32s-61.4-12.3-83.9-32H144A144 144 0 0 1 0 144z\"]]\n};\nvar faSmoke = {\n prefix: 'fad',\n iconName: 'smoke',\n icon: [640, 512, [], \"f760\", [\"M512 96c-46.8 0-87.3 25.3-109.6 62.8-22.3-18.9-50.8-30.8-82.4-30.8-51.7 0-95.9 30.8-116.1 74.8a174.6 174.6 0 0 1 44.1 23.4 174.7 174.7 0 0 1 243 34.9 136.5 136.5 0 0 1 37-5.1c35.5 0 67.6 13.4 92.7 34.8A127.39 127.39 0 0 0 512 96zm-192 0a157.94 157.94 0 0 1 75.1 19.2c9.3-10.2 20.2-18.4 31.6-25.8A127.93 127.93 0 0 0 320 32c-31.6 0-60.1 11.9-82.4 30.8C215.3 25.3 174.8 0 128 0A128 128 0 0 0 0 128c0 38.2 17.1 72.1 43.7 95.6a174 174 0 0 1 129.4-29.1C197.2 136.8 253.7 96 320 96z\", \"M640 400a111.94 111.94 0 0 1-112 112H144a144 144 0 1 1 104-243.2A143.18 143.18 0 0 1 352 224c54.8 0 102 31 126.3 76.1A110.53 110.53 0 0 1 528 288a111.94 111.94 0 0 1 112 112z\"]]\n};\nvar faSmoking = {\n prefix: 'fad',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", [\"M553.3 87.1a20.29 20.29 0 0 1-9.3-16.8V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v62.3c0 22 10.2 43.4 28.6 55.4a147.29 147.29 0 0 1 67.4 124V280a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-30.3a195.28 195.28 0 0 0-86.7-162.6zm-65.6 54.5C463.8 125 448 99.3 448 70.3V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7a83.62 83.62 0 0 1 35.7 68.6V280a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-30.3a131.59 131.59 0 0 0-56.3-108.1z\", \"M536 352h-48a8 8 0 0 0-8 8v144a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V360a8 8 0 0 0-8-8zm96 0h-48a8 8 0 0 0-8 8v144a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V360a8 8 0 0 0-8-8zm-200 0H48a48 48 0 0 0-48 48v64a48 48 0 0 0 48 48h384a16 16 0 0 0 16-16V368a16 16 0 0 0-16-16z\"]]\n};\nvar faSmokingBan = {\n prefix: 'fad',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", [\"M96 240a16 16 0 0 1 16-16h21.5l96 96H112a16 16 0 0 1-16-16zm224.6-80a32 32 0 0 1 31.4 25.9 7.74 7.74 0 0 0 7.7 6.1h16.2a8.17 8.17 0 0 0 8-9.4 64.07 64.07 0 0 0-63.3-54.6 32 32 0 0 1-31.4-25.9 7.74 7.74 0 0 0-7.7-6.1h-16.2a8.17 8.17 0 0 0-8 9.4 64.07 64.07 0 0 0 63.3 54.6zm95.4 80a16 16 0 0 0-16-16H269.2l32 32H384v32h-50.8l32 32H400a16 16 0 0 0 16-16z\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192a190.67 190.67 0 0 1 35.7-111.1l267.4 267.4A190.67 190.67 0 0 1 256 448zm156.3-80.9L144.9 99.7A190.67 190.67 0 0 1 256 64c105.9 0 192 86.1 192 192a190.67 190.67 0 0 1-35.7 111.1z\"]]\n};\nvar faSms = {\n prefix: 'fad',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", [\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5a8 8 0 0 0-1.5 8.7A7.83 7.83 0 0 0 8 480c66.3 0 116-31.8 140.6-51.4A305 305 0 0 0 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h12.3c6 0 10.4-3.5 10.4-6.6a5.29 5.29 0 0 0-2.1-3.8l-21.9-18.8a37 37 0 0 1-13.3-28.1c0-21.3 19-38.6 42.4-38.6H156a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6a5.29 5.29 0 0 0 2.1 3.8l21.9 18.8a37 37 0 0 1 13.3 28.1c.1 21.3-19 38.6-42.4 38.6zm191.8-8a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-68.2l-24.8 55.8a8 8 0 0 1-14.3 0L224 227.8V296a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V192a16 16 0 0 1 16-16h16a15.92 15.92 0 0 1 14.3 8.8l17.7 35.4 17.7-35.4A16 16 0 0 1 288 176h16a16 16 0 0 1 16 16zm48.3 8H356a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h12.3c6 0 10.4-3.5 10.4-6.6a5.29 5.29 0 0 0-2.1-3.8l-21.9-18.8a37 37 0 0 1-13.3-28.1c0-21.3 19-38.6 42.4-38.6H396a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6a5.29 5.29 0 0 0 2.1 3.8l21.9 18.8a37 37 0 0 1 13.3 28.1c.1 21.3-18.9 38.6-42.3 38.6z\", \"M397.3 237.3l-21.9-18.8a5.29 5.29 0 0 1-2.1-3.8c0-3.1 4.4-6.6 10.4-6.6H396a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-12.2c-23.4 0-42.4 17.3-42.4 38.6a37 37 0 0 0 13.3 28.1l21.9 18.8a5.29 5.29 0 0 1 2.1 3.8c0 3.1-4.4 6.6-10.4 6.6H356a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h12.3c23.4 0 42.4-17.3 42.3-38.6a37 37 0 0 0-13.3-28.1zM304 176h-16a16 16 0 0 0-14.3 8.8L256 220.2l-17.7-35.4A15.92 15.92 0 0 0 224 176h-16a16 16 0 0 0-16 16v104a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-68.2l24.9 55.8a8 8 0 0 0 14.3 0l24.8-55.8V296a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V192a16 16 0 0 0-16-16zm-146.7 61.3l-21.9-18.8a5.29 5.29 0 0 1-2.1-3.8c0-3.1 4.4-6.6 10.4-6.6H156a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-12.2c-23.4 0-42.4 17.3-42.4 38.6a37 37 0 0 0 13.3 28.1l21.9 18.8a5.29 5.29 0 0 1 2.1 3.8c0 3.1-4.4 6.6-10.4 6.6H116a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h12.2c23.4 0 42.5-17.3 42.4-38.6a37 37 0 0 0-13.3-28.1z\"]]\n};\nvar faSnake = {\n prefix: 'fad',\n iconName: 'snake',\n icon: [640, 512, [], \"f716\", [\"M0 320h96v-64H0zm160 64h96v-64h-96zm160 0h96v-64h-96zM0 192h96v-64H0zm160 64h96v-64h-96zm368 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0-32a16 16 0 1 0-16-16 16 16 0 0 0 16 16z\", \"M160 128a32 32 0 0 0-64 0H0a124.66 124.66 0 0 1 .63-12.52A128.12 128.12 0 0 1 140.79.64C207.29 7.12 256 66.9 256 133.71V192h-96zM0 256h96v-64H0zm0 64a518.51 518.51 0 0 0 33 181.63c5.19 13.84 24.77 13.84 30 0A518.51 518.51 0 0 0 96 320zm160 0h96v-64h-96zm160 64a32 32 0 0 1-64 0h-95.88c2.68 64.48 50.49 121.08 115.09 127.39A128.16 128.16 0 0 0 415.38 396.5q.62-6.22.62-12.49h-96zm320-173.31v60.61a32 32 0 0 1-22.92 30.7l-86.88 25.7c-33.62 9.94-66.9-9.07-78-39.69H448a32 32 0 0 0-32 32h-96A128 128 0 0 1 448 192h4.56c11.54-30.28 44.86-48.81 78.25-38.54l86.59 26.64a32 32 0 0 1 22.6 30.59zM544 272a16 16 0 1 0-16 16 16 16 0 0 0 16-16zm0-64a16 16 0 1 0-16 16 16 16 0 0 0 16-16z\"]]\n};\nvar faSnooze = {\n prefix: 'fad',\n iconName: 'snooze',\n icon: [448, 512, [], \"f880\", [\"M304 176v-32a16 16 0 0 0-16-16h-34.75l57.37-57.38A32 32 0 0 0 320 48V32a32 32 0 0 0-32-32H184a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h42.75l-57.37 57.38A32 32 0 0 0 160 144v16a32 32 0 0 0 32 32h96a16 16 0 0 0 16-16zm144 96v-16a32 32 0 0 0-32-32h-96a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h34.75l-57.37 57.38A32 32 0 0 0 288 368v16a32 32 0 0 0 32 32h104a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-42.75l57.37-57.38A32 32 0 0 0 448 272z\", \"M192 224H40a24 24 0 0 0-24 24v48a24 24 0 0 0 24 24h50.44L8.08 412.66A32 32 0 0 0 0 433.92V480a32 32 0 0 0 32 32h152a24 24 0 0 0 24-24v-48a24 24 0 0 0-24-24h-50.44l82.36-92.66a32 32 0 0 0 8.08-21.26V256a32 32 0 0 0-32-32z\"]]\n};\nvar faSnowBlowing = {\n prefix: 'fad',\n iconName: 'snow-blowing',\n icon: [640, 512, [], \"f761\", [\"M540.3 320H361.72a32.4 32.4 0 0 0-17.81 5.4l-44 29.3c-13.2 8.8-7 29.3 8.91 29.3H542.2c15.9 0 30.81 10.9 33.41 26.6a32.06 32.06 0 0 1-62 15.5C511.5 419.8 505 416 498.4 416h-32.84a16.06 16.06 0 0 0-15.7 19.1 96.06 96.06 0 0 0 188.28-38.2c-8.71-45.6-51.42-76.9-97.84-76.9zM400 288h144a96.2 96.2 0 0 0 93.81-116.72c-7.6-36.21-36.91-65.52-73.11-73.12a96.23 96.23 0 0 0-114.91 75.52c-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1a32.05 32.05 0 0 1 62 15.5C573 213.09 558.22 224 542.22 224H400a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M291.93 324.1l-11.71 3.1a12.16 12.16 0 0 1-14.9-8.6l-14.9-55.6L200 233.9v56.9l40.4 40.2a12 12 0 0 1 0 17l-8.5 8.5a12 12 0 0 1-17 0l-14.8-14.8V372a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-30.3l-14.8 14.8a12 12 0 0 1-17 0l-8.5-8.5a12 12 0 0 1 0-17l40.2-40.2v-56.9L101.58 263l-14.9 55.6a12.21 12.21 0 0 1-14.9 8.6l-11.71-3.1a12.21 12.21 0 0 1-8.6-14.9L57 288.8l-26.6 15.3a12.13 12.13 0 0 1-16.61-4.4l-12.1-21a12.12 12.12 0 0 1 4.4-16.6l26.51-15.4-20.41-5.5a12.21 12.21 0 0 1-8.6-14.9l3.1-11.7a12.21 12.21 0 0 1 14.9-8.6l55.72 15 50.21-29-50.24-29-55.62 14.9a12.16 12.16 0 0 1-14.9-8.6l-3.1-11.7a12.16 12.16 0 0 1 8.6-14.9l20.41-5.5-26.61-15.3a12.12 12.12 0 0 1-4.4-16.6l12.1-21a12.13 12.13 0 0 1 16.61-4.4l26.5 15.3-5.5-20.4A12.16 12.16 0 0 1 60 59.9l11.71-3.2a12.16 12.16 0 0 1 14.9 8.6l15 55.7L152 150.1V93.2L111.69 53a12 12 0 0 1 0-17l8.5-8.5a12 12 0 0 1 17 0L152 42.3V12a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v30.3l14.7-14.8a12 12 0 0 1 17 0l8.5 8.5a12 12 0 0 1 0 17L200 93.2v56.9l50.42-29.1 14.9-55.6a12.21 12.21 0 0 1 14.9-8.6l11.71 3.1a12.21 12.21 0 0 1 8.6 14.9L295 95.2l26.6-15.3a12.13 12.13 0 0 1 16.61 4.4l12.1 21a12.12 12.12 0 0 1-4.4 16.6l-26.61 15.3 20.41 5.5a12.21 12.21 0 0 1 8.6 14.9l-3.1 11.7a12.21 12.21 0 0 1-14.9 8.6L274.72 163l-50.21 29 50.21 29 55.62-14.9a12.16 12.16 0 0 1 14.9 8.6l3.1 11.7a12.16 12.16 0 0 1-8.6 14.9l-20.41 5.5 26.61 15.3a12.12 12.12 0 0 1 4.4 16.6l-12.1 21a12.13 12.13 0 0 1-16.61 4.4L295 288.8l5.5 20.4a12.09 12.09 0 0 1-8.57 14.9z\"]]\n};\nvar faSnowboarding = {\n prefix: 'fad',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", [\"M431.85 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm61.9 375.9a24 24 0 0 0-31.9-11.6 38.23 38.23 0 0 1-29.5 1.3L67.55 328.9a38.27 38.27 0 0 1-21.8-20 24 24 0 0 0-43.5 20.3 85.86 85.86 0 0 0 48.9 44.8L416 506.7a87.38 87.38 0 0 0 29.7 5.3 84.89 84.89 0 0 0 36.5-8.2 24 24 0 0 0 11.55-31.9z\", \"M505.45 243.2a32 32 0 0 1-44.8 6.4l-83.5-62.9-66 30.5 52 39a48.13 48.13 0 0 1 18.1 48.4l-21.9 102a31.72 31.72 0 0 1-17.8 21.9l-42.27-15.36a31 31 0 0 1-2.73-19.84l19.7-92-60.5-45.3v20.5A47.87 47.87 0 0 1 223 322l-85 28.4a29.94 29.94 0 0 1-7.8 1.28L106.25 343a30.48 30.48 0 0 1-8.7-12.9 32 32 0 0 1 20.2-40.5l74.1-24.7v-53.1a63.63 63.63 0 0 1 35.4-57.2l41.2-20.6-16.4-5.5a47.94 47.94 0 0 1-27.7-24l-29.1-58.1a32 32 0 0 1 57.2-28.6l26.1 52.1 63.7 21.2a160.26 160.26 0 0 1 45.4 23.8l111.4 83.5a32 32 0 0 1 6.4 44.8z\"]]\n};\nvar faSnowflake = {\n prefix: 'fad',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", [\"M138.08 441.66a15.87 15.87 0 0 0 .16 22.44l11.3 11.3a16.06 16.06 0 0 0 22.6 0l19.7-19.7.06-67.86-53.66 53.66zM91.37 83.9l-14.9 4a15.46 15.46 0 0 0-10.9 18.9l7 26 56.67 32.74-19-70.74a15.47 15.47 0 0 0-18.87-10.9zM65.45 405.3a15.46 15.46 0 0 0 10.9 18.9l14.9 4a15.47 15.47 0 0 0 18.89-10.9l19-70.73-56.69 32.73zm355-167.2a15.48 15.48 0 0 0 18.9-10.9l4-14.9a15.47 15.47 0 0 0-10.9-18.9l-26-7-56.7 32.73zM8.67 227.2a15.47 15.47 0 0 0 18.9 10.9l70.77-19-56.72-32.8-25.95 7a15.51 15.51 0 0 0-11 19zm18.87 46.7a15.47 15.47 0 0 0-18.9 10.9l-4 14.9a15.46 15.46 0 0 0 10.9 18.9l26 7 56.76-32.71zm122.2-237.2L138.34 48a1.21 1.21 0 0 0-.16.16 15.87 15.87 0 0 0 .16 22.44L192 124.3V56.4l-19.7-19.7a16.06 16.06 0 0 0-22.56 0zm293.7 263.1l-4-14.9a15.48 15.48 0 0 0-18.9-10.9l-70.67 19 56.69 32.73 26-7a15.47 15.47 0 0 0 10.88-18.93zm-60.9-193a15.47 15.47 0 0 0-10.9-18.9l-14.9-4a15.45 15.45 0 0 0-18.9 10.9l-19 70.74 56.69-32.74zm-7 272.4l-56.67-32.73 19 70.73a15.46 15.46 0 0 0 18.89 10.9l14.9-4a15.47 15.47 0 0 0 10.9-18.9zM256 387.7l-.16 67.94 19.66 19.66a16.06 16.06 0 0 0 22.6 0l11.3-11.3a16.07 16.07 0 0 0 0-22.6zm42.4-351a16.06 16.06 0 0 0-22.6 0L256 56.4v67.9l53.71-53.7a16.07 16.07 0 0 0 0-22.6z\", \"M446 366.05l-.09.15-15.47 26.8a15.42 15.42 0 0 1-21.06 5.72L256 310.2l-.2 185.8a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16l.1-185.7-153.25 88.5a15.51 15.51 0 0 1-21.1-5.7L2 366.3a15.51 15.51 0 0 1 5.7-21.1L162.16 256 7.87 166.8a15.43 15.43 0 0 1-5.73-21.06L17.67 119a15.41 15.41 0 0 1 21-5.72h.05L192 201.8V16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v185.8l153.3-88.5a15.51 15.51 0 0 1 21.1 5.7l15.5 26.8a15.51 15.51 0 0 1-5.7 21.1L285.85 256l154.49 89.2a15.29 15.29 0 0 1 5.66 20.85z\"]]\n};\nvar faSnowflakes = {\n prefix: 'fad',\n iconName: 'snowflakes',\n icon: [640, 512, [], \"f7cf\", [\"M528 120a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V91.6l28 16.1a8 8 0 0 0 11-2.9l8-13.9a8 8 0 0 0-3-10.9l-27.85-16L604 48a8 8 0 0 0 2.9-10.9l-8-13.9a8 8 0 0 0-10.9-2.9l-28 16.1V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v28.4l-28-16.1a8 8 0 0 0-10.91 2.9l-8 13.9A8 8 0 0 0 484 48l28 16-28 16a8 8 0 0 0-2.9 10.9l8 13.9a8 8 0 0 0 10.9 2.9l28-16.1zm108 152l-27.92-16L636 240a8 8 0 0 0 2.9-10.9l-8-13.9a8 8 0 0 0-10.9-2.9l-28 16.1V200a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v28.4l-28-16.1a8 8 0 0 0-10.91 2.9l-8 13.9A8 8 0 0 0 516 240l28 16-28 16a8 8 0 0 0-2.9 10.9l8 13.9a8 8 0 0 0 10.9 2.9l28-16.1V312a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-28.4l28 16.1a8 8 0 0 0 11-2.9l8-13.9a8 8 0 0 0-3-10.9zM65.45 404.3a15.46 15.46 0 0 0 10.9 18.9l14.9 4a15.47 15.47 0 0 0 18.89-10.9l19-70.73-56.69 32.73zM91.37 82.9l-14.9 4a15.46 15.46 0 0 0-10.9 18.9l7 26 56.67 32.74-19-70.74a15.47 15.47 0 0 0-18.87-10.9zm46.71 357.76a15.87 15.87 0 0 0 .16 22.44l11.3 11.3a16.06 16.06 0 0 0 22.6 0l19.7-19.7.06-67.86-53.66 53.66zM27.54 272.9a15.47 15.47 0 0 0-18.9 10.9l-4 14.9a15.46 15.46 0 0 0 10.9 18.9l26 7 56.76-32.71zM8.67 226.2a15.47 15.47 0 0 0 18.9 10.9l70.77-19-56.72-32.8-25.95 7a15.51 15.51 0 0 0-11 19zm411.77 10.9a15.48 15.48 0 0 0 18.9-10.9l4-14.9a15.47 15.47 0 0 0-10.9-18.9l-26-7-56.7 32.73zm-44.9 141.1l-56.67-32.73 19 70.73a15.46 15.46 0 0 0 18.89 10.9l14.9-4a15.47 15.47 0 0 0 10.9-18.9zm63.9-94.3a15.48 15.48 0 0 0-18.9-10.9l-70.67 19 56.69 32.73 26-7a15.47 15.47 0 0 0 10.9-18.9zm-56.9-178.1a15.47 15.47 0 0 0-10.9-18.9l-14.9-4a15.45 15.45 0 0 0-18.9 10.9l-19 70.74 56.69-32.74zm-84.1-70.1a16.06 16.06 0 0 0-22.6 0L256 55.4v67.9l53.71-53.7a16.07 16.07 0 0 0 0-22.6zM256 386.7l-.16 67.94 19.66 19.66a16.06 16.06 0 0 0 22.6 0l11.3-11.3a16.07 16.07 0 0 0 0-22.6zm-106.3-351L138.34 47a1.21 1.21 0 0 0-.16.16 15.87 15.87 0 0 0 .16 22.44L192 123.3V55.4l-19.7-19.7a16.06 16.06 0 0 0-22.56 0z\", \"M446 365.05l-.09.15-15.47 26.8a15.42 15.42 0 0 1-21.06 5.72L256 309.2l-.2 185.8a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16l.1-185.7-153.25 88.5a15.51 15.51 0 0 1-21.1-5.7L2 365.3a15.51 15.51 0 0 1 5.7-21.1L162.16 255 7.87 165.8a15.43 15.43 0 0 1-5.73-21.06L17.67 118a15.41 15.41 0 0 1 21-5.72h.05L192 200.8V15a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v185.8l153.3-88.5a15.51 15.51 0 0 1 21.1 5.7l15.5 26.8a15.51 15.51 0 0 1-5.7 21.1L285.85 255l154.49 89.2a15.29 15.29 0 0 1 5.66 20.85z\"]]\n};\nvar faSnowman = {\n prefix: 'fad',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", [\"M363.76 268.8a108.77 108.77 0 0 0 4.2-28.7v-.1a112.68 112.68 0 0 0-.73-12.8c-.11-1-.24-2-.38-3-.29-2-.62-4-1-6-.2-1-.4-1.95-.62-2.92-.22-1-.45-1.93-.7-2.9-.24-1-.5-1.91-.77-2.85-.27-.95-.55-1.89-.84-2.83-.3-.94-.6-1.87-.92-2.8-.32-.93-.65-1.86-1-2.77-.34-.92-.69-1.83-1.06-2.74-.36-.9-.74-1.8-1.13-2.7-.39-.89-.79-1.78-1.19-2.66-.41-.88-.83-1.76-1.26-2.63q-1.31-2.62-2.73-5.16c-.48-.85-1-1.68-1.46-2.51a112.44 112.44 0 0 0-21.62-26.19 96 96 0 1 0-149.16 0 112.49 112.49 0 0 0-21.68 26.28q-.74 1.23-1.44 2.49c-.48.84-.94 1.69-1.39 2.54-.45.85-.89 1.7-1.32 2.57-.43.87-.85 1.74-1.25 2.62-.41.88-.8 1.76-1.19 2.66-.39.89-.76 1.79-1.12 2.69-.36.91-.71 1.82-1.05 2.74-.34.92-.67 1.84-1 2.76a111.63 111.63 0 0 0-5.22 23.28A113 113 0 0 0 144 240h.06v.1a110.27 110.27 0 0 0 4.2 28.9A151.18 151.18 0 0 0 104 376.1c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2a65.1 65.1 0 0 0 37.2-11.7c46.5-32.3 74.4-89.4 62.9-152.6-5.54-30.2-20.54-57.6-41.64-79zM224 96.1a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm32 272a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm1.7-64.1a15.19 15.19 0 0 1-3.48 0 16 16 0 1 1 3.48 0zm-1.7-87.9s-16-23.2-16-32a16 16 0 1 1 32 0c0 8.8-16 32-16 32zm32-56a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M510.86 152.4L505 137.9a16.15 16.15 0 0 0-20.8-8.7L456 140.7v-29a15.84 15.84 0 0 0-16-15.6h-16a15.84 15.84 0 0 0-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.1 22.54a111.21 111.21 0 0 1 15.07 44.56L502 172.7a15.57 15.57 0 0 0 8.86-20.3zm-407.1 6.2v-46.9c.2-8.6-7-15.6-15.8-15.6H72a15.84 15.84 0 0 0-16 15.6v29l-28.1-11.5a16.15 16.15 0 0 0-20.8 8.7l-5.9 14.5a15.48 15.48 0 0 0 8.9 20.3l134.67 54.49a111.3 111.3 0 0 1 15-44.46l-56.31-22.63a8 8 0 0 0 .3-1.5zM256 336.1a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faSnowmobile = {\n prefix: 'fad',\n iconName: 'snowmobile',\n icon: [640, 512, [], \"f7d1\", [\"M240 0a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm259.38 403.11l-7.27 4.89a48 48 0 0 1-26.61 8h-16.25L486 464h-54a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h114.7a88.18 88.18 0 0 0 52.8-17.6l34.1-25.6a16 16 0 0 0 3.2-22.4l-9.6-12.8a15.89 15.89 0 0 0-12.78-6.41 16.05 16.05 0 0 0-9.62 3.21L570.7 456a39.8 39.8 0 0 1-24 8h-.7zM288 448H32a32 32 0 0 0 0 64h256a32 32 0 0 0 0-64z\", \"M465.5 416a48 48 0 0 0 26.61-8l76.79-51.2a15.94 15.94 0 0 0 7.1-13.3V266a15.94 15.94 0 0 0-8.8-14.3L407.9 172l-41.5-83.1a16 16 0 0 0-28.7 14.3l35.6 71.2L360 192h-58.7L246 136.8a64 64 0 0 0-102.5 16.6l-29.8 59.7a63.27 63.27 0 0 0 13.4 75H96a31.87 31.87 0 0 0-28.6 17.7l-32 64C24.7 391 40.2 416 64 416zM288 288h-24.4l-67-33.5 25.6-51.1 33.9 33.9a63.66 63.66 0 0 0 45.2 18.8H312z\"]]\n};\nvar faSnowplow = {\n prefix: 'fad',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", [\"M368 352a48 48 0 0 1 0 96H112a48 48 0 0 1 0-96h256m0-64H112a112 112 0 0 0 0 224h256a112 112 0 0 0 0-224z\", \"M120 376a23.94 23.94 0 1 0 .12 0zm80 0a23.94 23.94 0 1 0 .12 0zm160 0a23.94 23.94 0 1 0 .12 0zm-80 0a23.94 23.94 0 1 0 .12 0zm318.6 49.4a77.16 77.16 0 0 1-22.6-54.6V269.2a77.16 77.16 0 0 1 22.6-54.6l36.7-36.7a16.06 16.06 0 0 0 0-22.6l-22.6-22.6a16.06 16.06 0 0 0-22.6 0l-36.7 36.7a141.23 141.23 0 0 0-41.4 99.9V288h-64v-50.9a64.23 64.23 0 0 0-5.2-25.2L364.5 29.1A48 48 0 0 0 320.3 0H176a48 48 0 0 0-48 48v112h-16a48 48 0 0 0-48 48v90.78A111.63 111.63 0 0 1 112 288h256a112 112 0 0 1 101.22 64H512v18.7a141.23 141.23 0 0 0 41.4 99.9l36.7 36.7a16.06 16.06 0 0 0 22.6 0l22.6-22.6a16.06 16.06 0 0 0 0-22.6zM256 224l-64-64V64h117.8l68.6 160z\"]]\n};\nvar faSoap = {\n prefix: 'fad',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", [\"M320,128a64,64,0,1,0,64,64A64,64,0,0,0,320,128ZM208,0a48,48,0,1,0,48,48A48,48,0,0,0,208,0ZM384,0a32,32,0,1,0,32,32A32,32,0,0,0,384,0Z\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192ZM96,352a64,64,0,0,0,64,64H352a64,64,0,0,0,0-128H160A64,64,0,0,0,96,352Z\"]]\n};\nvar faSocks = {\n prefix: 'fad',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", [\"M160 0a32 32 0 0 0-32 32v32h160V32a63.12 63.12 0 0 1 8-30.38C293.39.92 290.84 0 288 0zm-32 272l-86.65 64.6C2 366.15-12.52 421 12.13 463.65A96.77 96.77 0 0 0 96.07 512a95.62 95.62 0 0 0 57.52-19.2l21.86-16.39C145.6 421 161.91 350.55 214.65 311L288 256v-96H128zm0-144h160V96H128zm192-64v32h192V64zm0 96h192v-32H320z\", \"M288 64H128v32h160zm0 64H128v32h160zm32 144l-86.13 64.6C194.46 366.15 180 421 204.65 463.65a96 96 0 0 0 131 35.67 98 98 0 0 0 9.95-6.54l115.2-86.4A128 128 0 0 0 512 304V160H320zm0-144h192V96H320zM480 0H352a32 32 0 0 0-32 32v32h192V32a32 32 0 0 0-32-32z\"]]\n};\nvar faSolarPanel = {\n prefix: 'fad',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", [\"M585.2 26.74A32.42 32.42 0 0 0 553.06 0H86.93a32.42 32.42 0 0 0-32.14 26.74C-3.32 369.16 0 348.08 0 352c0 17.32 14.29 32 32.6 32h574.77c18.23 0 32.51-14.56 32.59-31.79.04-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06zm-75.17 256H71.09l19-112h106zM201 160H98.24l16.29-96h96.19zm32.82 160l11.4-112h149.6l11.4 112zM429.27 64h96.19l16.29 96H439zm26.06 256l-11.4-112h106l19 112z\", \"M432 448l-48 .05V416H256v32.21l-48 .05a16 16 0 0 0-16 16V496a16 16 0 0 0 16 16l224-.26a16 16 0 0 0 16-16V464a16 16 0 0 0-16-16zM380.16 64H259.83l-9.77 96h139.87zm161.59 96l-16.29-96h-96.19l9.73 96zm-146.93 48H245.17l-11.4 112h172.45zM90.1 208l-19 112h113.56l11.41-112zM210.72 64h-96.19l-16.29 96H201zM549.9 208h-106l11.4 112h113.61z\"]]\n};\nvar faSolarSystem = {\n prefix: 'fad',\n iconName: 'solar-system',\n icon: [512, 512, [], \"e02f\", [\"M391.78027,188.11719c-10.58325,10.584-24.79565,14.51953-38.61352,13.15039,23.99463,42.67187,18.31445,97.65625-17.96289,133.92773a112.44054,112.44054,0,1,1-24.47144-176.39062C309.37683,145,313.3186,130.80664,323.89014,120.23438c2.1018-2.10352,4.7583-3.09961,7.12573-4.73047C307.55249,102.98633,281.92078,96,256,96A160,160,0,1,0,369.14893,369.13672c51.0249-51.01758,59.65869-127.627,27.3623-188.14258C394.88208,183.35742,393.882,186.01367,391.78027,188.11719ZM437.03894,74.98047A255.16746,255.16746,0,0,0,147.582,24.34961c2.18775,1.80273,4.53565,3.32812,6.58276,5.375A86.82531,86.82531,0,0,1,175.0929,64.32227,208.24935,208.24935,0,0,1,403.094,108.92188c69.57764,69.56835,79.28186,176.47851,29.48755,256.68945a54.0343,54.0343,0,0,1,37.80078,30.34375C535.35034,296.67188,524.26709,162.19922,437.03894,74.98047ZM336.9071,447.67773A208.24935,208.24935,0,0,1,108.906,403.07812c-69.57764-69.57031-79.28186-176.48046-29.48755-256.6914h.0039a54.03613,54.03613,0,0,1-37.80468-30.3418c-64.968,99.2832-53.88477,233.75586,33.34338,320.97461a255.1736,255.1736,0,0,0,289.46082,50.63086c-2.19166-1.80273-4.53565-3.32812-6.58667-5.377A86.863,86.863,0,0,1,336.9071,447.67773Z\", \"M256,192a64,64,0,1,0,64.00684,64A64.00408,64.00408,0,0,0,256,192ZM52.32971,52.35352a56.00252,56.00252,0,1,0,79.20374,0A55.999,55.999,0,0,0,52.32971,52.35352Zm339.45056,67.88086a48.003,48.003,0,1,0,0,67.88281A48.00959,48.00959,0,0,0,391.78027,120.23438Zm67.89,260.21484a56.00321,56.00321,0,1,0,0,79.19726A56.01156,56.01156,0,0,0,459.67029,380.44922Z\"]]\n};\nvar faSort = {\n prefix: 'fad',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", [\"M279.05 288.05h-238c-21.4 0-32.07 25.95-17 41l119.1 119 .1.1a23.9 23.9 0 0 0 33.8-.1l119-119c15.1-15.05 4.4-41-17-41zm-238-64h238c21.4 0 32.1-25.9 17-41l-119-119a.94.94 0 0 0-.1-.1 23.9 23.9 0 0 0-33.8.1l-119.1 119c-15.05 15.1-4.4 41 17 41z\", \"\"]]\n};\nvar faSortAlphaDown = {\n prefix: 'fad',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", [\"M416 288H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fad',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", [\"M288 224h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortAlphaUp = {\n prefix: 'fad',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", [\"M416 288H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fad',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", [\"M288 224h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]]\n};\nvar faSortAlt = {\n prefix: 'fad',\n iconName: 'sort-alt',\n icon: [384, 512, [], \"f883\", [\"M379.29 132.69l-80-96a16 16 0 0 0-22.62 0l-80 96C186.65 142.74 193.78 160 208 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.19 0 21.36-17.24 11.29-27.31z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortAmountDown = {\n prefix: 'fad',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", [\"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm128-256H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fad',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", [\"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortAmountUp = {\n prefix: 'fad',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", [\"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm128-256H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160z\"]]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fad',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", [\"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]]\n};\nvar faSortCircle = {\n prefix: 'fad',\n iconName: 'sort-circle',\n icon: [512, 512, [], \"e030\", [\"M350.88,26.94C224.38-25.46,79.34,34.61,26.94,161.12s7.67,271.54,134.18,323.94,271.54-7.67,323.94-134.18S477.39,79.34,350.88,26.94Zm9.26,292L269,410.09a18.31,18.31,0,0,1-26,0l-91.25-91.18c-11.56-11.56-3.38-31.41,13-31.41H347.11C363.52,287.5,371.7,307.35,360.14,318.91Zm-13-95.41H164.75c-16.4,0-24.58-19.85-13-31.42L243,100.91a18.31,18.31,0,0,1,26,0l91.18,91.17C371.7,203.65,363.52,223.5,347.11,223.5Z\", \"M164.75,224H347.11c16.41,0,24.59-19.85,13-31.42L269,101.41a18.31,18.31,0,0,0-26,0l-91.25,91.17C140.16,204.15,148.35,224,164.75,224Zm182.36,64H164.75c-16.4,0-24.59,19.85-13,31.41L243,410.59a18.31,18.31,0,0,0,26,0l91.18-91.18C371.7,307.85,363.52,288,347.11,288Z\"]]\n};\nvar faSortCircleDown = {\n prefix: 'fad',\n iconName: 'sort-circle-down',\n icon: [512, 512, [], \"e031\", [\"M350.88,26.94C224.37-25.46,79.34,34.61,26.94,161.12s7.67,271.54,134.18,323.94,271.54-7.67,323.94-134.18S477.39,79.34,350.88,26.94Zm9.39,292.47L269,410.59a18.31,18.31,0,0,1-26,0l-91.18-91.18c-11.56-11.56-3.38-31.41,13-31.41H347.25C363.65,288,371.83,307.85,360.27,319.41Zm-13-95.41H164.89c-16.41,0-24.59-19.85-13-31.41L243,101.41a18.31,18.31,0,0,1,26,0l91.25,91.18C371.83,204.15,363.65,224,347.25,224Z\", \"M360.27,319.41,269,410.59a18.31,18.31,0,0,1-26,0l-91.18-91.18c-11.56-11.56-3.38-31.41,13-31.41H347.24C363.65,288,371.83,307.85,360.27,319.41Z\"]]\n};\nvar faSortCircleUp = {\n prefix: 'fad',\n iconName: 'sort-circle-up',\n icon: [512, 512, [], \"e032\", [\"M350.88,26.94C224.38-25.46,79.34,34.61,26.94,161.12s7.67,271.54,134.18,323.94,271.54-7.67,323.94-134.18S477.39,79.34,350.88,26.94ZM151.73,192.59,243,101.41a18.31,18.31,0,0,1,26,0l91.18,91.18c11.56,11.56,3.38,31.41-13,31.41H164.75C148.35,224,140.17,204.15,151.73,192.59ZM360.14,319.41,269,410.59a18.31,18.31,0,0,1-26,0l-91.25-91.18c-11.56-11.56-3.38-31.41,13-31.41H347.11C363.52,288,371.7,307.85,360.14,319.41Z\", \"M151.73,192.59,243,101.41a18.31,18.31,0,0,1,26,0l91.18,91.18c11.56,11.56,3.38,31.41-13,31.41H164.76C148.35,224,140.17,204.15,151.73,192.59Z\"]]\n};\nvar faSortDown = {\n prefix: 'fad',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", [\"M279.07 224.05h-238c-21.4 0-32.1-25.9-17-41l119-119a23.9 23.9 0 0 1 33.8-.1l.1.1 119.1 119c15.07 15.05 4.4 41-17 41z\", \"M296.07 329.05L177 448.05a23.9 23.9 0 0 1-33.8.1l-.1-.1-119-119c-15.1-15.1-4.4-41 17-41h238c21.37 0 32.04 25.95 16.97 41z\"]]\n};\nvar faSortNumericDown = {\n prefix: 'fad',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", [\"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fad',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", [\"M400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortNumericUp = {\n prefix: 'fad',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", [\"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96z\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fad',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", [\"M400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]]\n};\nvar faSortShapesDown = {\n prefix: 'fad',\n iconName: 'sort-shapes-down',\n icon: [448, 512, [], \"f888\", [\"M444.1 182.86L361 45.71c-11.09-18.28-38.81-18.28-49.9 0l-83.2 137.15c-11.08 18.28 2.77 41.14 24.95 41.14h166.3c22.18 0 36.03-22.86 24.95-41.14zM408 288H264a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h144a24 24 0 0 0 24-24V312a24 24 0 0 0-24-24z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortShapesDownAlt = {\n prefix: 'fad',\n iconName: 'sort-shapes-down-alt',\n icon: [448, 512, [], \"f889\", [\"M444.1 438.86L361 301.71c-11.09-18.28-38.81-18.28-49.9 0l-83.2 137.15c-11.08 18.28 2.77 41.14 24.95 41.14h166.3c22.18 0 36.03-22.86 24.95-41.14zM264 224h144a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24H264a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortShapesUp = {\n prefix: 'fad',\n iconName: 'sort-shapes-up',\n icon: [448, 512, [], \"f88a\", [\"M444.1 182.86L361 45.71c-11.09-18.28-38.81-18.28-49.9 0l-83.2 137.15c-11.08 18.28 2.77 41.14 24.95 41.14h166.3c22.18 0 36.03-22.86 24.95-41.14zM408 288H264a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h144a24 24 0 0 0 24-24V312a24 24 0 0 0-24-24z\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31z\"]]\n};\nvar faSortShapesUpAlt = {\n prefix: 'fad',\n iconName: 'sort-shapes-up-alt',\n icon: [448, 512, [], \"f88b\", [\"M444.1 438.86L361 301.71c-11.09-18.28-38.81-18.28-49.9 0l-83.2 137.15c-11.08 18.28 2.77 41.14 24.95 41.14h166.3c22.18 0 36.03-22.86 24.95-41.14zM264 224h144a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24H264a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24z\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31z\"]]\n};\nvar faSortSizeDown = {\n prefix: 'fad',\n iconName: 'sort-size-down',\n icon: [512, 512, [], \"f88c\", [\"M428 320H276a20 20 0 0 0-20 20v120a20 20 0 0 0 20 20h152a20 20 0 0 0 20-20V340a20 20 0 0 0-20-20zm56-288H284a28 28 0 0 0-28 28v168a28 28 0 0 0 28 28h200a28 28 0 0 0 28-28V60a28 28 0 0 0-28-28z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortSizeDownAlt = {\n prefix: 'fad',\n iconName: 'sort-size-down-alt',\n icon: [512, 512, [], \"f88d\", [\"M275.9 192h152.2a20 20 0 0 0 19.9-20V52a20 20 0 0 0-19.9-20H275.9A20 20 0 0 0 256 52v120a20 20 0 0 0 19.9 20zM484 256H284a28 28 0 0 0-28 28v168a28 28 0 0 0 28 28h200a28 28 0 0 0 28-28V284a28 28 0 0 0-28-28z\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]]\n};\nvar faSortSizeUp = {\n prefix: 'fad',\n iconName: 'sort-size-up',\n icon: [512, 512, [], \"f88e\", [\"M484 32H284a28 28 0 0 0-28 28v168a28 28 0 0 0 28 28h200a28 28 0 0 0 28-28V60a28 28 0 0 0-28-28zm-56 288H276a20 20 0 0 0-20 20v120a20 20 0 0 0 20 20h152a20 20 0 0 0 20-20V340a20 20 0 0 0-20-20z\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]]\n};\nvar faSortSizeUpAlt = {\n prefix: 'fad',\n iconName: 'sort-size-up-alt',\n icon: [512, 512, [], \"f88f\", [\"M276 192h152a20 20 0 0 0 20-20V52a20 20 0 0 0-20-20H276a20 20 0 0 0-20 20v120a20 20 0 0 0 20 20zm208 64H284a28 28 0 0 0-28 28v168a28 28 0 0 0 28 28h200a28 28 0 0 0 28-28V284a28 28 0 0 0-28-28z\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]]\n};\nvar faSortUp = {\n prefix: 'fad',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", [\"M41.05 288.05h238c21.4 0 32.1 25.9 17 41l-119 119a23.9 23.9 0 0 1-33.8.1l-.1-.1-119.1-119c-15.05-15.05-4.4-41 17-41z\", \"M24.05 183.05l119.1-119A23.9 23.9 0 0 1 177 64a.94.94 0 0 1 .1.1l119 119c15.1 15.1 4.4 41-17 41h-238c-21.45-.05-32.1-25.95-17.05-41.05z\"]]\n};\nvar faSoup = {\n prefix: 'fad',\n iconName: 'soup',\n icon: [512, 512, [], \"f823\", [\"M203.31 67.3a94.84 94.84 0 0 1-26.4-53.5A16.12 16.12 0 0 0 160.81 0h-16.4A16.32 16.32 0 0 0 128 16.23a17.48 17.48 0 0 0 .09 1.77 145.37 145.37 0 0 0 40.6 84.4 81.21 81.21 0 0 1 22.4 44.1 16.23 16.23 0 0 0 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18a130.71 130.71 0 0 0-36.58-74.7zm148.6 74.7a130.71 130.71 0 0 0-36.6-74.7 94.84 94.84 0 0 1-26.4-53.5A16.12 16.12 0 0 0 272.76 0h-16.4c-9.8 0-17.5 8.5-16.3 18a145.37 145.37 0 0 0 40.6 84.4 81.21 81.21 0 0 1 22.4 44.1h.05a16.23 16.23 0 0 0 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18z\", \"M32 192h448a32 32 0 0 1 32 32c0 94.7-51.56 177.16-128 221.45V480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32v-34.55C51.56 401.16 0 318.7 0 224a32 32 0 0 1 32-32z\"]]\n};\nvar faSpa = {\n prefix: 'fad',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", [\"M392.33 206.91a298.84 298.84 0 0 0-60.26 45.17A275.45 275.45 0 0 0 288 302.6a282.66 282.66 0 0 0-45-51.45 294 294 0 0 0-59.22-44.39c16.47-70.45 51.75-132.94 96.74-172.07a12 12 0 0 1 15.14 0c44.95 39.16 80.23 101.72 96.67 172.22z\", \"M576 199.82c-.23 27.92-7.13 126.14-88.77 199.3C403.19 481 320 480 288 480s-115.21 1-199.23-80.88C7.14 326 .23 227.74 0 199.82A7.6 7.6 0 0 1 7.75 192c29 .13 135 6.16 213.84 83 33.12 29.64 53.41 63.3 66.41 94.86 13.05-31.56 33.29-65.22 66.41-94.85 78.83-76.84 184.8-82.87 213.84-83a7.6 7.6 0 0 1 7.75 7.81z\"]]\n};\nvar faSpaceShuttle = {\n prefix: 'fad',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", [\"M32 416c0 35.35 21.49 64 48 64h16V352H32zm154.54-232h280.13L376 168C243 140.59 222.45 51.22 128 34.65V160h18.34a45.62 45.62 0 0 1 40.2 24zM32 96v64h64V32H80c-26.51 0-48 28.65-48 64zm114.34 256H128v125.35C222.45 460.78 243 371.41 376 344l90.67-16H186.54a45.62 45.62 0 0 1-40.2 24z\", \"M592.6 208.24C559.73 192.84 515.78 184 472 184H186.54a45.62 45.62 0 0 0-40.2-24H32c-23.2 0-32 10-32 24v144c0 14 8.82 24 32 24h114.34a45.62 45.62 0 0 0 40.2-24H472c43.78 0 87.73-8.84 120.6-24.24C622.28 289.84 640 272 640 256s-17.72-33.84-47.4-47.76zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.91 0 31.94 80 0 80z\"]]\n};\nvar faSpaceStationMoon = {\n prefix: 'fad',\n iconName: 'space-station-moon',\n icon: [512, 512, [], \"e033\", [\"M16.71094,320.26367C45.05859,426.01953,141.29688,504,256,504s210.94141-77.98047,239.28906-183.73633C424.71094,340.53906,343.34375,352,256,352S87.28906,340.53906,16.71094,320.26367ZM256,8C119.03125,8,8,119.0332,8,256a250.017,250.017,0,0,0,1.72656,28.26562C81.19531,306.76953,165.47656,320,256,320s174.80469-13.23047,246.27344-35.73438A250.017,250.017,0,0,0,504,256C504,119.0332,392.96875,8,256,8ZM192,240a80,80,0,1,1,80-80A80.00021,80.00021,0,0,1,192,240Z\", \"M256,320c-90.52344,0-174.80469-13.23047-246.27344-35.73438a246.11376,246.11376,0,0,0,6.98438,35.998C87.28906,340.53906,168.65625,352,256,352s168.71094-11.46094,239.28906-31.73633a246.11376,246.11376,0,0,0,6.98438-35.998C430.80469,306.76953,346.52344,320,256,320Zm-64-80a80,80,0,1,0-80-80A80.00021,80.00021,0,0,0,192,240Zm0-104a24,24,0,1,1-24,24A23.99993,23.99993,0,0,1,192,136Z\"]]\n};\nvar faSpaceStationMoonAlt = {\n prefix: 'fad',\n iconName: 'space-station-moon-alt',\n icon: [512, 512, [], \"e034\", [\"M501.70312,224H448V160H368V96h48V66.67383A246.86934,246.86934,0,0,0,256,8C119.03125,8,8,119.0332,8,256a250.017,250.017,0,0,0,1.72656,28.26562C81.19531,306.76953,165.47656,320,256,320s174.80469-13.23047,246.27344-35.73438A250.017,250.017,0,0,0,504,256,248.44936,248.44936,0,0,0,501.70312,224ZM192,240a80,80,0,1,1,80-80A80.00021,80.00021,0,0,1,192,240ZM384,343.13867A940.33806,940.33806,0,0,1,256,352c-87.34375,0-168.71094-11.46094-239.28906-31.73633C45.05859,426.01953,141.29688,504,256,504a247.45808,247.45808,0,0,0,192-91.0918V384H384Z\", \"M256,320c-90.52344,0-174.80469-13.23047-246.27344-35.73438a246.11376,246.11376,0,0,0,6.98438,35.998C87.28906,340.53906,168.65625,352,256,352s168.71094-11.46094,239.28906-31.73633a246.11376,246.11376,0,0,0,6.98438-35.998C430.80469,306.76953,346.52344,320,256,320Zm-64-80a80,80,0,1,0-80-80A80.00021,80.00021,0,0,0,192,240Zm0-104a24,24,0,1,1-24,24A23.99993,23.99993,0,0,1,192,136Z\"]]\n};\nvar faSpade = {\n prefix: 'fad',\n iconName: 'spade',\n icon: [512, 512, [], \"f2f4\", [\"M462.3 387.76c-50.48 39.95-123.38 36-173.87-2.43-.21-3.22-.41-6.44-.43-10V272.14a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v103.15c0 3.57-.2 6.78-.4 10-50.54 38.53-123.41 42.46-173.93 2.49C-13.1 338-16.41 248.58 39.9 194.61L233.4 9a33 33 0 0 1 45.28 0l193.5 185.62c56.21 53.96 52.9 143.38-9.88 193.14z\", \"M367.31 486.6A32 32 0 0 1 336 512H176a32 32 0 0 1-13-61.29c52.19-23.21 60.91-38.91 61-75.61V272a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v103.1c.19 37.5 9.41 52.61 61 75.61a32.08 32.08 0 0 1 18.31 35.89z\"]]\n};\nvar faSparkles = {\n prefix: 'fad',\n iconName: 'sparkles',\n icon: [512, 512, [], \"f890\", [\"M423.16 186.58L448 127l59.58-24.84a8 8 0 0 0 0-14.32L448 63 423.16 3.42a8 8 0 0 0-14.32 0L384 63l-59.58 24.84a8 8 0 0 0 0 14.32L384 127l24.84 59.58a8 8 0 0 0 14.32 0zm-14.32 136.84L384 383l-59.58 24.84a8 8 0 0 0 0 14.32L384 447l24.84 59.58a8 8 0 0 0 14.32 0L448 447l59.58-24.84a8 8 0 0 0 0-14.32L448 383l-24.84-59.58a8 8 0 0 0-14.32 0z\", \"M384 254.64a16.06 16.06 0 0 0-8.84-14.33l-112.57-56.39-56.28-112.77c-5.44-10.87-23.19-10.87-28.62 0l-56.28 112.77L8.84 240.31a16 16 0 0 0 0 28.67l112.57 56.39 56.28 112.77a16 16 0 0 0 28.62 0l56.28-112.77L375.16 269a16.07 16.07 0 0 0 8.84-14.36z\"]]\n};\nvar faSpeaker = {\n prefix: 'fad',\n iconName: 'speaker',\n icon: [384, 512, [], \"f8df\", [\"M336 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM192 64a48 48 0 1 1-48 48 48 48 0 0 1 48-48zm0 384a112 112 0 1 1 112-112 112 112 0 0 1-112 112z\", \"M192 224a112 112 0 1 0 112 112 112 112 0 0 0-112-112zm0 176a64 64 0 1 1 64-64 64 64 0 0 1-64 64zm0-240a48 48 0 1 0-48-48 48 48 0 0 0 48 48z\"]]\n};\nvar faSpeakers = {\n prefix: 'fad',\n iconName: 'speakers',\n icon: [640, 512, [], \"f8e0\", [\"M176 224a111.51 111.51 0 0 1 80 33.78V48a79.24 79.24 0 0 1 16.41-48H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h224.41A79.24 79.24 0 0 1 256 464v-49.78A112 112 0 1 1 176 224zm0-160a48 48 0 1 1-48 48 48 48 0 0 1 48-48zM592 0H336a48 48 0 0 0-48 48v416a48 48 0 0 0 48 48h256a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM464 64a48 48 0 1 1-48 48 48 48 0 0 1 48-48zm0 384a112 112 0 1 1 112-112 112 112 0 0 1-112 112z\", \"M64 336a111.89 111.89 0 0 0 192 78.22V257.78A111.89 111.89 0 0 0 64 336zm176 0a64 64 0 1 1-64-64 64 64 0 0 1 64 64zm224-112a112 112 0 1 0 112 112 112 112 0 0 0-112-112zm0 176a64 64 0 1 1 64-64 64 64 0 0 1-64 64zm0-240a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-288 0a48 48 0 1 0-48-48 48 48 0 0 0 48 48z\"]]\n};\nvar faSpellCheck = {\n prefix: 'fad',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", [\"M571.35 276.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0 0-22.59z\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7z\"]]\n};\nvar faSpider = {\n prefix: 'fad',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", [\"M453.71 88.63L427.82 11A16 16 0 0 0 407.58.83l-15.17 5.06a16 16 0 0 0-10.12 20.24l23.8 71.39-20.29 40.58a99.35 99.35 0 0 1 3.2 11.79l5.23 26.11h4.67l25.93-8.65L452 113.06a32 32 0 0 0 1.71-24.43zM183.59 5.89L168.42.83A16 16 0 0 0 148.18 11l-25.89 77.63a32 32 0 0 0 1.71 24.43l27.15 54.3L177.1 176h4.67l5.23-26.11a99.35 99.35 0 0 1 3.21-11.79l-20.3-40.58 23.8-71.39a16 16 0 0 0-10.12-20.24z\", \"M573.31 349.39a16 16 0 0 1-4.44 22.18l-13.31 8.88a16 16 0 0 1-22.19-4.45l-48-72h-47.06l60.83 97.33a32.05 32.05 0 0 1 4.86 17V496a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-73.1l-74.08-118.53c1 14.05 2.08 28.11 2.08 42.21C384 399.65 343.24 448 288 448s-96-48.36-96-101.43c0-14.1 1.07-28.16 2.08-42.21L120 422.9V496a16 16 0 0 1-16 16H88a16 16 0 0 1-16-16v-77.7a32 32 0 0 1 4.86-17l60.83-97.3H90.63l-48 72a16 16 0 0 1-22.19 4.44l-13.31-8.86a16 16 0 0 1-4.44-22.19l52.74-79.13A32 32 0 0 1 82.06 256H160l-69-24.34a32 32 0 0 1-16.5-12.61l-53.6-80.41a16 16 0 0 1 4.44-22.19l13.31-8.88A16 16 0 0 1 60.84 112l50.57 75.83L171.9 208H208l10.37-51.85C220.56 145.19 235.74 96 288 96s67.44 49.18 69.63 60.15L368 208h36.1l60.5-20.17L515.16 112a16 16 0 0 1 22.19-4.44l13.31 8.88a16 16 0 0 1 4.44 22.19l-53.6 80.41a32 32 0 0 1-16.5 12.62L416 256h77.94a32 32 0 0 1 26.62 14.25z\"]]\n};\nvar faSpiderBlackWidow = {\n prefix: 'fad',\n iconName: 'spider-black-widow',\n icon: [576, 512, [], \"f718\", [\"M320 272h-64a8 8 0 0 0-6.4 12.8L276 320l-26.4 35.2A8 8 0 0 0 256 368h64a8 8 0 0 0 6.4-12.8L300 320l26.4-35.2A8 8 0 0 0 320 272zM183.59 5.89L168.42.83A16 16 0 0 0 148.18 11l-25.89 77.63a32 32 0 0 0 1.71 24.43l27.15 54.3L177.1 176h4.67l5.23-26.11a99.35 99.35 0 0 1 3.21-11.79l-20.3-40.58 23.8-71.39a16 16 0 0 0-10.12-20.24zm270.12 82.75L427.82 11A16 16 0 0 0 407.58.84L392.41 5.9a16 16 0 0 0-10.12 20.24l23.8 71.38-20.29 40.58a97.47 97.47 0 0 1 3.2 11.79l5.23 26.11h4.67l25.93-8.64L452 113.07a32 32 0 0 0 1.71-24.43z\", \"M573.31 349.38l-52.75-79.12A32 32 0 0 0 493.94 256H416l69-24.35a32 32 0 0 0 16.51-12.61l53.6-80.41a16 16 0 0 0-4.44-22.19l-13.31-8.88a16 16 0 0 0-22.2 4.44l-50.57 75.83L404.1 208H368l-10.37-51.85C355.44 145.19 340.26 96 288 96s-67.44 49.18-69.63 60.15L208 208h-36.1l-60.5-20.18L60.84 112a16 16 0 0 0-22.19-4.44l-13.31 8.88a16 16 0 0 0-4.44 22.19L74.5 219A32 32 0 0 0 91 231.65L160 256H82.07a32 32 0 0 0-26.63 14.25L2.69 349.38a16 16 0 0 0 4.44 22.19l13.31 8.88A16 16 0 0 0 42.63 376l48-72h47.06l-60.83 97.34a32.05 32.05 0 0 0-4.86 17V496a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-73.1l74.08-118.53c-1 14.05-2.08 28.11-2.08 42.21C192 399.65 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.07-28.16-2.08-42.21L456 422.9V496a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-77.7a32.05 32.05 0 0 0-4.86-17L438.31 304h47.06l48 72a16 16 0 0 0 22.19 4.44l13.31-8.88a16 16 0 0 0 4.44-22.18zm-246.91 5.83A8 8 0 0 1 320 368h-64a8 8 0 0 1-6.4-12.8L276 320l-26.4-35.2A8 8 0 0 1 256 272h64a8 8 0 0 1 6.4 12.8L300 320z\"]]\n};\nvar faSpiderWeb = {\n prefix: 'fad',\n iconName: 'spider-web',\n icon: [576, 512, [], \"f719\", [\"M544 280.13H329.36l107.48 188.18-41.68 23.82L288 304.51 180.84 492.13l-41.68-23.82 107.48-188.18H32v-48h214.64L139.16 43.93l41.68-23.83L288 207.72 395.16 20.1l41.68 23.83-107.48 188.18H544z\", \"M566.63 233.48l-2.79-2.79A444.29 444.29 0 0 1 447.07 24.37v-.12A32 32 0 0 0 408.24 1a497.38 497.38 0 0 1-240.48 0A32 32 0 0 0 129 24.25v.12A444.29 444.29 0 0 1 12.16 230.69l-2.79 2.79a32 32 0 0 0 0 45.28l2.87 2.87A444.25 444.25 0 0 1 129 487.76 32 32 0 0 0 167.76 511a497.14 497.14 0 0 1 240.48 0A32 32 0 0 0 447 487.76a444.25 444.25 0 0 1 116.76-206.13l2.87-2.87a32 32 0 0 0 0-45.28zM393.45 442.23a562.64 562.64 0 0 0-210.9 0A508.29 508.29 0 0 0 76.22 256.11 508.49 508.49 0 0 0 182.58 69.76a562 562 0 0 0 210.84 0 508.49 508.49 0 0 0 106.36 186.35 508.29 508.29 0 0 0-106.33 186.12zm-23.31-328.86a24 24 0 0 0-18.21-2.72 264.41 264.41 0 0 1-127.86 0A24.05 24.05 0 0 0 195 128.18a235.55 235.55 0 0 1-62 109.39l-1.52 1.52a24 24 0 0 0 0 34l1.56 1.57A235.49 235.49 0 0 1 195 383.89a24 24 0 0 0 29.1 17.46 264.41 264.41 0 0 1 127.86 0A24 24 0 0 0 381 383.89a235.49 235.49 0 0 1 61.88-109.28l1.56-1.57a24 24 0 0 0 0-34l-1.44-1.48a235.47 235.47 0 0 1-61.94-109.36 24.06 24.06 0 0 0-10.92-14.83zM341 350a313.11 313.11 0 0 0-106 0 283.59 283.59 0 0 0-53.66-93.94A283.53 283.53 0 0 0 235 162a313.27 313.27 0 0 0 106 0 283.51 283.51 0 0 0 53.68 94.07A283.59 283.59 0 0 0 341 350z\"]]\n};\nvar faSpinner = {\n prefix: 'fad',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", [\"M108.92 355.08a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM256 416a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm208-208a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm-60.92 147.08a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0-198.16a48 48 0 1 0-48-48 48 48 0 0 0 48 48z\", \"M108.92 60.92a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM48 208a48 48 0 1 0 48 48 48 48 0 0 0-48-48zM256 0a48 48 0 1 0 48 48 48 48 0 0 0-48-48z\"]]\n};\nvar faSpinnerThird = {\n prefix: 'fad',\n iconName: 'spinner-third',\n icon: [512, 512, [], \"f3f4\", [\"M478.71 364.58zm-22 6.11l-27.83-15.9a15.92 15.92 0 0 1-6.94-19.2A184 184 0 1 1 256 72c5.89 0 11.71.29 17.46.83-.74-.07-1.48-.15-2.23-.21-8.49-.69-15.23-7.31-15.23-15.83v-32a16 16 0 0 1 15.34-16C266.24 8.46 261.18 8 256 8 119 8 8 119 8 256s111 248 248 248c98 0 182.42-56.95 222.71-139.42-4.13 7.86-14.23 10.55-22 6.11z\", \"M271.23 72.62c-8.49-.69-15.23-7.31-15.23-15.83V24.73c0-9.11 7.67-16.78 16.77-16.17C401.92 17.18 504 124.67 504 256a246 246 0 0 1-25 108.24c-4 8.17-14.37 11-22.26 6.45l-27.84-15.9c-7.41-4.23-9.83-13.35-6.2-21.07A182.53 182.53 0 0 0 440 256c0-96.49-74.27-175.63-168.77-183.38z\"]]\n};\nvar faSplotch = {\n prefix: 'fad',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", [\"M281.69 124.65c10.48 39.59 18.87 97 105.07 126.52-79.24 40.58-77.61 106.16-79.87 135.83-63.13-47.46-83-67.17-186.41-44.6 16.8-33.68 34-85.06-10.86-146.08 103.53 8.09 124.36-22.42 172.07-71.71\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3l-16-60.45C344 47.4 316.89 32 289.26 32c-17.5 0-35.21 6.18-48.17 19.57L195 99.24c-12 12.44-29.84 19.53-48.46 19.53-1.91 0-3.82-.07-5.74-.22l-71.88-5.62c-2.05-.16-4.06-.24-6.05-.24-48.59 0-79.75 46.61-52.95 83.07l38.54 52.4c11.03 15.07 12.77 33.84 4.59 50.24l-28.43 57C6.21 392.24 38.89 431 82.13 431a74.78 74.78 0 0 0 15.94-1.74l70-15.28a72.7 72.7 0 0 1 15.51-1.67 69.56 69.56 0 0 1 41.56 13.4l54.32 40.83a68.21 68.21 0 0 0 41.2 13.46c31.15 0 60.91-20 63.25-50.71l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.88-22.97 39.59-80.18-8.95-96.8zM306.89 387c-63.13-47.46-83-67.17-186.41-44.6 16.8-33.68 34-85.06-10.86-146.08 103.53 8.09 124.36-22.42 172.07-71.71 10.48 39.59 18.87 97 105.07 126.52-79.24 40.62-77.61 106.2-79.87 135.87z\"]]\n};\nvar faSprayCan = {\n prefix: 'fad',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", [\"M288 32a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm96 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm96 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM384 32a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm96 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0-32a32 32 0 1 0-32-32 32 32 0 0 0 32 32zM160 256a80 80 0 1 0 80 80 80 80 0 0 0-80-80z\", \"M224 160H96a96 96 0 0 0-96 96v224a32 32 0 0 0 32 32h256a32 32 0 0 0 32-32V256a96 96 0 0 0-96-96zm-64 256a80 80 0 1 1 80-80 80 80 0 0 1-80 80zm64-384a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32v96h128z\"]]\n};\nvar faSprinkler = {\n prefix: 'fad',\n iconName: 'sprinkler',\n icon: [512, 512, [], \"e035\", [\"M152,104a24,24,0,1,0,24,24A24,24,0,0,0,152,104ZM88,48a24,24,0,1,0,24,24A24,24,0,0,0,88,48Zm0,96a24,24,0,1,0,24,24A24,24,0,0,0,88,144ZM24,104a24,24,0,1,0,24,24A24,24,0,0,0,24,104ZM24,0A24,24,0,1,0,48,24,24,24,0,0,0,24,0Zm0,208a24,24,0,1,0,24,24A24,24,0,0,0,24,208ZM360,104a24,24,0,1,0,24,24A24,24,0,0,0,360,104Zm64,56a24,24,0,1,0,24,24A24,24,0,0,0,424,160Zm0-96a24,24,0,1,0,24,24A24,24,0,0,0,424,64Zm64,40a24,24,0,1,0,24,24A24,24,0,0,0,488,104Zm0,104a24,24,0,1,0,24,24A24,24,0,0,0,488,208Zm0-160a24,24,0,1,0-24-24A24,24,0,0,0,488,48Z\", \"M412.41,284.44l-67.52,78.23L320,387.56V512H192V387.56l-24.89-24.89L99.59,284.44A17.77,17.77,0,0,1,113.81,256H224V80a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256H398.19A17.77,17.77,0,0,1,412.41,284.44Z\"]]\n};\nvar faSquare = {\n prefix: 'fad',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 368a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V112a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16z\", \"M64 400V112a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16v288a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16z\"]]\n};\nvar faSquareFull = {\n prefix: 'fad',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", [\"M-1 0v512h512V0zm432 417.33A14.67 14.67 0 0 1 416.33 432H93.67A14.67 14.67 0 0 1 79 417.33V94.67A14.67 14.67 0 0 1 93.67 80h322.66A14.67 14.67 0 0 1 431 94.67z\", \"M431 417.33A14.67 14.67 0 0 1 416.33 432H93.67A14.67 14.67 0 0 1 79 417.33V94.67A14.67 14.67 0 0 1 93.67 80h322.66A14.67 14.67 0 0 1 431 94.67z\"]]\n};\nvar faSquareRoot = {\n prefix: 'fad',\n iconName: 'square-root',\n icon: [576, 512, [], \"f697\", [\"M576 24v48a24 24 0 0 1-24 24H357l-97.78 374.52C249.38 503 222.21 512 204.94 512c-18.64 0-35.95-8.5-48.44-28.27L67.62 320H24a24 24 0 0 1-24-24v-48a24 24 0 0 1 24-24h81.47a32 32 0 0 1 28 16.57l58.41 106.1 84.82-322.8A32 32 0 0 1 307.65 0H552a24 24 0 0 1 24 24z\", \"\"]]\n};\nvar faSquareRootAlt = {\n prefix: 'fad',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", [\"M576 72a24 24 0 0 1-24 24H357l-97.78 374.52C249.38 503 222.21 512 204.94 512c-18.64 0-35.95-8.5-48.44-28.27L67.62 320H24a24 24 0 0 1-24-24v-48a24 24 0 0 1 24-24h81.47a32 32 0 0 1 28 16.57l58.41 106.1 84.82-322.8A32 32 0 0 1 307.65 0H552a24 24 0 0 1 24 24z\", \"M571.31 366.06a16 16 0 0 1 0 22.63l-22.62 22.62a16 16 0 0 1-22.63 0L480 365.25l-46.06 46.06a16 16 0 0 1-22.63 0l-22.62-22.62a16 16 0 0 1 0-22.63L434.75 320l-46.06-46.06a16 16 0 0 1 0-22.63l22.62-22.62a16 16 0 0 1 22.63 0L480 274.75l46.06-46.06a16 16 0 0 1 22.63 0l22.62 22.62a16 16 0 0 1 0 22.63L525.25 320z\"]]\n};\nvar faSquirrel = {\n prefix: 'fad',\n iconName: 'squirrel',\n icon: [512, 512, [], \"f71a\", [\"M263.48 512C175.39 511.58 97.93 443.62 96 355.46c-.82-37.58 11.81-71.87 32.74-99.54-.27 0-.52.08-.79.08A128 128 0 0 1 128 0c86.2 0 184.54 112.89 137.33 254.86l-34.57 103.85a8 8 0 0 0 5.07 10.12l15.17 5.05a8 8 0 0 0 9.57-3.83l-31.22 93.7c-7.8 23.5 9.43 47.98 34.13 48.25z\", \"M479.84 448h-30.92c18.19-18.4 30.93-42.12 30.93-64 0-26.55-22.08-52.81-47.85-61.09V224h47.85a32.2 32.2 0 0 0 31.43-38.87C500.84 136.42 466.72 96 415.87 96V64c-48 0-74.22 62.73-89.4 108.29l-97.1 291.47c-7.85 23.58 9.54 48.17 34.4 48.24h232.08a16 16 0 0 0 16-16v-16a32 32 0 0 0-32.01-32zm-64-288a16 16 0 1 1 16 16 16 16 0 0 1-15.97-16z\"]]\n};\nvar faStaff = {\n prefix: 'fad',\n iconName: 'staff',\n icon: [512, 512, [], \"f71b\", [\"M369.9 284.81l32.25 18.62a16 16 0 0 0 21.85-5.86l19.54-33.79zM96 304v44.1l60.13-60.1H112a16 16 0 0 0-16 16z\", \"M512 80v103.86a80 80 0 0 1-58 76.92l-168.92 48.27a80.11 80.11 0 0 0-34.62 20.37L74.91 505A24 24 0 0 1 41 505L7 471a24 24 0 0 1 0-33.9L156.13 288l26.48-26.48a176.06 176.06 0 0 1 76.11-44.78L416 171.8V96h-50.32l-11.58 23.15a16 16 0 0 1-21.46 7.16l-57.26-28.63a16 16 0 0 1-7.15-21.46l16-32A80 80 0 0 1 355.78 0H432a80 80 0 0 1 80 80z\"]]\n};\nvar faStamp = {\n prefix: 'fad',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", [\"M480 416H32a32 32 0 0 1-32-32v-32a96 96 0 0 1 96-96h66.56A29.44 29.44 0 0 0 192 226.56v-.07c0-31.79-10-62.06-23.31-90.91A93.86 93.86 0 0 1 160 96 96.06 96.06 0 0 1 273.25 1.5C312 8.25 343.74 40.17 350.51 79a94.83 94.83 0 0 1-9.05 60.42c-12.58 24.26-21.46 50.3-21.46 77.67v9.46A29.44 29.44 0 0 0 349.43 256H416a96 96 0 0 1 96 96v32a32 32 0 0 1-32 32z\", \"M480 416v96H32v-96z\"]]\n};\nvar faStar = {\n prefix: 'fad',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", [\"M528.53 171.5l-146.36-21.3-65.43-132.39c-11.71-23.59-45.68-23.89-57.48 0L193.83 150.2 47.47 171.5c-26.27 3.79-36.79 36.08-17.75 54.58l105.91 103-25 145.49c-4.52 26.3 23.22 46 46.48 33.69L288 439.56l130.93 68.69c23.26 12.21 51-7.39 46.48-33.69l-25-145.49 105.91-103c19-18.49 8.48-50.78-17.79-54.57zm-90.89 71l-66.05 64.23 15.63 90.86a12 12 0 0 1-17.4 12.66L288 367.27l-81.82 42.94a12 12 0 0 1-17.4-12.66l15.63-90.86-66-64.23A12 12 0 0 1 145 222l91.34-13.28 40.9-82.81a12 12 0 0 1 21.52 0l40.9 82.81L431 222a12 12 0 0 1 6.64 20.46z\", \"M437.64 242.46l-66.05 64.23 15.63 90.86a12 12 0 0 1-17.4 12.66L288 367.27l-81.82 42.94a12 12 0 0 1-17.4-12.66l15.63-90.86-66-64.23A12 12 0 0 1 145 222l91.34-13.28 40.9-82.81a12 12 0 0 1 21.52 0l40.9 82.81L431 222a12 12 0 0 1 6.64 20.46z\"]]\n};\nvar faStarAndCrescent = {\n prefix: 'fad',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", [\"M509 230.85l-55.27 53.87 13.05 76.07a9.93 9.93 0 0 1-14.45 10.49L384 335.37l-68.33 35.91a9.86 9.86 0 0 1-4.64 1.17 10 10 0 0 1-9.81-11.66l13-76.07L259 230.85a10 10 0 0 1 5.52-17l76.38-11.1 34.16-69.21a10 10 0 0 1 17.86 0l34.16 69.21 76.38 11.1a10 10 0 0 1 5.54 17z\", \"M0 256C0 114.84 114.84 0 256 0a254.82 254.82 0 0 1 89.75 16.48 15.06 15.06 0 0 1-5.28 29.16c-1.48 0-6.86-.46-9.18-.46C215 45.18 120.47 139.75 120.47 256S215 466.82 331.29 466.82c2.29 0 7.73-.46 9.18-.46a15 15 0 0 1 4.85 29.32A254.9 254.9 0 0 1 256 512C114.84 512 0 397.16 0 256z\"]]\n};\nvar faStarChristmas = {\n prefix: 'fad',\n iconName: 'star-christmas',\n icon: [512, 512, [], \"f7d4\", [\"M359.15 334.15l-19.9 5-5 19.9 68.8 55.1c7.5 6 17.2-3.7 11.2-11.2zm-206.2 0L98 403c-6 7.5 3.7 17.2 11.2 11.2l68.8-55.1-5-19.9zM359.15 178l55.1-68.8c6-7.5-3.7-17.2-11.2-11.2l-68.8 55 5 19.9zM153 178l19.9-5 5-19.9L109.05 98c-7.5-6-17.2 3.7-11.2 11.2z\", \"M505.25 264.65l-192.6 48.1-48.1 192.5c-2.2 9-15 9-17.2 0l-48.1-192.5-192.5-48.1c-9-2.2-9-15 0-17.2l192.6-48.1 48.1-192.6c2.2-9 15-9 17.2 0l48.2 192.6 192.5 48.1c8.9 2.2 8.9 15-.1 17.2z\"]]\n};\nvar faStarExclamation = {\n prefix: 'fad',\n iconName: 'star-exclamation',\n icon: [576, 512, [], \"f2f3\", [\"M528.55 171.5l-146.37-21.3-65.43-132.39c-11.72-23.7-45.68-23.8-57.5 0L193.82 150.2 47.45 171.4c-26.25 3.8-36.77 36.1-17.73 54.6l105.9 103-25.05 145.46c-4.51 26.1 23 46 46.49 33.7L288 439.57l130.94 68.69c23.35 12.3 51-7.5 46.49-33.7l-25.05-145.48 105.9-103c19-18.48 8.52-50.78-17.73-54.58zM288 392a40 40 0 1 1 40.07-40A40 40 0 0 1 288 392zm40.17-223.38l-8 112a8 8 0 0 1-8 7.4h-48.11a8 8 0 0 1-8-7.4l-8-112a8 8 0 0 1 7.39-8.58H320.19a8 8 0 0 1 8 8v.63z\", \"M288 312a40 40 0 1 0 40.07 40A40 40 0 0 0 288 312zm32.16-152H256a8 8 0 0 0-8 8v.62l8 112a8 8 0 0 0 8 7.4h48.09a8 8 0 0 0 8-7.4l8-112a8 8 0 0 0-7.39-8.58z\"]]\n};\nvar faStarHalf = {\n prefix: 'fad',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", [\"M545.3 226L439.6 329l25 145.5c4.5 26.1-23 46-46.4 33.7l-130.7-68.6V0a31.62 31.62 0 0 1 28.7 17.8l65.3 132.4 146.1 21.2c26.2 3.8 36.7 36.1 17.7 54.6z\", \"M110.4 474.5l25-145.5L29.7 226c-19-18.5-8.5-50.8 17.7-54.6l146.1-21.2 65.3-132.4A31.62 31.62 0 0 1 287.5 0v439.6l-130.7 68.6c-23.4 12.3-50.9-7.6-46.4-33.7z\"]]\n};\nvar faStarHalfAlt = {\n prefix: 'fad',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", [\"M526.29,226.11l-106,103,25,145.49c3.64,20.77-13,37.4-31.66,37.4a31.75,31.75,0,0,1-14.84-3.71l-131-68.71V385.34l22.39,11.73,102.22,53.59-19.5-113.45-4.29-24.88,18.14-17.62,82.73-80.38L355.07,197.7l-25-3.64-11.26-22.63L267.75,68.14V0a31.92,31.92,0,0,1,28.81,17.81L362,150.2l146.51,21.31c26.28,3.8,36.81,36.1,17.75,54.6Z\", \"M90.48,474.5l25-145.5L9.7,226c-19-18.5-8.51-50.8,17.72-54.6l146.24-21.2L239,17.8A31.67,31.67,0,0,1,267.75,0V439.6L136.93,508.2C113.51,520.5,86,500.6,90.48,474.5Z\"]]\n};\nvar faStarOfDavid = {\n prefix: 'fad',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", [\"M176,344h-.07l-44-73.93L71,168h39.72l33.33-56H37.11c-28.6,0-46.42,30.38-32,54.59l56.6,95.08L91,310.55l-.09.14L110.72,344Zm160.17-80.7L288.12,344h-.07l-33.4,56h.13L232,438.25,209.22,400H144.05L200,494a37.44,37.44,0,0,0,64,0l56-94h-.19L353,344h.3l19.85-33.33L340.52,256ZM426.89,112H209.35L176,168H393l-19.88,33.33L405.68,256l53.21-89.4c14.41-24.19-3.41-54.58-32-54.58Z\", \"M91,310.55,58.32,256,5.11,345.41C-9.3,369.62,8.52,400,37.11,400H254.57l33.28-56H71Zm36.86-61.83,48-80.7H176l33.39-56h-.13L232,73.78,254.78,112h65.16L264,18a37.44,37.44,0,0,0-64,0L90.88,201.32,123.5,256Zm331.06,96.69L353.28,168H288.07l44,73.93L393,344H353l-33.22,56H426.89c28.6,0,46.42-30.36,32-54.57Z\"]]\n};\nvar faStarOfLife = {\n prefix: 'fad',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", [\"M2.14 155.72l32-55.43A16 16 0 0 1 56 94.43l184 106.43L424 94.42a16 16 0 0 1 21.86 5.84l32 55.43a16 16 0 0 1-5.86 21.87L288 284.19V496a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16V284.18L8 177.57a16 16 0 0 1-5.86-21.85z\", \"M477.87 356.55l-32 55.43a16 16 0 0 1-21.87 5.86L240 311.41 56 417.85A16 16 0 0 1 34.15 412l-32-55.43A16 16 0 0 1 8 334.7l184-106.62V16.27a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v211.82L472 334.7a16 16 0 0 1 5.87 21.85z\"]]\n};\nvar faStarShooting = {\n prefix: 'fad',\n iconName: 'star-shooting',\n icon: [512, 512, [], \"e036\", [\"M507.31241,15.99591,496.0036,4.68584a16.00342,16.00342,0,0,0-22.62935,0L308.68356,169.36841a15.99752,15.99752,0,0,0,0,22.628l11.30881,11.30812a15.99989,15.99989,0,0,0,22.62935,0L507.31241,38.62192A15.99517,15.99517,0,0,0,507.31241,15.99591Zm-192.00372,0L303.99987,4.68584a16.00341,16.00341,0,0,0-22.62934,0L228.682,57.37309a15.99752,15.99752,0,0,0,0,22.628l11.30881,11.30812a15.99987,15.99987,0,0,0,22.62934,0l52.68853-52.68725A15.99517,15.99517,0,0,0,315.30869,15.99591ZM496.0036,196.67782a16.00342,16.00342,0,0,0-22.62935,0l-52.68852,52.68725a15.99752,15.99752,0,0,0,0,22.628l11.30881,11.30812a15.99989,15.99989,0,0,0,22.62935,0l52.68852-52.68725a15.99517,15.99517,0,0,0,0-22.626Z\", \"M82.89793,380.48459,64.89758,485.074c-3.20319,18.90546,16.68782,33.108,33.29752,24.20211l93.7987-49.38856,93.79869,49.38856A22.95375,22.95375,0,0,0,319.09,485.074L301.199,380.48459l75.89209-73.99691c13.60964-13.29632,6.00012-36.49847-12.79712-39.20149L259.4951,251.99l-46.90716-95.19915c-8.39078-16.99929-32.68813-17.20241-41.18829,0L124.49249,251.99,19.69358,267.28619c-18.79724,2.703-26.40676,25.90517-12.70337,39.20149Z\"]]\n};\nvar faStarfighter = {\n prefix: 'fad',\n iconName: 'starfighter',\n icon: [640, 512, [], \"e037\", [\"M208,448H144a16,16,0,0,1-16-16V304a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16V432A16,16,0,0,1,208,448Zm96-128h32a16.00079,16.00079,0,0,0,16-16V256a32,32,0,0,0-64,0v48A16.00079,16.00079,0,0,0,304,320ZM632,128h-8V112.85547c0-7.96875-5.44531-15.35547-13.3125-16.63672A16.00991,16.00991,0,0,0,592,112v16h-8a8.00039,8.00039,0,0,0-8,8v16a8.00039,8.00039,0,0,0,8,8h8V431.14258c0,7.96875,5.44531,15.35742,13.3125,16.63867A16.01193,16.01193,0,0,0,624,432V160h8a8.00039,8.00039,0,0,0,8-8V136A8.00039,8.00039,0,0,0,632,128ZM496,288H432a16,16,0,0,0-16,16V432a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288ZM56,128H48V112.85547C48,104.88672,42.55469,97.5,34.6875,96.21875A16.00991,16.00991,0,0,0,16,112v16H8a8.00039,8.00039,0,0,0-8,8v16a8.00039,8.00039,0,0,0,8,8h8V431.14258c0,7.96875,5.44531,15.35742,13.3125,16.63867A16.01193,16.01193,0,0,0,48,432V160h8a8.00039,8.00039,0,0,0,8-8V136A8.00039,8.00039,0,0,0,56,128Z\", \"M512,352v80a16,16,0,0,1-16,16H432a16,16,0,0,1-16-16V352H384V256L353.75,14.01562A16.00035,16.00035,0,0,0,337.87322,0H302.125a15.99834,15.99834,0,0,0-15.87478,14.01386L256,256v96H224v80a16,16,0,0,1-16,16H144a16,16,0,0,1-16-16V352H48v76.79883L176,480v16a16.00079,16.00079,0,0,0,16,16h16a16.00079,16.00079,0,0,0,16-16V480H416v16a16.00079,16.00079,0,0,0,16,16h16a16.00079,16.00079,0,0,0,16-16V480l128-51.20117V352ZM352,304a16.00079,16.00079,0,0,1-16,16H304a16.00079,16.00079,0,0,1-16-16V256a32,32,0,0,1,64,0Z\"]]\n};\nvar faStarfighterAlt = {\n prefix: 'fad',\n iconName: 'starfighter-alt',\n icon: [576, 512, [], \"e038\", [\"M235.07422,291.957l-22.62891,22.627A94.938,94.938,0,0,1,193.21094,268h32A63.61375,63.61375,0,0,0,235.07422,291.957ZM64,216v80l75.51953,18.87891a156.23144,156.23144,0,0,1,0-117.75782Zm282.58594-35.55273A94.926,94.926,0,0,0,300,161.21094v32a63.56908,63.56908,0,0,1,23.957,9.86328ZM229.41406,331.55273A94.926,94.926,0,0,0,276,350.78906v-32a63.56908,63.56908,0,0,1-23.957-9.86328ZM235.07422,220.043,212.44531,197.416A94.938,94.938,0,0,0,193.21094,244h32A63.61375,63.61375,0,0,1,235.07422,220.043ZM512,296V216l-75.51953-18.87891a156.23144,156.23144,0,0,1,0,117.75782Zm-171.07422-4.043,22.62891,22.627A94.938,94.938,0,0,0,382.78906,268h-32A63.61375,63.61375,0,0,1,340.92578,291.957Zm0-71.91406A63.61375,63.61375,0,0,1,350.78906,244h32a94.938,94.938,0,0,0-19.23437-46.584ZM300,318.78906v32a94.926,94.926,0,0,0,46.58594-19.23633l-22.62891-22.627A63.56908,63.56908,0,0,1,300,318.78906ZM252.043,203.07422A63.56908,63.56908,0,0,1,276,193.21094v-32a94.926,94.926,0,0,0-46.58594,19.23633Z\", \"M288,96A160,160,0,1,0,448,256,159.99917,159.99917,0,0,0,288,96Zm12,65.21094a94.926,94.926,0,0,1,46.58594,19.23633L323.957,203.07422A63.56908,63.56908,0,0,0,300,193.21094Zm-24,0v32a63.56908,63.56908,0,0,0-23.957,9.86328l-22.62891-22.62695A94.926,94.926,0,0,1,276,161.21094ZM212.44531,197.416,235.07422,220.043A63.61375,63.61375,0,0,0,225.21094,244h-32A94.938,94.938,0,0,1,212.44531,197.416ZM193.21094,268h32a63.61375,63.61375,0,0,0,9.86328,23.957l-22.62891,22.627A94.938,94.938,0,0,1,193.21094,268ZM276,350.78906a94.926,94.926,0,0,1-46.58594-19.23633l22.62891-22.627A63.56908,63.56908,0,0,0,276,318.78906ZM256,256a32,32,0,1,1,32,32A32.00033,32.00033,0,0,1,256,256Zm44,94.78906v-32a63.56908,63.56908,0,0,0,23.957-9.86328l22.62891,22.627A94.926,94.926,0,0,1,300,350.78906ZM363.55469,314.584l-22.62891-22.627A63.61375,63.61375,0,0,0,350.78906,268h32A94.938,94.938,0,0,1,363.55469,314.584ZM350.78906,244a63.61375,63.61375,0,0,0-9.86328-23.957L363.55469,197.416A94.938,94.938,0,0,1,382.78906,244ZM48,32H16A15.99954,15.99954,0,0,0,0,48V464a16.00079,16.00079,0,0,0,16,16H48a16.00079,16.00079,0,0,0,16-16V48A15.99954,15.99954,0,0,0,48,32Zm512,0H528a15.99954,15.99954,0,0,0-16,16V464a16.00079,16.00079,0,0,0,16,16h32a16.00079,16.00079,0,0,0,16-16V48A15.99954,15.99954,0,0,0,560,32Z\"]]\n};\nvar faStars = {\n prefix: 'fad',\n iconName: 'stars',\n icon: [512, 512, [], \"f762\", [\"M415.99814,80.0021a7.297,7.297,0,0,0-3.68757-5.96246L362.669,53.338,341.96545,3.697a6.65746,6.65746,0,0,0-11.926,0L309.33591,53.338,259.69042,74.03964a6.66417,6.66417,0,0,0,0,11.92493l49.64549,20.69969,20.70353,49.643a6.65746,6.65746,0,0,0,11.926,0L362.669,106.66426l49.64159-20.69969A7.31629,7.31629,0,0,0,415.99814,80.0021Zm93.05649,139.2264L469.339,202.67109,452.7801,162.961a5.32533,5.32533,0,0,0-9.53925,0L426.678,202.67109l-39.7117,16.55741a5.33544,5.33544,0,0,0,0,9.54033L426.678,245.3282l16.56282,39.7081a5.32376,5.32376,0,0,0,9.53925,0L469.339,245.3282l39.71561-16.55937a5.33544,5.33544,0,0,0,0-9.54033Z\", \"M364.294,267.29343,259.4951,251.99764l-46.90716-95.19633c-8.39078-16.99879-32.68813-17.2019-41.18829,0l-46.90716,95.19633L19.69358,267.29343C.89634,269.99636-6.71318,293.19783,6.99021,306.49376l75.90772,73.99472L64.89758,485.07476c-3.20319,18.9049,16.68782,33.107,33.29752,24.2014l93.7987-49.3871,93.79869,49.3871A22.95361,22.95361,0,0,0,319.09,485.07476L301.199,380.48848l75.89209-73.99472C390.70077,293.19783,383.09125,269.99636,364.294,267.29343Z\"]]\n};\nvar faStarship = {\n prefix: 'fad',\n iconName: 'starship',\n icon: [640, 512, [], \"e039\", [\"M208,96H24A23.99993,23.99993,0,0,0,0,120v16a24.00118,24.00118,0,0,0,24,24H208a32,32,0,0,0,0-64Zm0,256H24A23.99993,23.99993,0,0,0,0,376v16a24.00118,24.00118,0,0,0,24,24H208a32,32,0,0,0,0-64ZM448,64c-106.03906,0-192,85.96094-192,192s85.96094,192,192,192,192-85.96094,192-192S554.03906,64,448,64Zm0,256a64,64,0,1,1,64-64A64.07333,64.07333,0,0,1,448,320Z\", \"M208.25,210.88672,160,160H86.23828l55.32422,56.94922-10.79688.98047a38.22631,38.22631,0,0,0,0,76.13867l10.79688.98242L64,352h73.76172L208.25,301.11328l54.40234,4.28516a186.73576,186.73576,0,0,1,0-98.79688ZM448,192a64,64,0,1,0,64,64A64.07333,64.07333,0,0,0,448,192Zm0,96a32,32,0,1,1,32-32A32.00158,32.00158,0,0,1,448,288Z\"]]\n};\nvar faStarshipFreighter = {\n prefix: 'fad',\n iconName: 'starship-freighter',\n icon: [576, 512, [], \"e03a\", [\"M560.0004,223.65443a16.00059,16.00059,0,0,0,15.9996-16v-52.455a15.99809,15.99809,0,0,0-10.52318-15.0332l-254.15-92.60347C255.57824,27.50609,193.611,25.59008,139.22175,49.15061-4.095,111.22285.01425,256.00012.01425,256.00012s-4.35536,144.66594,139.2075,206.8495c54.38927,23.55858,116.35649,21.64452,172.10511,1.58593l16.32772-5.94921L227.18051,335.67976c-1.0781.043-2.08589.32031-3.1718.32031a81.12292,81.12292,0,1,1,77.49418-61.0859l89.25169,109.08588h41.249a47.888,47.888,0,0,1,40.16307,21.832l93.31019-33.998A15.99809,15.99809,0,0,0,576,356.80084v-52.455a16.00059,16.00059,0,0,0-15.9996-16H416.004V223.65443ZM80.01227,272.00011a16,16,0,1,1,15.99961-16A16.00059,16.00059,0,0,1,80.01227,272.00011Zm31.99921,96a16,16,0,1,1,15.99961-16A16.00059,16.00059,0,0,1,112.01148,368.00006Zm0-191.9999a16,16,0,1,1,15.99961-16A16.00059,16.00059,0,0,1,112.01148,176.00016Z\", \"M128.01109,352.00007a15.99961,15.99961,0,1,1-15.99961-16A16.00059,16.00059,0,0,1,128.01109,352.00007Zm-15.99961-207.9999a16,16,0,1,0,15.99961,16A15.99934,15.99934,0,0,0,112.01148,144.00017Zm-31.99921,96a16,16,0,1,0,15.99961,16A15.99934,15.99934,0,0,0,80.01227,240.00012ZM480.00238,432a48.00177,48.00177,0,0,1-47.99882,48H368.00515a48.01994,48.01994,0,0,1-37.15533-17.60937L227.18051,335.67976c-1.0781.043-2.08589.32031-3.1718.32031a81.12292,81.12292,0,1,1,77.49418-61.0859l89.25169,109.08588h41.249A48.00177,48.00177,0,0,1,480.00238,432ZM256.00792,256.00012a31.99921,31.99921,0,1,0-31.99921,32A31.99993,31.99993,0,0,0,256.00792,256.00012Z\"]]\n};\nvar faSteak = {\n prefix: 'fad',\n iconName: 'steak',\n icon: [576, 512, [], \"f824\", [\"M514.93 76.66C467.93 23.11 416.29 0 368.86 0 298.28 0 237 51.17 214.11 129.39 165 269.33 1.39 212.34 0 351.66c-1.19 121.62 139.26 164.62 256 160 87.78-3.4 187.32-37.09 270.49-131.85C596.78 299.77 591.6 164 514.93 76.66zm-36.53 261c-76.15 86.75-164.32 107.76-224.82 110.1-37.65 1.38-131.52-6.52-171.23-46.62-2.49-2.51-59.44-61.76 38-104.18 71.64-31.19 132.3-71.24 155.23-149.61C290.35 96.71 327 64 368.86 64c32.58 0 66.45 19 98 54.89 55.14 62.84 60.45 163 11.54 218.78z\", \"M466.86 118.89C435.31 83 401.44 64 368.86 64c-41.86 0-78.51 32.71-93.29 83.37C252.64 225.74 192 265.79 120.34 297c-97.43 42.42-40.48 101.67-38 104.18 39.71 40.1 133.58 48 171.23 46.62 60.5-2.34 148.67-23.35 224.82-110.1 48.91-55.77 43.61-155.97-11.53-218.81zM384 255.92a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faSteeringWheel = {\n prefix: 'fad',\n iconName: 'steering-wheel',\n icon: [496, 512, [], \"f622\", [\"M432,256a185.53,185.53,0,0,1-2.76,32H328l-48,64v85.24a186.89,186.89,0,0,1-64,0V352l-48-64H66.76a186.89,186.89,0,0,1,0-64h94.13A63.69,63.69,0,0,1,216,192h64a63.72,63.72,0,0,1,55.12,32h94.11A185.54,185.54,0,0,1,432,256Z\", \"M248,72A184,184,0,1,1,64,256,184,184,0,0,1,248,72m0-64C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Z\"]]\n};\nvar faStepBackward = {\n prefix: 'fad',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", [\"M144,292.71V464a16,16,0,0,1-16,16H80a16,16,0,0,1-16-16V48A16,16,0,0,1,80,32h48a16,16,0,0,1,16,16V292.7Z\", \"M384,64V448c0,27.4-31.9,41.7-52.5,24.6L144,298.34V213.65L331.5,39.41C352.1,22.31,384,36.61,384,64Z\"]]\n};\nvar faStepForward = {\n prefix: 'fad',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", [\"M304,219.29V48a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V464a16,16,0,0,1-16,16H320a16,16,0,0,1-16-16V219.3Z\", \"M64,448V64c0-27.4,31.9-41.7,52.5-24.6L304,213.66v84.69L116.5,472.59C95.9,489.69,64,475.39,64,448Z\"]]\n};\nvar faStethoscope = {\n prefix: 'fad',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", [\"M480 231.42V344c0 92.6-79 168-176 168-95.39 0-173.28-72.78-175.9-163.17h64.1c2.7 55.1 51.9 99.2 111.9 99.2 61.8 0 112-46.7 112-104V231.47c-.1.53 63.9.53 63.9-.05z\", \"M448 112a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 80a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM300.7 13.07L237.8.47a23.94 23.94 0 0 0-28.2 18.8L206.4 35a23.94 23.94 0 0 0 18.8 28.2l30.7 6.1.1 122.7a96 96 0 0 1-192 0l-.1-72V69.37l30.7-6.1a23.94 23.94 0 0 0 18.8-28.2l-3.1-15.7A23.94 23.94 0 0 0 82.1.57L19.3 13A24.09 24.09 0 0 0 0 36.57V192c0 88.22 71.78 160 160 160s160-71.78 160-160V36.57a24 24 0 0 0-19.3-23.5z\"]]\n};\nvar faStickyNote = {\n prefix: 'fad',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", [\"M448 352H336a16 16 0 0 0-16 16v112H24a23.94 23.94 0 0 1-24-23.88V56a23.94 23.94 0 0 1 23.88-24H424a23.94 23.94 0 0 1 24 23.88V352z\", \"M320 480V368a16 16 0 0 1 16-16h112v6.1a23.9 23.9 0 0 1-7 16.9l-98 98a24 24 0 0 1-17 7z\"]]\n};\nvar faStocking = {\n prefix: 'fad',\n iconName: 'stocking',\n icon: [384, 512, [], \"f7d5\", [\"M367.29 0h-288a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zM224 368a111.66 111.66 0 0 0 35.42 81.72L280 436a159.58 159.58 0 0 0 71.2-133.1V257a113.64 113.64 0 0 0-15.2-1 112 112 0 0 0-112 112z\", \"M259.42 449.72l-61.13 40.78a128 128 0 0 1-142-213l39-26V96h255.9v161a113.64 113.64 0 0 0-15.19-1 112 112 0 0 0-76.58 193.72z\"]]\n};\nvar faStomach = {\n prefix: 'fad',\n iconName: 'stomach',\n icon: [512, 512, [], \"f623\", [\"M384 320c-17.27-17.27-42.62-22.06-65.21-14.06-7.13 52.25-44.66 86.4-77.19 100.08a13.08 13.08 0 0 0-1.5 23.47 144.7 144.7 0 0 0 28.73 12.61c43.37 13.59 98.26 4.59 137.7-34.41a140 140 0 0 0 38.68-72.35c-21.54 6.03-44.96.91-61.21-15.34zM273.13 160H256a64 64 0 0 1-64-64V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v80a128 128 0 0 0 128 128 127.42 127.42 0 0 1 17.13-64z\", \"M384 96c-17.33 0-76.15 4-110.87 64a127.56 127.56 0 0 0-16.5 51.31C256.07 217 256 222.1 256 224v64a64 64 0 0 1-64 64h-64A128 128 0 0 0 0 480v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16c0-37.63 34-51.21 53.92-51.21 17.11 0 29.59 6.71 41.07 18.2 63.07 63.07 129.84 65 146.71 65h2.66C420.84 512 512 420.83 512 308.35V224A128 128 0 0 0 384 96zm64 211c0 37.73-14.65 74.2-41.48 100.72-39.44 39-94.33 48-137.7 34.41a144.7 144.7 0 0 1-28.73-12.61A13.08 13.08 0 0 1 241.6 406c36.11-15.19 78.4-55.6 78.4-118v-64c.83-21.86 20.15-64 64-64a64.07 64.07 0 0 1 64 64z\"]]\n};\nvar faStop = {\n prefix: 'fad',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 352a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32z\", \"M64 384V128a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32z\"]]\n};\nvar faStopCircle = {\n prefix: 'fad',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328a16 16 0 0 1-16 16H176a16 16 0 0 1-16-16V176a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16z\", \"M352 176v160a16 16 0 0 1-16 16H176a16 16 0 0 1-16-16V176a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16z\"]]\n};\nvar faStopwatch = {\n prefix: 'fad',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", [\"M224 96C109.12 96 16 189.12 16 304s93.12 208 208 208 208-93.12 208-208S338.88 96 224 96zm32 240a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V208.5a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\", \"M240 192.5h-32a16 16 0 0 0-16 16V336a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V208.5a16 16 0 0 0-16-16zm188.53-48.57l-28.3-28.3a12 12 0 0 0-17 0l-27.45 27.45a209.14 209.14 0 0 1 42.8 47.8l.55-.55 29.4-29.4a12 12 0 0 0 0-17zM280 0H168a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h24v34.45a210 210 0 0 1 64 0V64h24a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16z\"]]\n};\nvar faStopwatch20 = {\n prefix: 'fad',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", [\"M287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.87,221.73,287.87,221.73ZM398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16,16,0,0,0-16,16V48a16,16,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.19-63.22C325,184,344,206.64,344,245.3Z\", \"M216,245c0-35.19-12.59-61-55.57-61C112.48,184,104,216.94,104,244.24v4.07a8.2,8.2,0,0,0,8.33,8.07h24.9a8.2,8.2,0,0,0,8.33-8.07v-5.23c0-15.28,3.3-22.68,12.69-22.68,10.42,0,12.21,7.35,12.21,24.27,0,25-6.68,33.15-27.1,62.34-23.78,34-35.67,56.15-38.45,91.37A16.46,16.46,0,0,0,121.52,416h82.85a8.2,8.2,0,0,0,8.32-8.07V385.62a8.2,8.2,0,0,0-8.32-8.07H155.24c1.8-15.63,14.85-36.15,26.41-51.2C203.56,296.25,216,280.62,216,245Zm72.19-61C251.58,184,232,206.49,232,247.22V352.55c0,33.93,11.19,63.45,54.77,63.45C331.7,416,344,387.48,344,352.32v-107C344,206.64,325,184,288.19,184Zm12.7,173c0,13.24-3.38,21.27-13,21.27s-13.23-7.48-13.23-20.59V241.74c0-12.51,3.82-20,13.23-20,10,0,13,8.06,13,19.33Z\"]]\n};\nvar faStore = {\n prefix: 'fad',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", [\"M547.69,286.8a102.1,102.1,0,0,0,16.4-3.6V480a32,32,0,0,1-32,32H84a32,32,0,0,1-32-32V283.2a125.89,125.89,0,0,0,16.4,3.6,135.49,135.49,0,0,0,18,1.2,132.81,132.81,0,0,0,29.51-3.8V384H500V284.2a127.12,127.12,0,0,0,29.51,3.8A138.38,138.38,0,0,0,547.69,286.8Z\", \"M602,118.6c33.6,53.6,3.8,128-59,136.4a102.9,102.9,0,0,1-13.7.9,99.08,99.08,0,0,1-73.81-33.1A98.83,98.83,0,0,1,316,230.88a96.26,96.26,0,0,1-8.08-8.08,98.9,98.9,0,0,1-139.62,8,97.4,97.4,0,0,1-8-8,98.75,98.75,0,0,1-73.81,33.1,104.6,104.6,0,0,1-13.7-.9C10.12,246.5-19.58,172.1,14,118.6L78.83,15A32,32,0,0,1,106,0H510a32,32,0,0,1,27.07,15Z\"]]\n};\nvar faStoreAlt = {\n prefix: 'fad',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", [\"M320 384H128V224H64v256a32 32 0 0 0 32 32h256a32 32 0 0 0 32-32V224h-64zm192-160v272a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V224z\", \"M634.55 142.2c14.1 21.3-1.1 49.8-26.6 49.8H32.05c-25.6 0-40.8-28.5-26.6-49.8l85.3-128A31.87 31.87 0 0 1 117.35 0h405.2a32.18 32.18 0 0 1 26.7 14.2z\"]]\n};\nvar faStoreAltSlash = {\n prefix: 'fad',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", [\"M320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47ZM17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM384,265V224H330.92ZM512,364l64,49.46V224H512ZM634.6,142.2l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L289.52,192H608C633.51,192,648.71,163.5,634.6,142.2Z\", \"M6.18,53.91A16,16,0,0,1,3.37,31.46L23,6.19A16,16,0,0,1,45.46,3.38L633.81,458.1a16,16,0,0,1,2.81,22.45L617,505.81a16,16,0,0,1-22.45,2.82Z\"]]\n};\nvar faStoreSlash = {\n prefix: 'fad',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", [\"M127.9,384V284.2A131.82,131.82,0,0,1,98.4,288a136.73,136.73,0,0,1-18-1.2A126.49,126.49,0,0,1,64,283.2V480a32,32,0,0,0,32,32H532.37L366.76,384ZM98.4,255.91c26.42,0,49.78-10.72,67.37-27.24L25.23,120.05C-6.89,173.44,22.65,246.57,84.7,255A105.78,105.78,0,0,0,98.4,255.91ZM613.9,118.59,549,15A32,32,0,0,0,521.9,0h-404A32,32,0,0,0,90.8,15L80.91,30.78l285.94,221a97.23,97.23,0,0,0,26.75,4.14,98.72,98.72,0,0,0,73.8-33.11,99,99,0,0,0,73.8,33.11,104.5,104.5,0,0,0,13.7-.91C617.7,246.59,647.5,172.2,613.9,118.59ZM541.4,288a126.81,126.81,0,0,1-29.5-3.8v79.68L576,413.41V283.2a103.19,103.19,0,0,1-16.4,3.6A141.06,141.06,0,0,1,541.4,288Z\", \"M6.18,53.91A16,16,0,0,1,3.37,31.46L23,6.19A16,16,0,0,1,45.46,3.38L633.82,458.1a16,16,0,0,1,2.81,22.45L617,505.81a16,16,0,0,1-22.45,2.82Z\"]]\n};\nvar faStream = {\n prefix: 'fad',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", [\"M512 224v64a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-64a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16z\", \"M432 32H16A16 16 0 0 0 0 48v64a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 352H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16z\"]]\n};\nvar faStreetView = {\n prefix: 'fad',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", [\"M512 416c0 53-114.62 96-256 96S0 469 0 416c0-37.95 58.87-70.66 144.1-86.24a63.94 63.94 0 0 0 15.9 13.65v22.94C93.48 375.7 48 394.4 48 416c0 30.93 93.12 56 208 56s208-25.07 208-56c0-21.6-45.48-40.31-112-49.65v-22.94a63.94 63.94 0 0 0 15.9-13.65C453.13 345.34 512 378.05 512 416z\", \"M256 128a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm48 16h-11.8a85.9 85.9 0 0 1-72.4 0H208a48 48 0 0 0-48 48v96a32 32 0 0 0 32 32v96a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-96a32 32 0 0 0 32-32v-96a48 48 0 0 0-48-48z\"]]\n};\nvar faStretcher = {\n prefix: 'fad',\n iconName: 'stretcher',\n icon: [640, 512, [], \"f825\", [\"M515.78 394.93a62.25 62.25 0 0 0-56.18-7.3l-43-37.63L524 256h-97.2L368 307.48 309.17 256H212l107.4 94-43 37.63a62.25 62.25 0 0 0-56.18 7.3 64.11 64.11 0 1 0 98.53 40.69l49.25-43.1 49.25 43.1a64 64 0 1 0 98.53-40.69zM256 464a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm224 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M640 160v32a32 32 0 0 1-32 32H177.62a64 64 0 0 1-47.84-21.48l-121.7-128a32 32 0 0 1 2.66-45.17L34.66 8.08a32 32 0 0 1 45.18 2.66L192 128h416a32 32 0 0 1 32 32z\"]]\n};\nvar faStrikethrough = {\n prefix: 'fad',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", [\"M512 240v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16z\", \"M410.15 320a114.16 114.16 0 0 1 5.27 24.35A123.69 123.69 0 0 1 292.45 480h-68A128 128 0 0 1 110 409.24l-.52-1a16 16 0 0 1 7.15-21.47l42.94-21.47a16 16 0 0 1 21.47 7.16A49.87 49.87 0 0 0 225.66 400h66.79A43.59 43.59 0 0 0 336 356.45 43 43 0 0 0 315.76 320zM293.9 224l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.86 49.86 0 0 1 331 139.57a16 16 0 0 0 21.47 7.16l42.94-21.47a16 16 0 0 0 7.15-21.46l-.52-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36z\"]]\n};\nvar faStroopwafel = {\n prefix: 'fad',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", [\"M188.12 210.74L142.86 256l45.25 45.25L233.37 256zm22.63 113.14L256 369.14l45.26-45.26L256 278.63zm90.5-135.76L256 142.86l-45.25 45.25L256 233.37zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31a8 8 0 0 1-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 17-17a8 8 0 0 1 11.31 0l11.31 11.31a8 8 0 0 1 0 11.31l-17 17 17 17a8 8 0 0 1 0 11.31L408.74 420a8 8 0 0 1-11.31 0l-17-17-17 17a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31l17-17-33.91-33.89-45.26 45.26L306.93 420a8 8 0 0 1 0 11.31l-11.31 11.31a8 8 0 0 1-11.31 0L256 414.39l-28.29 28.29a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 17 17a8 8 0 0 1 0 11.31L159.85 420a8 8 0 0 1-11.31 0l-17-17-17 17a8 8 0 0 1-11.31 0L92 408.73a8 8 0 0 1 0-11.31l17-17-17-17a8 8 0 0 1 0-11.31l11.31-11.31a8 8 0 0 1 11.31 0l17 17 33.94-33.94-45.25-45.25L92 306.93a8 8 0 0 1-11.31 0L69.32 295.6a8 8 0 0 1 0-11.31L97.61 256l-28.29-28.29a8 8 0 0 1 0-11.31l11.31-11.31a8 8 0 0 1 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-17 17a8 8 0 0 1-11.31 0L92 159.84a8 8 0 0 1 0-11.31l17-17-17-17a8 8 0 0 1 0-11.31L103.26 92a8 8 0 0 1 11.31 0l17 17 17-17a8 8 0 0 1 11.31 0l11.31 11.31a8 8 0 0 1 0 11.31l-17 17 33.91 33.88 45.26-45.25L205.07 92a8 8 0 0 1 0-11.31l11.31-11.31a8 8 0 0 1 11.31 0L256 97.61l28.29-28.29a8 8 0 0 1 11.31 0l11.31 11.31a8 8 0 0 1 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-17-17a8 8 0 0 1 0-11.31L352.16 92a8 8 0 0 1 11.31 0l17 17 17-17a8 8 0 0 1 11.31 0L420 103.26a8 8 0 0 1 0 11.31l-17 17 17 17a8 8 0 0 1 0 11.31l-11.31 11.31a8 8 0 0 1-11.31 0l-17-17-33.88 33.91 45.25 45.26L420 205.07a8 8 0 0 1 11.31 0l11.31 11.31a8 8 0 0 1 0 11.31L414.39 256l28.29 28.28a8 8 0 0 1 0 11.32zm-164-39.6l45.26 45.25 45.2-45.25-45.25-45.26z\", \"M442.68 284.28L414.39 256l28.27-28.31a8 8 0 0 0 0-11.31l-11.31-11.31a8 8 0 0 0-11.31 0l-28.29 28.29-45.25-45.26 33.94-33.94 17 17a8 8 0 0 0 11.31 0L420 159.82a8 8 0 0 0 0-11.31l-17-17 17-17a8 8 0 0 0 0-11.31L408.72 92a8 8 0 0 0-11.31 0l-17 17-17-17a8 8 0 0 0-11.31 0l-11.31 11.31a8 8 0 0 0 0 11.31l17 17-33.94 33.94-45.26-45.25 28.29-28.29a8 8 0 0 0 0-11.31L295.6 69.32a8 8 0 0 0-11.31 0L256 97.61l-28.31-28.27a8 8 0 0 0-11.31 0l-11.31 11.31a8 8 0 0 0 0 11.31l28.29 28.29-45.26 45.25-33.94-33.94 17-17a8 8 0 0 0 0-11.31L159.82 92a8 8 0 0 0-11.31 0l-17 17-17-17a8 8 0 0 0-11.31 0L92 103.28a8 8 0 0 0 0 11.31l17 17-17 17a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0l17-17 33.94 33.94-45.25 45.26-28.37-28.32a8 8 0 0 0-11.31 0L69.32 216.4a8 8 0 0 0 0 11.31L97.61 256l-28.29 28.29a8 8 0 0 0 0 11.31l11.34 11.33a8 8 0 0 0 11.31 0l28.29-28.29 45.25 45.25-33.94 33.94-17-17a8 8 0 0 0-11.31 0L92 352.17a8 8 0 0 0 0 11.31l17 17-17 17a8 8 0 0 0 0 11.31L103.29 420a8 8 0 0 0 11.31 0l17-17 17 17a8 8 0 0 0 11.31 0l11.31-11.31a8 8 0 0 0 0-11.31l-17-17 33.94-33.94 45.25 45.26-28.29 28.29a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0L256 414.39l28.31 28.27a8 8 0 0 0 11.31 0l11.31-11.31a8 8 0 0 0 0-11.31l-28.29-28.29 45.26-45.26 33.94 33.94-17 17a8 8 0 0 0 0 11.31L352.18 420a8 8 0 0 0 11.31 0l17-17 17 17a8 8 0 0 0 11.31 0l11.31-11.31a8 8 0 0 0 0-11.31l-17-17 17-17a8 8 0 0 0 0-11.31l-11.31-11.31a8 8 0 0 0-11.31 0l-17 17-33.94-33.94 45.25-45.25 28.29 28.29a8 8 0 0 0 11.31 0l11.31-11.31a8 8 0 0 0-.03-11.27zM256 142.86l45.25 45.26L256 233.37l-45.25-45.26zm-67.89 158.39L142.86 256l45.26-45.26L233.37 256zM256 369.14l-45.25-45.26L256 278.63l45.26 45.25zm67.89-67.89L278.63 256l45.26-45.26L369.14 256z\"]]\n};\nvar faSubscript = {\n prefix: 'fad',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", [\"M336 32h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 32H16A16 16 0 0 0 0 48v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 416h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M496 416h-16V272a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 320h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faSubway = {\n prefix: 'fad',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", [\"M176 256a24 24 0 0 0 24-24V120a24 24 0 0 0-24-24H72a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24zM376 96H272a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h104a24 24 0 0 0 24-24V120a24 24 0 0 0-24-24zm5 401.72L318 448H130l-63 49.72A8 8 0 0 0 72 512h304a8 8 0 0 0 5-14.28z\", \"M130 448h188c68.4 0 130-44.19 130-96V96c0-53-63-96-128-96H128C64 0 0 43 0 96v256c0 52 61.82 96 130 96zm222-64a48 48 0 1 1 48-48 48 48 0 0 1-48 48zM248 120a24 24 0 0 1 24-24h104a24 24 0 0 1 24 24v112a24 24 0 0 1-24 24H272a24 24 0 0 1-24-24zm-200 0a24 24 0 0 1 24-24h104a24 24 0 0 1 24 24v112a24 24 0 0 1-24 24H72a24 24 0 0 1-24-24zm48 168a48 48 0 1 1-48 48 48 48 0 0 1 48-48z\"]]\n};\nvar faSuitcase = {\n prefix: 'fad',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", [\"M80 480h48V128H80zm304-352v352h48V128z\", \"M336 32H176a48 48 0 0 0-48 48v400h256V80a48 48 0 0 0-48-48zm-16 96H192V96h128zm144 0h-32v352h32a48 48 0 0 0 48-48V176a48 48 0 0 0-48-48zM0 176v256a48 48 0 0 0 48 48h32V128H48a48 48 0 0 0-48 48z\"]]\n};\nvar faSuitcaseRolling = {\n prefix: 'fad',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", [\"M144 48h96v112h48V48a48 48 0 0 0-48-48h-96a48 48 0 0 0-48 48v112h48zM64 496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16H64zm192 0a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h-64zm56-240H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0 96H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\", \"M336 160H48a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V208a48 48 0 0 0-48-48zm-16 216a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h240a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8H72a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h240a8 8 0 0 1 8 8z\"]]\n};\nvar faSun = {\n prefix: 'fad',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", [\"M502.42 240.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.41-94.8a17.31 17.31 0 0 0-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4a17.31 17.31 0 0 0 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.41-33.5 47.3 94.7a17.31 17.31 0 0 0 31 0l47.31-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3a17.33 17.33 0 0 0 .2-31.1zm-155.9 106c-49.91 49.9-131.11 49.9-181 0a128.13 128.13 0 0 1 0-181c49.9-49.9 131.1-49.9 181 0a128.13 128.13 0 0 1 0 181z\", \"M352 256a96 96 0 1 1-96-96 96.15 96.15 0 0 1 96 96z\"]]\n};\nvar faSunCloud = {\n prefix: 'fad',\n iconName: 'sun-cloud',\n icon: [640, 512, [], \"f763\", [\"M429.4 384H384a95.17 95.17 0 0 1-58.6-20.5c-49.6 32-116.5 26.4-159.9-16.9a128 128 0 0 1 181-181 125.41 125.41 0 0 1 18.1 23.4 112.64 112.64 0 0 1 62.6-54.5l13.9-41.7c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.3-94.8a17.31 17.31 0 0 0-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4a17.31 17.31 0 0 0 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7a17.31 17.31 0 0 0 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9zm-92.5-179.3a96.36 96.36 0 1 0-33.8 134.5A95.22 95.22 0 0 1 288 288c0-35.8 19.8-66.8 48.9-83.3z\", \"M640 288a64.06 64.06 0 0 1-64 64H384a64 64 0 0 1 0-128c.6 0 1.1.2 1.6.2a79.75 79.75 0 0 1 157.7 9A63.72 63.72 0 0 1 640 288z\"]]\n};\nvar faSunDust = {\n prefix: 'fad',\n iconName: 'sun-dust',\n icon: [512, 512, [], \"f764\", [\"M160 256a95.68 95.68 0 0 0 28.1 67.8l135.7-135.7A96 96 0 0 0 160 256zM419.3 70.8l-100.4 33.5-47.4-94.7a17.31 17.31 0 0 0-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4a17.31 17.31 0 0 0 0 31l94.7 47.3-33.5 100.5A16.86 16.86 0 0 0 75 437l90.5-90.5a128 128 0 0 1 181-181L437 75a16.86 16.86 0 0 0-17.7-4.2z\", \"M160 448a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm320-256a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm-96 96a32 32 0 1 0-32 32 32 32 0 0 0 32-32zm-144 64a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm160 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm80 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0-192a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM320 448a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faSunHaze = {\n prefix: 'fad',\n iconName: 'sun-haze',\n icon: [640, 512, [], \"f765\", [\"M471.7 193.1l33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.7a17.31 17.31 0 0 0-31 0l-47.3 94.7-100.5-33.5c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4L74.6 240h119c3.4-27.2 15-53.6 35.9-74.5a128.13 128.13 0 0 1 181 0c20.9 20.9 32.5 47.3 35.9 74.5h119zM320 160c-47.5 0-86.7 34.7-94.4 80h188.8c-7.7-45.3-46.9-80-94.4-80z\", \"M80 336h336a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm544-48H496a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM208 464H80a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm416 0H288a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h336a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-48-56v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16z\"]]\n};\nvar faSunglasses = {\n prefix: 'fad',\n iconName: 'sunglasses',\n icon: [576, 512, [], \"f892\", [\"M574.09 280.38L528.75 98.66a87.94 87.94 0 0 0-113.19-62.14l-15.25 5.08a16 16 0 0 0-10.12 20.25L395.25 77a16 16 0 0 0 20.22 10.13l13.19-4.39c10.87-3.63 23-3.57 33.15 1.73a39.59 39.59 0 0 1 20.38 25.81l38.47 153.83a276.7 276.7 0 0 0-81.22-12.47c-34.75 0-74 7-114.85 26.75h-73.18c-40.85-19.75-80.07-26.75-114.85-26.75a276.75 276.75 0 0 0-81.22 12.45l38.47-153.8a39.61 39.61 0 0 1 20.38-25.82c10.15-5.29 22.28-5.34 33.15-1.73l13.16 4.39A16 16 0 0 0 180.75 77l5.06-15.19a16 16 0 0 0-10.12-20.21l-15.25-5.08A87.95 87.95 0 0 0 47.25 98.65L1.91 280.38A75.35 75.35 0 0 0 0 295.86v70.25C0 429 51.59 480 115.19 480h37.12c60.28 0 110.38-45.94 114.88-105.37l2.93-38.63h35.76l2.93 38.63c4.5 59.43 54.6 105.37 114.88 105.37h37.12C524.41 480 576 429 576 366.13v-70.25a62.67 62.67 0 0 0-1.91-15.5zM203.38 369.8c-2 25.9-24.41 46.2-51.07 46.2h-37.12C87 416 64 393.63 64 366.11v-37.55a217.35 217.35 0 0 1 72.59-12.9 196.51 196.51 0 0 1 69.91 12.9zM512 366.13c0 27.5-23 49.87-51.19 49.87h-37.12c-26.69 0-49.1-20.3-51.07-46.2l-3.12-41.24a196.55 196.55 0 0 1 69.94-12.9A217.41 217.41 0 0 1 512 328.58z\", \"M64.19 367.9c0-.61-.19-1.18-.19-1.8 0 27.53 23 49.9 51.19 49.9h37.12c26.66 0 49.1-20.3 51.07-46.2l3.12-41.24c-14-5.29-28.31-8.38-42.78-10.42zm404-50l-95.83 47.91.3 4c2 25.9 24.38 46.2 51.07 46.2h37.12C489 416 512 393.63 512 366.13v-37.55a227.76 227.76 0 0 0-43.85-10.66z\"]]\n};\nvar faSunrise = {\n prefix: 'fad',\n iconName: 'sunrise',\n icon: [576, 512, [], \"f766\", [\"M250.9 374.45C230.3 383 214.6 398 204.3 416h167.2c-23.8-41.65-75.1-60.35-120.6-41.55zm260.8-20.1l-106.5-7.6-7.6-106.5a17.5 17.5 0 0 0-28.9-12l-80.7 70-80.7-70a17.5 17.5 0 0 0-28.9 12l-7.6 106.5-106.5 7.6a17.5 17.5 0 0 0-12 28.9L80.7 416h87.6c.2-.5.2-1 .4-1.4 27.3-65.8 102.9-97.2 168.7-69.9a128.68 128.68 0 0 1 70.3 71.3h87.6l28.4-32.7a17.5 17.5 0 0 0-12-28.95z\", \"M560 464H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM190.8 128H256v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-80h65.2c14.3 0 21.4-17.3 11.2-27.4L300 5a17 17 0 0 0-24 0l-96.4 95.7c-10.2 9.95-3 27.3 11.2 27.3z\"]]\n};\nvar faSunset = {\n prefix: 'fad',\n iconName: 'sunset',\n icon: [576, 512, [], \"f767\", [\"M250.9 374.5c-20.6 8.5-36.3 23.5-46.6 41.5h167.2c-23.8-41.6-75.1-60.3-120.6-41.5zm260.8-20.1l-106.5-7.6-7.6-106.5a17.5 17.5 0 0 0-28.9-12l-80.7 70-80.7-70a17.5 17.5 0 0 0-28.9 12l-7.6 106.5-106.5 7.6a17.5 17.5 0 0 0-12 28.9L80.7 416h87.6c.2-.5.2-1 .4-1.4 27.3-65.8 102.9-97.2 168.7-69.9a128.68 128.68 0 0 1 70.3 71.3h87.6l28.4-32.7a17.5 17.5 0 0 0-12-28.9z\", \"M560 464H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM276 219a17 17 0 0 0 24 0l96.4-95.7c10.1-10.1 3-27.4-11.3-27.4H320V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v80h-65.2c-14.3 0-21.4 17.3-11.2 27.4z\"]]\n};\nvar faSuperscript = {\n prefix: 'fad',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", [\"M336 96h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 96H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 480h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16z\", \"M496 192h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 96h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faSurprise = {\n prefix: 'fad',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM136,208a32,32,0,1,1,32,32A32,32,0,0,1,136,208ZM248,416a64,64,0,1,1,64-64A64,64,0,0,1,248,416Zm80-176a32,32,0,1,1,32-32A32,32,0,0,1,328,240Z\", \"M328,176a32,32,0,1,0,32,32A32,32,0,0,0,328,176Zm-160,0a32,32,0,1,0,32,32A32,32,0,0,0,168,176Z\"]]\n};\nvar faSwatchbook = {\n prefix: 'fad',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", [\"M64,256h64V192H64Zm370.66-88.29h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM64,128h64V64H64ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320Z\", \"M160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0V32A32,32,0,0,0,160,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]]\n};\nvar faSwimmer = {\n prefix: 'fad',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", [\"M538 120L437.68 98.47a112.22 112.22 0 0 0-88.56 18.38L269.1 174a111.54 111.54 0 0 0-26.72 27l-68.63 98a92 92 0 0 1 15.86 11.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16-14.77 34.5-22.58 53.46-22.58h16.3c19 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86a16.22 16.22 0 0 1 12.62-2.61l100.35 21.53A48 48 0 0 0 538 120zM112 96a80 80 0 1 0 80 80 80 80 0 0 0-80-80z\", \"M640 368v32a16 16 0 0 1-16 16h-16c-38.62 0-72.72-12.18-96-31.84-23.28 19.65-57.38 31.84-96 31.84s-72.72-12.18-96-31.84C296.72 403.81 262.62 416 224 416s-72.72-12.18-96-31.84C104.72 403.81 70.62 416 32 416H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h16c26 0 45.8-8.42 56.07-17.9 8.9-8.21 19.66-14.1 31.77-14.1h16.3c12.11 0 22.87 5.89 31.77 14.1C178.2 343.58 198 352 224 352s45.8-8.42 56.07-17.9c8.9-8.21 19.66-14.1 31.77-14.1h16.3c12.11 0 22.87 5.89 31.77 14.1C370.2 343.58 390 352 416 352s45.8-8.42 56.07-17.9c8.9-8.21 19.66-14.1 31.77-14.1h16.3c12.11 0 22.87 5.89 31.77 14.1C562.2 343.58 582 352 608 352h16a16 16 0 0 1 16 16z\"]]\n};\nvar faSwimmingPool = {\n prefix: 'fad',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", [\"M189.61 374.57A86.6 86.6 0 0 0 160 356.5V128a96 96 0 0 1 192 0v16a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16a32 32 0 0 0-64 0v96h192v-96a96 96 0 0 1 192 0v16a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16a32 32 0 0 0-64 0v228.51a86.44 86.44 0 0 0-29.61 18.07c-3.53 3.26-15.27 9.42-34.39 9.42v-96H224v96c-19.12 0-30.86-6.16-34.39-9.43z\", \"M0 464v-32a16 16 0 0 1 16-16h16c26 0 45.8-8.42 56.07-17.9 8.9-8.21 19.66-14.1 31.77-14.1h16.3c12.11 0 22.87 5.89 31.77 14.1C178.2 407.58 198 416 224 416s45.8-8.42 56.07-17.9c8.9-8.21 19.66-14.1 31.77-14.1h16.3c12.11 0 22.87 5.89 31.77 14.1C370.2 407.58 390 416 416 416s45.8-8.42 56.07-17.9c8.9-8.21 19.66-14.1 31.77-14.1h16.3c12.11 0 22.87 5.89 31.77 14.1C562.2 407.58 582 416 608 416h16a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-16c-38.62 0-72.72-12.18-96-31.84-23.28 19.65-57.38 31.84-96 31.84s-72.72-12.18-96-31.84C296.72 467.81 262.62 480 224 480s-72.72-12.18-96-31.84C104.72 467.81 70.62 480 32 480H16a16 16 0 0 1-16-16z\"]]\n};\nvar faSword = {\n prefix: 'fad',\n iconName: 'sword',\n icon: [512, 512, [], \"f71c\", [\"M267.88 340.11l-96-96L400 16 493.73.16a16 16 0 0 1 18.1 18.11L496 112z\", \"M4.06 425a13.91 13.91 0 0 1 0-19.64l17.28-17.29a13.92 13.92 0 0 1 16-2.6l29.31 14.63 53.43-53.43-53.39-80.09a16 16 0 0 1 2-20.19l18.79-18.8a16 16 0 0 1 22.62 0l174.3 174.3a16 16 0 0 1 0 22.63l-18.8 18.79a16 16 0 0 1-20.18 2l-80.09-53.39-53.43 53.43 14.62 29.26a13.85 13.85 0 0 1-2.6 16l-17.29 17.29a13.88 13.88 0 0 1-19.63 0z\"]]\n};\nvar faSwordLaser = {\n prefix: 'fad',\n iconName: 'sword-laser',\n icon: [512, 512, [], \"e03b\", [\"M504.9689,7.02779a24.00309,24.00309,0,0,0-33.27442-.64061L225.58571,232.41472l53.986,53.985L505.60954,40.30626A23.99965,23.99965,0,0,0,504.9689,7.02779Z\", \"M139.43866,293.34679l79.20154,79.19332,22.62566-22.62638L162.06823,270.7204Zm-33.9424,33.94055,79.19763,79.19333,22.62957-22.62639L128.12583,304.661Zm169.712-11.31417-79.19763-79.19332a8.00233,8.00233,0,0,0-11.31674,0L173.38106,248.094a7.99658,7.99658,0,0,0,0,11.31222l79.19763,79.19333a7.99763,7.99763,0,0,0,11.31283,0l11.31674-11.31222A8.006,8.006,0,0,0,275.20826,315.97317ZM9.36844,412.13482A32.00519,32.00519,0,0,0,9.35282,457.37l45.23179,45.27425a32.0792,32.0792,0,0,0,45.263.02344l79.20545-79.20309-90.51437-90.5075Z\"]]\n};\nvar faSwordLaserAlt = {\n prefix: 'fad',\n iconName: 'sword-laser-alt',\n icon: [512, 512, [], \"e03c\", [\"M504.96733,7.02964a24.00768,24.00768,0,0,0-33.2818-.64077L225.9792,232.05589H329.50133l176.10679-191.739A24.00667,24.00667,0,0,0,504.96733,7.02964Z\", \"M94.22341,327.25434,9.37,412.12416a31.99685,31.99685,0,0,0-.01172,45.23539l.00782.0039L116.85019,349.87887Zm33.946,33.94168L20.67366,468.68451l22.62287,22.64406,107.5036-107.50021Zm180.8658-105.13441H172.03594a16.00024,16.00024,0,0,0-11.31925,4.68861l-55.17794,55.187,90.53058,90.52938L320.29589,283.43531C330.45079,273.37628,323.3279,256.06161,309.03524,256.06161Zm-254.42336,246.59v.00195a32.08545,32.08545,0,0,0,45.26138.01173L184.754,417.78371l-22.63851-22.6382Z\"]]\n};\nvar faSwords = {\n prefix: 'fad',\n iconName: 'swords',\n icon: [512, 512, [], \"f71d\", [\"M153.37 278.63L100 332l-24.69-24.69a16 16 0 0 0-22.62 0l-17.54 17.53a16 16 0 0 0-2.79 18.87l31.64 59-59.31 59.35a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0L109.25 448l59 31.64a16 16 0 0 0 18.87-2.79l17.53-17.54a16 16 0 0 0 0-22.62L180 412l53.37-53.37zM496.79.14l-78.11 13.2-140 140 80 80 140-140 13.2-78.11A13.33 13.33 0 0 0 496.79.14z\", \"M389.37 309.38l-296-296L15.22.14A13.32 13.32 0 0 0 .14 15.22l13.2 78.11 296 296.05zm117.94 152.68L448 402.75l31.64-59a16 16 0 0 0-2.79-18.87l-17.54-17.53a16 16 0 0 0-22.63 0L307.31 436.69a16 16 0 0 0 0 22.62l17.53 17.54a16 16 0 0 0 18.87 2.79l59-31.64 59.31 59.31a16 16 0 0 0 22.63 0l22.62-22.62a16 16 0 0 0 .04-22.63z\"]]\n};\nvar faSwordsLaser = {\n prefix: 'fad',\n iconName: 'swords-laser',\n icon: [640, 512, [], \"e03d\", [\"M255.99976,313.1994l42.69531-46.67959-42.69531-46.48818ZM135.031,7.03013a24.01075,24.01075,0,0,0-.64063,33.287l225.66406,245.7026V182.49655L168.32007,6.38951A24.0151,24.0151,0,0,0,135.031,7.03013Zm369.9375-.00195a24.00147,24.00147,0,0,0-33.27344-.64062L343.656,123.985l37.8125,34.72844a47.92694,47.92694,0,0,1,18.71093-3.78124c.1836,0,.35547.05078.53907.05273L505.60913,40.3074A24.00108,24.00108,0,0,0,504.96851,7.02818Z\", \"M196.60132,224.62928l-28.76563,29.11321a32.00691,32.00691,0,0,0-45.27734,45.25186L9.33569,412.15427a32.06984,32.06984,0,0,0,.01172,45.2499L54.656,502.64235a32.01846,32.01846,0,0,0,45.25-.00976L219.26538,384.25784a15.98659,15.98659,0,0,0,4.73438-11.3574v-137.029C223.99976,221.56678,206.656,214.45156,196.60132,224.62928Zm-28.0625,135.81806a16,16,0,1,1,16.00781-16A16.00493,16.00493,0,0,1,168.53882,360.44734ZM545.781,327.24429l-22.63282,22.63862L630.6521,457.3905l.00391-.002a32.0876,32.0876,0,0,0,.00781-45.26162ZM411.43726,191.70552c-10.0625-10.15623-27.375-3.0332-27.375,11.26169V339.963a16.01218,16.01218,0,0,0,4.6875,11.31834l55.1875,55.17762,90.53125-90.53106Zm43.8164,226.06983,84.8711,84.85333a31.9925,31.9925,0,0,0,45.23437.00977l.00391-.00586L477.87866,395.1504Zm33.94141-33.94329L596.68335,491.324l22.64453-22.623-107.5-107.50172Z\"]]\n};\nvar faSynagogue = {\n prefix: 'fad',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", [\"M70 196.51L6.67 268.29A26.66 26.66 0 0 0 0 285.93V512h128V239.58l-38-43.07a13.35 13.35 0 0 0-20 0zm563.33 71.78L570 196.51a13.33 13.33 0 0 0-20 0l-38 43.07V512h128V285.93a26.64 26.64 0 0 0-6.67-17.64z\", \"M468 109.41L340 7a32 32 0 0 0-40 0L172 109.41a32 32 0 0 0-12 25V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55A64 64 0 0 1 384 416v96h96V134.4a32 32 0 0 0-12-24.99zm-75.94 113.15a4.73 4.73 0 0 1-4 7.24h-38.94l-25.12 40a4.72 4.72 0 0 1-8 0l-25.12-40h-38.94a4.72 4.72 0 0 1-4-7.24l19.2-30.56-19.2-30.56a4.73 4.73 0 0 1 4-7.24h38.94l25.12-40a4.72 4.72 0 0 1 8 0l25.12 40h38.95a4.73 4.73 0 0 1 4 7.24L372.87 192z\"]]\n};\nvar faSync = {\n prefix: 'fad',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", [\"M0 500V299.67a12 12 0 0 1 12-12h200.33a12 12 0 0 1 12 12v47.41a12 12 0 0 1-12.57 12l-101.87-4.88a176.07 176.07 0 0 0 317.25-56.94 12 12 0 0 1 11.67-9.26h49.09a12 12 0 0 1 11.8 14.18C478.07 417.08 377.19 504 256 504a247.43 247.43 0 0 1-188.76-87.17l4.13 82.57a12 12 0 0 1-12 12.6H12a12 12 0 0 1-12-12z\", \"M12.3 209.82C33.93 94.92 134.81 8 256 8a247.4 247.4 0 0 1 188.9 87.34l-4-82.77A12 12 0 0 1 452.92 0h47.41a12 12 0 0 1 12 12v200.33a12 12 0 0 1-12 12H300a12 12 0 0 1-12-12v-47.41a12 12 0 0 1 12.57-12l101.53 4.88a176.07 176.07 0 0 0-317.24 56.94A12 12 0 0 1 73.19 224H24.1a12 12 0 0 1-11.8-14.18z\"]]\n};\nvar faSyncAlt = {\n prefix: 'fad',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", [\"M8 454.06V320a24 24 0 0 1 24-24h134.06c21.38 0 32.09 25.85 17 41l-41.75 41.75A166.82 166.82 0 0 0 256.16 424c77.41-.07 144.31-53.14 162.78-126.85a12 12 0 0 1 11.65-9.15h57.31a12 12 0 0 1 11.81 14.18C478.07 417.08 377.19 504 256 504a247.14 247.14 0 0 1-171.31-68.69L49 471c-15.15 15.15-41 4.44-41-16.94z\", \"M12.3 209.82C33.93 94.92 134.81 8 256 8a247.14 247.14 0 0 1 171.31 68.69L463 41c15.12-15.12 41-4.41 41 17v134a24 24 0 0 1-24 24H345.94c-21.38 0-32.09-25.85-17-41l41.75-41.75A166.8 166.8 0 0 0 255.85 88c-77.46.07-144.33 53.18-162.79 126.85A12 12 0 0 1 81.41 224H24.1a12 12 0 0 1-11.8-14.18z\"]]\n};\nvar faSyringe = {\n prefix: 'fad',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", [\"M266.43 109.83l135.69 135.69-181.89 181.91a79.68 79.68 0 0 1-65.41 23l-63.59-7.11-66.3 66.3a8 8 0 0 1-11.31 0l-11.3-11.3a8 8 0 0 1 0-11.3l66.41-66.4L61.62 357a79.91 79.91 0 0 1 23-65.4L111 265.24l55.81 55.88a8 8 0 0 0 11.3 0l11.31-11.29a8.06 8.06 0 0 0 0-11.31l-55.86-55.85 45.29-45.28 55.76 55.84a8 8 0 0 0 11.31 0l11.3-11.31a8 8 0 0 0 0-11.3l-55.77-55.83z\", \"M166.82 321.12L111 265.23l22.6-22.5 55.81 55.79a8.06 8.06 0 0 1 0 11.31l-11.31 11.29a8 8 0 0 1-11.28 0zm79.11-67.89l11.3-11.31a8 8 0 0 0 0-11.3l-55.71-55.79-22.59 22.59 55.69 55.81a8 8 0 0 0 11.31 0zM509.72 92.92l-11.3 11.31a8 8 0 0 1-11.3 0l-28.3-28.31-45.3 45.31 73.5 73.5A8 8 0 0 1 487 206l-33.9 34a8 8 0 0 1-11.3 0l-17-17L289.12 87.12l-17-17a8 8 0 0 1 0-11.29L306 24.92a8 8 0 0 1 11.3 0l17 17 56.61 56.6 45.3-45.29-28.3-28.31a8 8 0 0 1 0-11.3l11.3-11.29a8 8 0 0 1 11.29 0l79.21 79.19a8.15 8.15 0 0 1 .01 11.4z\"]]\n};\nvar faTable = {\n prefix: 'fad',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", [\"M288 160v96h160v-96zm0 256h160v-96H288zM64 256h160v-96H64zm0 160h160v-96H64z\", \"M464 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM224 416H64v-96h160zm0-160H64v-96h160zm224 160H288v-96h160zm0-160H288v-96h160z\"]]\n};\nvar faTableTennis = {\n prefix: 'fad',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", [\"M496.28 296.48c31.5-77.81 15.8-170.31-47.2-233.4-83.9-84.1-220-84.1-303.9 0l-56 56.09 211.5 211.5c46.1-62.09 131.5-77.4 195.6-34.19zM416.08 320a96 96 0 1 0 96 96 96 96 0 0 0-96-96z\", \"M5.78 452.77a19.7 19.7 0 0 1 1-28.8l103-89.39L75.28 300c-39-39.09-44.6-98.79-17.3-144.09l220.4 220.29c-3.7 12.71-6.3 25.91-6.2 39.71a142.53 142.53 0 0 0 11 55.09c-25.7-2.8-50.6-13.59-70.3-33.3l-35.7-35.7-89.3 103.3a19.59 19.59 0 0 1-28.7 1z\"]]\n};\nvar faTablet = {\n prefix: 'fad',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", [\"M0 384v80a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-80zm224 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M0 384V48A48 48 0 0 1 48 0h352a48 48 0 0 1 48 48v336z\"]]\n};\nvar faTabletAlt = {\n prefix: 'fad',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", [\"M400 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM224 480a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm176-108a12 12 0 0 1-12 12H60a12 12 0 0 1-12-12V60a12 12 0 0 1 12-12h328a12 12 0 0 1 12 12z\", \"M48 60a12 12 0 0 1 12-12h328a12 12 0 0 1 12 12v312a12 12 0 0 1-12 12H60a12 12 0 0 1-12-12z\"]]\n};\nvar faTabletAndroid = {\n prefix: 'fad',\n iconName: 'tablet-android',\n icon: [448, 512, [], \"f3fb\", [\"M0 384v80a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-80zm288 68a12 12 0 0 1-12 12H172a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h104a12 12 0 0 1 12 12z\", \"M0 384V48A48 48 0 0 1 48 0h352a48 48 0 0 1 48 48v336z\"]]\n};\nvar faTabletAndroidAlt = {\n prefix: 'fad',\n iconName: 'tablet-android-alt',\n icon: [448, 512, [], \"f3fc\", [\"M400 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zM288 452a12 12 0 0 1-12 12H172a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h104a12 12 0 0 1 12 12zm112-80a12 12 0 0 1-12 12H60a12 12 0 0 1-12-12V60a12 12 0 0 1 12-12h328a12 12 0 0 1 12 12z\", \"M48 60a12 12 0 0 1 12-12h328a12 12 0 0 1 12 12v312a12 12 0 0 1-12 12H60a12 12 0 0 1-12-12z\"]]\n};\nvar faTabletRugged = {\n prefix: 'fad',\n iconName: 'tablet-rugged',\n icon: [448, 512, [], \"f48f\", [\"M439.2 164.4a15.92 15.92 0 0 0 8.8-14.3V73.9a15.92 15.92 0 0 0-8.8-14.3L416 48a48 48 0 0 0-48-48H80a48 48 0 0 0-48 48L8.8 59.6A15.92 15.92 0 0 0 0 73.9v76.2a15.92 15.92 0 0 0 8.8 14.3L32 176v16L8.8 203.6A15.92 15.92 0 0 0 0 217.9v76.2a15.92 15.92 0 0 0 8.8 14.3L32 320v16L8.8 347.6A15.92 15.92 0 0 0 0 361.9v76.2a15.92 15.92 0 0 0 8.8 14.3L32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48l23.2-11.6a15.92 15.92 0 0 0 8.8-14.3v-76.2a15.92 15.92 0 0 0-8.8-14.3L416 336v-16l23.2-11.6a15.92 15.92 0 0 0 8.8-14.3v-76.2a15.92 15.92 0 0 0-8.8-14.3L416 192v-16zM352 432a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16z\", \"M352 432a16 16 0 0 1-16 16H112a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16z\"]]\n};\nvar faTablets = {\n prefix: 'fad',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", [\"M363 65.71c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9s144.2 61.4 206.9 15.9a8.15 8.15 0 0 0 .8-12.3zm230.4-19.1c-56.5-56.5-144.2-61.4-206.9-16a8.15 8.15 0 0 0-.8 12.3L597 254.31c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9z\", \"M311.6 368H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.51 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.79-3.3-9.3-8.3-9.3zM8.4 336h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.51 241.1 192 160 192S12.5 250.51.1 326.71c-.8 4.8 3.3 9.29 8.3 9.29z\"]]\n};\nvar faTachometer = {\n prefix: 'fad',\n iconName: 'tachometer',\n icon: [576, 512, [], \"f0e4\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm102.77 119.59l-61.33 184A62.8 62.8 0 0 1 343.12 416H232.88a63.34 63.34 0 0 1 51-95.59l61.34-184a24 24 0 0 1 45.53 15.19z\", \"M283.9 320.41l61.34-184a24 24 0 0 1 45.53 15.19l-61.33 184a62.8 62.8 0 0 1 13.68 80.4H232.88a63.34 63.34 0 0 1 51-95.59z\"]]\n};\nvar faTachometerAlt = {\n prefix: 'fad',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67L305.65 154c-5.13 3.49-11 6-17.64 6a32 32 0 0 1 0-64zM96 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-160a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm246.77-72.41l-61.33 184A62.8 62.8 0 0 1 343.12 416H232.88a63.34 63.34 0 0 1 51-95.59l61.34-184a24 24 0 0 1 45.53 15.19zm14.66 57.2L421 162.24a31.54 31.54 0 0 1 11-2.24 32 32 0 0 1 0 64c-11.38 0-20.89-6.27-26.57-15.21zM480 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M283.9 320.41l61.34-184a24 24 0 0 1 45.53 15.19l-61.33 184a62.8 62.8 0 0 1 13.68 80.4H232.88a63.34 63.34 0 0 1 51-95.59z\"]]\n};\nvar faTachometerAltAverage = {\n prefix: 'fad',\n iconName: 'tachometer-alt-average',\n icon: [576, 512, [], \"f624\", [\"M288 32C128.94 32 0 160.94 0 320a286.44 286.44 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.44 286.44 0 0 0 576 320c0-159.06-128.94-288-288-288zM96 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-160a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm203.54 183a63 63 0 0 1-4.42 9H232.88A63.36 63.36 0 0 1 255 329.17a62.44 62.44 0 0 1 9-4.42V128a24 24 0 0 1 48 0v196.75A63.36 63.36 0 0 1 347.54 407zM400 192a32 32 0 1 1 32 32 32 32 0 0 1-32-32zm80 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M343.12 416H232.88A63.36 63.36 0 0 1 255 329.17a62.44 62.44 0 0 1 9-4.42V128a24 24 0 0 1 48 0v196.75A63.35 63.35 0 0 1 343.12 416z\"]]\n};\nvar faTachometerAltFast = {\n prefix: 'fad',\n iconName: 'tachometer-alt-fast',\n icon: [576, 512, [], \"f625\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm0 64a32 32 0 1 1-32 32 32 32 0 0 1 32-32zM96 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-160a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm199.12 192H232.88a63.33 63.33 0 0 1-8.88-32 64 64 0 0 1 64-64 63.14 63.14 0 0 1 16.24 2.34L412.8 177.59a24 24 0 1 1 38.41 28.81L342.65 351.14a62.26 62.26 0 0 1 .47 64.86zM480 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M288 320a63.14 63.14 0 0 1 16.24 2.34L412.8 177.59a24 24 0 1 1 38.41 28.81L342.65 351.14a62.26 62.26 0 0 1 .47 64.86H232.88a63.33 63.33 0 0 1-8.88-32 64 64 0 0 1 64-64z\"]]\n};\nvar faTachometerAltFastest = {\n prefix: 'fad',\n iconName: 'tachometer-alt-fastest',\n icon: [576, 512, [], \"f626\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm144 128a32 32 0 1 1-32 32 32 32 0 0 1 32-32zM288 96a32 32 0 1 1-32 32 32 32 0 0 1 32-32zM96 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-160a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm340 151.67L350 398a66 66 0 0 1-6.9 18H232.88a63.33 63.33 0 0 1-8.88-32 63.85 63.85 0 0 1 118.37-33.39l133.68-22.28a24 24 0 0 1 7.9 47.34z\", \"M288 320a63.78 63.78 0 0 1 54.37 30.61l133.68-22.28a24 24 0 0 1 7.9 47.34L350 398a66 66 0 0 1-6.9 18H232.88a63.33 63.33 0 0 1-8.88-32 64 64 0 0 1 64-64z\"]]\n};\nvar faTachometerAltSlow = {\n prefix: 'fad',\n iconName: 'tachometer-alt-slow',\n icon: [576, 512, [], \"f627\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm0 64a32 32 0 1 1-32 32 32 32 0 0 1 32-32zM96 384a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm247.12 32H232.88a62.26 62.26 0 0 1 .47-64.86L124.8 206.41a24 24 0 0 1 38.41-28.81l108.56 144.74A63.5 63.5 0 0 1 343.12 416zM400 192a32 32 0 1 1 32 32 32 32 0 0 1-32-32zm80 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M343.12 416H232.88a62.26 62.26 0 0 1 .47-64.86L124.8 206.41a24 24 0 0 1 38.41-28.81l108.56 144.74A63.5 63.5 0 0 1 343.12 416z\"]]\n};\nvar faTachometerAltSlowest = {\n prefix: 'fad',\n iconName: 'tachometer-alt-slowest',\n icon: [576, 512, [], \"f628\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm0 64a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm-144 64a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm199.12 256H232.88a65.78 65.78 0 0 1-6.9-18L92.05 375.67a24 24 0 0 1 7.9-47.34l133.68 22.28A63.77 63.77 0 0 1 343.12 416zM400 192a32 32 0 1 1 32 32 32 32 0 0 1-32-32zm80 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M72.33 348.05A24 24 0 0 1 100 328.33l133.68 22.28A63.77 63.77 0 0 1 343.12 416H232.88a65.78 65.78 0 0 1-6.9-18L92.05 375.67a24 24 0 0 1-19.72-27.62z\"]]\n};\nvar faTachometerAverage = {\n prefix: 'fad',\n iconName: 'tachometer-average',\n icon: [576, 512, [], \"f629\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm55.12 384H232.88A63.36 63.36 0 0 1 264 324.75V128a24 24 0 0 1 48 0v196.75A63.36 63.36 0 0 1 343.12 416z\", \"M264 324.75V128a24 24 0 0 1 48 0v196.75A63.36 63.36 0 0 1 343.12 416H232.88A63.36 63.36 0 0 1 264 324.75z\"]]\n};\nvar faTachometerFast = {\n prefix: 'fad',\n iconName: 'tachometer-fast',\n icon: [576, 512, [], \"f62a\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm163.2 174.41L342.65 351.14a62.26 62.26 0 0 1 .47 64.86H232.88a63.33 63.33 0 0 1-8.88-32 64 64 0 0 1 64-64 63.14 63.14 0 0 1 16.24 2.34L412.8 177.59a24 24 0 1 1 38.4 28.82z\", \"M288 320a63.14 63.14 0 0 1 16.24 2.34L412.8 177.59a24 24 0 1 1 38.4 28.82L342.65 351.14a62.26 62.26 0 0 1 .47 64.86H232.88a63.33 63.33 0 0 1-8.88-32 64 64 0 0 1 64-64z\"]]\n};\nvar faTachometerFastest = {\n prefix: 'fad',\n iconName: 'tachometer-fastest',\n icon: [576, 512, [], \"f62b\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm196 343.67L350 398a66 66 0 0 1-6.9 18H232.88a63.33 63.33 0 0 1-8.88-32 63.85 63.85 0 0 1 118.37-33.39l133.68-22.28a24 24 0 0 1 7.9 47.34z\", \"M484 375.67L350 398a66 66 0 0 1-6.9 18H232.88a63.33 63.33 0 0 1-8.88-32 63.85 63.85 0 0 1 118.37-33.39l133.68-22.28a24 24 0 0 1 7.9 47.34z\"]]\n};\nvar faTachometerSlow = {\n prefix: 'fad',\n iconName: 'tachometer-slow',\n icon: [576, 512, [], \"f62c\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm55.12 384H232.88a62.26 62.26 0 0 1 .47-64.86L124.8 206.41a24 24 0 0 1 38.41-28.81l108.56 144.74A63.5 63.5 0 0 1 343.12 416z\", \"M343.12 416H232.88a62.26 62.26 0 0 1 .47-64.86L124.8 206.41a24 24 0 0 1 38.41-28.81l108.56 144.74A63.5 63.5 0 0 1 343.12 416z\"]]\n};\nvar faTachometerSlowest = {\n prefix: 'fad',\n iconName: 'tachometer-slowest',\n icon: [576, 512, [], \"f62d\", [\"M288 32C128.94 32 0 160.94 0 320a286.5 286.5 0 0 0 39.06 144.8c5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2A286.5 286.5 0 0 0 576 320c0-159.06-128.94-288-288-288zm55.12 384H232.88a65.78 65.78 0 0 1-6.9-18L92.05 375.67a24 24 0 0 1 7.9-47.34l133.68 22.28A63.77 63.77 0 0 1 343.12 416z\", \"M343.12 416H232.88a65.78 65.78 0 0 1-6.9-18L92.05 375.67a24 24 0 0 1 7.9-47.34l133.68 22.28A63.77 63.77 0 0 1 343.12 416z\"]]\n};\nvar faTaco = {\n prefix: 'fad',\n iconName: 'taco',\n icon: [512, 512, [], \"f826\", [\"M256 192C125.82 192 18.14 299.4.32 439.08-2.43 460.66 13 480 32.56 480h446.88c19.56 0 35-19.34 32.24-40.92C493.86 299.4 386.18 192 256 192zM112 416a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm64-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M112 384a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm332.91-95.71c-7.15-19.06-24.76-29.36-40.31-38.46-9.49-5.54-19.32-11.29-23.71-17.53-4.74-6.69-7.33-18.51-9.83-30-3.95-18.08-8.44-38.58-23.64-50.64-15.69-12.45-36-11-54-9.81-10.79.76-22 1.5-29.18-1.1-6.93-2.51-15.12-10.14-23-17.51-29.05-27.07-50.66-44.51-98.38-.05-7.92 7.37-16.11 15-23 17.51-7.22 2.6-18.39 1.86-29.18 1.1-18-1.24-38.32-2.64-54 9.81C85.48 99.67 81 120.17 77 138.25c-2.5 11.46-5.09 23.28-9.83 30-4.39 6.24-14.22 12-23.71 17.53-15.46 9.1-33.12 19.39-40.27 38.46-6.81 18.08-1 37.7 4.16 55a.21.21 0 0 0 0 .24 129.48 129.48 0 0 1 4.53 28.14C64 218.51 154.91 160 256 160s192 58.52 244.14 147.64a127.84 127.84 0 0 1 4.53-28.09.79.79 0 0 1 .08-.26c5.14-17.29 11-36.94 4.16-55z\"]]\n};\nvar faTag = {\n prefix: 'fad',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", [\"M497.94 225.94L286.06 14.06A48 48 0 0 0 252.12 0H48A48 48 0 0 0 0 48v204.12a48 48 0 0 0 14.06 33.94l211.88 211.88a48 48 0 0 0 67.88 0l204.12-204.12a48 48 0 0 0 0-67.88zM112 160a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\", \"\"]]\n};\nvar faTags = {\n prefix: 'fad',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", [\"M497.94 225.94L286.06 14.06A48 48 0 0 0 252.12 0H48A48 48 0 0 0 0 48v204.12a48 48 0 0 0 14.06 33.94l211.88 211.88a48 48 0 0 0 67.88 0l204.12-204.12a48 48 0 0 0 0-67.88zM112 160a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\", \"M625.94 293.82L421.82 497.94a48 48 0 0 1-67.88 0l-.36-.36 174.06-174.06a90 90 0 0 0 0-127.28L331.4 0h48.72a48 48 0 0 1 33.94 14.06l211.88 211.88a48 48 0 0 1 0 67.88z\"]]\n};\nvar faTally = {\n prefix: 'fad',\n iconName: 'tally',\n icon: [640, 512, [], \"f69c\", [\"M224 253.44V48a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v184.73zm-64 20.71V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v246.86zm256-82.85V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v164zm128-41.42V48a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v122.59zM224 320.7V464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V300zm256-82.85V464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V217.14zM96 362.12V464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V341.41zm256-82.85V464a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V258.56z\", \"M639.21 169.49a16 16 0 0 1-10.27 20.16L30.84 383.21a16 16 0 0 1-20.16-10.27L.79 342.51a16 16 0 0 1 10.27-20.16l598.1-193.56a16 16 0 0 1 20.16 10.27z\"]]\n};\nvar faTanakh = {\n prefix: 'fad',\n iconName: 'tanakh',\n icon: [448, 512, [], \"f827\", [\"M32.14 448c2.29-15.62 2.46-47.76.53-64H352c16 0 32 12.8 32 32s-12.8 32-32 32z\", \"M224 87.38l-16.78 28.06h33.58zm-59.11 52.06H130l17.47 29.17zm153.11 0h-34.9l17.48 29.19zM130 244.56h34.9l-17.48-29.19zM352 0H32A32 32 0 0 0 0 32v328a24 24 0 0 0 24 24h328c16 0 32 12.8 32 32s-12.8 32-32 32H24a24 24 0 0 0-24 24v16a24 24 0 0 0 24 24h328a96 96 0 0 0 96-96V96a96 96 0 0 0-96-96zm-9.41 258.43a20.12 20.12 0 0 1-17.5 10.15h-56.3L241.2 314.7a20 20 0 0 1-17.2 9.82 19.66 19.66 0 0 1-17-9.68l-27.7-46.28h-56.39a20 20 0 0 1-17.14-30.29L133.43 192l-27.79-46.43a19.6 19.6 0 0 1-.23-20 20.12 20.12 0 0 1 17.5-10.15h56.3L206.8 69.3a20 20 0 0 1 17.25-9.82 19.67 19.67 0 0 1 17 9.68l27.7 46.28h56.36a20 20 0 0 1 17.14 30.29L314.57 192l27.79 46.43a19.59 19.59 0 0 1 .23 20zm-118.54 38.2l16.78-28.07h-33.58zm59.09-52.07h34.91l-17.47-29.17zm-28-105.14h-62.3L161.41 192l31.47 52.56h62.3L286.59 192z\"]]\n};\nvar faTape = {\n prefix: 'fad',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", [\"M624 416H380.6A223.47 223.47 0 0 0 448 256c0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-400-64a96 96 0 1 1 96-96 96 96 0 0 1-96 96z\", \"M288 256a64 64 0 1 1-64-64 64.06 64.06 0 0 1 64 64z\"]]\n};\nvar faTasks = {\n prefix: 'fad',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", [\"M496 384H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96z\"]]\n};\nvar faTasksAlt = {\n prefix: 'fad',\n iconName: 'tasks-alt',\n icon: [512, 512, [], \"f828\", [\"M488.12 352H23.94A23.94 23.94 0 0 0 0 375.88V456a23.94 23.94 0 0 0 23.88 24h464.18A23.94 23.94 0 0 0 512 456.12V376a23.94 23.94 0 0 0-23.88-24zM464 432H48v-32h416zm24.12-240H23.94A23.94 23.94 0 0 0 0 215.88V296a23.94 23.94 0 0 0 23.88 24h464.18A23.94 23.94 0 0 0 512 296.12V216a23.94 23.94 0 0 0-23.88-24zM464 272H48v-32h416zm24.12-240H23.94A23.94 23.94 0 0 0 0 55.88V136a23.94 23.94 0 0 0 23.88 24h464.18A23.94 23.94 0 0 0 512 136.12V56a23.94 23.94 0 0 0-23.88-24zM464 112H48V80h416z\", \"M48 80v32h304V80zm112 160H48v32h112zM48 432h240v-32H48z\"]]\n};\nvar faTaxi = {\n prefix: 'fad',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", [\"M352 64a32 32 0 0 0-32-32H192a32 32 0 0 0-32 32v32h192zM96 368H64a32 32 0 0 0-32 32v48a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-48a32 32 0 0 0-32-32zm352 0h-32a32 32 0 0 0-32 32v48a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32v-48a32 32 0 0 0-32-32zm-69.94-195.14c-2-7.38-9.38-12.86-14.85-12.86h-214.4c-5.47 0-12.83 5.48-15.06 13.64L116.55 240h278.9z\", \"M462 241.55l-22-84.75c-9.6-35.2-41.6-60.8-76.8-60.8H148.8c-35.2 0-67.2 25.6-76.8 60.8l-22 84.75A64 64 0 0 0 0 304v48a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64v-48a64 64 0 0 0-50-62.45zm-328.25-67.91c2.25-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM96 352a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm320 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faTeeth = {\n prefix: 'fad',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", [\"M144 288H80a16 16 0 0 0-16 16v64a48 48 0 0 0 96 0v-64a16 16 0 0 0-16-16zm-32-160a48 48 0 0 0-48 48v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a48 48 0 0 0-48-48zm176 160h-80a16 16 0 0 0-16 16v56a56 56 0 0 0 112 0v-56a16 16 0 0 0-16-16zM248 96a56 56 0 0 0-56 56v88a16 16 0 0 0 16 16h80a16 16 0 0 0 16-16v-88a56 56 0 0 0-56-56zm184 192h-80a16 16 0 0 0-16 16v56a56 56 0 0 0 112 0v-56a16 16 0 0 0-16-16zM392 96a56 56 0 0 0-56 56v88a16 16 0 0 0 16 16h80a16 16 0 0 0 16-16v-88a56 56 0 0 0-56-56zm168 192h-64a16 16 0 0 0-16 16v64a48 48 0 0 0 96 0v-64a16 16 0 0 0-16-16zm-32-160a48 48 0 0 0-48 48v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a48 48 0 0 0-48-48z\", \"M544 0H96A96 96 0 0 0 0 96v320a96 96 0 0 0 96 96h448a96 96 0 0 0 96-96V96a96 96 0 0 0-96-96zM160 368a48 48 0 0 1-96 0v-64a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-64a48 48 0 0 1 96 0zm144 120a56 56 0 0 1-112 0v-56a16 16 0 0 1 16-16h80a16 16 0 0 1 16 16zm0-120a16 16 0 0 1-16 16h-80a16 16 0 0 1-16-16v-88a56 56 0 0 1 112 0zm144 120a56 56 0 0 1-112 0v-56a16 16 0 0 1 16-16h80a16 16 0 0 1 16 16zm0-120a16 16 0 0 1-16 16h-80a16 16 0 0 1-16-16v-88a56 56 0 0 1 112 0zm128 128a48 48 0 0 1-96 0v-64a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16v-64a48 48 0 0 1 96 0z\"]]\n};\nvar faTeethOpen = {\n prefix: 'fad',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", [\"M112 96a48 48 0 0 0-48 48v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a48 48 0 0 0-48-48zm136-32a56 56 0 0 0-56 56v56a16 16 0 0 0 16 16h80a16 16 0 0 0 16-16v-56a56 56 0 0 0-56-56zm144 0a56 56 0 0 0-56 56v56a16 16 0 0 0 16 16h80a16 16 0 0 0 16-16v-56a56 56 0 0 0-56-56zm136 32a48 48 0 0 0-48 48v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a48 48 0 0 0-48-48zM144 352H80a16 16 0 0 0-16 16v32a48 48 0 0 0 96 0v-32a16 16 0 0 0-16-16zm144 0h-80a16 16 0 0 0-16 16v24a56 56 0 0 0 112 0v-24a16 16 0 0 0-16-16zm144 0h-80a16 16 0 0 0-16 16v24a56 56 0 0 0 112 0v-24a16 16 0 0 0-16-16zm128 0h-64a16 16 0 0 0-16 16v32a48 48 0 0 0 96 0v-32a16 16 0 0 0-16-16z\", \"M576 320H64a64 64 0 0 0-64 64v32a96 96 0 0 0 96 96h448a96 96 0 0 0 96-96v-32a64 64 0 0 0-64-64zm-416 80a48 48 0 0 1-96 0v-32a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16zm144-8a56 56 0 0 1-112 0v-24a16 16 0 0 1 16-16h80a16 16 0 0 1 16 16zm144 0a56 56 0 0 1-112 0v-24a16 16 0 0 1 16-16h80a16 16 0 0 1 16 16zm128 8a48 48 0 0 1-96 0v-32a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16zM544 0H96A96 96 0 0 0 0 96v64a64 64 0 0 0 64 64h512a64 64 0 0 0 64-64V96a96 96 0 0 0-96-96zM160 176a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-32a48 48 0 0 1 96 0zm144 0a16 16 0 0 1-16 16h-80a16 16 0 0 1-16-16v-56a56 56 0 0 1 112 0zm144 0a16 16 0 0 1-16 16h-80a16 16 0 0 1-16-16v-56a56 56 0 0 1 112 0zm128 0a16 16 0 0 1-16 16h-64a16 16 0 0 1-16-16v-32a48 48 0 0 1 96 0z\"]]\n};\nvar faTelescope = {\n prefix: 'fad',\n iconName: 'telescope',\n icon: [640, 512, [], \"e03e\", [\"M263.3594,347.79914,136.3008,391.44163c-8.7539,3.00781-18.05078-.69335-21.26953-8.46678l-8.74219-21.10738L42.17971,388.42211A15.99837,15.99837,0,0,1,21.27737,379.762L1.21877,331.34018a16.00653,16.00653,0,0,1,8.66406-20.90425L73.9844,283.88129,65.24221,262.772c-3.21875-7.77342.73828-16.96481,9.05469-21.02925L380.4219,92.1336l78.125,188.62074-66.60157,22.87691a71.98089,71.98089,0,0,0-143.96093.36914A71.08619,71.08619,0,0,0,263.3594,347.79914Z\", \"M638.77737,216.83064,553.06252,9.88181a15.99836,15.99836,0,0,0-20.90234-8.66014L414.84377,49.81923a15.99639,15.99639,0,0,0-8.65625,20.90426l85.71094,206.94883a16.00274,16.00274,0,0,0,20.90625,8.66014l117.3125-48.59757A15.99819,15.99819,0,0,0,638.77737,216.83064ZM376.13283,348.50812a71.27481,71.27481,0,0,0,15.85157-44.50773,72,72,0,0,0-144,0,71.27859,71.27859,0,0,0,15.87109,44.53507l-47.46484,142.404A16.00061,16.00061,0,0,0,231.57033,512h16.85938a16.00416,16.00416,0,0,0,15.17969-10.94139l42.16406-126.49585a71.05048,71.05048,0,0,0,28.44922-.002l42.168,126.4978A16.00046,16.00046,0,0,0,391.57033,512h16.85938a16.00062,16.00062,0,0,0,15.17969-21.06051ZM319.9844,328.00035a24,24,0,1,1,24-24A24.03627,24.03627,0,0,1,319.9844,328.00035Z\"]]\n};\nvar faTemperatureDown = {\n prefix: 'fad',\n iconName: 'temperature-down',\n icon: [512, 512, [], \"e03f\", [\"M256,278.5V112a112,112,0,0,0-224,0V278.5C12.3,303.19,0,334,0,368a144,144,0,0,0,288,0C288,334,275.7,303.09,256,278.5ZM144,448A79.87,79.87,0,0,1,96,304.19V112a48,48,0,0,1,96,0V304.19A79.87,79.87,0,0,1,144,448Z\", \"M160,322.91V304a16,16,0,0,0-32,0v18.91a48,48,0,1,0,32,0ZM496,352H448V48a16,16,0,0,0-16-16H400a16,16,0,0,0-16,16V352H336c-14.2,0-21.39,17.25-11.31,27.31l80,96a16,16,0,0,0,22.62,0l80-96C517.34,369.25,510.22,352,496,352Z\"]]\n};\nvar faTemperatureFrigid = {\n prefix: 'fad',\n iconName: 'temperature-frigid',\n icon: [576, 512, [], \"f768\", [\"M544.06 278.5V112a112 112 0 1 0-224 0v166.5c-19.7 24.6-32 55.5-32 89.5a144 144 0 1 0 288 0c0-34-12.3-64.9-32-89.5zm-112 169.5a79.87 79.87 0 0 1-48-143.8V112a48 48 0 1 1 96 0v192.2a79.87 79.87 0 0 1-48 143.8z\", \"M200.06 125.2l40.2-40.2a12 12 0 0 0 0-17l-8.5-8.5a12 12 0 0 0-17 0l-14.7 14.8V44a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v30.3l-14.8-14.8a12 12 0 0 0-17 0l-8.5 8.5a12 12 0 0 0 0 17L152 125.2v56.9L101.66 153l-15-55.7a12.16 12.16 0 0 0-14.9-8.6l-11.7 3.2a12.16 12.16 0 0 0-8.6 14.9L57 127.2l-26.6-15.3a12.12 12.12 0 0 0-16.6 4.4l-12.1 21a12.12 12.12 0 0 0 4.4 16.6l26.6 15.3-20.4 5.5a12.16 12.16 0 0 0-8.6 14.9l3.1 11.7a12.16 12.16 0 0 0 14.9 8.6L77.36 195l50.2 29-50.2 29-55.7-15a12.21 12.21 0 0 0-14.9 8.6l-3.1 11.7a12.21 12.21 0 0 0 8.6 14.9l20.4 5.5-26.5 15.4a12.12 12.12 0 0 0-4.4 16.6l12.1 21a12.12 12.12 0 0 0 16.6 4.4l26.6-15.3-5.5 20.4a12.21 12.21 0 0 0 8.6 14.9l11.7 3.1a12.21 12.21 0 0 0 14.9-8.6l14.9-55.6 50.4-29.1v56.9l-40.2 40.2a12 12 0 0 0 0 17l8.5 8.5a12 12 0 0 0 17 0l14.8-14.8V404a12 12 0 0 0 12 12h24a12 12 0 0 0 12-12v-30.3L215 388.5a12 12 0 0 0 17 0l8.5-8.5a12 12 0 0 0 0-17l-40.4-40.2v-56.9l68.3 39.5a177 177 0 0 1 19.7-37.5v-7.2L224.66 224l63.4-36.6v-56.1l-88 50.8zm248 197.7V304a16 16 0 0 0-32 0v18.9a48 48 0 1 0 32 0z\"]]\n};\nvar faTemperatureHigh = {\n prefix: 'fad',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", [\"M256 278.5V112a112 112 0 0 0-224 0v166.5C12.3 303.2 0 334 0 368a144 144 0 0 0 288 0c0-34-12.3-64.9-32-89.5zM144 448a79.87 79.87 0 0 1-48-143.8V112a48 48 0 0 1 96 0v192.2A79.87 79.87 0 0 1 144 448z\", \"M416 0a96 96 0 1 0 96 96 96.15 96.15 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32zM160 322.9V112a16 16 0 0 0-32 0v210.9a48 48 0 1 0 32 0z\"]]\n};\nvar faTemperatureHot = {\n prefix: 'fad',\n iconName: 'temperature-hot',\n icon: [640, 512, [], \"f76a\", [\"M608 278.5V112C608 50.1 557.9 0 496 0S384 50.1 384 112v166.5c-19.7 24.6-32 55.5-32 89.5 0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5zM496 448c-44.1.1-79.9-35.6-80-79.7 0-25.2 11.8-48.9 32-64.1V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c35.3 26.4 42.5 76.5 16.1 111.8-15.2 20.2-38.9 32-64.1 32z\", \"M160 224c0 35.3 28.7 64 64 64s64-28.7 64-64-28.7-64-64-64-64 28.7-64 64zM237.6 8.4c-3.8-7.5-12.9-10.6-20.4-6.8-2.9 1.5-5.3 3.9-6.8 6.8L169 91.2 81.1 61.9c-8-2.6-16.6 1.8-19.2 9.8-1 3.1-1 6.4 0 9.4L91.2 169 8.4 210.4c-7.5 3.7-10.5 12.8-6.8 20.3 1.5 3 3.9 5.4 6.8 6.8L91.2 279l-29.3 87.9c-2.7 7.9 1.6 16.5 9.6 19.2 3.1 1 6.5 1 9.6 0l87.9-29.3 41.4 82.8c3.7 7.5 12.8 10.5 20.3 6.8 3-1.5 5.4-3.9 6.8-6.8l41.4-82.9 41.1 13.7c0-.8-.1-1.6-.1-2.5.1-35.9 11.3-70.8 32.1-100V112c0-16.9 3.5-33 8.9-48.1L279 91.2 237.6 8.4zm54.3 283.5c-37.5 37.4-98.3 37.4-135.8 0-37.5-37.4-37.4-98.4 0-135.8 37.5-37.5 98.3-37.5 135.8 0s37.5 98.3 0 135.8zm220.1 31V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-25 8.8-38.1 36.3-29.3 61.3s36.3 38.1 61.3 29.3 38.1-36.3 29.3-61.3c-4.9-13.7-15.6-24.5-29.3-29.3z\"]]\n};\nvar faTemperatureLow = {\n prefix: 'fad',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", [\"M256 278.5V112a112 112 0 0 0-224 0v166.5C12.3 303.2 0 334 0 368a144 144 0 0 0 288 0c0-34-12.3-64.9-32-89.5zM144 448a79.87 79.87 0 0 1-48-143.8V112a48 48 0 0 1 96 0v192.2A79.87 79.87 0 0 1 144 448z\", \"M416 0a96 96 0 1 0 96 96 96.15 96.15 0 0 0-96-96zm0 128a32 32 0 1 1 32-32 32 32 0 0 1-32 32zM160 322.9V304a16 16 0 0 0-32 0v18.9a48 48 0 1 0 32 0z\"]]\n};\nvar faTemperatureUp = {\n prefix: 'fad',\n iconName: 'temperature-up',\n icon: [512, 512, [], \"e040\", [\"M256,278.5V112a112,112,0,0,0-224,0V278.5C12.3,303.19,0,334,0,368a144,144,0,0,0,288,0C288,334,275.7,303.09,256,278.5ZM144,448A79.87,79.87,0,0,1,96,304.19V112a48,48,0,0,1,96,0V304.19A79.87,79.87,0,0,1,144,448Z\", \"M160,322.91V112a16,16,0,0,0-32,0V322.91a48,48,0,1,0,32,0ZM507.3,132.69l-80-96a16,16,0,0,0-22.63,0l-80,96C314.66,142.75,321.78,160,336,160h48V464a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V160h48C510.19,160,517.36,142.75,507.3,132.69Z\"]]\n};\nvar faTenge = {\n prefix: 'fad',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", [\"M372 160H12a12 12 0 0 0-12 12v56a12 12 0 0 0 12 12h140v228a12 12 0 0 0 12 12h56a12 12 0 0 0 12-12V240h140a12 12 0 0 0 12-12v-56a12 12 0 0 0-12-12z\", \"M372 32H12A12 12 0 0 0 0 44v56a12 12 0 0 0 12 12h360a12 12 0 0 0 12-12V44a12 12 0 0 0-12-12z\"]]\n};\nvar faTennisBall = {\n prefix: 'fad',\n iconName: 'tennis-ball',\n icon: [496, 512, [], \"f45e\", [\"M267,77.5c-.59-19.26,3-63.59,52.93-58.89A247.88,247.88,0,0,0,248,8c-3.61,0-7.19.09-10.76.25C224.55,26.92,218.1,51.32,219,79.1c2.2,71.2-69,149.7-147.9,147.8-27.88-1.19-52.18,5.45-70.85,18.24C.1,248.74,0,252.36,0,256a248.12,248.12,0,0,0,10.72,72.31C5.7,278,50.22,274.51,69.6,275c47.4,1.8,101.6-21.5,138.7-58.8C245.4,179.1,268.5,124.6,267,77.5ZM485.26,183.63c5,50.23-39.65,53.67-58.86,53.27-46.8-1.9-101.5,21.6-138.7,58.8S227.5,387.3,229,434.4c.59,19.39-3.13,63.72-53.34,58.87A248,248,0,0,0,248,504c3.57,0,7.12-.09,10.66-.24,12.79-18.67,19.24-43.08,18.34-70.86-2.4-77.5,76.4-150.5,147.9-147.9,27.83.9,52.27-5.57,70.86-18.31.15-3.54.24-7.11.24-10.69a247.87,247.87,0,0,0-10.74-72.37Z\", \"M424.9,285c-71.5-2.6-150.3,70.4-147.9,147.9.9,27.9-5.6,52.4-18.5,71.1,121-5.1,231.6-100.1,237.4-237.4C477.3,279.4,452.8,285.9,424.9,285ZM71.1,226.9C150,228.8,221.2,150.3,219,79.1c-.9-27.9,5.6-52.4,18.4-71.1C113.8,13.2,5.8,110.6,0,245.3c18.7-12.9,43.1-19.6,71.1-18.4Zm216.6,68.8c37.2-37.2,91.9-60.7,138.7-58.8,19.4.4,64.8-3.1,58.7-54.8A248.21,248.21,0,0,0,321.8,18.8c-51.7-6-55.4,39.2-54.8,58.7,1.5,47.1-21.6,101.6-58.7,138.7C171.2,253.5,117,276.8,69.6,275c-19.6-.5-64.9,3.1-58.7,55A247.64,247.64,0,0,0,174,493.1c51.8,6,55.6-39.1,55-58.7C227.5,387.3,250.6,332.8,287.7,295.7Z\"]]\n};\nvar faTerminal = {\n prefix: 'fad',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", [\"M640 421.34v32a24 24 0 0 1-24 24H312a24 24 0 0 1-24-24v-32a24 24 0 0 1 24-24h304a24 24 0 0 1 24 24z\", \"M29.7 464.66L7 442a24 24 0 0 1 0-33.9l154-154.76L7 98.6a24 24 0 0 1 0-33.9L29.7 42a24 24 0 0 1 33.94 0L258 236.37a24 24 0 0 1 0 33.94L63.64 464.66a24 24 0 0 1-33.94 0z\"]]\n};\nvar faText = {\n prefix: 'fad',\n iconName: 'text',\n icon: [448, 512, [], \"f893\", [\"M304 416a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H144a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16z\", \"M448 48v96a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32H264v304h-80V112H64v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16z\"]]\n};\nvar faTextHeight = {\n prefix: 'fad',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", [\"M320 48v96a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32h-56v304h40a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h40V112H64v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16z\", \"M571.31 395.31l-80 80a16 16 0 0 1-22.62 0l-80-80c-10-10-3-27.31 11.31-27.31h48V144h-48c-15.64 0-20.64-18-11.31-27.31l80-80a16 16 0 0 1 22.62 0l80 80c10 10 3 27.31-11.31 27.31h-48v224h48c15.64 0 20.64 18 11.31 27.31z\"]]\n};\nvar faTextSize = {\n prefix: 'fad',\n iconName: 'text-size',\n icon: [640, 512, [], \"f894\", [\"M320 240v64a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16h-56v128h24a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H96a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h24V288H64v16a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-64a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16z\", \"M640 48v96a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32h-88v304h40a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H368a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h40V112h-88v32a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h352a16 16 0 0 1 16 16z\"]]\n};\nvar faTextWidth = {\n prefix: 'fad',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", [\"M448 48v80a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16H264v112h24a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H160a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h24V112H64v16a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16z\", \"M443.31 372.69a16 16 0 0 1 0 22.62l-80 80c-10 10-27.31 3-27.31-11.31v-48H112v48c0 15.64-18 20.64-27.31 11.31l-80-80a16 16 0 0 1 0-22.62l80-80c10-10 27.31-3 27.31 11.31v48h224v-48c0-15.64 18-20.64 27.31-11.31z\"]]\n};\nvar faTh = {\n prefix: 'fad',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", [\"M306.67 352H205.33a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h101.34a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zM488 192H386.67a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24H488a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zM306.67 32H205.33a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h101.34a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24zM125.33 192H24a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h101.33a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24z\", \"M488 352H386.67a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24H488a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zM306.67 192H205.33a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h101.34a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zM488 32H386.67a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24H488a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24zm-362.67 0H24A24 24 0 0 0 0 56v80a24 24 0 0 0 24 24h101.33a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24zm0 320H24a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h101.33a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24z\"]]\n};\nvar faThLarge = {\n prefix: 'fad',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", [\"M488 272H296a24 24 0 0 0-24 24v160a24 24 0 0 0 24 24h192a24 24 0 0 0 24-24V296a24 24 0 0 0-24-24zm-272 0H24a24 24 0 0 0-24 24v160a24 24 0 0 0 24 24h192a24 24 0 0 0 24-24V296a24 24 0 0 0-24-24z\", \"M488 32H296a24 24 0 0 0-24 24v160a24 24 0 0 0 24 24h192a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24zm-272 0H24A24 24 0 0 0 0 56v160a24 24 0 0 0 24 24h192a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24z\"]]\n};\nvar faThList = {\n prefix: 'fad',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", [\"M488 352H205.33a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24H488a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zm0-320H205.33a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24H488a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24zm0 160H205.33a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24H488a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24z\", \"M125.33 192H24a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h101.33a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24zm0-160H24A24 24 0 0 0 0 56v80a24 24 0 0 0 24 24h101.33a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24zm0 320H24a24 24 0 0 0-24 24v80a24 24 0 0 0 24 24h101.33a24 24 0 0 0 24-24v-80a24 24 0 0 0-24-24z\"]]\n};\nvar faTheaterMasks = {\n prefix: 'fad',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", [\"M229.45 303.5l.46-2.61q-4.28.54-8.59 1.29c-40.27 7.08-73.4 26.26-92.56 50-4.21-49.87 31-95.87 82.8-105a102.8 102.8 0 0 1 28-1.07l10.23-57.89a43 43 0 0 1-25.11-31.69 42.49 42.49 0 0 1-.1-13 65.27 65.27 0 0 0 31.94 6.67l4.62-26.14c4.77-27.26 25.39-48.68 51.53-53.9l1.13-.21 1.28-.23h.13c3-.48 5.94-.92 8.92-1.34l1.75-.23c2.38-.32 4.76-.63 7.14-.91l2.57-.3q3.19-.36 6.39-.68l2.82-.26q3.18-.3 6.37-.55l2.59-.2c2.38-.17 4.76-.33 7.14-.46l1.71-.11q8.7-.47 17.39-.61l-.7-4c-4.93-28.09-26.7-50-54-54.34a453.62 453.62 0 0 0-292 51.33C9 70.46-3.89 98.44 1 126.54L32.82 306c15.39 87 156.86 151.86 219.9 140.79 8.52-1.5 17.93-4.81 27.77-9.6-34.29-39.84-58.83-89.61-51.04-133.69zM90.54 182.72a41.87 41.87 0 0 1-.09-13c11.64 6 26.73 8.33 42.5 5.56s29.15-10.12 38-19.71a42.58 42.58 0 0 1 4.38 12.26 43.06 43.06 0 0 1-84.82 14.92z\", \"M606.8 121.05a452.59 452.59 0 0 0-291.69-51.33c-27.28 4.36-49 26.25-53.94 54.34L229.45 303.5c-15.37 87 95.18 196.19 158.14 207.27S591.85 457 607.22 370L639 190.54c4.88-28.1-8-56.08-32.2-69.49zm-272.95 96.76a40 40 0 1 1 74.64 25.25c-8.24-8.9-20.65-15.74-35.28-18.31s-28.64-.4-39.44 5.17a39 39 0 0 1 .08-12.11zm70.36 198.68c-55.62-9.78-93.42-59.24-88.9-112.85 20.58 25.53 56.15 46.15 99.38 53.76s83.73.37 111.81-16.6c-14.17 51.92-66.64 85.48-122.29 75.69zm134.26-162.67a39.44 39.44 0 0 1-4.06 11.39c-8.24-8.9-20.66-15.74-35.3-18.31s-28.64-.4-39.43 5.17a39 39 0 0 1 .09-12.1 40 40 0 0 1 78.7 13.85z\"]]\n};\nvar faThermometer = {\n prefix: 'fad',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", [\"M484.05 162.6l-254.2 253.3H130l-89 89A24 24 0 0 1 7.05 471l89-89V281.1l45.34-45.64 50.06 50.14a8 8 0 0 0 11.3 0l11.3-11.3a8 8 0 0 0 0-11.3l-50.13-50.21 45.13-45.42 50.3 50.23a8 8 0 0 0 11.3 0L282 206.3a8 8 0 0 0 0-11.3l-50.3-50.37 45.1-45.4 50.4 50.47a8 8 0 0 0 11.3 0l11.3-11.3a8 8 0 0 0 0-11.3l-50.5-50.51 45.7-46c36.4-36.5 94.4-40.9 131.9-10.2C526.25 61.1 519 127.7 484.05 162.6z\", \"M214.05 263a8 8 0 0 1 0 11.3l-11.3 11.3a8 8 0 0 1-11.3 0l-50.06-50.14 22.53-22.67zm62.7-163.77l50.4 50.47a8 8 0 0 0 11.3 0l11.3-11.3a8 8 0 0 0 0-11.3l-50.5-50.51zm-6.1 118.37L282 206.3a8 8 0 0 0 0-11.3l-50.3-50.37-22.6 22.74 50.3 50.23a8 8 0 0 0 11.25 0z\"]]\n};\nvar faThermometerEmpty = {\n prefix: 'fad',\n iconName: 'thermometer-empty',\n icon: [320, 512, [], \"f2cb\", [\"M272 278.5V112a112 112 0 0 0-224 0v166.5C28.3 303.2 16 334 16 368a144 144 0 0 0 288 0c0-34-12.3-64.9-32-89.5zM160 448a79.87 79.87 0 0 1-48-143.8V112a48 48 0 0 1 96 0v192.2A79.87 79.87 0 0 1 160 448z\", \"M208 368a48 48 0 1 1-48-48 48 48 0 0 1 48 48z\"]]\n};\nvar faThermometerFull = {\n prefix: 'fad',\n iconName: 'thermometer-full',\n icon: [320, 512, [], \"f2c7\", [\"M272 278.5V112a112 112 0 0 0-224 0v166.5C28.3 303.2 16 334 16 368a144 144 0 0 0 288 0c0-34-12.3-64.9-32-89.5zM160 448a79.87 79.87 0 0 1-48-143.8V112a48 48 0 0 1 96 0v192.2A79.87 79.87 0 0 1 160 448z\", \"M208 368a48 48 0 1 1-64-45.1V112a16 16 0 0 1 32 0v210.9a47.87 47.87 0 0 1 32 45.1z\"]]\n};\nvar faThermometerHalf = {\n prefix: 'fad',\n iconName: 'thermometer-half',\n icon: [320, 512, [], \"f2c9\", [\"M272 278.5V112a112 112 0 0 0-224 0v166.5C28.3 303.2 16 334 16 368a144 144 0 0 0 288 0c0-34-12.3-64.9-32-89.5zM160 448a79.87 79.87 0 0 1-48-143.8V112a48 48 0 0 1 96 0v192.2A79.87 79.87 0 0 1 160 448z\", \"M208 368a48 48 0 1 1-64-45.1V208a16 16 0 0 1 32 0v114.9a47.87 47.87 0 0 1 32 45.1z\"]]\n};\nvar faThermometerQuarter = {\n prefix: 'fad',\n iconName: 'thermometer-quarter',\n icon: [320, 512, [], \"f2ca\", [\"M272 278.5V112a112 112 0 0 0-224 0v166.5C28.3 303.2 16 334 16 368a144 144 0 0 0 288 0c0-34-12.3-64.9-32-89.5zM160 448a79.87 79.87 0 0 1-48-143.8V112a48 48 0 0 1 96 0v192.2A79.87 79.87 0 0 1 160 448z\", \"M208 368a48 48 0 1 1-64-45.1V272a16 16 0 0 1 32 0v50.9a47.87 47.87 0 0 1 32 45.1z\"]]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fad',\n iconName: 'thermometer-three-quarters',\n icon: [320, 512, [], \"f2c8\", [\"M272 278.5V112a112 112 0 0 0-224 0v166.5C28.3 303.2 16 334 16 368a144 144 0 0 0 288 0c0-34-12.3-64.9-32-89.5zM160 448a79.87 79.87 0 0 1-48-143.8V112a48 48 0 0 1 96 0v192.2A79.87 79.87 0 0 1 160 448z\", \"M208 368a48 48 0 1 1-64-45.1V144a16 16 0 0 1 32 0v178.9a47.87 47.87 0 0 1 32 45.1z\"]]\n};\nvar faTheta = {\n prefix: 'fad',\n iconName: 'theta',\n icon: [384, 512, [], \"f69e\", [\"M288 256a229.75 229.75 0 0 1-4.92 48H100.92a236.61 236.61 0 0 1 0-96h182.16a229.75 229.75 0 0 1 4.92 48z\", \"M192 104c27.82 0 48.24 18.83 60.46 34.62 10.67 13.78 19.18 30.4 25.3 49.4A221.26 221.26 0 0 1 288 256a221.26 221.26 0 0 1-10.24 68c-6.12 19-14.63 35.62-25.3 49.4C240.24 389.17 219.82 408 192 408s-48.24-18.83-60.46-34.62c-10.67-13.78-19.18-30.4-25.3-49.4A221.26 221.26 0 0 1 96 256a221.26 221.26 0 0 1 10.24-68c6.12-19 14.63-35.62 25.3-49.4C143.76 122.83 164.18 104 192 104m0-96C84.34 8 0 116.94 0 256s84.34 248 192 248 192-108.94 192-248S299.66 8 192 8z\"]]\n};\nvar faThumbsDown = {\n prefix: 'fad',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", [\"M512 277.9c-.16 30.35-26.16 58.1-59.55 58.1H350.72C358 364.34 384 388.13 384 430.55 384 504 336 512 312 512c-20.18 0-29.48-39.29-33.93-57.79-5.21-21.67-10.59-44.07-25.39-58.91-32.47-32.52-49.51-74-89.12-113.11a12 12 0 0 1-3.56-8.52V59.9a12 12 0 0 1 11.78-12c15.83-.29 36.7-9.08 52.66-16.17C256.19 17.6 295.71 0 344 0h2.85c42.78 0 93.36.41 113.77 29.74 8.39 12.05 10.45 27 6.15 44.63 16.31 17 25.06 48.86 16.38 74.76 17.55 23.43 19.15 56.13 9.31 79.46l.11.12C504.45 240.65 512.08 260 512 277.9z\", \"M104 32H24A24 24 0 0 0 0 56v240a24 24 0 0 0 24 24h80a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24zM64 280a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faThumbsUp = {\n prefix: 'fad',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", [\"M163.56 229.81c39.61-39.15 56.65-80.59 89.12-113.11 14.8-14.84 20.18-37.24 25.39-58.91C282.52 39.29 291.82 0 312 0c24 0 72 8 72 81.45 0 42.42-26 66.21-33.28 94.55h101.73c33.39 0 59.39 27.75 59.55 58.1.08 17.94-7.55 37.25-19.44 49.19l-.11.12c9.84 23.33 8.24 56-9.31 79.46 8.68 25.9-.07 57.71-16.38 74.76 4.3 17.6 2.24 32.58-6.15 44.63C440.2 511.59 389.62 512 346.84 512H344c-48.28 0-87.8-17.6-119.56-31.73-16-7.09-36.82-15.88-52.65-16.17a12 12 0 0 1-11.78-12V238.33a12 12 0 0 1 3.55-8.52z\", \"M104 224H24a24 24 0 0 0-24 24v240a24 24 0 0 0 24 24h80a24 24 0 0 0 24-24V248a24 24 0 0 0-24-24zM64 472a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faThumbtack = {\n prefix: 'fad',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", [\"M384 328a24 24 0 0 1-24 24H224V208a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v144H24a24 24 0 0 1-24-24c0-50.74 37.47-91.18 86-113.73L98.21 96H56a24 24 0 0 1-24-24V24A24 24 0 0 1 56 0h272a24 24 0 0 1 24 24v48a24 24 0 0 1-24 24h-42.21L298 214.27c48 22.31 86 62.55 86 113.73z\", \"M224 208v248a8 8 0 0 1-.84 3.57l-24 48a8 8 0 0 1-14.32 0l-24-48A8 8 0 0 1 160 456V208a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16z\"]]\n};\nvar faThunderstorm = {\n prefix: 'fad',\n iconName: 'thunderstorm',\n icon: [512, 512, [], \"f76c\", [\"M350 310.5l-98 194a15 15 0 0 1-27.6-11L256 352h-81a15 15 0 0 1-14.9-17l16-130a15.08 15.08 0 0 1 14.9-13h82a15 15 0 0 1 14.5 18.9L264.92 288H337a15 15 0 0 1 13 22.5z\", \"M512 224a96 96 0 0 1-96 96h-30a46.78 46.78 0 0 0-45-60h-30.5l10.9-40.9A47 47 0 0 0 276 160h-85a47.1 47.1 0 0 0-46.6 40.8L128.5 320H96a96 96 0 0 1-96-96c0-42.5 27.8-78.2 66.1-90.8A113.72 113.72 0 0 1 64 112 111.94 111.94 0 0 1 176 0c43.3 0 80.4 24.8 99 60.8C289.7 43.3 311.4 32 336 32a80 80 0 0 1 80 80 78.09 78.09 0 0 1-1.6 16.2c.5 0 1-.2 1.6-.2a96 96 0 0 1 96 96z\"]]\n};\nvar faThunderstormMoon = {\n prefix: 'fad',\n iconName: 'thunderstorm-moon',\n icon: [576, 512, [], \"f76d\", [\"M567.94 223.8c-70.4 13.3-135-40.3-135-110.8a112.62 112.62 0 0 1 57.5-98.1 6.74 6.74 0 0 0-2.1-12.5 146.75 146.75 0 0 0-26.5-2.4c-77.91 0-141.11 61.2-144.41 137.9a111.46 111.46 0 0 1 58.9 61.7 111.82 111.82 0 0 1 70.21 86.8c5.1.5 10 1.5 15.2 1.5a145 145 0 0 0 112.6-53.3c4.2-4.8-.2-12-6.4-10.8zM276 336h-57.68l17.3-64.9A12 12 0 0 0 224 256h-68a12.06 12.06 0 0 0-11.9 10.4l-16 120A12 12 0 0 0 140 400h59.3l-23 97.2a12 12 0 0 0 22.1 8.8l88-152a12 12 0 0 0-10.4-18z\", \"M350.58 225.5A79.91 79.91 0 0 1 336 384h-30l8.11-14A44 44 0 0 0 276 304h-16l6.6-24.7a44 44 0 0 0-42.55-55.3H156a44.26 44.26 0 0 0-43.71 38.2l-16 120a10.82 10.82 0 0 1 0 1.8H80a80 80 0 0 1-15.8-158.4c0-.5-.2-1.1-.2-1.6a95.85 95.85 0 0 1 173.74-56 79 79 0 0 1 34.31-8 80 80 0 0 1 78.51 65.5z\"]]\n};\nvar faThunderstormSun = {\n prefix: 'fad',\n iconName: 'thunderstorm-sun',\n icon: [576, 512, [], \"f76e\", [\"M322 96.2l8.9-26.7a13 13 0 0 0-16.5-16.4l-75.3 25.1-35.5-71a13 13 0 0 0-23.3 0l-35.5 71-75.3-25.1a13 13 0 0 0-16.4 16.5l25.1 75.3-71 35.5a13 13 0 0 0 0 23.3l71 35.5-25.1 75.3A13.06 13.06 0 0 0 69.6 331l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2a110.52 110.52 0 0 1 6.2-35.9 92.22 92.22 0 0 1-10.2-8.3 96.21 96.21 0 0 1 0-135.8c34.6-34.6 89.1-36.8 126.7-7.4A127.12 127.12 0 0 1 320 96c.7 0 1.3.2 2 .2zM128 192a63.4 63.4 0 0 0 21.1 47.1 112.14 112.14 0 0 1 44.8-37.2 127.52 127.52 0 0 1 31.9-64A63.13 63.13 0 0 0 192 128a64.06 64.06 0 0 0-64 64zm308 144h-57.7l17.3-64.9A12 12 0 0 0 384 256h-68a12.06 12.06 0 0 0-11.9 10.4l-16 120A12 12 0 0 0 300 400h59.3l-23 97.2a12 12 0 0 0 22.1 8.8l88-152a12 12 0 0 0-10.4-18z\", \"M510.58 225.5A79.91 79.91 0 0 1 496 384h-30l8.11-14A44 44 0 0 0 436 304h-16l6.6-24.7a44 44 0 0 0-42.55-55.3H316a44.26 44.26 0 0 0-43.71 38.2l-16 120a10.82 10.82 0 0 1 0 1.8H240a80 80 0 0 1-15.8-158.4c0-.5-.2-1.1-.2-1.6a95.85 95.85 0 0 1 173.74-56 79 79 0 0 1 34.31-8 80 80 0 0 1 78.51 65.5z\"]]\n};\nvar faTicket = {\n prefix: 'fad',\n iconName: 'ticket',\n icon: [576, 512, [], \"f145\", [\"M576 208v-96a48 48 0 0 0-48-48H48a48 48 0 0 0-48 48v96a48 48 0 0 1 0 96v96a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48v-96a48 48 0 0 1 0-96zM400 400a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M400 304a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0 64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0-224a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm0 96a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm0-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faTicketAlt = {\n prefix: 'fad',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", [\"M576 208v-96a48 48 0 0 0-48-48H48a48 48 0 0 0-48 48v96a48 48 0 0 1 0 96v96a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48v-96a48 48 0 0 1 0-96zm-96 176H96V128h384z\", \"M480 128v256H96V128z\"]]\n};\nvar faTilde = {\n prefix: 'fad',\n iconName: 'tilde',\n icon: [512, 512, [], \"f69f\", [\"M512 192v46.75c0 89-80.45 159.56-172.46 142.76-35.54-6.51-66.75-27.68-89.31-55.87l-66.52-83.15A49.25 49.25 0 0 0 96 273.25V321a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32v-40.92C0 202 58.67 132.75 136.64 128.25a144.69 144.69 0 0 1 122.05 54.27l69.59 87A49.26 49.26 0 0 0 416 238.75V192a32 32 0 0 1 32-32h32a32 32 0 0 1 32 32z\", \"\"]]\n};\nvar faTimes = {\n prefix: 'fad',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", [\"M9.21,356.07a31.46,31.46,0,0,0,0,44.48l22.24,22.24a31.46,31.46,0,0,0,44.48,0L176,322.72,109.28,256ZM342.79,111.45,320.55,89.21a31.46,31.46,0,0,0-44.48,0L176,189.28,242.72,256,342.79,155.93a31.46,31.46,0,0,0,0-44.48Z\", \"M342.79,356.07a31.46,31.46,0,0,1,0,44.48l-22.24,22.24a31.46,31.46,0,0,1-44.48,0L9.21,155.93a31.46,31.46,0,0,1,0-44.48L31.45,89.21a31.46,31.46,0,0,1,44.48,0Z\"]]\n};\nvar faTimesCircle = {\n prefix: 'fad',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", [\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1a12 12 0 0 1 0 17L338 377.6a12 12 0 0 1-17 0L256 312l-65.1 65.6a12 12 0 0 1-17 0L134.4 338a12 12 0 0 1 0-17l65.6-65-65.6-65.1a12 12 0 0 1 0-17l39.6-39.6a12 12 0 0 1 17 0l65 65.7 65.1-65.6a12 12 0 0 1 17 0l39.6 39.6a12 12 0 0 1 0 17L312 256z\", \"M377.6 321.1a12 12 0 0 1 0 17L338 377.6a12 12 0 0 1-17 0L256 312l-65.1 65.6a12 12 0 0 1-17 0L134.4 338a12 12 0 0 1 0-17l65.6-65-65.6-65.1a12 12 0 0 1 0-17l39.6-39.6a12 12 0 0 1 17 0l65 65.7 65.1-65.6a12 12 0 0 1 17 0l39.6 39.6a12 12 0 0 1 0 17L312 256z\"]]\n};\nvar faTimesHexagon = {\n prefix: 'fad',\n iconName: 'times-hexagon',\n icon: [576, 512, [], \"f2ee\", [\"M553.49 231.8l-112-192A48.14 48.14 0 0 0 400 16H176a48.07 48.07 0 0 0-41.49 23.8l-112 192a48.09 48.09 0 0 0 0 48.4l112 192A48.07 48.07 0 0 0 176 496h224a48.13 48.13 0 0 0 41.5-23.8l112-192a48.14 48.14 0 0 0 0-48.4zM409.6 321a12 12 0 0 1 0 17l-39.38 39.8a12 12 0 0 1-17 0l-65.1-65.1L223 377.8a12 12 0 0 1-17 0l-39.6-39.6a12 12 0 0 1 0-17l65.09-65.1-65.05-65.1a12 12 0 0 1 0-17l39.5-39.7a12 12 0 0 1 17 0L288 199.4l65-65a12 12 0 0 1 17 0l39.69 39.5a12 12 0 0 1 0 17L344.61 256z\", \"M409.6 321a12 12 0 0 1 0 17l-39.38 39.8a12 12 0 0 1-17 0l-65.1-65.1L223 377.8a12 12 0 0 1-17 0l-39.6-39.6a12 12 0 0 1 0-17l65.09-65.1-65.05-65.1a12 12 0 0 1 0-17l39.5-39.7a12 12 0 0 1 17 0L288 199.4l65-65a12 12 0 0 1 17 0l39.69 39.5a12 12 0 0 1 0 17L344.61 256z\"]]\n};\nvar faTimesOctagon = {\n prefix: 'fad',\n iconName: 'times-octagon',\n icon: [512, 512, [], \"f2f0\", [\"M497.9 150.5L361.4 14.1A48 48 0 0 0 327.5 0H184.4a48 48 0 0 0-33.9 14.1L14.1 150.6A48 48 0 0 0 0 184.5v143.1a48 48 0 0 0 14.1 33.9l136.5 136.4a48 48 0 0 0 33.9 14.1h143.1a48 48 0 0 0 33.9-14.1l136.4-136.5a48 48 0 0 0 14.1-33.9V184.4a48 48 0 0 0-14.1-33.9zM377.6 321a12 12 0 0 1 0 17l-39.4 39.8a12 12 0 0 1-17 0l-65.1-65.1-65.1 65.1a12 12 0 0 1-17 0l-39.6-39.6a12 12 0 0 1 0-17l65.1-65.1-65.1-65.1a12 12 0 0 1 0-17l39.5-39.7a12 12 0 0 1 17 0l65.1 65.1 65-65a12 12 0 0 1 17 0l39.7 39.5a12 12 0 0 1 0 17L312.6 256z\", \"M134.4 191a12 12 0 0 1 0-17l39.5-39.7a12 12 0 0 1 17 0l65.1 65.1 65-65a12 12 0 0 1 17 0l39.7 39.5a12 12 0 0 1 0 17L312.6 256l65 65a12 12 0 0 1 0 17l-39.4 39.8a12 12 0 0 1-17 0l-65.1-65.1-65.1 65.1a12 12 0 0 1-17 0l-39.6-39.6a12 12 0 0 1 0-17l65.1-65.1z\"]]\n};\nvar faTimesSquare = {\n prefix: 'fad',\n iconName: 'times-square',\n icon: [448, 512, [], \"f2d3\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-54.4 289.1a12 12 0 0 1 0 17L306 377.6a12 12 0 0 1-17 0L224 312l-65.1 65.6a12 12 0 0 1-17 0L102.4 338a12 12 0 0 1 0-17l65.6-65-65.6-65.1a12 12 0 0 1 0-17l39.6-39.6a12 12 0 0 1 17 0l65 65.7 65.1-65.6a12 12 0 0 1 17 0l39.6 39.6a12 12 0 0 1 0 17L280 256z\", \"M102.4 190.9a12 12 0 0 1 0-17l39.6-39.6a12 12 0 0 1 17 0l65 65.7 65.1-65.6a12 12 0 0 1 17 0l39.6 39.6a12 12 0 0 1 0 17L280 256l65.6 65.1a12 12 0 0 1 0 17L306 377.6a12 12 0 0 1-17 0L224 312l-65.1 65.6a12 12 0 0 1-17 0L102.4 338a12 12 0 0 1 0-17l65.6-65z\"]]\n};\nvar faTint = {\n prefix: 'fad',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", [\"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448A112.14 112.14 0 0 1 64 336a16 16 0 0 1 32 0 80.09 80.09 0 0 0 80 80 16 16 0 0 1 0 32z\", \"M176 448A112.14 112.14 0 0 1 64 336a16 16 0 0 1 32 0 80.09 80.09 0 0 0 80 80 16 16 0 0 1 0 32z\"]]\n};\nvar faTintSlash = {\n prefix: 'fad',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", [\"M162.72 255.78L436.4 467.3A174 174 0 0 1 320 512c-97.28 0-176-79.65-176-178.09 0-29.78 7.31-54.63 18.72-78.13zM495.2 351c.52-5.61.8-11.3.8-17 0-111.75-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.5 52.3-36.86 92-58.48 125.68z\", \"M636.64 480.55L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45z\"]]\n};\nvar faTire = {\n prefix: 'fad',\n iconName: 'tire',\n icon: [512, 512, [], \"f631\", [\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64zm0 48a143.36 143.36 0 0 1 64.08 15l-38.86 53.51a73.73 73.73 0 0 0-50.44 0L191.92 127A143.36 143.36 0 0 1 256 112zM113.52 277a145.25 145.25 0 0 1-1.52-21 143 143 0 0 1 41.13-100.75l38.75 53.34A79.28 79.28 0 0 0 176 256c0 .25.07.48.07.72zM232 398a144.57 144.57 0 0 1-103.68-75.29L191 302.36a79.77 79.77 0 0 0 41 29.57zm24-110a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm101.82 69.82A142.84 142.84 0 0 1 280 398v-66.07a79.77 79.77 0 0 0 41-29.57l62.68 20.36a144.24 144.24 0 0 1-25.86 35.1zm-21.89-101.09c0-.25.07-.48.07-.73a79.28 79.28 0 0 0-15.88-47.41l38.75-53.34A143 143 0 0 1 400 256a146.93 146.93 0 0 1-1.52 21.05z\", \"M256 224a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0-224C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm0 448c-105.87 0-192-86.13-192-192S150.13 64 256 64s192 86.13 192 192-86.13 192-192 192z\"]]\n};\nvar faTireFlat = {\n prefix: 'fad',\n iconName: 'tire-flat',\n icon: [512, 512, [], \"f632\", [\"M189.89 416a145.47 145.47 0 0 1-61.57-61.28L191 334.36a79.77 79.77 0 0 0 41 29.57V416h48v-52.07a79.77 79.77 0 0 0 41-29.57l62.68 20.36A145.47 145.47 0 0 1 322.11 416h77A191.26 191.26 0 0 0 448 288c0-106-86-192-192-192S64 182 64 288a191.26 191.26 0 0 0 48.91 128zM256 320a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm102.87-132.75A143 143 0 0 1 400 288a146.93 146.93 0 0 1-1.52 21.05l-62.55-20.32c0-.25.07-.48.07-.73a79.28 79.28 0 0 0-15.88-47.41zM256 144a143.36 143.36 0 0 1 64.08 15l-38.86 53.51a73.73 73.73 0 0 0-50.44 0L191.92 159A143.36 143.36 0 0 1 256 144zm-102.87 43.25l38.75 53.34A79.28 79.28 0 0 0 176 288c0 .25.07.48.07.72L113.52 309a145.25 145.25 0 0 1-1.52-21 143 143 0 0 1 41.13-100.75z\", \"M480 416h-2.61A253.53 253.53 0 0 0 512 288c0-141.38-114.62-256-256-256S0 146.62 0 288a253.53 253.53 0 0 0 34.61 128H32a32 32 0 0 0 0 64h448a32 32 0 0 0 0-64zm-81.3 0H113.3A191 191 0 0 1 64 288c0-105.87 86.13-192 192-192s192 86.13 192 192a191 191 0 0 1-49.3 128zM256 256a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faTirePressureWarning = {\n prefix: 'fad',\n iconName: 'tire-pressure-warning',\n icon: [512, 512, [], \"f633\", [\"M512 284.08c0 76.81-32.54 146.14-80 195.92v16a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16h-32v16a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16h-32v16a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16h-32v16a16 16 0 0 1-16 16H96a16 16 0 0 1-16-16v-16C32.54 430.22 0 360.89 0 284.08a286.45 286.45 0 0 1 37.5-142.53C53.67 113.26 64 80.62 64 46.09V17.14C64 7.67 71.16 0 80 0h32a16 16 0 0 1 16 16v48c0 32-15.23 74.85-34.93 109.31A223.34 223.34 0 0 0 64 284.08c0 41.12 12.75 82.49 35.8 118.12 5.72 8.84 16 13.79 26.48 13.79h259.44c10.53 0 20.76-4.94 26.48-13.79 23.05-35.63 35.8-77 35.8-118.12a223.37 223.37 0 0 0-29.06-110.77C399.23 138.85 384 96 384 64V16a16 16 0 0 1 16-16h32c8.84 0 16 7.67 16 17.14v29c0 34.52 10.33 67.17 26.5 95.45A286.51 286.51 0 0 1 512 284.08z\", \"M278.32 96h-44.64a16 16 0 0 0-15.92 17.59l12.8 128A16 16 0 0 0 246.48 256h19a16 16 0 0 0 15.92-14.41l12.8-128A16 16 0 0 0 278.32 96zM256 288a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]]\n};\nvar faTireRugged = {\n prefix: 'fad',\n iconName: 'tire-rugged',\n icon: [512, 512, [], \"f634\", [\"M256 128a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm-72 152a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm72 72a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-144a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm72 72a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M480 192h-9.4a222.73 222.73 0 0 0-17.53-42.56l6.58-6.58a32 32 0 0 0 0-45.25L414.4 52.35a32 32 0 0 0-45.25 0l-6.58 6.58A221.82 221.82 0 0 0 320 41.4V32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32v9.4a222.73 222.73 0 0 0-42.56 17.53l-6.58-6.58a32 32 0 0 0-45.25 0L52.35 97.61a32 32 0 0 0 0 45.25l6.58 6.58A222.64 222.64 0 0 0 41.4 192H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32h9.4a222.73 222.73 0 0 0 17.53 42.56l-6.58 6.58a32 32 0 0 0 0 45.25l45.25 45.27a32 32 0 0 0 45.25 0l6.58-6.58A221.82 221.82 0 0 0 192 470.61V480a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-9.4a222.73 222.73 0 0 0 42.56-17.53l6.58 6.58a32 32 0 0 0 45.25 0l45.25-45.26a32 32 0 0 0 0-45.25l-6.58-6.58A221.82 221.82 0 0 0 470.6 320h9.4a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zM256 384a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]]\n};\nvar faTired = {\n prefix: 'fad',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8ZM118.8,248.3,152.4,208l-33.6-40.3c-8.6-10.3,3.8-24.9,15.4-18l80,48a12,12,0,0,1,0,20.6l-80,48c-11.5,6.8-24-7.6-15.4-18ZM353.5,415.1C327.6,404,289.1,397.7,248,397.7s-79.6,6.3-105.5,17.4c-9.8,4.2-19.4-7-17.7-20.4C132.7,331.8,196.1,288,248,288s115.3,43.8,123.2,106.7C372.9,408.3,363.2,419.3,353.5,415.1Zm8.3-148.8-80-48a12.07,12.07,0,0,1,0-20.6l80-48c11.6-6.9,24,7.7,15.4,18L343.6,208l33.6,40.3c8.7,10.4-3.9,24.8-15.4,18Z\", \"M214.2,197.7l-80-48c-11.6-6.9-24,7.7-15.4,18L152.4,208l-33.6,40.3c-8.6,10.4,3.9,24.8,15.4,18l80-48a12,12,0,0,0,0-20.6Zm163,50.6L343.6,208l33.6-40.3c8.6-10.3-3.8-24.9-15.4-18l-80,48a12.07,12.07,0,0,0,0,20.6l80,48C373.3,273.1,385.9,258.7,377.2,248.3Z\"]]\n};\nvar faToggleOff = {\n prefix: 'fad',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", [\"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zM192 384a128 128 0 1 1 128-128 127.93 127.93 0 0 1-128 128z\", \"M192 384a128 128 0 1 1 128-128 127.93 127.93 0 0 1-128 128z\"]]\n};\nvar faToggleOn = {\n prefix: 'fad',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", [\"M384 384a128 128 0 1 1 128-128 127.93 127.93 0 0 1-128 128z\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320a128 128 0 1 1 128-128 127.93 127.93 0 0 1-128 128z\"]]\n};\nvar faToilet = {\n prefix: 'fad',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", [\"M368 0H16A16 16 0 0 0 0 16v16a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zM136 64H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8z\", \"M352 204.7V48H32v156.7C11.8 214.8 0 226.9 0 240a191.76 191.76 0 0 0 86.8 160.5l-21.4 70.2A32 32 0 0 0 96 512h192a32 32 0 0 0 30.6-41.3l-21.4-70.2A191.76 191.76 0 0 0 384 240c0-13.1-11.8-25.2-32-35.3zM80 72a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H88a8 8 0 0 1-8-8zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]]\n};\nvar faToiletPaper = {\n prefix: 'fad',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", [\"M128 0C75 0 32 86 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87A16 16 0 0 0 16 512h312.92a32 32 0 0 0 30.36-21.88c12.83-38.48 24.71-72.4 24.71-126V192C384 86 427 0 480 0zm-16 224a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm64 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm64 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm64 0a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M480 0c-53 0-96 86-96 192s43 192 96 192 96-86 96-192S533 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64zm-368-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]]\n};\nvar faToiletPaperAlt = {\n prefix: 'fad',\n iconName: 'toilet-paper-alt',\n icon: [576, 512, [], \"f71f\", [\"M480 0c-53 0-96 86-96 192v172.07c0 53.65-11.88 87.57-24.71 126.05A32 32 0 0 1 328.92 512H16A16 16 0 0 1 .82 490.94C22.19 426.84 32 405.19 32 364.07V192C32 86 75 0 128 0z\", \"M480 0c-53 0-96 86-96 192s43 192 96 192 96-86 96-192S533 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.34 64-32 64z\"]]\n};\nvar faToiletPaperSlash = {\n prefix: 'fad',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", [\"M160,0c-23.33,0-44.63,16.83-61.26,44.53L384,265V192c0-83.62,23.63-153.5,60.5-192ZM64,192V364.12c0,41.13-9.75,62.76-31.12,126.88A16,16,0,0,0,48,512H328.87a31.87,31.87,0,0,0,30.38-21.88c9.31-27.83,18-53.34,22.18-85.54L65.4,160.33C64.54,170.66,64,181.19,64,192ZM512,0c-53,0-96,86-96,192,0,42,7,80.4,18.43,112l97.42,75.29C575.29,360.91,608,284.32,608,192,608,86,565,0,512,0Zm0,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.62,32,64S529.63,256,512,256Z\", \"M6.18,53.91A16,16,0,0,1,3.37,31.46L23,6.19A16,16,0,0,1,45.46,3.38L633.82,458.1a16,16,0,0,1,2.81,22.45L617,505.82a16,16,0,0,1-22.45,2.81Z\"]]\n};\nvar faTombstone = {\n prefix: 'fad',\n iconName: 'tombstone',\n icon: [512, 512, [], \"f720\", [\"M448 192C448 86 362 0 256 0S64 86 64 192v224h384zm-96-8a16 16 0 0 1-16 16h-56v128a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16V200h-56a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h56v-48a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v48h56a16 16 0 0 1 16 16z\", \"M496 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176 200h56v128a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V200h56a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-56v-48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v48h-56a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\"]]\n};\nvar faTombstoneAlt = {\n prefix: 'fad',\n iconName: 'tombstone-alt',\n icon: [512, 512, [], \"f721\", [\"M448 192v224H64V192C64 86 150 0 256 0s192 86 192 192z\", \"M512 464v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16z\"]]\n};\nvar faToolbox = {\n prefix: 'fad',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", [\"M384 368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16H192v16a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-16H0v96a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-96H384zm118.63-153.37l-45.25-45.25a32 32 0 0 0-22.63-9.38H77.25a32 32 0 0 0-22.63 9.37L9.37 214.63A32 32 0 0 0 0 237.26V320h128v-16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v16h128v-16a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v16h128v-82.75a32 32 0 0 0-9.37-22.62z\", \"M336 32H176a48 48 0 0 0-48 48v80h64V96h128v64h64V80a48 48 0 0 0-48-48zM176 288h-32a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16z\"]]\n};\nvar faTools = {\n prefix: 'fad',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", [\"M193.8 227.7L18.74 402.76a64 64 0 0 0 90.5 90.5l148.88-148.88a75.36 75.36 0 0 1 6.58-45.78zM64 472a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm443.73-362.9a12 12 0 0 0-20.12-5.51L413.25 178l-67.88-11.31-11.31-67.93 74.36-74.36a12 12 0 0 0-5.66-20.16 143.92 143.92 0 0 0-136.58 37.93c-39.64 39.64-50.55 97.1-34.05 147.2l-4.43 4.43 70.9 70.9a74.25 74.25 0 0 1 85.4 13.9l7.21 7.21a141.74 141.74 0 0 0 78.61-40 143.94 143.94 0 0 0 37.91-136.71z\", \"M501.1 395.7a37.36 37.36 0 0 1 0 52.7l-52.7 52.7a37.18 37.18 0 0 1-52.58.12l-.12-.12L278.6 384c-23.1-23.1-27.5-57.6-13.9-85.4L158.1 192H96L0 64 64 0l128 96v62.1l106.6 106.6a74.25 74.25 0 0 1 85.4 13.9z\"]]\n};\nvar faTooth = {\n prefix: 'fad',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", [\"M444 96.25c10.13 41.63.42 80.82-21.53 110.43-23.37 31.57-32.69 68.65-36.3 107.32-4.41 47.16-10.33 94.17-20.94 140.32l-7.8 33.95a30.42 30.42 0 0 1-59.21.54l-34.47-138.39a40.95 40.95 0 0 0-79.52 0l-34.47 138.42a30.42 30.42 0 0 1-59.21-.54l-7.8-33.95C72.14 408.19 66.21 361.19 61.81 314c-3.61-38.69-12.93-75.78-36.29-107.35C3.6 177.06-6.11 137.87 4 96.25 15 51 51.13 14.2 96 2.53c23.43-6.09 46.11-.54 66.81 10.31l100.54 64.62a16 16 0 0 0 17.31-26.91l-28.32-18.21c3.54-1.75 7.25-3.09 10.5-5.48C289 7.63 319.79-5.83 352 2.53c44.88 11.66 81 48.47 92 93.72z\", \"\"]]\n};\nvar faToothbrush = {\n prefix: 'fad',\n iconName: 'toothbrush',\n icon: [640, 512, [], \"f635\", [\"M320 232a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v184h32zm64 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v184h32zm64 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v184h32zm-192 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v184h32zm368 216H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM64 232a8 8 0 0 0-8-8H40a8 8 0 0 0-8 8v184h32zm128 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v184h32zm-64 0a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v184h32z\", \"M0 128a64 64 0 0 1 64-64h261.49c33.4 0 50.13-40.38 26.51-64a128 128 0 0 1 128 128 64 64 0 0 1-64 64H64a64 64 0 0 1-64-64z\"]]\n};\nvar faTorah = {\n prefix: 'fad',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", [\"M320 145.53l-17.77 29.62h35.45zm-90.07 150.56l-9.19 15.41h36.85l-18.46-30.82zm189.32-95.56h-36.84l18.45 30.82zm-161.7 0h-36.81l18.44 30.8zM96 48v416h448V48zm349.22 278.15a21.24 21.24 0 0 1-18.48 10.72h-59.45l-29.13 48.7a21.09 21.09 0 0 1-16.77 10.32 12.92 12.92 0 0 1-1.39.05 20.81 20.81 0 0 1-18-10.22l-29.22-48.88h-59.54a19.53 19.53 0 0 1-2.16-.11 21.13 21.13 0 0 1-15.94-31.87L224.35 256 195 207a20.71 20.71 0 0 1-.89-19.9c.2-.42.42-.84.66-1.25s.49-.82.75-1.21a21.19 21.19 0 0 1 17.73-9.5h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.75 20.75 0 0 1 338 126.29l29.25 48.85h59.54a21.12 21.12 0 0 1 18.1 32l-14.62 24.43L415.65 256 445 305a20.69 20.69 0 0 1 .22 21.15zm-62.78-14.62h36.86l-18.45-30.8zm-62.39 55l17.72-29.64h-35.46zm32.81-166h-65.79l-16.58 27.76L253.91 256l16.61 27.75 16.61 27.75h65.79l33.17-55.5z\", \"M48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm544 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM415.63 256l29.24-48.86a21.12 21.12 0 0 0-18.1-32h-59.52L338 126.29a20.75 20.75 0 0 0-17.95-10.23 21.1 21.1 0 0 0-18.21 10.37l-29.14 48.71h-59.45a21.2 21.2 0 0 0-18.48 10.71A20.72 20.72 0 0 0 195 207l29.34 49-29.21 48.86a21.11 21.11 0 0 0 18.1 32h59.57l29.25 48.88a20.77 20.77 0 0 0 17.95 10.2 21.13 21.13 0 0 0 18.16-10.37l29.13-48.7h59.45a21.24 21.24 0 0 0 18.48-10.72A20.69 20.69 0 0 0 445 305zm3.63-55.5l-18.4 30.82-18.45-30.82zm-99.26-55l17.68 29.62h-35.45zm-99.27 55h36.82l-18.37 30.8zm0 111l18.4-30.82 18.46 30.82zm99.32 55l-17.74-29.64h35.46zm32.87-55h-65.79L253.91 256l33.16-55.52h65.79L386.09 256zm29.53 0l18.41-30.8 18.45 30.8z\"]]\n};\nvar faToriiGate = {\n prefix: 'fad',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", [\"M64 192h64v-64H64zm160 0h64v-64h-64zM64 496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V256H64zm320 0a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V256h-64zm0-368v64h64v-64z\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V0a303.17 303.17 0 0 1-135.55 32zM496 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faTornado = {\n prefix: 'fad',\n iconName: 'tornado',\n icon: [512, 512, [], \"f76f\", [\"M393.42 96H11.9c9.64 34.16 24.49 62.05 42.71 85.3h349.78c-14.07-23.14-20.68-50.22-10.97-85.3zm36.31 117.3H84.64c45.05 40.43 101.1 63.6 150.27 85.3h269.61c-14.52-32.19-47.7-56.86-74.79-85.3zm-.62-188.1c7.4-10.6 0-25.2-12.9-25.2h-400A16.2 16.2 0 0 0 0 16.5 369.9 369.9 0 0 0 4.76 64h401.12a302.21 302.21 0 0 1 23.23-38.8zm-97.4 463.9A16 16 0 0 0 346 512h27.4a32.82 32.82 0 0 0 21.7-8.3c22.58-20.2 41.3-38.69 56.63-55.7H347.4a248.42 248.42 0 0 1-15.69 41.1zM512 330.6H299c33 20.58 54.66 45.71 53.54 85.4H478c25.13-34.44 34.53-62 34-85.4z\", \"M405.88 64H4.76a302.42 302.42 0 0 0 7.14 32h381.52a181.86 181.86 0 0 1 12.46-32zm-1.49 117.3H54.61a250.81 250.81 0 0 0 30 32h345.12c-9.56-10.03-18.36-20.53-25.34-32zM347.4 448h104.34A406.12 406.12 0 0 0 478 416H352.51a135.56 135.56 0 0 1-5.11 32zm157.12-149.4H234.91c23.6 10.42 45.61 20.5 64.06 32H512a81.4 81.4 0 0 0-7.48-32z\"]]\n};\nvar faTractor = {\n prefix: 'fad',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", [\"M528 336a88 88 0 1 0 88 88 88 88 0 0 0-88-88zm0 112a24 24 0 1 1 24-24 24 24 0 0 1-24 24zM330 292h-7.14A152.15 152.15 0 0 0 311 263.28l5.06-5.06a22 22 0 0 0 0-31.11L284.9 196a22 22 0 0 0-31.11 0l-5.06 5.06A152.15 152.15 0 0 0 220 189.15V182a22 22 0 0 0-22-22h-44a22 22 0 0 0-22 22v7.14a152.43 152.43 0 0 0-28.73 11.91l-5-5.05a22 22 0 0 0-31.11 0L36 227.1a22 22 0 0 0 0 31.11l5.06 5.06A152.15 152.15 0 0 0 29.15 292H22a22 22 0 0 0-22 22v44a22 22 0 0 0 22 22h7.14a152.43 152.43 0 0 0 11.91 28.73l-5 5a22 22 0 0 0 0 31.11L67.1 476a22 22 0 0 0 31.11 0l5.06-5.06A152.15 152.15 0 0 0 132 482.85V490a22 22 0 0 0 22 22h44a22 22 0 0 0 22-22v-7.14A152.15 152.15 0 0 0 248.72 471l5.06 5.06a22 22 0 0 0 31.11 0L316 444.9a22 22 0 0 0 0-31.11l-5.06-5.06A152.15 152.15 0 0 0 322.85 380H330a22 22 0 0 0 22-22v-44a22 22 0 0 0-22-22zM176 416a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\", \"M640 192v50.76a32 32 0 0 1-9.37 22.63l-50.82 50.81A118.61 118.61 0 0 0 528 304c-39.14 0-73.55 19-95.46 48H352v-38a22 22 0 0 0-22-22h-7.14A152.24 152.24 0 0 0 311 263.27l5.06-5.06a22 22 0 0 0 0-31.11L284.9 196a22 22 0 0 0-31.11 0l-5.06 5.06A151.54 151.54 0 0 0 220 189.14V182a22 22 0 0 0-22-22h110l-41.11-96H160v96h-6a22 22 0 0 0-22 22v7.14A152.15 152.15 0 0 0 103.28 201l-5.06-5a22.57 22.57 0 0 0-2.22-1.93V48a48.05 48.05 0 0 1 48-48h133.45a47.91 47.91 0 0 1 44.13 29.14L377.67 160H480v-40.2a128.16 128.16 0 0 1 29.5-81.72 16.28 16.28 0 0 1 24.7-.78l21.63 24.17c4.87 5.43 5.74 13.69 1.32 19.49A64.07 64.07 0 0 0 544 119.8V160h64a32 32 0 0 1 32 32z\"]]\n};\nvar faTrademark = {\n prefix: 'fad',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", [\"M640 403.85A12.09 12.09 0 0 1 628 416h-53.9a12 12 0 0 1-12-11.2L553 271.9c-1.8-24.2 0-53.7 0-53.7h-.9s-10.7 33.6-17.9 53.7l-30.7 84.7a12 12 0 0 1-11.3 7.9h-50.3a12 12 0 0 1-11.3-7.9l-30.7-84.7c-7.2-20.1-17.9-53.7-17.9-53.7h-.9s1.8 29.5 0 53.7L372 404.8a12.09 12.09 0 0 1-12 11.2h-55.5a12 12 0 0 1-11-13l24.4-296a12.14 12.14 0 0 1 12-11h65.4a12.06 12.06 0 0 1 11.3 8.1l43.8 127.1c7.2 20.6 16.1 52.8 16.1 52.8h.9s8.9-32.2 16.1-52.8l43.8-127.1a12 12 0 0 1 11.3-8.1H604a12 12 0 0 1 12 11l24 296v.85z\", \"M272.5 108v43.1a12 12 0 0 1-12 12h-85.1V404a12 12 0 0 1-12 12h-54.3a12 12 0 0 1-12-12V163.1H12a12 12 0 0 1-12-12V108a12 12 0 0 1 12-12h248.72a11.89 11.89 0 0 1 11.78 12z\"]]\n};\nvar faTrafficCone = {\n prefix: 'fad',\n iconName: 'traffic-cone',\n icon: [512, 512, [], \"f636\", [\"M337 128H175l-25.4 64h212.77zm63.42 160H111.5l-25.29 64h339.58z\", \"M289.73 10.08A16 16 0 0 0 274.86 0h-37.72a16 16 0 0 0-14.87 10.08L175.35 128h161.3zM362.12 192H149.88l-38.21 96h288.65zM496 448h-32l-38.21-96H86.21L48 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faTrafficLight = {\n prefix: 'fad',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", [\"M192 320a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0-160a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm0 32a48 48 0 1 0 48 48 48 48 0 0 0-48-48z\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.79 28.19 78.61 66.86 91v-.15a128 128 0 0 0 250.34 0v.15c38.61-12.4 66.8-48.22 66.8-91h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm0-128a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm0-128a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faTrafficLightGo = {\n prefix: 'fad',\n iconName: 'traffic-light-go',\n icon: [384, 512, [], \"f638\", [\"M240 368a48 48 0 1 1-48-48 48 48 0 0 1 48 48z\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.79 28.19 78.61 66.86 91v-.15a128 128 0 0 0 250.34 0v.15c38.61-12.4 66.8-48.22 66.8-91h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm0-128a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm0-128a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faTrafficLightSlow = {\n prefix: 'fad',\n iconName: 'traffic-light-slow',\n icon: [384, 512, [], \"f639\", [\"M240 240a48 48 0 1 1-48-48 48 48 0 0 1 48 48z\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.79 28.19 78.61 66.86 91v-.15a128 128 0 0 0 250.34 0v.15c38.61-12.4 66.8-48.22 66.8-91h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm0-128a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm0-128a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faTrafficLightStop = {\n prefix: 'fad',\n iconName: 'traffic-light-stop',\n icon: [384, 512, [], \"f63a\", [\"M240 112a48 48 0 1 1-48-48 48 48 0 0 1 48 48z\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.79 28.19 78.61 66.86 91v-.15a128 128 0 0 0 250.34 0v.15c38.61-12.4 66.8-48.22 66.8-91h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm0-128a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm0-128a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faTrailer = {\n prefix: 'fad',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", [\"M176,320a80,80,0,1,0,80,80A80,80,0,0,0,176,320ZM96,136a8,8,0,0,0-8-8H72a8,8,0,0,0-8,8V264.39a176.29,176.29,0,0,1,32-20.71Zm96,89.14V136a8,8,0,0,0-8-8H168a8,8,0,0,0-8,8v89.14c5.31-.49,10.57-1.14,16-1.14S186.69,224.65,192,225.14ZM280,128H264a8,8,0,0,0-8,8V243.68a176.29,176.29,0,0,1,32,20.71V136A8,8,0,0,0,280,128Zm192,0H456a8,8,0,0,0-8,8V320h32V136A8,8,0,0,0,472,128Zm-96,0H360a8,8,0,0,0-8,8V320h32V136A8,8,0,0,0,376,128Z\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Z\"]]\n};\nvar faTrain = {\n prefix: 'fad',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", [\"M376 96H72a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h304a24 24 0 0 0 24-24V120a24 24 0 0 0-24-24zm5 401.72L318 448H130l-63 49.72A8 8 0 0 0 72 512h304a8 8 0 0 0 5-14.28z\", \"M130 448h188c68.4 0 130-44.19 130-96V96c0-53-63-96-128-96H128C64 0 0 43 0 96v256c0 52 61.82 96 130 96zm94-40a56 56 0 1 1 56-56 56 56 0 0 1-56 56zM48 120a24 24 0 0 1 24-24h304a24 24 0 0 1 24 24v112a24 24 0 0 1-24 24H72a24 24 0 0 1-24-24z\"]]\n};\nvar faTram = {\n prefix: 'fad',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", [\"M511.45 51.9a15.91 15.91 0 0 0-19.6-11.3l-480 128A16 16 0 0 0 16 200a18.41 18.41 0 0 0 4.1-.5l480-128a16.1 16.1 0 0 0 11.35-19.6zM80 384h96v-96H80zm256 0h96v-96h-96zm-128 0h96v-96h-96z\", \"M192 96a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm96-32a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm160 160H272v-91.7l-32 8.5V224H64a32 32 0 0 0-32 32v224a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V256a32 32 0 0 0-32-32zM176 384H80v-96h96zm128 0h-96v-96h96zm128 0h-96v-96h96z\"]]\n};\nvar faTransgender = {\n prefix: 'fad',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", [\"M224 240a80 80 0 1 1-80-80 80.11 80.11 0 0 1 80 80z\", \"M372 0h-79a12 12 0 0 0-8.5 20.5l16.9 16.9-80.7 80.7A144 144 0 1 0 112 380.4V408H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h36v28a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-28h36a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-36v-27.6a144 144 0 0 0 89.9-217.1l80.7-80.7 16.9 16.9A12 12 0 0 0 384 91V12a12 12 0 0 0-12-12zM144 320a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]]\n};\nvar faTransgenderAlt = {\n prefix: 'fad',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", [\"M319 239a80 80 0 1 1-80-80 80 80 0 0 1 80 80z\", \"M467-1h-79a12 12 0 0 0-8.5 20.5l16.9 16.9-80.7 80.7a144.13 144.13 0 0 0-153.4 0l-16.5-16.5 19.8-19.8a12 12 0 0 0 0-17l-28.3-28.3a12 12 0 0 0-17 0l-19.8 19.8-19-19 16.9-16.9C106.1 11.9 100.7-1 90-1H11A12 12 0 0 0-1 11v79a12 12 0 0 0 20.5 8.5l16.9-16.9 19 19-19.8 19.8a12 12 0 0 0 0 17l28.3 28.3a12 12 0 0 0 17 0l19.8-19.8 16.5 16.5A142 142 0 0 0 95 239a144 144 0 0 0 112 140.4V407h-36a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h36v28a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-28h36a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-36v-27.6a144 144 0 0 0 89.9-217.1l80.7-80.7 16.9 16.9A12 12 0 0 0 479 90V11a12 12 0 0 0-12-12zM239 319a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]]\n};\nvar faTransporter = {\n prefix: 'fad',\n iconName: 'transporter',\n icon: [512, 512, [], \"e042\", [\"M509.789,44.43164,480.00684,32.01172,467.58458,2.22656a3.99473,3.99473,0,0,0-7.15647,0L448.00586,32.01172,418.2237,44.43164a3.99921,3.99921,0,0,0,0,7.1543l29.78216,12.41992L460.42811,93.791a3.9963,3.9963,0,0,0,7.15647,0l12.42226-29.78516L509.789,51.58594a3.99921,3.99921,0,0,0,0-7.1543ZM63.99023,96,51.57189,66.21484a3.99473,3.99473,0,0,0-7.15647,0L31.99316,96,2.211,108.41992a3.99921,3.99921,0,0,0,0,7.1543l29.78216,12.41992L44.41542,157.7793a3.9963,3.9963,0,0,0,7.15647,0l12.41834-29.78516L93.7763,115.57422a3.99921,3.99921,0,0,0,0-7.1543Z\", \"M255.957,96l.01953-.00195L255.99609,96a48,48,0,1,0,0-96l-.01953.002L255.957,0a48,48,0,1,0,0,96ZM384,448H327.99829V238.7793l31.42283,37.70508a31.9958,31.9958,0,0,0,49.15776-40.96875L338.1861,151.03125A63.84343,63.84343,0,0,0,289.01273,128H222.97946a63.78806,63.78806,0,0,0-49.15775,23.03125l-70.4084,84.48438a31.99579,31.99579,0,0,0,49.15775,40.96875L183.9939,238.7793V448H127.99219a31.99832,31.99832,0,0,0-32.001,32v32H416.001V480A31.99832,31.99832,0,0,0,384,448Zm-120.00366,0H247.99585V320h16.00049Z\"]]\n};\nvar faTransporter1 = {\n prefix: 'fad',\n iconName: 'transporter-1',\n icon: [512, 512, [], \"e043\", [\"M183.9964,416h64.00146V384H183.9964ZM63.99365,128.002,51.57149,98.21875a3.99153,3.99153,0,0,0-7.1525,0L32.00073,128.002,2.211,140.42188a4.00079,4.00079,0,0,0,0,7.15624l29.78974,12.41993L44.419,189.78125a3.99153,3.99153,0,0,0,7.1525,0l12.42216-29.7832,29.78584-12.41993a4.004,4.004,0,0,0,0-7.15624ZM263.99823,416h64.00146V384H263.99823ZM509.789,364.41992,480.00317,352l-12.41825-29.78516a3.99468,3.99468,0,0,0-7.15641,0L448.01025,352l-29.78583,12.41992a3.99922,3.99922,0,0,0,0,7.1543l29.78583,12.41992,12.41826,29.78516a3.99625,3.99625,0,0,0,7.15641,0l12.41825-29.78516L509.789,371.57422a3.99922,3.99922,0,0,0,0-7.1543Z\", \"M255.959,96l.01954-.00195L255.99805,96a48,48,0,1,0,0-96l-.01953.002L255.959,0a48,48,0,1,0,0,96ZM152.5738,276.48438l31.4226-37.70508V352h64.00146V320h16.00037v32h64.00146V238.7793l31.4226,37.70508a31.99565,31.99565,0,0,0,49.15737-40.96876l-70.39223-84.48437A63.84273,63.84273,0,0,0,289.01443,128H222.98167a63.78737,63.78737,0,0,0-49.15738,23.03125l-70.40786,84.48437a31.99565,31.99565,0,0,0,49.15737,40.96876ZM384.001,448H127.99512a32.0007,32.0007,0,0,0-32.00074,32v32H416.00171V480A32.0007,32.0007,0,0,0,384.001,448Z\"]]\n};\nvar faTransporter2 = {\n prefix: 'fad',\n iconName: 'transporter-2',\n icon: [512, 512, [], \"e044\", [\"M359.425,276.48438a31.98517,31.98517,0,0,0,45.06388,4.09375A31.46789,31.46789,0,0,0,415.57518,256h-73.221ZM183.9978,288H328.0022V256H183.9978Zm80.00244,128h64.002V384h-64.002ZM107.51109,280.57813a32.00633,32.00633,0,0,0,45.06388-4.09375L169.6458,256h-73.221A31.46789,31.46789,0,0,0,107.51109,280.57813ZM264.00024,352h64.002V320h-64.002Zm-80.00244,0h64.002V320h-64.002ZM509.7929,140.416l-29.78606-12.41993-12.42226-29.7832a3.99158,3.99158,0,0,0-7.15256,0l-12.41835,29.7832-29.79,12.41993a4.00079,4.00079,0,0,0,0,7.15625l29.79,12.41992,12.41835,29.7832a3.99158,3.99158,0,0,0,7.15256,0l12.42226-29.7832,29.78606-12.41992a4.004,4.004,0,0,0,0-7.15625ZM183.9978,416h64.002V384h-64.002ZM63.99414,32.002,51.57189,2.21875a3.99473,3.99473,0,0,0-7.15647,0L31.99707,32.002,2.211,44.42188a3.99921,3.99921,0,0,0,0,7.15429L31.99707,63.99609,44.41542,93.78125a3.99473,3.99473,0,0,0,7.15647,0L63.99414,63.99609,93.7763,51.57617a3.99921,3.99921,0,0,0,0-7.15429Z\", \"M384.00391,448H127.99609a32.00082,32.00082,0,0,0-32.001,32v32H416.00488V480A32.00082,32.00082,0,0,0,384.00391,448ZM255.96094,96l.01953-.00195L256,96a48,48,0,1,0,0-96l-.01953.002L255.96094,0a48,48,0,1,0,0,96ZM338.19,151.03125A63.84344,63.84344,0,0,0,289.01663,128H222.98337a63.78806,63.78806,0,0,0-49.15775,23.03125L113.01517,224H398.98874Z\"]]\n};\nvar faTransporter3 = {\n prefix: 'fad',\n iconName: 'transporter-3',\n icon: [512, 512, [], \"e045\", [\"M509.7929,44.43164,480.00684,32.01172,467.58458,2.22656a3.99158,3.99158,0,0,0-7.15256,0L448.01367,32.01172l-29.79,12.41992a3.99921,3.99921,0,0,0,0,7.1543l29.79,12.41992L460.432,93.791a3.99315,3.99315,0,0,0,7.15256,0l12.42226-29.78516L509.7929,51.58594a4.00238,4.00238,0,0,0,0-7.1543ZM63.99414,352.00391,51.57189,322.2207a3.99473,3.99473,0,0,0-7.15647,0L31.99707,352.00391,2.211,364.42383a4.00079,4.00079,0,0,0,0,7.15625L31.99707,384l12.41835,29.7832a3.99473,3.99473,0,0,0,7.15647,0L63.99414,384,93.7763,371.58008a4.00079,4.00079,0,0,0,0-7.15625ZM372.32386,192H139.684l-26.66878,32H398.98874ZM359.425,276.48438a31.98516,31.98516,0,0,0,45.06388,4.09374A31.46786,31.46786,0,0,0,415.57518,256h-73.221ZM338.19,151.03125A63.84341,63.84341,0,0,0,289.01663,128H222.98337a63.788,63.788,0,0,0-49.15775,23.03125L166.34883,160H345.66289ZM256,0l-.01953.002L255.96094,0a47.9455,47.9455,0,0,0-45.04825,32h90.13556A47.9455,47.9455,0,0,0,256,0ZM183.9978,288H328.0022V256H183.9978ZM255.96094,96l.01953-.00195L256,96a47.8755,47.8755,0,0,0,45.06-32H210.901A47.87549,47.87549,0,0,0,255.96094,96Zm8.0393,320h64.002V384h-64.002Zm0-64h64.002V320h-64.002ZM183.9978,416h64.002V384h-64.002Zm0-64h64.002V320h-64.002Zm-76.48671-71.42188a32.00632,32.00632,0,0,0,45.06388-4.09374L169.6458,256h-73.221A31.46786,31.46786,0,0,0,107.51109,280.57812Z\", \"M416.00488,480a32.00082,32.00082,0,0,0-32.001-32H127.99609a32.00082,32.00082,0,0,0-32.001,32v32H416.00488Z\"]]\n};\nvar faTransporterEmpty = {\n prefix: 'fad',\n iconName: 'transporter-empty',\n icon: [512, 512, [], \"e046\", [\"M509.7929,268.419l-29.78606-12.42-12.42226-29.78527a3.99158,3.99158,0,0,0-7.15256,0L448.01367,255.999l-29.79,12.42a3.99924,3.99924,0,0,0,0,7.15433l29.79,12.42L460.432,317.77856a3.99314,3.99314,0,0,0,7.15256,0l12.42226-29.78527,29.78606-12.42a4.0024,4.0024,0,0,0,0-7.15433ZM63.99414,32.00208,51.57189,2.21876a3.99472,3.99472,0,0,0-7.15647,0L31.99707,32.00208,2.211,44.422a4.00082,4.00082,0,0,0,0,7.15628l29.78607,12.42L44.41542,93.78161a3.99472,3.99472,0,0,0,7.15647,0L63.99414,63.99829l29.78216-12.42a4.00082,4.00082,0,0,0,0-7.15628Z\", \"M416.00488,479.99988V512H95.99512V479.99988a32.00088,32.00088,0,0,1,32.001-32.00012H384.00391A32.00088,32.00088,0,0,1,416.00488,479.99988Z\"]]\n};\nvar faTrash = {\n prefix: 'fad',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", [\"M53.2 467L32 96h384l-21.2 371a48 48 0 0 1-47.9 45H101.1a48 48 0 0 1-47.9-45z\", \"M0 80V48a16 16 0 0 1 16-16h120l9.4-18.7A23.72 23.72 0 0 1 166.8 0h114.3a24 24 0 0 1 21.5 13.3L312 32h120a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16A16 16 0 0 1 0 80z\"]]\n};\nvar faTrashAlt = {\n prefix: 'fad',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", [\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V96H32zm272-288a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0z\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM128 160a16 16 0 0 0-16 16v224a16 16 0 0 0 32 0V176a16 16 0 0 0-16-16zm96 0a16 16 0 0 0-16 16v224a16 16 0 0 0 32 0V176a16 16 0 0 0-16-16zm96 0a16 16 0 0 0-16 16v224a16 16 0 0 0 32 0V176a16 16 0 0 0-16-16z\"]]\n};\nvar faTrashRestore = {\n prefix: 'fad',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", [\"M32 96l21.2 371a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 96zm281.37 192H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V288h-57.37c-14.26 0-21.4-18.18-11.32-28.8l89.38-94.26a15.41 15.41 0 0 1 21.78-.84q.43.41.84.84l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8z\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM235.31 164.94q-.41-.44-.84-.84a15.41 15.41 0 0 0-21.78.84l-89.38 94.26c-10.08 10.62-2.94 28.8 11.32 28.8H192v112a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V288h57.37c14.26 0 21.4-18.18 11.32-28.8z\"]]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fad',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", [\"M32 96v368a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V96zm281.37 192H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V288h-57.37c-14.26 0-21.4-18.18-11.32-28.8l89.38-94.26a15.41 15.41 0 0 1 21.78-.84q.43.41.84.84l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8z\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM235.31 164.94q-.41-.44-.84-.84a15.41 15.41 0 0 0-21.78.84l-89.38 94.26c-10.08 10.62-2.94 28.8 11.32 28.8H192v112a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V288h57.37c14.26 0 21.4-18.18 11.32-28.8z\"]]\n};\nvar faTrashUndo = {\n prefix: 'fad',\n iconName: 'trash-undo',\n icon: [448, 512, [], \"f895\", [\"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 96H32zm47.18-221.47l84-81.59c8.84-8.59 23.61-2.24 23.61 10.47v41.67c82.47.8 144 18.36 144 103.92 0 34.29-20.14 68.26-42.41 86-6.95 5.54-16.85-1.41-14.29-10.4 23.08-80.93-6.55-101.74-87.3-102.72v44.69c0 12.69-14.76 19.07-23.61 10.47l-84-81.59a14.69 14.69 0 0 1-.13-20.79l.13-.13z\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM208 216.08v-41.67c0-12.71-14.77-19.06-23.61-10.47l-84 81.59a14.7 14.7 0 0 0-.15 20.79l.15.15 84 81.59c8.85 8.6 23.61 2.22 23.61-10.47V292.9c80.75 1 110.38 21.79 87.3 102.72-2.56 9 7.34 15.94 14.29 10.4C331.86 388.26 352 354.29 352 320c0-85.56-61.53-103.12-144-103.92z\"]]\n};\nvar faTrashUndoAlt = {\n prefix: 'fad',\n iconName: 'trash-undo-alt',\n icon: [448, 512, [], \"f896\", [\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V96H32zm68.38-218.47l84-81.59c8.84-8.59 23.61-2.24 23.61 10.47v41.67c82.47.8 144 18.36 144 103.92 0 34.29-20.14 68.26-42.41 86-6.95 5.54-16.85-1.41-14.29-10.4 23.08-80.93-6.55-101.74-87.3-102.72v44.69c0 12.69-14.76 19.07-23.61 10.47l-84-81.59a14.69 14.69 0 0 1-.13-20.79l.13-.13z\", \"M208 216.08v-41.67c0-12.71-14.77-19.06-23.61-10.47l-84 81.59a14.7 14.7 0 0 0-.15 20.79l.15.15 84 81.59c8.85 8.6 23.61 2.22 23.61-10.47V292.9c80.75 1 110.38 21.79 87.3 102.72-2.56 9 7.34 15.94 14.29 10.4C331.86 388.26 352 354.29 352 320c0-85.56-61.53-103.12-144-103.92zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.71 23.71 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]]\n};\nvar faTreasureChest = {\n prefix: 'fad',\n iconName: 'treasure-chest',\n icon: [576, 512, [], \"f723\", [\"M0 128v128h96V32a96 96 0 0 0-96 96zm0 320a32 32 0 0 0 32 32h64V288H0zm352-112a16 16 0 0 1-16 16h-96a16 16 0 0 1-16-16v-48h-64v192h256V288h-64zM480 32v224h96V128a96 96 0 0 0-96-96zm0 448h64a32 32 0 0 0 32-32V288h-96zM160 256h64v-48a16 16 0 0 1 16-16h96a16 16 0 0 1 16 16v48h64V32H160z\", \"M96 256h64V32H96zm0 224h64V288H96zm320 0h64V288h-64zm0-448v224h64V32zm-80 160h-96a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16V208a16 16 0 0 0-16-16zm-32 112a16 16 0 0 1-32 0v-64a16 16 0 0 1 32 0z\"]]\n};\nvar faTree = {\n prefix: 'fad',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", [\"M224 416v24.45l30.29 48.4A16 16 0 0 1 240 512h-96a16 16 0 0 1-14.31-23.16L160 440.46V416z\", \"M23.14 416a23.19 23.19 0 0 1-21-13.25 22.11 22.11 0 0 1 3.55-24.25L85.58 288H55a22.72 22.72 0 0 1-20.83-13 22.08 22.08 0 0 1 3.27-24l78.14-91H86.69a22.67 22.67 0 0 1-20.87-13.6 22.27 22.27 0 0 1 4.24-24.08L180.34 4.84c6-6.45 17.29-6.45 23.32 0l110.27 117.48a22.25 22.25 0 0 1 4.24 24.08 22.66 22.66 0 0 1-20.86 13.6h-28.89l78.13 90.89a22 22 0 0 1 3.28 24A22.72 22.72 0 0 1 329.05 288h-30.63l79.89 90.49a22.11 22.11 0 0 1 3.56 24.26 23.19 23.19 0 0 1-21 13.25z\"]]\n};\nvar faTreeAlt = {\n prefix: 'fad',\n iconName: 'tree-alt',\n icon: [512, 512, [], \"f400\", [\"M318.29 488.85A16 16 0 0 1 304 512h-96a16 16 0 0 1-14.31-23.16L224 440.45V384h64v56.45z\", \"M28 356Q0 328 0 288a93.5 93.5 0 0 1 16-53 92.4 92.4 0 0 1 43-35q-14-24-10.5-49.5a79.43 79.43 0 0 1 20.5-44A81.51 81.51 0 0 1 110.5 82q24.5-6 49.5 5 4-37 31.5-62T256 0q37 0 64.5 25T352 87q25-11 49.5-5a81.51 81.51 0 0 1 41.5 24.5 79.43 79.43 0 0 1 20.5 44Q467 176 454 200h-1a92.4 92.4 0 0 1 43 35 93.5 93.5 0 0 1 16 53q0 40-28 68t-68 28H96q-40 0-68-28z\"]]\n};\nvar faTreeChristmas = {\n prefix: 'fad',\n iconName: 'tree-christmas',\n icon: [448, 512, [], \"f7db\", [\"M197.33 106.7L144 80l53.3-26.7L224 0l26.7 53.3L304 80l-53.3 26.7L224 160z\", \"M439.63 455.6L349.83 352h36c25.6 0 39.5-26.3 23.2-43.5L262.83 154 224 208l-38.8-54L39 308.5C22.7 325.7 36.6 352 62.2 352h36L8.43 455.6c-19 21.9-3.8 56.4 24.7 56.4h381.7c28.6 0 43.7-34.6 24.8-56.4zM160 312a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm128 128a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faTreeDecorated = {\n prefix: 'fad',\n iconName: 'tree-decorated',\n icon: [448, 512, [], \"f7dc\", [\"M160 312a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\", \"M439.63 455.57L349.83 352h36c25.6 0 39.5-29.2 23.2-48.5L314.13 192h44.8c21.3 0 32.9-22.5 19.3-37.29L243.33 8.18c-10-10.9-28.6-10.9-38.6 0l-134.8 146.5c-13.6 14.79-2 37.29 19.3 37.29H134l-95 111.5c-16.3 19.3-2.4 48.5 23.2 48.5h36L8.43 455.57c-19 21.9-3.8 56.4 24.7 56.4h381.7c28.6.03 43.7-34.59 24.8-56.4zM160 312a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm72-152a24 24 0 1 1 24 24 23.95 23.95 0 0 1-24-24zm56 280a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\"]]\n};\nvar faTreeLarge = {\n prefix: 'fad',\n iconName: 'tree-large',\n icon: [448, 512, [], \"f7dd\", [\"M414.81 512H256V320l31-52.42c3.14-5.32-1.43-11.58-8.46-11.58H256V144a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v208h-22.53c-7 0-11.6 6.26-8.46 11.58L192 416v96H33.13c-28.5 0-43.7-34.5-24.7-56.38L98.24 352h-36c-25.61 0-39.51-29.21-23.24-48.5L134 192H89.24c-21.3 0-32.9-22.5-19.3-37.29L204.74 8.17c10-10.89 28.6-10.89 38.6 0l134.93 146.54c13.6 14.79 2 37.29-19.3 37.29h-44.8L409 303.46c16.3 19.3 2.4 48.54-23.2 48.54h-36l89.77 103.58c18.94 21.8 3.84 56.42-24.76 56.42z\", \"M287 267.58L256 320v192h-64v-96l-31-52.42c-3.14-5.32 1.43-11.58 8.46-11.58H192V144a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v112h22.53c7.04 0 11.61 6.26 8.47 11.58z\"]]\n};\nvar faTreePalm = {\n prefix: 'fad',\n iconName: 'tree-palm',\n icon: [640, 512, [], \"f82b\", [\"M379.65,485c-2,15.63-16,27-31.71,27H292.81a31.91,31.91,0,0,1-32-31.82,31.46,31.46,0,0,1,.94-7.79c14.42-57.12,36.55-167.3,25.86-272L296,192h57.25C368.08,248.66,394.43,371.53,379.65,485Z\", \"M607.74,172.86C596.13,111.24,529.38,64,448.76,64c-39.43,0-75.05,11.74-103,30.5C327.15,40.17,265.38,0,191.25,0c-80.62,0-147.36,47.24-159,108.86C30.41,118.79,38.77,128,50,128h54l24-48,33.46,66.92C158,150,154.2,152.61,150.82,156c-57,57-70.82,137.6-35.44,189.38,5.7,8.34,18.12,8.94,26.07,1L296,192H488l24-48,24,48h54C601.25,192,609.61,182.79,607.74,172.86Z\"]]\n};\nvar faTrees = {\n prefix: 'fad',\n iconName: 'trees',\n icon: [640, 512, [], \"f724\", [\"M224 440.46V416h-64v24.45l-30.29 48.4A16 16 0 0 0 144 512h96a16 16 0 0 0 14.31-23.16zm410.31-62L554.42 288h30.63a22.73 22.73 0 0 0 20.78-13 22 22 0 0 0-3.28-24l-78.13-91h28.89a22.69 22.69 0 0 0 20.86-13.61 22.27 22.27 0 0 0-4.24-24.08L459.66 4.84c-6-6.45-17.28-6.45-23.32 0L341.28 106.1c11.09 15.37 14 35.3 6.34 53a54.48 54.48 0 0 1-18.26 22.68l41.54 48.32a54.56 54.56 0 0 1-6.07 76.9q-2 1.68-4.1 3.18l41.62 47.15C411 367.11 415.69 371.46 416 384v56.45l-30.29 48.4A16 16 0 0 0 400 512h96a16 16 0 0 0 14.31-23.16L480 440.46V416h136.87a23.19 23.19 0 0 0 21-13.25 22.15 22.15 0 0 0-3.56-24.25z\", \"M381.86 402.76a23.19 23.19 0 0 1-21 13.25H23.13a23.17 23.17 0 0 1-21-13.25 22.09 22.09 0 0 1 3.56-24.26L85.58 288H55a22.72 22.72 0 0 1-20.83-13.08 22.06 22.06 0 0 1 3.27-24L115.58 160H86.69a22.67 22.67 0 0 1-20.87-13.6 22.25 22.25 0 0 1 4.24-24.08L180.34 4.84c6-6.45 17.32-6.45 23.32 0l110.27 117.47a22.27 22.27 0 0 1 4.24 24.08A22.69 22.69 0 0 1 297.31 160h-28.89l78.13 91a22 22 0 0 1 3.28 24 22.73 22.73 0 0 1-20.78 13h-30.63l79.88 90.5a22.12 22.12 0 0 1 3.56 24.26z\"]]\n};\nvar faTriangle = {\n prefix: 'fad',\n iconName: 'triangle',\n icon: [576, 512, [], \"f2ec\", [\"M569.54 440l-240-416c-18.4-32-64.68-32-83.18 0L6.48 440c-18.41 31.91 4.59 72 41.59 72h479.87c36.91 0 60-40 41.6-72zm-124.68 8H131.15a32 32 0 0 1-27.72-48l156.82-272a32 32 0 0 1 55.44 0l156.89 272a32 32 0 0 1-27.72 48z\", \"M103.43 400l156.82-272a32 32 0 0 1 55.44 0l156.89 272a32 32 0 0 1-27.71 48H131.15c-24.62 0-40.02-26.65-27.72-48z\"]]\n};\nvar faTriangleMusic = {\n prefix: 'fad',\n iconName: 'triangle-music',\n icon: [512, 512, [], \"f8e2\", [\"M274.64 267.42a56.8 56.8 0 1 0 33.92 33.94l198.69-198.74a16 16 0 0 0 0-22.62l-11.31-11.31a16 16 0 0 0-22.62 0z\", \"M500 462.92A96.17 96.17 0 0 1 415.87 512H96.13A96.17 96.17 0 0 1 12 462.92a92.48 92.48 0 0 1 2.16-94.83l159.86-258.7c11.72-19 29.55-32.22 50-39.34V16A16 16 0 0 1 240 0h32a16 16 0 0 1 16 16v54.05c20.41 7.12 38.24 20.37 50 39.34l36.16 58.53-46.48 46.5-44.11-71.37c-8.4-13.58-22-15.05-27.52-15.05s-19.12 1.47-27.52 15.05L68.61 401.75a29 29 0 0 0-.69 30A31.73 31.73 0 0 0 96.13 448h319.74a31.73 31.73 0 0 0 28.21-16.23 29 29 0 0 0-.69-30l-89.84-145.41L400 209.87l97.77 158.22a92.48 92.48 0 0 1 2.23 94.83z\"]]\n};\nvar faTrophy = {\n prefix: 'fad',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", [\"M192 432c-35.3 0-64 20.7-64 56v12a12 12 0 0 0 12 12h296a12 12 0 0 0 12-12v-12c0-35.3-28.7-56-64-56z\", \"M552 64H448V24a23.94 23.94 0 0 0-23.88-24H152a23.94 23.94 0 0 0-24 23.88V64H24A23.94 23.94 0 0 0 0 87.88V144c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h96v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88a23.94 23.94 0 0 0-23.88-24H552zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2a359 359 0 0 0 12.8 86.2 160.91 160.91 0 0 1-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8a161.68 161.68 0 0 1-41.8 21.4 359 359 0 0 0 12.8-86.2H512z\"]]\n};\nvar faTrophyAlt = {\n prefix: 'fad',\n iconName: 'trophy-alt',\n icon: [576, 512, [], \"f2eb\", [\"M231.1 187.3l-9.4 54.6a12 12 0 0 0 17.4 12.6l49-25.8 49 25.8a12 12 0 0 0 17.4-12.6l-9.4-54.6 39.6-38.6c7.1-6.9 3.2-19-6.4-20.5l-54.8-8L299 70.6a12 12 0 0 0-21.5 0L253 120.2l-54.8 8a12 12 0 0 0-6.7 20.5zM384 432H192c-35.3 0-64 20.7-64 56v12a12 12 0 0 0 12 12h296a12 12 0 0 0 12-12v-12c0-35.3-28.7-56-64-56z\", \"M552.12 64H448V24a23.94 23.94 0 0 0-23.88-24H152a23.94 23.94 0 0 0-24 23.88V64H24A23.94 23.94 0 0 0 0 87.88V144c0 66.5 77.9 131.7 171.9 142.4C203.3 338.5 240 360 240 360v72h96v-72s36.7-21.5 68.1-73.6C498.4 275.6 576 210.3 576 144V88a23.94 23.94 0 0 0-23.88-24zM64 144v-16h64.2a359 359 0 0 0 12.8 86.2c-47.5-16.4-77-49.9-77-70.2zm320.7 4.7l-39.6 38.6 9.4 54.6a12 12 0 0 1-17.4 12.6l-49-25.8-49 25.8a12 12 0 0 1-17.4-12.6l9.4-54.6-39.6-38.6a12 12 0 0 1 6.7-20.5l54.8-8 24.5-49.6a12 12 0 0 1 21.5 0l24.5 49.6 54.8 8c9.6 1.5 13.5 13.6 6.4 20.5zM512 144c0 20.2-29.4 53.8-77 70.2a359 359 0 0 0 12.8-86.2H512z\"]]\n};\nvar faTruck = {\n prefix: 'fad',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", [\"M176 352a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm288 0a80 80 0 1 0 80 80 80 80 0 0 0-80-80z\", \"M624 352h-16V243.9a48 48 0 0 0-14.1-33.9L494 110.1A48 48 0 0 0 460.1 96H416V48a48 48 0 0 0-48-48H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h18.16C74 361.93 119.78 320 176 320s102.54 41.86 110.38 96h67.24c7.85-54.14 54.1-96 110.38-96s102 41.93 109.84 96H624a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64-96H416V144h44.1l99.9 99.9z\"]]\n};\nvar faTruckContainer = {\n prefix: 'fad',\n iconName: 'truck-container',\n icon: [640, 512, [], \"f4dc\", [\"M40.58 384a64 64 0 1 0 110.84 0zm144 0a64 64 0 1 0 110.84 0zM528 368a56 56 0 1 0 56 56 56 56 0 0 0-56-56zM304 256h32V80h-32zM256 80h-32v176h32zm-80 0h-32v176h32zm-80 0H64v176h32z\", \"M621.3 237.3l-58.5-58.5a64 64 0 0 0-45.3-18.7H464a32 32 0 0 0-32 32v144H16a16 16 0 0 0-16 16V368a16 16 0 0 0 16 16h392v.2h41.53a88 88 0 0 1 157 .14 2 2 0 0 0 0-.24H624a16 16 0 0 0 16-16v-85.5a63.85 63.85 0 0 0-18.7-45.3zM480 256v-48h37.5a16.06 16.06 0 0 1 11.3 4.7l43.3 43.3zM32 304h336a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32H32A32 32 0 0 0 0 64v208a32 32 0 0 0 32 32zM304 80h32v176h-32zm-80 0h32v176h-32zm-80 0h32v176h-32zm-80 0h32v176H64z\"]]\n};\nvar faTruckCouch = {\n prefix: 'fad',\n iconName: 'truck-couch',\n icon: [640, 512, [], \"f4dd\", [\"M21.4 235.1c39.6-10.6 73.7 13.4 85.5 43.4L232 245c-5.4-35.7 16.5-70.7 52.2-80.2 2.6-.7 5.3-.7 8-1.1-9.9-36.9-45.9-55.1-78.7-46.3L58.9 158.8c-32.8 8.8-54.8 42.6-45.1 79.1a69.24 69.24 0 0 1 7.6-2.8zm271-39.5a40.07 40.07 0 0 0-28.3 49l6.2 23.2-185.4 49.7-6.2-23.2A40 40 0 1 0 1.4 315l22.7 85L320 320.7v-122a40.16 40.16 0 0 0-27.6-3.1zM544 320a96 96 0 1 0 96 96 96 96 0 0 0-96-96z\", \"M384 0a32 32 0 0 0-32 32v323.6L5.9 450a8 8 0 0 0-5.6 9.8l12.6 46.3a8 8 0 0 0 9.8 5.6l393.7-107.4c0 .33 0 .66.05 1C421.91 339.7 477 288 544 288a127.71 127.71 0 0 1 96 43.44V0z\"]]\n};\nvar faTruckLoading = {\n prefix: 'fad',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", [\"M247.8 123.8a16 16 0 0 0-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7A16 16 0 0 0 .6 190.1l49.6 185.5a16 16 0 0 0 19.6 11.3l216.4-58a16 16 0 0 0 11.3-19.6zM544 320a96 96 0 1 0 96 96 96 96 0 0 0-96-96z\", \"M384 0a32 32 0 0 0-32 32v323.6L5.9 450a8 8 0 0 0-5.6 9.8l12.6 46.3a8 8 0 0 0 9.8 5.6l393.7-107.4c0 .33 0 .66.05 1C421.91 339.7 477 288 544 288a127.71 127.71 0 0 1 96 43.44V0zM175.8 226L151 133.3l-61.8 16.5 24.8 92.7z\"]]\n};\nvar faTruckMonster = {\n prefix: 'fad',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", [\"M592 352h-5.2a110.19 110.19 0 0 0-8.65-20.89l3.67-3.67a16 16 0 0 0 0-22.63l-22.63-22.63a16 16 0 0 0-22.63 0l-3.67 3.67A110.45 110.45 0 0 0 512 277.2V272a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v5.2a110.19 110.19 0 0 0-20.89 8.65l-3.67-3.67a16 16 0 0 0-22.63 0l-22.63 22.63a16 16 0 0 0 0 22.63l3.67 3.67A110.45 110.45 0 0 0 373.2 352H368a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h5.2a110.19 110.19 0 0 0 8.65 20.89l-3.67 3.67a16 16 0 0 0 0 22.63l22.63 22.63a16 16 0 0 0 22.63 0l3.67-3.67A110.94 110.94 0 0 0 448 490.8v5.2a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-5.2a110.56 110.56 0 0 0 20.9-8.65l3.67 3.67a16 16 0 0 0 22.63 0l22.63-22.63a16 16 0 0 0 0-22.63l-3.67-3.67a110.45 110.45 0 0 0 8.66-20.89H592a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-112 80a48 48 0 1 1 48-48 48 48 0 0 1-48 48zm-208-80h-5.2a110.19 110.19 0 0 0-8.65-20.89l3.67-3.67a16 16 0 0 0 0-22.63l-22.63-22.63a16 16 0 0 0-22.63 0l-3.67 3.67A110.45 110.45 0 0 0 192 277.2V272a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v5.2a110.19 110.19 0 0 0-20.89 8.65l-3.67-3.67a16 16 0 0 0-22.63 0L58.18 304.8a16 16 0 0 0 0 22.63l3.67 3.67A110.45 110.45 0 0 0 53.2 352H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h5.2a110.19 110.19 0 0 0 8.65 20.89l-3.67 3.67a16 16 0 0 0 0 22.63l22.63 22.63a16 16 0 0 0 22.63 0l3.67-3.67a110.94 110.94 0 0 0 20.9 8.65v5.2a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-5.2a110.56 110.56 0 0 0 20.9-8.65l3.67 3.67a16 16 0 0 0 22.63 0l22.63-22.63a16 16 0 0 0 0-22.63l-3.67-3.67a110.45 110.45 0 0 0 8.65-20.89H272a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-112 80a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\", \"M624 224h-16v-64a32 32 0 0 0-32-32h-73.6L419.22 24a64 64 0 0 0-50-24H256a32 32 0 0 0-32 32v96H48a16 16 0 0 0-16 16v80H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-336-96V64h81.24l51.2 64z\"]]\n};\nvar faTruckMoving = {\n prefix: 'fad',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", [\"M224 352a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm-160 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm464 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64z\", \"M621.3 237.3l-58.5-58.5a64 64 0 0 0-45.3-18.7H480V64a32 32 0 0 0-32-32H32A32 32 0 0 0 0 64v280.51A95.88 95.88 0 0 1 144 363a96 96 0 0 1 170.51 21h123a96 96 0 0 1 181 0H624a16 16 0 0 0 16-16v-85.5a63.79 63.79 0 0 0-18.7-45.2zM480 256v-48h37.5a15.88 15.88 0 0 1 11.3 4.7l43.3 43.3z\"]]\n};\nvar faTruckPickup = {\n prefix: 'fad',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", [\"M176 304a88 88 0 1 0 88 88 88 88 0 0 0-88-88zm288 0a88 88 0 1 0 88 88 88 88 0 0 0-88-88z\", \"M624 288h-16v-64a32 32 0 0 0-32-32h-48L419.22 56a64 64 0 0 0-50-24H256a32 32 0 0 0-32 32v128H64a32 32 0 0 0-32 32v64H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h46.8a120.12 120.12 0 0 1 226.4 0h61.6a120.12 120.12 0 0 1 226.4 0H624a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-336-96V96h81.24L446 192z\"]]\n};\nvar faTruckPlow = {\n prefix: 'fad',\n iconName: 'truck-plow',\n icon: [640, 512, [], \"f7de\", [\"M120 304a88 88 0 1 0 88 88 88 88 0 0 0-88-88zm256 0a88 88 0 1 0 88 88 88 88 0 0 0-88-88z\", \"M598.6 393.4a77.12 77.12 0 0 1-22.6-54.6V237.2a77.12 77.12 0 0 1 22.6-54.6l36.7-36.7a16.06 16.06 0 0 0 0-22.6l-22.6-22.6a16.06 16.06 0 0 0-22.6 0l-36.7 36.7a141.23 141.23 0 0 0-41.4 99.9V288h-32v-64a32 32 0 0 0-32-32h-45.9l-82-136.7A48.17 48.17 0 0 0 278.9 32H168a40 40 0 0 0-40 40v120H32a32 32 0 0 0-32 32v96a31.87 31.87 0 0 0 10.2 23.43 120.13 120.13 0 0 1 223 8.57h29.6a120.12 120.12 0 0 1 226.4 0h24.1c3.1 32.6 16.7 63.3 40.1 86.6l36.7 36.7a16.06 16.06 0 0 0 22.6 0l22.6-22.6a16.06 16.06 0 0 0 0-22.6zM192 192V96h77.9l57.6 96z\"]]\n};\nvar faTruckRamp = {\n prefix: 'fad',\n iconName: 'truck-ramp',\n icon: [640, 512, [], \"f4e0\", [\"M544 320a96 96 0 1 0 96 96 96 96 0 0 0-96-96z\", \"M384 0a32 32 0 0 0-32 32v323.6L5.9 450a8 8 0 0 0-5.6 9.8l12.6 46.3a8 8 0 0 0 9.8 5.6l393.7-107.4c0 .33 0 .66.05 1C421.91 339.7 477 288 544 288a127.71 127.71 0 0 1 96 43.44V0z\"]]\n};\nvar faTrumpet = {\n prefix: 'fad',\n iconName: 'trumpet',\n icon: [640, 512, [], \"f8e3\", [\"M400 160a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v32h48zm-176 0a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v32h48zm88 0a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v32h48zm180.27 109.64c-4.61-2.43-19.86-9.86-44.27-12.45V352a32 32 0 0 1-32 32h-16V256h-48v128h-40V256h-48v128h-40V256H81.75C70.75 274.9 64 296.57 64 320a128 128 0 0 0 128 128h224a96 96 0 0 0 96-96v-70.3c-6.42-4.16-12.78-8.4-19.73-12.06zM176 381.73a63.69 63.69 0 0 1 0-123.46z\", \"M640 80v288c0 12-10.81 16-16 16a16.22 16.22 0 0 1-13-6.67 555.44 555.44 0 0 0-66.19-71.68c-15.38-13-32.93-25.66-52.54-36-5.55-2.93-25.75-13.6-60-13.63H48a16 16 0 0 1-16 16H16A16 16 0 0 1 0 256v-64a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16h384.27c34.25 0 54.45-10.69 60-13.63 19.61-10.35 37.16-23.05 52.54-36A555.44 555.44 0 0 0 611 70.67 16.27 16.27 0 0 1 624 64c5.19 0 16 4 16 16z\"]]\n};\nvar faTshirt = {\n prefix: 'fad',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", [\"M8.86 96.5a16.11 16.11 0 0 0-7.2 21.5l57.23 114.5a16.11 16.11 0 0 0 21.5 7.2l17.32-8.48L26.09 88zm459-80.95a187.31 187.31 0 0 1-13.32 13.26C418.45 61.3 370.67 79.2 320 79.2s-98.41-17.9-134.51-50.39a187.31 187.31 0 0 1-13.32-13.26L54.76 73.75l71.69 143.4L137 212a16 16 0 0 1 23 14.4V480a32 32 0 0 0 32 32h256a32 32 0 0 0 32-32V226.3a16 16 0 0 1 23-14.4l10.57 5.18L585.19 73.7zm163.31 81l-17.32-8.59-71.6 143.19 17.24 8.45h.06a16 16 0 0 0 21.45-7.2L638.28 118a16 16 0 0 0-7.1-21.5z\", \"M320 47.2c-51.89 0-96.39-19.4-116.49-47.2l-31.34 15.55a187.31 187.31 0 0 0 13.32 13.26C221.59 61.3 269.37 79.2 320 79.2s98.43-17.9 134.53-50.39a187.31 187.31 0 0 0 13.32-13.26L436.51 0c-20.1 27.8-64.6 47.2-116.51 47.2zM26.09 88l71.62 143.22 28.74-14.07-71.69-143.4zm559.1-14.3l-71.68 143.38 28.74 14.07 71.61-143.24z\"]]\n};\nvar faTty = {\n prefix: 'fad',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", [\"M468 256h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM84 448H44a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm288 0H140a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h232a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm96 0h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zM140 320h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12zm-96 0h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12H44a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12zm324 44v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12zM92 352a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm192 0a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm48-32h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12zm-144 32a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm48-32h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12z\", \"M509.22 126.5L466 195.64a18.33 18.33 0 0 1-22.35 7.36l-86.43-34.57a18.35 18.35 0 0 1-11.43-18.85L351.74 90a283.34 283.34 0 0 0-191.48 0l6 59.53a18.35 18.35 0 0 1-11.43 18.85L68.35 203A18.34 18.34 0 0 1 46 195.64L2.79 126.5a18.32 18.32 0 0 1 2.58-22.68c138.53-138.53 362.94-138.32 501.26 0a18.34 18.34 0 0 1 2.59 22.68z\"]]\n};\nvar faTurkey = {\n prefix: 'fad',\n iconName: 'turkey',\n icon: [640, 512, [], \"f725\", [\"M491.31 196.55C543.62 254.25 576 326.43 576 384c0 114.87-128.94 128-288 128S0 498.87 0 384 128.94 96 288 96c47.56 0 92.42 15.48 132 40.25-6.31 2.75-13 5.31-20.11 7.66-29.88 9.89-57.06 13.19-71.26 13-20.31-.28-38.95 2.78-55.38 9.1a112.79 112.79 0 0 0-67.12 69.81c-12.85 39.24-5.07 81.34 20.8 112.6a113.32 113.32 0 0 0 82.92 41.45 123.35 123.35 0 0 0 21.59-.91c43.67-5.56 80.8-39.2 94.56-85.7 3.52-11.91 18.24-46.79 41.23-78.59a200.78 200.78 0 0 1 24.08-28.12z\", \"M639.38 142.58c-4.42 29-23.91 45.46-52.11 44.14-.95 0-1.91-.11-2.87-.19a72.74 72.74 0 0 1-27.22-8 42.94 42.94 0 0 0-18.08-5.1c-11.3-.53-23.45 3.93-36.1 13.27-11.88 8.76-23.93 21.55-35.82 38-23 31.8-37.71 66.68-41.23 78.59-13.76 46.5-50.9 80.14-94.56 85.7a123.35 123.35 0 0 1-21.59.91 113.3 113.3 0 0 1-82.92-41.45c-25.87-31.26-33.65-73.36-20.8-112.6A112.79 112.79 0 0 1 273.2 166c16.43-6.32 35.07-9.38 55.38-9.1 14.2.19 41.38-3.11 71.26-13 30.58-10.13 54.47-24.29 67.27-39.89 10-12.22 13.4-25.21 10.28-39.73a53.55 53.55 0 0 1 20.66-54.17A51.24 51.24 0 0 1 531.1.06a53.14 53.14 0 0 1 38.51 19.33c9.56 11.64 13.54 26.57 11.21 42v.17a53.41 53.41 0 0 1-9 22.12 51.63 51.63 0 0 1 18.47-2.5c1.66.08 3.33.24 5 .48h.14c28.57 4.44 48.36 31.73 43.95 60.92z\"]]\n};\nvar faTurntable = {\n prefix: 'fad',\n iconName: 'turntable',\n icon: [576, 512, [], \"f8e4\", [\"M512 32H64A64 64 0 0 0 0 96v320a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V96a64 64 0 0 0-64-64zM224 416a160 160 0 1 1 160-160 160 160 0 0 1-160 160zm288-148.18a64 64 0 0 1-6.76 28.63l-18.93 37.86a16 16 0 0 1 7.16 21.46l-25.69 51.38a16 16 0 0 1-21.47 7.16L417.69 400a16 16 0 0 1-7.16-21.46l25.69-51.38a16 16 0 0 1 21.47-7.16l18.93-37.87a32 32 0 0 0 3.38-14.32V104a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8z\", \"M504 96h-16a8 8 0 0 0-8 8v163.81a32 32 0 0 1-3.38 14.31L457.69 320a16 16 0 0 0-21.47 7.16l-25.69 51.38a16 16 0 0 0 7.16 21.46l28.62 14.32a16 16 0 0 0 21.47-7.16l25.69-51.38a16 16 0 0 0-7.16-21.46l18.93-37.86a64 64 0 0 0 6.76-28.64V104a8 8 0 0 0-8-8zm-280 0a160 160 0 1 0 160 160A160 160 0 0 0 224 96zm0 192a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faTurtle = {\n prefix: 'fad',\n iconName: 'turtle',\n icon: [576, 512, [], \"f726\", [\"M552.28 137.25l-48.65-34.75c-35.17-17.42-80.49 1.57-86.81 40.31A63.4 63.4 0 0 0 416 153v71.22a62.79 62.79 0 0 1-13.27 38.44A64.75 64.75 0 0 1 351.05 288H18.6a18.6 18.6 0 0 0-5.89 36.24l98.29 22.1L66.17 424A16 16 0 0 0 80 448h37a16 16 0 0 0 13.86-8l40.3-69.8c26 8.52 45.55 13.8 84.87 13.8s58.89-5.28 84.87-13.8l40.3 69.8a16 16 0 0 0 13.8 8h37a16 16 0 0 0 13.86-24l-47.21-81.76c21.25-8.42 40.36-21.78 54.81-40.53A126.33 126.33 0 0 0 478.74 240h40.62a56.65 56.65 0 0 0 32.92-102.76zM480 176a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\", \"M68.25 256c-23.54 0-41-19.8-35.1-40 20-69 90.53-152 174.44-152h.82c83.92 0 154.43 83 174.45 152 5.87 20.24-11.56 40-35.1 40z\"]]\n};\nvar faTv = {\n prefix: 'fad',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", [\"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\", \"M576 352H64V64h512z\"]]\n};\nvar faTvAlt = {\n prefix: 'fad',\n iconName: 'tv-alt',\n icon: [640, 512, [], \"f8e5\", [\"M520 448H120a24 24 0 0 0-24 24v16a24 24 0 0 0 24 24h400a24 24 0 0 0 24-24v-16a24 24 0 0 0-24-24zM592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h544a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\", \"M576 352H64V64h512z\"]]\n};\nvar faTvMusic = {\n prefix: 'fad',\n iconName: 'tv-music',\n icon: [640, 512, [], \"f8e6\", [\"M64 64v288h512V64zm352 192c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-60.36l-96 37.52V288c0 17.67-21.5 32-48 32s-48-14.33-48-32 21.5-32 48-32a69.82 69.82 0 0 1 16 2v-98.7a16 16 0 0 1 11.19-15.3l128-47.25A16 16 0 0 1 416 112z\", \"M512 448H128a32 32 0 0 0 0 64h384a32 32 0 0 0 0-64zM592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h544a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512zm-336-32c26.5 0 48-14.33 48-32v-84.84l96-37.52V226a69.82 69.82 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V112a16 16 0 0 0-20.81-15.25l-128 47.25A16 16 0 0 0 256 159.25V258a69.82 69.82 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32z\"]]\n};\nvar faTvRetro = {\n prefix: 'fad',\n iconName: 'tv-retro',\n icon: [512, 512, [], \"f401\", [\"M392 168.07s0-8-168-8c-152 0-152 8-152 8s-8 0-8 120 8 120 8 120 0 8 152 8c168 0 168-8 168-8s8 0 8-120-8-120-8-120zM173.14 96h165.72l35.64-41.32a32 32 0 1 0-45.3-45.3L256 94.27 182.8 9.48a32 32 0 0 0-45.3 45.29z\", \"M464 96.07H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h16v32h48l21.3-32h245.3l21.3 32h48v-32h16a48 48 0 0 0 48-48v-288a47.86 47.86 0 0 0-47.9-48zm-72 312s0 8-168 8c-152 0-152-8-152-8s-8 0-8-120 8-120 8-120 0-8 152-8c168 0 168 8 168 8s8 0 8 120-8 120-8 120zm72-100a12 12 0 0 1-12 12h-8a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h8a12 12 0 0 1 12 12zm0-64a12 12 0 0 1-12 12h-8a12 12 0 0 1-12-12v-8a12 12 0 0 1 12-12h8a12 12 0 0 1 12 12z\"]]\n};\nvar faTypewriter = {\n prefix: 'fad',\n iconName: 'typewriter',\n icon: [512, 512, [], \"f8e7\", [\"M368 96a16 16 0 0 1-16-16V0H88a23.94 23.94 0 0 0-24 23.88V192h82.75a32 32 0 0 1 22.62 9.37l13.26 13.26a32 32 0 0 0 22.62 9.37h101.5a32 32 0 0 0 22.62-9.37l13.26-13.26a32 32 0 0 1 22.62-9.37H448V96z\", \"M368 96h80v-4.58a17.92 17.92 0 0 0-5.25-12.67l-73.43-73.5A18 18 0 0 0 356.57 0H352v80a16 16 0 0 0 16 16zm112 96H365.25a32 32 0 0 0-22.62 9.37l-13.26 13.26a32 32 0 0 1-22.62 9.37h-101.5a32 32 0 0 1-22.62-9.37l-13.26-13.26a32 32 0 0 0-22.62-9.37H32a32 32 0 0 0-32 32v32a32 32 0 0 0 32 32v160a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V288a32 32 0 0 0 32-32v-32a32 32 0 0 0-32-32zM336 296a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8zm-24 56h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8zm-40-56a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8zm-24 56h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8zm-40-56a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8zm-24 56h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8zm-40-56a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8zm-40 24H88a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8zm32 64h-16a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8zm232 56a8 8 0 0 1-8 8H152a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h208a8 8 0 0 1 8 8zm32-64a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8zm32-64a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8z\"]]\n};\nvar faUfo = {\n prefix: 'fad',\n iconName: 'ufo',\n icon: [640, 512, [], \"e047\", [\"M496,240c0,3.14648-.30469,6.21484-.46875,9.32227C441.94531,273.66016,382.79688,288,320,288s-121.94531-14.33984-175.53125-38.67773C144.30469,246.21484,144,243.14648,144,240a176,176,0,0,1,352,0Z\", \"M493.65234,212.582A176.66471,176.66471,0,0,1,496,240c0,3.14648-.30469,6.21484-.46875,9.32227C441.94531,273.66016,382.79688,288,320,288s-121.94531-14.33984-175.53125-38.67773C144.30469,246.21484,144,243.14648,144,240a176.66471,176.66471,0,0,1,2.34766-27.418C58.35547,235.39062,0,274.93555,0,320c0,70.69141,143.26953,128,320,128s320-57.30859,320-128C640,274.93555,581.64453,235.39062,493.65234,212.582ZM128,360a24,24,0,1,1,24-24A24.00118,24.00118,0,0,1,128,360Zm192,32a24,24,0,1,1,24-24A24.00118,24.00118,0,0,1,320,392Zm192-32a24,24,0,1,1,24-24A24.00118,24.00118,0,0,1,512,360Z\"]]\n};\nvar faUfoBeam = {\n prefix: 'fad',\n iconName: 'ufo-beam',\n icon: [640, 512, [], \"e048\", [\"M33.69349,481.68406a15.99575,15.99575,0,0,0,7.15608,21.46486l14.31606,7.15821A15.99982,15.99982,0,0,0,76.63,503.15283L158.3155,339.77376a15.72566,15.72566,0,0,0,1.57027-5.79492,454.09335,454.09335,0,0,1-45.60046-13.47658Zm572.61124,0-80.584-161.17789a454.76672,454.76672,0,0,1-45.60828,13.47462,16.02422,16.02422,0,0,0,1.57027,5.793l81.68554,163.37907a16.00317,16.00317,0,0,0,21.46823,7.1543l14.31607-7.15821A15.99761,15.99761,0,0,0,606.30473,481.68406ZM320.00692,0A150.8559,150.8559,0,0,0,169.15118,150.85757c0,2.69531.26561,5.32617.40624,7.99024,45.92858,20.86135,96.62267,33.15237,150.4495,33.15237s104.52093-12.291,150.44951-33.15237c.14062-2.66407.40624-5.29493.40624-7.99024A150.8559,150.8559,0,0,0,320.00692,0Z\", \"M464.96438,111.33409c3.453,12.67384,5.89829,25.75393,5.89829,39.52348,0,2.69531-.26562,5.32617-.40624,7.99024-45.92858,20.86135-96.62268,33.15237-150.44951,33.15237s-104.52092-12.291-150.4495-33.15237c-.14063-2.66407-.40624-5.29493-.40624-7.99024,0-13.76955,2.44525-26.84964,5.89829-39.52348C89.59059,130.75989,32.01385,166.72477,32.01385,208.0002c0,61.85553,128.9383,112.00011,287.99307,112.00011S608,269.85573,608,208.0002C608,166.72477,550.42326,130.75989,464.96438,111.33409ZM128.01154,232.00022a24,24,0,1,1,23.99942-24A24.0009,24.0009,0,0,1,128.01154,232.00022Zm191.99538,48a24,24,0,1,1,23.99943-24A24.00091,24.00091,0,0,1,320.00692,280.00027Zm191.99539-48a24,24,0,1,1,23.99942-24A24.00091,24.00091,0,0,1,512.00231,232.00022Z\"]]\n};\nvar faUmbrella = {\n prefix: 'fad',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", [\"M288 288c12.2 0 22.9 5.7 32 13.6v130.3a80 80 0 0 1-155.4 26.7 32 32 0 0 1 60.3-21.3A16 16 0 0 0 256 432V301.7c9.59-8.9 19.69-13.6 32-13.7z\", \"M557 292.2c-51.5-54.4-107.61-52.5-158.61 37-5.3 9.5-14.9 8.6-19.7 0-2.5-4.4-32.2-73.2-90.7-73.2-45.8 0-70.5 37.8-90.7 73.2-4.8 8.6-14.4 9.5-19.7 0-50.9-89.4-106.59-92-158.59-37-10.2 9.9-20.9-1.3-18.7-11.4C29.49 144.5 138.29 62.6 256 49.9V32a32 32 0 0 1 64 0v17.9c117.3 12.7 227.11 94.6 255.71 230.9 2.2 10.1-8.4 21.4-18.71 11.4z\"]]\n};\nvar faUmbrellaBeach = {\n prefix: 'fad',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", [\"M253 448l72.9-200.37L386 269.5 321.06 448z\", \"M247.63 185.06l238.47 86.83c35.76-121.38 18.7-231.66-42.62-254a66.94 66.94 0 0 0-23.09-4c-58.02.04-128.27 69.19-172.76 171.17zM115.38 136.9l102.11 37.18C252.68 92.54 303.7 29.8 356.49.39A299.21 299.21 0 0 0 108 112.18c-6.73 8.4-2.7 21.05 7.38 24.72zm406.09-76.4a226.81 226.81 0 0 1 13.2 55.19c5.74 49.89-1.42 108.23-18.95 167L618.34 320c10.09 3.67 21.31-3.43 21.57-14.17A299.4 299.4 0 0 0 521.47 60.5zM560 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h544a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]]\n};\nvar faUnderline = {\n prefix: 'fad',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", [\"M432 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16z\"]]\n};\nvar faUndo = {\n prefix: 'fad',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", [\"M123.31 388.69a12 12 0 0 1 16.38-.54 176 176 0 1 0-29.61-230.61l-46.5 2.22 3.52-64.43A247.45 247.45 0 0 1 256 8c136.66 0 248.1 111.53 248 248.19C503.9 393.07 392.9 504 256 504a247.1 247.1 0 0 1-166.21-63.88l-.49-.46a12 12 0 0 1 0-17z\", \"M11.65 0h48A12 12 0 0 1 71 12.55l-7.42 147.21 147.54-7.06h.58a12 12 0 0 1 12 12V212a12 12 0 0 1-12 12h-200a12 12 0 0 1-12-12V12A12 12 0 0 1 11.65 0z\"]]\n};\nvar faUndoAlt = {\n prefix: 'fad',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", [\"M129 383a12 12 0 0 1 16.37-.56A166.77 166.77 0 0 0 256 424c93.82 0 167.24-76 168-166.55C424.79 162 346.91 87.21 254.51 88a166.73 166.73 0 0 0-113.2 45.25L84.69 76.69A247.12 247.12 0 0 1 255.54 8C392.35 7.76 504 119.19 504 256c0 137-111 248-248 248a247.11 247.11 0 0 1-166.18-63.91l-.49-.46a12 12 0 0 1 0-17z\", \"M49 41l134.06 134c15.09 15.15 4.38 41-17 41H32a24 24 0 0 1-24-24V57.94C8 36.56 33.85 25.85 49 41z\"]]\n};\nvar faUnicorn = {\n prefix: 'fad',\n iconName: 'unicorn',\n icon: [640, 512, [], \"f727\", [\"M65.43 215a39.94 39.94 0 0 0-17.36 33v56a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-56a88 88 0 0 1 88-88h1.39a95.59 95.59 0 0 0-24.03 55zM638.69 35.55a8 8 0 0 0-6.62-3.55H531.94a52.6 52.6 0 0 1-10.28 8.3c5.11 5.38 9.91 10.5 13.69 14.5a31.75 31.75 0 0 1 8.59 21.8v6.76l92.54-36.71a8 8 0 0 0 2.21-11.1z\", \"M535.35 54.8c-3.78-4-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66a8.08 8.08 0 0 0-6.39-9.49 8 8 0 0 0-1.54-.15h-120a128 128 0 0 0-128 128H161a96 96 0 0 0-65.56 166.12l-25.62 68.36a64 64 0 0 0-2.16 38l24.85 99.41A16 16 0 0 0 108 512h66a16 16 0 0 0 15.52-19.88l-26.33-105.26L187 323.27l101 22.31V496a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V318.22A111.49 111.49 0 0 0 416 240c0-.22-.07-.42-.08-.64V224l.08-32a1.15 1.15 0 0 1-.08.41v-55.52h.08l15.93 7.11 18.9 37.7a32 32 0 0 0 40.49 15.37l32.55-13A32 32 0 0 0 544 154.31l-.06-77.71a31.75 31.75 0 0 0-8.59-21.8zM479.93 96a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]]\n};\nvar faUnion = {\n prefix: 'fad',\n iconName: 'union',\n icon: [384, 512, [], \"f6a2\", [\"M96 48v236.21c0 46.43 31.29 89.08 76.87 97.93A96.16 96.16 0 0 0 288 288V48a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v233.32c0 97.57-70 184.64-166.74 197.06C100.17 493.4 0 402.18 0 288V48a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16z\", \"\"]]\n};\nvar faUniversalAccess = {\n prefix: 'fad',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", [\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64zm0 44a36 36 0 1 1-36 36 36 36 0 0 1 36-36zm117.74 98c-28.71 6.78-55.51 12.75-82.14 15.81.85 101 12.31 123 25 155.62a18 18 0 1 1-33.54 13.1C274.4 368.24 266 349.91 260.84 312h-9.68c-5.17 37.85-13.54 56.21-22.26 78.55a18 18 0 1 1-33.54-13.1c12.72-32.54 24.19-54.54 25-155.62-26.63-3.06-53.43-9-82.14-15.81a16 16 0 0 1 7.35-31.14c96.69 22.83 124.29 22.78 220.78 0a16 16 0 0 1 8.33 30.9c-.31.08-.62.16-.94.22z\", \"M256 180a36 36 0 1 0-36-36 36 36 0 0 0 36 36zm110.39-5.12c-96.49 22.78-124.09 22.83-220.78 0a16 16 0 0 0-7.35 31.12c28.71 6.78 55.51 12.75 82.14 15.81-.85 101.08-12.32 123.08-25 155.62a18 18 0 1 0 33.54 13.1c8.72-22.34 17.09-40.7 22.26-78.55h9.68c5.18 37.91 13.56 56.24 22.26 78.55a18 18 0 1 0 33.54-13.1c-12.73-32.57-24.19-54.6-25-155.62 26.63-3.06 53.43-9 82.14-15.81a16 16 0 0 0-6.82-31.26l-.51.12zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 440c-106 0-192-86-192-192S150 64 256 64s192 86 192 192-85.81 191.94-191.8 192z\"]]\n};\nvar faUniversity = {\n prefix: 'fad',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", [\"M160,192V384h64V192h64V384h64V192h64V384h36a12,12,0,0,1,12,12v20H48V396a12,12,0,0,1,12-12H96V192Z\", \"M491.06,120.61l-232-88a8,8,0,0,0-6.12,0l-232,88A8,8,0,0,0,16,128v16a8,8,0,0,0,8,8H48v12a12,12,0,0,0,12,12H452a12,12,0,0,0,12-12V152h24a8,8,0,0,0,8-8V128A8,8,0,0,0,491.06,120.61ZM472,432H40a24,24,0,0,0-24,24v16a8,8,0,0,0,8,8H488a8,8,0,0,0,8-8V456A24,24,0,0,0,472,432Z\"]]\n};\nvar faUnlink = {\n prefix: 'fad',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", [\"M264.49 366.31a12 12 0 0 0-17 0L202.84 411A72 72 0 0 1 101 309.16l44.67-44.67a12 12 0 0 0 0-17l-39.6-39.6a12 12 0 0 0-17 0l-44.62 44.7c-59.27 59.27-59.27 155.7 0 215s155.7 59.26 215 0l44.67-44.67a12 12 0 0 0 0-17zM467.55 44.45c-59.26-59.27-155.69-59.27-215 0l-44.63 44.67a12 12 0 0 0 0 17l39.6 39.6a12 12 0 0 0 17 0L309.16 101A72 72 0 1 1 411 202.84l-44.67 44.67a12 12 0 0 0 0 17l39.6 39.59a12 12 0 0 0 17 0l44.67-44.67c59.22-59.29 59.22-155.72-.05-214.98z\", \"M63.6 7L505 448.4a24 24 0 0 1 0 33.94L482.34 505a24 24 0 0 1-33.94 0L7 63.6a24 24 0 0 1 0-33.94L29.66 7A24 24 0 0 1 63.6 7z\"]]\n};\nvar faUnlock = {\n prefix: 'fad',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", [\"M72 256V153.5C72 69.5 139.5.3 223.5 0S376 68 376 152v16a23.94 23.94 0 0 1-24 24h-32a23.94 23.94 0 0 1-24-24v-16a72.11 72.11 0 0 0-72.7-72c-39.6.4-71.3 33.3-71.3 72.9V256z\", \"M400 512H48a48 48 0 0 1-48-48V304a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48v160a48 48 0 0 1-48 48z\"]]\n};\nvar faUnlockAlt = {\n prefix: 'fad',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", [\"M72 256V153.5C72 69.5 139.5.3 223.5 0S376 68 376 152v16a23.94 23.94 0 0 1-24 24h-32a23.94 23.94 0 0 1-24-24v-16a72.11 72.11 0 0 0-72.7-72c-39.6.4-71.3 33.3-71.3 72.9V256z\", \"M400 256H48a48 48 0 0 0-48 48v160a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V304a48 48 0 0 0-48-48zM264 408a40 40 0 0 1-80 0v-48a40 40 0 0 1 80 0z\"]]\n};\nvar faUpload = {\n prefix: 'fad',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", [\"M488 351.92H352v8a56 56 0 0 1-56 56h-80a56 56 0 0 1-56-56v-8H24a23.94 23.94 0 0 0-24 24v112a23.94 23.94 0 0 0 24 24h464a23.94 23.94 0 0 0 24-24v-112a23.94 23.94 0 0 0-24-24zm-120 132a20 20 0 1 1 20-20 20.06 20.06 0 0 1-20 20zm64 0a20 20 0 1 1 20-20 20.06 20.06 0 0 1-20 20z\", \"M192 359.93v-168h-87.7c-17.8 0-26.7-21.5-14.1-34.11L242.3 5.62a19.37 19.37 0 0 1 27.3 0l152.2 152.2c12.6 12.61 3.7 34.11-14.1 34.11H320v168a23.94 23.94 0 0 1-24 24h-80a23.94 23.94 0 0 1-24-24z\"]]\n};\nvar faUsbDrive = {\n prefix: 'fad',\n iconName: 'usb-drive',\n icon: [640, 512, [], \"f8e9\", [\"M624 128H448v256h176a16 16 0 0 0 16-16V144a16 16 0 0 0-16-16zm-40 184a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16zm0-96a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16z\", \"M448 112v288a16 16 0 0 1-16 16H64a64 64 0 0 1-64-64V160a64 64 0 0 1 64-64h368a16 16 0 0 1 16 16z\"]]\n};\nvar faUsdCircle = {\n prefix: 'fad',\n iconName: 'usd-circle',\n icon: [496, 512, [], \"f2e8\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm24,376v16a16,16,0,0,1-16,16H240a16,16,0,0,1-16-16V383.8a88.76,88.76,0,0,1-46.4-15.1c-8.7-5.9-10-18.1-2.3-25.2l12-11.3c5.4-5.1,13.3-5.4,19.7-1.6a38.91,38.91,0,0,0,19.9,5.4h45c11.3,0,20.5-10.5,20.5-23.4,0-10.6-6.3-19.9-15.2-22.7L205,268c-29-8.8-49.2-37-49.2-68.6,0-39.3,30.6-71.3,68.2-71.4V112a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v16.2a88.76,88.76,0,0,1,46.4,15.1c8.7,5.9,10,18.1,2.3,25.2l-12,11.3c-5.4,5.1-13.3,5.4-19.7,1.6a38.91,38.91,0,0,0-19.9-5.4h-45c-11.3,0-20.5,10.5-20.5,23.4,0,10.6,6.3,19.9,15.2,22.7l72,21.9c29,8.8,49.2,37,49.2,68.6C340.2,351.9,309.6,383.8,272,384Z\", \"M224,128V112a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v16.2a88.76,88.76,0,0,1,46.4,15.1c8.7,5.9,10,18.1,2.3,25.2l-12,11.3c-5.4,5.1-13.3,5.4-19.7,1.6a38.91,38.91,0,0,0-19.9-5.4h-45c-11.3,0-20.5,10.5-20.5,23.4,0,10.6,6.3,19.9,15.2,22.7l72,21.9c29,8.8,49.2,37,49.2,68.6.2,39.3-30.4,71.2-68,71.4v16a16,16,0,0,1-16,16H240a16,16,0,0,1-16-16V383.8a88.76,88.76,0,0,1-46.4-15.1c-8.7-5.9-10-18.1-2.3-25.2l12-11.3c5.4-5.1,13.3-5.4,19.7-1.6a38.91,38.91,0,0,0,19.9,5.4h45c11.3,0,20.5-10.5,20.5-23.4,0-10.6-6.3-19.9-15.2-22.7L205,268c-29-8.8-49.2-37-49.2-68.6C155.8,160.1,186.4,128.1,224,128Z\"]]\n};\nvar faUsdSquare = {\n prefix: 'fad',\n iconName: 'usd-square',\n icon: [448, 512, [], \"f2e9\", [\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zM248 384v16a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16.2a88.84 88.84 0 0 1-46.4-15.1c-8.7-5.9-10-18.1-2.3-25.2l12-11.3c5.4-5.1 13.3-5.4 19.7-1.6a38.9 38.9 0 0 0 19.9 5.4h45c11.3 0 20.5-10.5 20.5-23.4 0-10.6-6.3-19.9-15.2-22.7L181 268c-29-8.8-49.2-37-49.2-68.6 0-39.3 30.6-71.3 68.2-71.4v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v16.2a88.84 88.84 0 0 1 46.4 15.1c8.7 5.9 10 18.1 2.3 25.2l-12 11.3c-5.4 5.1-13.3 5.4-19.7 1.6a38.9 38.9 0 0 0-19.9-5.4h-45c-11.3 0-20.5 10.5-20.5 23.4 0 10.6 6.3 19.9 15.2 22.7l72 21.9c29 8.8 49.2 37 49.2 68.6.2 39.3-30.4 71.2-68 71.4z\", \"M248 384v16a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-16.2a88.84 88.84 0 0 1-46.4-15.1c-8.7-5.9-10-18.1-2.3-25.2l12-11.3c5.4-5.1 13.3-5.4 19.7-1.6a38.9 38.9 0 0 0 19.9 5.4h45c11.3 0 20.5-10.5 20.5-23.4 0-10.6-6.3-19.9-15.2-22.7L181 268c-29-8.8-49.2-37-49.2-68.6 0-39.3 30.6-71.3 68.2-71.4v-16a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v16.2a88.84 88.84 0 0 1 46.4 15.1c8.7 5.9 10 18.1 2.3 25.2l-12 11.3c-5.4 5.1-13.3 5.4-19.7 1.6a38.9 38.9 0 0 0-19.9-5.4h-45c-11.3 0-20.5 10.5-20.5 23.4 0 10.6 6.3 19.9 15.2 22.7l72 21.9c29 8.8 49.2 37 49.2 68.6.2 39.3-30.4 71.2-68 71.4z\"]]\n};\nvar faUser = {\n prefix: 'fad',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", [\"M352 128A128 128 0 1 1 224 0a128 128 0 0 1 128 128z\", \"M313.6 288h-16.7a174.1 174.1 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6A134.43 134.43 0 0 0 313.6 288z\"]]\n};\nvar faUserAlien = {\n prefix: 'fad',\n iconName: 'user-alien',\n icon: [448, 512, [], \"e04a\", [\"M352,384H317.61719c-19.65235,17.98828-39.02344,33.541-55.49219,45.84766a63.66049,63.66049,0,0,1-76.25.00195C169.40625,417.543,150.03516,401.98828,130.38281,384H96A95.99975,95.99975,0,0,0,0,480a32.00158,32.00158,0,0,0,32,32H416a32.00158,32.00158,0,0,0,32-32A95.99975,95.99975,0,0,0,352,384ZM205.03125,404.21484a31.65827,31.65827,0,0,0,37.9375,0C288.46094,370.22266,400,277.51172,400,185.68359,400,70.31836,321.17969,0,224,0,126.78906,0,48,70.31836,48,185.68359,48,277.51172,159.53906,370.22266,205.03125,404.21484ZM240,252a60.00047,60.00047,0,0,1,60-60h24a12.00185,12.00185,0,0,1,12,12v8a60.00047,60.00047,0,0,1-60,60H252a12.00185,12.00185,0,0,1-12-12ZM112,212v-8a12.00185,12.00185,0,0,1,12-12h24a60.00047,60.00047,0,0,1,60,60v8a12.00185,12.00185,0,0,1-12,12H172A60.00047,60.00047,0,0,1,112,212Z\", \"M324,192H300a60.00047,60.00047,0,0,0-60,60v8a12.00185,12.00185,0,0,0,12,12h24a60.00047,60.00047,0,0,0,60-60v-8A12.00185,12.00185,0,0,0,324,192Zm-176,0H124a12.00185,12.00185,0,0,0-12,12v8a60.00047,60.00047,0,0,0,60,60h24a12.00185,12.00185,0,0,0,12-12v-8A60.00047,60.00047,0,0,0,148,192Z\"]]\n};\nvar faUserAlt = {\n prefix: 'fad',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", [\"M400 144A144 144 0 1 1 256 0a144 144 0 0 1 144 144z\", \"M384 320h-55.1a174.1 174.1 0 0 1-145.8 0H128A128 128 0 0 0 0 448v16a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48v-16a128 128 0 0 0-128-128z\"]]\n};\nvar faUserAltSlash = {\n prefix: 'fad',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", [\"M180.6 107.84a144 144 0 1 1 209.51 161.94zM198.37 320A134.43 134.43 0 0 0 64 454.4v9.6a48 48 0 0 0 48 48h382.2L245.77 320z\", \"M636.67 480.4l-19.6 25.3a16.06 16.06 0 0 1-22.5 2.8L6.17 53.8a15.93 15.93 0 0 1-2.8-22.4L23 6.2a16.06 16.06 0 0 1 22.5-2.8l588.3 454.7a15.85 15.85 0 0 1 2.87 22.3z\"]]\n};\nvar faUserAstronaut = {\n prefix: 'fad',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", [\"M296 96H152c-26.5 0-48 17.9-48 40v24a96 96 0 0 0 96 96h48a96 96 0 0 0 96-96v-24c0-22.1-21.5-40-48-40zm-108 76l-12 36-12-36-36-12 36-12 12-36 12 36 36 12zm-12 276a16 16 0 0 0-16 16v48h32v-48a16 16 0 0 0-16-16zm96 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\", \"M327.6 321.4a190.68 190.68 0 0 1-207.2 0C52.9 328.5 0 385 0 454.4v9.6a48 48 0 0 0 48 48h80v-64a32 32 0 0 1 32-32h128a32 32 0 0 1 32 32v64h80a48 48 0 0 0 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM64 224h13.5a159.78 159.78 0 0 0 293 0H384a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16h-13.5a159.78 159.78 0 0 0-293 0H64a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24a96 96 0 0 1-96 96h-48a96 96 0 0 1-96-96z\"]]\n};\nvar faUserChart = {\n prefix: 'fad',\n iconName: 'user-chart',\n icon: [640, 512, [], \"f6a3\", [\"M592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288H307.76a127.45 127.45 0 0 1 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0zM312 217.94l55 55a24 24 0 0 0 34 .06l72-72 24.3 24.3c11.34 11.34 30.73 3.31 30.73-12.73V124a12 12 0 0 0-12-12h-88.57c-16 0-24.07 19.39-12.73 30.73L439 167l-55 55-55-55a24 24 0 0 0-34 0l-14.75 14.75C285 195.07 288 209.13 288 224a126.17 126.17 0 0 1-2 19.95z\", \"M160 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32h-3.81c-13.93 4.83-28.64 8-44.19 8s-30.26-3.17-44.19-8H112A112 112 0 0 0 0 464a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48 112 112 0 0 0-112-112z\"]]\n};\nvar faUserCheck = {\n prefix: 'fad',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", [\"M636.6 159.6a12 12 0 0 1-.1 16.8L495.2 316.6a11.86 11.86 0 0 1-16.8-.1l-81.7-82.3a11.86 11.86 0 0 1 .1-16.8l28.1-27.9a11.86 11.86 0 0 1 16.8.1l45.5 45.8 104.8-104a11.86 11.86 0 0 1 16.8.1z\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm89.6 32h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6A134.43 134.43 0 0 0 313.6 288z\"]]\n};\nvar faUserCircle = {\n prefix: 'fad',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", [\"M248,8C111,8,0,119,0,256S111,504,248,504,496,393,496,256,385,8,248,8Zm0,96a88,88,0,1,1-88,88A88,88,0,0,1,248,104Zm0,344a191.61,191.61,0,0,1-146.5-68.2C120.3,344.4,157.1,320,200,320a24.76,24.76,0,0,1,7.1,1.1,124.67,124.67,0,0,0,81.8,0A24.76,24.76,0,0,1,296,320c42.9,0,79.7,24.4,98.5,59.8A191.61,191.61,0,0,1,248,448Z\", \"M248,280a88,88,0,1,0-88-88A88,88,0,0,0,248,280Zm48,40a24.76,24.76,0,0,0-7.1,1.1,124.67,124.67,0,0,1-81.8,0A24.76,24.76,0,0,0,200,320c-42.9,0-79.7,24.4-98.5,59.8,68.07,80.91,188.84,91.32,269.75,23.25A192,192,0,0,0,394.5,379.8C375.7,344.4,338.9,320,296,320Z\"]]\n};\nvar faUserClock = {\n prefix: 'fad',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", [\"M496 224a144 144 0 1 0 144 144 143.91 143.91 0 0 0-144-144zm64 150.3a9.77 9.77 0 0 1-9.7 9.7h-60.6a9.77 9.77 0 0 1-9.7-9.7v-76.6a9.77 9.77 0 0 1 9.7-9.7h12.6a9.77 9.77 0 0 1 9.7 9.7V352h38.3a9.77 9.77 0 0 1 9.7 9.7z\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 112a175.38 175.38 0 0 1 18.2-77.5 133.25 133.25 0 0 0-24.6-2.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144z\"]]\n};\nvar faUserCog = {\n prefix: 'fad',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", [\"M636.3 388.2l-25.8-14.9a117.31 117.31 0 0 0 0-42.6l25.8-14.9a7.24 7.24 0 0 0 3.3-8.5 150.07 150.07 0 0 0-33.2-57.4 7.29 7.29 0 0 0-9-1.4l-25.8 14.9a117.4 117.4 0 0 0-36.9-21.3v-29.8a7.28 7.28 0 0 0-5.7-7.1 150.88 150.88 0 0 0-66.2 0 7.28 7.28 0 0 0-5.7 7.1v29.8a117.4 117.4 0 0 0-36.9 21.3l-25.8-14.9a7.31 7.31 0 0 0-9 1.4 150.07 150.07 0 0 0-33.2 57.4 7.37 7.37 0 0 0 3.3 8.5l25.8 14.9a117.31 117.31 0 0 0 0 42.6l-25.8 14.9a7.24 7.24 0 0 0-3.3 8.5 150.82 150.82 0 0 0 33.2 57.4 7.29 7.29 0 0 0 9 1.4l25.8-14.9a117.4 117.4 0 0 0 36.9 21.3v29.8a7.28 7.28 0 0 0 5.7 7.1 150.88 150.88 0 0 0 66.2 0 7.28 7.28 0 0 0 5.7-7.1v-29.8a117.4 117.4 0 0 0 36.9-21.3l25.8 14.9a7.31 7.31 0 0 0 9-1.4 150.07 150.07 0 0 0 33.2-57.4 7.37 7.37 0 0 0-3.3-8.5zM496 400.5a48.5 48.5 0 1 1 48.5-48.5 48.55 48.55 0 0 1-48.5 48.5z\", \"M425.2 491.7v-9.2c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6a39.23 39.23 0 0 1-48.5-7.3 182.34 182.34 0 0 1-40.2-69.6 39.11 39.11 0 0 1 17.9-45.7l7.9-4.6q-.15-3.9 0-7.8l-7.9-4.6a39.07 39.07 0 0 1-17.9-45.7c.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a47.94 47.94 0 0 0 27.2-8.5 39 39 0 0 1-2-11.8zM224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128z\"]]\n};\nvar faUserCowboy = {\n prefix: 'fad',\n iconName: 'user-cowboy',\n icon: [448, 512, [], \"f8ea\", [\"M352 224.28v.22a128 128 0 0 1-256 0v-.23c32.26 18.65 74.19 32.23 128 32.23s95.71-13.57 128-32.22z\", \"M313.59 384h-16.68a174.12 174.12 0 0 1-145.82 0h-16.68A133.82 133.82 0 0 0 9.55 469.8C1.66 490.19 18.08 512 40 512h368.1c21.87 0 38.29-21.81 30.4-42.2A133.82 133.82 0 0 0 313.59 384zm28.91-270.44C331.44 64 310.87 0 278.1 0c-10.33 0-19.55 4.45-27.3 10.47a42.41 42.41 0 0 1-52.07 0C191 4.45 181.76 0 171.43 0c-32.88 0-53.49 64.49-64.51 114.09C133 124 170.75 132.57 224 132.57c54.18 0 92.36-8.84 118.5-19.01zm96-15.76a18.2 18.2 0 0 0-21.95 5.2c-.43.57-44.81 61.59-192.55 61.59C77.12 164.57 32.4 104.21 31.46 103a18 18 0 0 0-21.79-5.37c-7.76 3.53-11.51 11.84-8.79 19.44C1.4 118.46 52.75 256 224 256s222.61-137.54 223.13-138.93c2.69-7.54-1.03-15.69-8.66-19.27z\"]]\n};\nvar faUserCrown = {\n prefix: 'fad',\n iconName: 'user-crown',\n icon: [448, 512, [], \"f6a4\", [\"M352 96H96V0l64 32 64-32 64 32 64-32z\", \"M313.6 304h-16.71a174 174 0 0 1-145.78 0H134.4A134.4 134.4 0 0 0 0 438.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-25.6A134.4 134.4 0 0 0 313.6 304zM224 272a128 128 0 0 0 128-128v-16H96v16a128 128 0 0 0 128 128z\"]]\n};\nvar faUserEdit = {\n prefix: 'fad',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", [\"M358.9 433.3l-6.8 61a15.92 15.92 0 0 0 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7zM633 268.9L595.1 231a24 24 0 0 0-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8a24.08 24.08 0 0 0 0-33.9z\", \"M313.6 288h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h274.9a48 48 0 0 1-2.6-21.3l6.8-60.9 1.2-11.1 85.2-85.2c-24.5-27.7-60-45.5-99.9-45.5zM224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128z\"]]\n};\nvar faUserFriends = {\n prefix: 'fad',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", [\"M480 256a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592a48 48 0 0 0 48-48 111.94 111.94 0 0 0-112-112z\", \"M192 256A112 112 0 1 0 80 144a111.94 111.94 0 0 0 112 112zm76.8 32h-8.3a157.53 157.53 0 0 1-68.5 16c-24.6 0-47.6-6-68.5-16h-8.3A115.23 115.23 0 0 0 0 403.2V432a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48v-28.8A115.23 115.23 0 0 0 268.8 288z\"]]\n};\nvar faUserGraduate = {\n prefix: 'fad',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", [\"M351.75 168a128 128 0 0 1-255.5 0z\", \"M13.6 79.83l6.4 1.5v58.4c-7 4.19-12 11.5-12 20.27 0 8.4 4.6 15.4 11.1 19.71L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.27C51.4 175.42 56 168.42 56 160c0-8.79-5-16.1-12-20.29V87.12l52 12.53V136h256V99.65l82.3-19.82c18.2-4.41 18.2-27.1 0-31.5l-190.4-46a85.9 85.9 0 0 0-39.7 0L13.6 48.23c-18.1 4.39-18.1 27.19 0 31.6zm305.8 240.79L224 416l-95.4-95.4C57.1 323.73 0 382.23 0 454.42V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-9.6c0-72.17-57.1-130.67-128.6-133.78z\"]]\n};\nvar faUserHardHat = {\n prefix: 'fad',\n iconName: 'user-hard-hat',\n icon: [448, 512, [], \"f82c\", [\"M97.61 208h252.78c-7.95 63.06-61.17 112-126.39 112S105.56 271.06 97.61 208z\", \"M313.6 352h-16.7a174.1 174.1 0 0 1-145.8 0h-16.7A134.4 134.4 0 0 0 0 486.4 25.6 25.6 0 0 0 25.6 512h396.8a25.6 25.6 0 0 0 25.6-25.6A134.4 134.4 0 0 0 313.6 352zM88 176h272a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8h-8a112 112 0 0 0-68.4-103.2L256 80V16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v64l-27.6-55.2A112 112 0 0 0 96 128h-8a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8z\"]]\n};\nvar faUserHeadset = {\n prefix: 'fad',\n iconName: 'user-headset',\n icon: [448, 512, [], \"f82d\", [\"M416 192v16a112.15 112.15 0 0 1-112 112h-96a32 32 0 0 1 0-64h32a32 32 0 0 1 32 32h32a80.09 80.09 0 0 0 80-80v-16c0-88.22-71.78-160-160-160S64 103.78 64 192v16a16 16 0 0 1-32 0v-16C32 86.13 118.13 0 224 0s192 86.13 192 192z\", \"M320 352h-23.1a174.1 174.1 0 0 1-145.8 0H128A128 128 0 0 0 0 480a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32 128 128 0 0 0-128-128zm-175.65-60.53c-.06-1.17-.35-2.28-.35-3.47a64.07 64.07 0 0 1 64-64h32a64 64 0 0 1 55.41 32H304a48.05 48.05 0 0 0 48-48v-16a128 128 0 0 0-256 0c0 40.42 19.1 76 48.35 99.47z\"]]\n};\nvar faUserInjured = {\n prefix: 'fad',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", [\"M306 30.48L240 80h102.51A127.7 127.7 0 0 0 306 30.48zM80 299.7V512h128.26l-98.45-221.52A132.86 132.86 0 0 0 80 299.7zM277.37 12a127.05 127.05 0 0 0-171.88 68h81.19z\", \"M256 416h-55.38l42.67 96H256a48 48 0 0 0 0-96zm96-288c0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16a128 128 0 0 0 256 0zm-38.4 160h-16.71a174 174 0 0 1-145.78 0h-7.37l42.67 96H256a80.09 80.09 0 0 1 80 80 79.24 79.24 0 0 1-16.41 48H400a48 48 0 0 0 48-48v-41.6A134.4 134.4 0 0 0 313.6 288zM0 422.4V464a48 48 0 0 0 48 48V320.24C18.88 344.89 0 381.26 0 422.4z\"]]\n};\nvar faUserLock = {\n prefix: 'fad',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", [\"M608 288h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32z\"]]\n};\nvar faUserMd = {\n prefix: 'fad',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", [\"M352 128a128 128 0 1 0-128 128 128 128 0 0 0 128-128zM144 370.6V288h-9.6a135.6 135.6 0 0 0-22.4 1.87v80.73a56 56 0 1 0 32 0zM128 448a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm191.8-85.6v-74.25c-2.06-.1-4.12-.15-6.2-.15h-16.7q-4.38 2-8.9 3.79v70.41c-28.2 7.5-48 34.5-48 64.6V456a16.06 16.06 0 0 0 4.7 11.3l10.3 10.3a8 8 0 0 0 11.3 0l11.3-11.3a8 8 0 0 0 0-11.3l-5.7-5.7V424a32.14 32.14 0 0 1 37.4-31.6c15.7 2.6 26.6 17.4 26.6 33.3v23.6l-5.7 5.7a8 8 0 0 0 0 11.3l11.3 11.3a8 8 0 0 0 11.3 0l10.3-10.3a16.06 16.06 0 0 0 4.7-11.3v-32a63.8 63.8 0 0 0-48-61.6z\", \"M319.8 288.15v74.25a63.8 63.8 0 0 1 48 61.6v32a16.06 16.06 0 0 1-4.7 11.3l-10.3 10.3a8 8 0 0 1-11.3 0l-11.3-11.3a8 8 0 0 1 0-11.3l5.7-5.7v-23.6c0-15.9-10.9-30.7-26.6-33.3a32.14 32.14 0 0 0-37.4 31.6v25.3l5.7 5.7a8 8 0 0 1 0 11.3l-11.3 11.3a8 8 0 0 1-11.3 0l-10.3-10.3A16.06 16.06 0 0 1 240 456v-29.2c0-30.1 19.8-57.1 48-64.6v-70.41A174 174 0 0 1 151.1 288H144v82.6a56 56 0 1 1-32 0v-80.73A134.47 134.47 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6a134.44 134.44 0 0 0-128.2-134.25zM104 424a24 24 0 1 0 24-24 23.94 23.94 0 0 0-24 24z\"]]\n};\nvar faUserMdChat = {\n prefix: 'fad',\n iconName: 'user-md-chat',\n icon: [640, 512, [], \"f82e\", [\"M512 0c-70.69 0-128 50.15-128 112 0 28.76 12.75 54.72 33.11 74.55a312.19 312.19 0 0 1-31.29 55.37 9.85 9.85 0 0 0-1.25 9.07c1.09 3.13 3.43 5 6.11 5 39.84 0 72.35-17.13 95.22-34.36A146.46 146.46 0 0 0 512 224c70.69 0 128-50.15 128-112S582.69 0 512 0zM144 370.6V288h-9.6a135.6 135.6 0 0 0-22.4 1.87v80.73a56 56 0 1 0 32 0zM128 448a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24zm224-320a128 128 0 1 0-128 128 128 128 0 0 0 128-128zm-32.2 234.4v-74.25c-2.06-.1-4.12-.15-6.2-.15h-16.7q-4.38 2-8.9 3.79v70.41c-28.2 7.5-48 34.5-48 64.6V456a16.06 16.06 0 0 0 4.7 11.3l10.3 10.3a8 8 0 0 0 11.3 0l11.3-11.3a8 8 0 0 0 0-11.3l-5.7-5.7V424a32.14 32.14 0 0 1 37.4-31.6c15.7 2.6 26.6 17.4 26.6 33.3v23.6l-5.7 5.7a8 8 0 0 0 0 11.3l11.3 11.3a8 8 0 0 0 11.3 0l10.3-10.3a16.06 16.06 0 0 0 4.7-11.3v-32a63.8 63.8 0 0 0-48-61.6z\", \"M319.8 288.15v74.25a63.8 63.8 0 0 1 48 61.6v32a16.06 16.06 0 0 1-4.7 11.3l-10.3 10.3a8 8 0 0 1-11.3 0l-11.3-11.3a8 8 0 0 1 0-11.3l5.7-5.7v-23.6c0-15.9-10.9-30.7-26.6-33.3a32.14 32.14 0 0 0-37.4 31.6v25.3l5.7 5.7a8 8 0 0 1 0 11.3l-11.3 11.3a8 8 0 0 1-11.3 0l-10.3-10.3A16.06 16.06 0 0 1 240 456v-29.2c0-30.1 19.8-57.1 48-64.6v-70.41A174 174 0 0 1 151.1 288H144v82.6a56 56 0 1 1-32 0v-80.73A134.47 134.47 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6a134.44 134.44 0 0 0-128.2-134.25zM104 424a24 24 0 1 0 24-24 23.94 23.94 0 0 0-24 24z\"]]\n};\nvar faUserMinus = {\n prefix: 'fad',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", [\"M640 224v32a16 16 0 0 1-16 16H432a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\", \"M313.6 288h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6A134.43 134.43 0 0 0 313.6 288zM224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128z\"]]\n};\nvar faUserMusic = {\n prefix: 'fad',\n iconName: 'user-music',\n icon: [640, 512, [], \"f8eb\", [\"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm64 176c0-54.9 48.34-99.39 114.45-109.72C378.72 301.2 347.82 288 313.59 288h-16.68a174.12 174.12 0 0 1-145.82 0h-16.68A134.43 134.43 0 0 0 0 422.41V464a48 48 0 0 0 48 48h282.42C304.13 491.81 288 463.66 288 432z\", \"M598.94 97.33l-96.53 28.51a32 32 0 0 0-22.41 30.5V360a148.76 148.76 0 0 0-48-8c-61.86 0-112 35.82-112 80s50.14 80 112 80 112-35.82 112-80V244.15l73-21.39a32 32 0 0 0 23-30.71V128a32 32 0 0 0-41.06-30.67z\"]]\n};\nvar faUserNinja = {\n prefix: 'fad',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", [\"M304 128H144a32 32 0 0 1 32-32h96a32 32 0 0 1 32 32z\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192a95.47 95.47 0 0 0 69.2-29.7c15.1 53.9 64 93.7 122.8 93.7a128 128 0 0 0 0-256c-50.4 0-93.6 29.4-114.5 71.8A95.53 95.53 0 0 0 32 32a95.74 95.74 0 0 0 43.1 80A95.74 95.74 0 0 0 32 192zm144-96h96a32 32 0 0 1 32 32H144a32 32 0 0 1 32-32z\"]]\n};\nvar faUserNurse = {\n prefix: 'fad',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", [\"M128.59,320Zm190.82,0ZM304,160v16a80,80,0,0,1-160,0V160H96v16a128,128,0,0,0,256,0V160Z\", \"M144,160H352V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V160Zm40-88.33a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320Z\"]]\n};\nvar faUserPlus = {\n prefix: 'fad',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", [\"M640 224v32a16 16 0 0 1-16 16h-64v64a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-64h-64a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h64v-64a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16v64h64a16 16 0 0 1 16 16z\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm89.6 32h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6A134.43 134.43 0 0 0 313.6 288z\"]]\n};\nvar faUserRobot = {\n prefix: 'fad',\n iconName: 'user-robot',\n icon: [448, 512, [], \"e04b\", [\"M176,240H144v32h32Zm0,208a15.99954,15.99954,0,0,0-16,16v48h32V464A15.99954,15.99954,0,0,0,176,448ZM0,146v92a17.97968,17.97968,0,0,0,18,18H48V128H18A17.97843,17.97843,0,0,0,0,146Zm430-18H400V256h30a17.97718,17.97718,0,0,0,18-18V146A17.97594,17.97594,0,0,0,430,128ZM208,272h32V240H208Zm64,0h32V240H272Zm0,176a16,16,0,1,0,16,16A15.99954,15.99954,0,0,0,272,448ZM224,0a15.99954,15.99954,0,0,0-16,16V64h32V16A15.99954,15.99954,0,0,0,224,0Z\", \"M116,320H332a36.0356,36.0356,0,0,0,36-36V109a44.98286,44.98286,0,0,0-45-45H125a44.98536,44.98536,0,0,0-45,45V284A36.03811,36.03811,0,0,0,116,320Zm188-48H272V240h32ZM288,128a32,32,0,1,1-32,32A31.99658,31.99658,0,0,1,288,128ZM208,240h32v32H208Zm-32,32H144V240h32ZM160,128a32,32,0,1,1-32,32A31.99658,31.99658,0,0,1,160,128ZM352,352H96A95.99975,95.99975,0,0,0,0,448v32a32.00158,32.00158,0,0,0,32,32h96V448a32.00033,32.00033,0,0,1,32-32H288a32.00033,32.00033,0,0,1,32,32v64h96a32.00158,32.00158,0,0,0,32-32V448A95.99975,95.99975,0,0,0,352,352Z\"]]\n};\nvar faUserSecret = {\n prefix: 'fad',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", [\"M255.38 421.22L224 480l-31.38-58.78L208 352l-17.79-35.58a161.25 161.25 0 0 0 67.58 0L240 352zM224 288a128 128 0 0 0 128-127.21c-7.49 1.54-15.51 3-24 4.2v6.59c-.11.11-6.07 3.47-6.93 6.28-4.23 12.9-7.59 26.65-17.88 36.19-10.94 10.07-52 24.26-69.33-27.09-3-9.1-16.69-9.1-19.83 0-18.41 54.39-60.66 35.1-69.33 27.09-10.29-9.54-13.76-23.29-17.88-36.19-.86-2.7-6.82-6.17-6.82-6.28V165c-8.48-1.25-16.5-2.66-24-4.2A128 128 0 0 0 224 288z\", \"M120 165v6.59c0 .11 6 3.58 6.82 6.28 4.12 12.9 7.59 26.65 17.88 36.19 8.67 8 50.92 27.3 69.33-27.09 3.14-9.1 16.79-9.1 19.83 0 17.33 51.35 58.39 37.16 69.33 27.09 10.29-9.54 13.65-23.29 17.88-36.19.86-2.81 6.82-6.17 6.93-6.28V165c52.95-7.83 88-21.47 88-37 0-13.75-27.51-26-70.6-34.09-9.35-32.11-26.69-64.08-40-80.72a32.1 32.1 0 0 0-39.5-8.8l-27.6 13.8a32 32 0 0 1-28.6 0l-27.6-13.8a32.1 32.1 0 0 0-39.5 8.8c-13.22 16.64-30.6 48.61-40 80.72C59.51 102 32 114.25 32 128c0 15.52 35.05 29.16 88 37zm263.9 143.27l23.9-62.58a16 16 0 0 0-15-21.7h-32.12L224 480 87.32 224h-31a16 16 0 0 0-14.7 22.3l25.74 60.06A133.56 133.56 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6a133.5 133.5 0 0 0-64.1-114.13z\"]]\n};\nvar faUserShield = {\n prefix: 'fad',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", [\"M622.3 271.1l-115.2-45a31 31 0 0 0-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9a31 31 0 0 0 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8z\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a49.22 49.22 0 0 0 19.2-4c-54-42.9-99.2-116.7-99.2-212z\"]]\n};\nvar faUserSlash = {\n prefix: 'fad',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", [\"M192.47 117a128 128 0 1 1 170.32 131.66zM96 422.4V464a48 48 0 0 0 48 48h350.2L207.37 290.3C144.17 301.3 96 356 96 422.4z\", \"M636.67 480.4l-19.6 25.3a16.06 16.06 0 0 1-22.5 2.8L6.17 53.8a15.93 15.93 0 0 1-2.8-22.4L23 6.2a16.06 16.06 0 0 1 22.5-2.8l588.3 454.7a15.85 15.85 0 0 1 2.87 22.3z\"]]\n};\nvar faUserTag = {\n prefix: 'fad',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", [\"M630.6 364.9l-90.3-90.2A64 64 0 0 0 495 256h-79.3a32 32 0 0 0-32 32v79.2a63.79 63.79 0 0 0 18.7 45.2l90.3 90.2a32 32 0 0 0 45.3 0l92.5-92.5a31.84 31.84 0 0 0 .1-45.2zm-182.8-21a24 24 0 1 1 24-24 23.94 23.94 0 0 1-24 24z\", \"M379.9 435a95.37 95.37 0 0 1-28.1-67.9V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.58 134.58 0 0 0 0 422.3v41.6a48 48 0 0 0 48 48h352a47.78 47.78 0 0 0 37.9-18.9zM224 255.9A128 128 0 1 0 96 128a128 128 0 0 0 128 127.9z\"]]\n};\nvar faUserTie = {\n prefix: 'fad',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", [\"M191.35 414.77L208 344l-32-56h96l-32 56 16.65 70.77L224 480zM224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128z\", \"M319.8 288.6L224 480l-95.8-191.4C56.9 292 0 350.3 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]]\n};\nvar faUserTimes = {\n prefix: 'fad',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", [\"M635.2 194.4L589.6 240l45.6 45.6a16.11 16.11 0 0 1 0 22.8l-22.8 22.8a16.11 16.11 0 0 1-22.8 0L544 285.6l-45.6 45.6a16.11 16.11 0 0 1-22.8 0l-22.8-22.8a16.11 16.11 0 0 1 0-22.8l45.6-45.6-45.6-45.6a16.11 16.11 0 0 1 0-22.8l22.8-22.8a16.11 16.11 0 0 1 22.8 0l45.6 45.6 45.6-45.6a16.11 16.11 0 0 1 22.8 0l22.8 22.8a16.11 16.11 0 0 1 0 22.8z\", \"M313.6 288h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48v-41.6A134.43 134.43 0 0 0 313.6 288zM224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128z\"]]\n};\nvar faUserUnlock = {\n prefix: 'fad',\n iconName: 'user-unlock',\n icon: [640, 512, [], \"e058\", [\"M608,288H464V208.67c0-17.44,13.67-32.18,31.1-32.66A32,32,0,0,1,528,208h0a16,16,0,0,0,16,16h17a15,15,0,0,0,15-15h0c0-43.28-34-79.51-77.26-80.95A80,80,0,0,0,416,208v80H384a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H608a32,32,0,0,0,32-32V320A32,32,0,0,0,608,288ZM496,432a32,32,0,1,1,32-32A32,32,0,0,1,496,432Z\", \"M224,256A128,128,0,1,0,96,128,128,128,0,0,0,224,256Zm96,64a63.07,63.07,0,0,1,8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5H296.9a174.1,174.1,0,0,1-145.8,0H134.4A134.43,134.43,0,0,0,0,422.4V464a48,48,0,0,0,48,48H328.9a63.58,63.58,0,0,1-8.9-32Z\"]]\n};\nvar faUserVisor = {\n prefix: 'fad',\n iconName: 'user-visor',\n icon: [448, 512, [], \"e04c\", [\"M342.94531,174.59766C340.64063,175.125,338.46094,176,336,176H112c-2.46094,0-4.64062-.875-6.94531-1.40234C123.71875,222.18359,169.79688,256,224,256S324.28125,222.18359,342.94531,174.59766ZM224,0c-40.25,0-75.71875,18.95312-99.17969,48H323.17969C299.71875,18.95312,264.25,0,224,0ZM325.92188,353.5625A3.97907,3.97907,0,0,0,322.85938,352a4.30688,4.30688,0,0,0-3.14063,1.39062c-19.82813,23-31.82813,53.10938-35.70313,89.5a4.03446,4.03446,0,0,0,2.04688,3.92188,4.11332,4.11332,0,0,0,4.39063-.34375c24.85937-19.32813,33.75-23.8125,37.04687-24.8125a5.72785,5.72785,0,0,1,1.375-.375c2.23438,1.98437,7.67188,7.84375,19.85938,25.03125A4.01561,4.01561,0,0,0,352,448a4.06431,4.06431,0,0,0,1.28125-.20312A3.992,3.992,0,0,0,356,443.875C354.84375,408.53125,344.73438,378.15625,325.92188,353.5625Z\", \"M313.59375,288h-16.6875a174.10379,174.10379,0,0,1-145.8125,0h-16.6875A134.44134,134.44134,0,0,0,0,422.40625V464a48.01238,48.01238,0,0,0,48,48H400a48.01238,48.01238,0,0,0,48-48V422.40625A134.44134,134.44134,0,0,0,313.59375,288Zm39.6875,159.79688A4.06431,4.06431,0,0,1,352,448a4.01561,4.01561,0,0,1-3.26562-1.6875c-12.1875-17.1875-17.625-23.04688-19.85938-25.03125a5.72785,5.72785,0,0,0-1.375.375c-3.29688,1-12.1875,5.48437-37.04687,24.8125a4.11332,4.11332,0,0,1-4.39063.34375,4.03446,4.03446,0,0,1-2.04688-3.92188c3.875-36.39062,15.875-66.5,35.70313-89.5A4.30688,4.30688,0,0,1,322.85938,352a3.97907,3.97907,0,0,1,3.0625,1.5625C344.73438,378.15625,354.84375,408.53125,356,443.875A3.992,3.992,0,0,1,353.28125,447.79688ZM112,176H336a32.00158,32.00158,0,0,0,32-32V80a32.00033,32.00033,0,0,0-32-32H112A32.00034,32.00034,0,0,0,80,80v64A32.00158,32.00158,0,0,0,112,176Zm16-80H320v32H128Z\"]]\n};\nvar faUsers = {\n prefix: 'fad',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", [\"M96 224a64 64 0 1 0-64-64 64.06 64.06 0 0 0 64 64zm480 32h-64a63.81 63.81 0 0 0-45.1 18.6A146.27 146.27 0 0 1 542 384h66a32 32 0 0 0 32-32v-32a64.06 64.06 0 0 0-64-64zm-512 0a64.06 64.06 0 0 0-64 64v32a32 32 0 0 0 32 32h65.9a146.64 146.64 0 0 1 75.2-109.4A63.81 63.81 0 0 0 128 256zm480-32a64 64 0 1 0-64-64 64.06 64.06 0 0 0 64 64z\", \"M396.8 288h-8.3a157.53 157.53 0 0 1-68.5 16c-24.6 0-47.6-6-68.5-16h-8.3A115.23 115.23 0 0 0 128 403.2V432a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48v-28.8A115.23 115.23 0 0 0 396.8 288zM320 256a112 112 0 1 0-112-112 111.94 111.94 0 0 0 112 112z\"]]\n};\nvar faUsersClass = {\n prefix: 'fad',\n iconName: 'users-class',\n icon: [640, 512, [], \"f63d\", [\"M608 217a95.26 95.26 0 0 0-64-25V64H96v128a95.28 95.28 0 0 0-64 25V49.59C32 22.25 53.53 0 80 0h480c26.47 0 48 22.25 48 49.59z\", \"M576 384h-64a64 64 0 0 0-64 64v32a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32v-32a64 64 0 0 0-64-64zm-32-32a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm-192 32h-64a64 64 0 0 0-64 64v32a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32v-32a64 64 0 0 0-64-64zm-224 0H64a64 64 0 0 0-64 64v32a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32v-32a64 64 0 0 0-64-64zm192-32a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm-224 0a64 64 0 1 0-64-64 64 64 0 0 0 64 64z\"]]\n};\nvar faUsersCog = {\n prefix: 'fad',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", [\"M636.3 356.1l-25.8-14.9a117.31 117.31 0 0 0 0-42.6l25.8-14.9a7.24 7.24 0 0 0 3.3-8.5 150.07 150.07 0 0 0-33.2-57.4 7.29 7.29 0 0 0-9-1.4l-25.8 14.9a117.4 117.4 0 0 0-36.9-21.3v-29.8a7.28 7.28 0 0 0-5.7-7.1 150.88 150.88 0 0 0-66.2 0 7.28 7.28 0 0 0-5.7 7.1V210a117.4 117.4 0 0 0-36.9 21.3l-25.8-14.9a7.31 7.31 0 0 0-9 1.4 150.07 150.07 0 0 0-33.2 57.4 7.37 7.37 0 0 0 3.3 8.5l25.8 14.9a117.31 117.31 0 0 0 0 42.6l-25.8 14.9a7.24 7.24 0 0 0-3.3 8.5 150.82 150.82 0 0 0 33.2 57.4 7.29 7.29 0 0 0 9 1.4l25.8-14.9a117.4 117.4 0 0 0 36.9 21.3v29.8a7.28 7.28 0 0 0 5.7 7.1 150.88 150.88 0 0 0 66.2 0 7.28 7.28 0 0 0 5.7-7.1v-29.8a117.4 117.4 0 0 0 36.9-21.3l25.8 14.9a7.31 7.31 0 0 0 9-1.4 150.07 150.07 0 0 0 33.2-57.4 7.37 7.37 0 0 0-3.3-8.5zM496 368.4a48.5 48.5 0 1 1 48.5-48.5 48.55 48.55 0 0 1-48.5 48.5z\", \"M320 255.9c1.9 0 3.7-.5 5.6-.6a184.35 184.35 0 0 1 36.3-59.2 39.41 39.41 0 0 1 28.9-12.6 38.44 38.44 0 0 1 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4a110.69 110.69 0 0 0 11.2-48A112 112 0 1 0 320 255.9zm-146.9 18.6a63.81 63.81 0 0 0-45.1-18.6H64a64.06 64.06 0 0 0-64 64v32a32 32 0 0 0 32 32h65.9a146.64 146.64 0 0 1 75.2-109.4zM96 223.9a64 64 0 1 0-64-64 64.06 64.06 0 0 0 64 64zm329.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8a39.75 39.75 0 0 1-28.9-12.6 182.34 182.34 0 0 1-40.2-69.6c-10.7-34.5 24.9-49.7 25.8-50.3q-.15-3.9 0-7.8l-7.9-4.6a40.73 40.73 0 0 1-9.8-8.1c-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3A115.25 115.25 0 0 0 128 403.1v28.8a48 48 0 0 0 48 48h255.4a38.5 38.5 0 0 1-6.2-20.3z\"]]\n};\nvar faUsersCrown = {\n prefix: 'fad',\n iconName: 'users-crown',\n icon: [640, 512, [], \"f6a5\", [\"M96 224a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm448 0a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm32 32h-64a63.78 63.78 0 0 0-45.07 18.59A146.54 146.54 0 0 1 542.06 384H608a32 32 0 0 0 32-32v-32a64 64 0 0 0-64-64zm-512 0a64 64 0 0 0-64 64v32a32 32 0 0 0 32 32h65.94a146.54 146.54 0 0 1 75.13-109.41A63.78 63.78 0 0 0 128 256zM320 32l-48 24-48-24v80h192V32l-48 24z\", \"M320 256a96 96 0 0 0 96-96v-16H224v16a96 96 0 0 0 96 96zm76.8 32h-8.31c-20.84 10-43.89 16-68.49 16s-47.64-6-68.49-16h-8.31A115.2 115.2 0 0 0 128 403.2V432a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48v-28.8A115.2 115.2 0 0 0 396.8 288z\"]]\n};\nvar faUsersMedical = {\n prefix: 'fad',\n iconName: 'users-medical',\n icon: [640, 512, [], \"f830\", [\"M512 224a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm64 144a5.33 5.33 0 0 1-5.33 5.33h-37.34v37.34A5.33 5.33 0 0 1 528 416h-32a5.33 5.33 0 0 1-5.33-5.33v-37.34h-37.34A5.33 5.33 0 0 1 448 368v-32a5.33 5.33 0 0 1 5.33-5.33h37.34v-37.34A5.33 5.33 0 0 1 496 288h32a5.33 5.33 0 0 1 5.33 5.33v37.34h37.34A5.33 5.33 0 0 1 576 336z\", \"M352 352c0-19.1 3.92-37.17 10.09-54.17A152.59 152.59 0 0 1 320 304c-24.6 0-47.6-6-68.5-16h-8.3A115.23 115.23 0 0 0 128 403.2V432a48 48 0 0 0 48 48h241c-39.22-29.19-65-75.47-65-128zM96 224a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm77.1 50.6A63.81 63.81 0 0 0 128 256H64a64.06 64.06 0 0 0-64 64v32a32 32 0 0 0 32 32h65.9a146.64 146.64 0 0 1 75.2-109.4zM319.88 256h.12a111.94 111.94 0 1 0-.12 0z\"]]\n};\nvar faUsersSlash = {\n prefix: 'fad',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", [\"M173.09,274.59A63.78,63.78,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.64,146.64,0,0,1,173.09,274.59ZM432,144A111.93,111.93,0,0,0,320,32c-57.13,0-103.68,42.83-110.6,98.07L361,247.22C402.44,230.93,432,191.3,432,144Zm112,80a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM96,224a63.5,63.5,0,0,0,36.65-11.68L36.21,137.78A63.4,63.4,0,0,0,32,160,64.06,64.06,0,0,0,96,224Zm32,179.2V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.82,128,343.42,128,403.2ZM576,256H512a63.78,63.78,0,0,0-45.09,18.59A146.3,146.3,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\", \"M6.19,53.91A16,16,0,0,1,3.38,31.46L23,6.19A16,16,0,0,1,45.47,3.38L633.82,458.1a16,16,0,0,1,2.81,22.45L617,505.82a16,16,0,0,1-22.45,2.81Z\"]]\n};\nvar faUtensilFork = {\n prefix: 'fad',\n iconName: 'utensil-fork',\n icon: [512, 512, [], \"f2e3\", [\"M279.36 301.8l-69.21-69.2c-20.9-45-13.1-97.3 28.69-139.1C266.46 66 350.63 6.3 355 3.2c18.8-13.71 52.89 19.9 37.5 39.3L279.36 155.7c-1.7 3.79 9.5 14.69 12.89 12.89C313.65 149.4 410 63.3 412.32 61.3c19.3-14.1 52.49 19.1 38.4 38.4-2 2.2-88.09 98.6-107.28 120.1-1.8 3.4 9.09 14.6 12.89 12.9l113.18-113.2c19.4-15.3 53 18.7 39.29 37.4-3.1 4.39-62.78 88.6-90.38 116.2-41.89 42-94.08 49.6-139.06 28.7z\", \"M98.84 503a27.24 27.24 0 0 1-38.47 2c-.34-.31-.68-.62-1-.95L8 452.75a27.18 27.18 0 0 1-.12-38.44c.36-.36.74-.72 1.12-1.06l201.11-180.69 69.21 69.2h.06z\"]]\n};\nvar faUtensilKnife = {\n prefix: 'fad',\n iconName: 'utensil-knife',\n icon: [512, 512, [], \"f2e4\", [\"M180.89 252.82L425.47 8.7a29.54 29.54 0 0 1 41.72-.15l.15.15C539.27 80.49 502 359.8 258.61 330.1l-.14.16z\", \"M113 501.55A29.59 29.59 0 0 1 71.36 505c-.64-.53-1.24-1.09-1.82-1.67l-48.89-48.77a29.58 29.58 0 0 1 0-41.8l160.28-160 77.5 77.48z\"]]\n};\nvar faUtensilSpoon = {\n prefix: 'fad',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", [\"M446.15 269.48c-40.61 40.61-136.09 44.92-192.32-11.31S201.9 106.46 242.52 65.85C310.4-2 423.86-24.33 480.09 31.91S514 201.6 446.15 269.48z\", \"M293.78 285.89L98.8 503a27.26 27.26 0 0 1-38.5 2c-.34-.31-.67-.62-1-.95L8 452.78a27.18 27.18 0 0 1-.12-38.44c.36-.36.74-.72 1.12-1.06l217.14-195a136.7 136.7 0 0 0 67.66 67.65z\"]]\n};\nvar faUtensils = {\n prefix: 'fad',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", [\"M416 24v464a23.94 23.94 0 0 1-24 24h-56a24 24 0 0 1-23.9-26l15-185.1C170.6 178.5 309.5 0 392 0a24 24 0 0 1 24 24z\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7a24.06 24.06 0 0 1-24 25.3H80a24.06 24.06 0 0 1-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1z\"]]\n};\nvar faUtensilsAlt = {\n prefix: 'fad',\n iconName: 'utensils-alt',\n icon: [576, 512, [], \"f2e6\", [\"M74.8 424a32 32 0 0 0-1.4 46.6l32 32a32 32 0 0 0 46.6-1.4l117.5-132.7-56.6-66.8zM546.5 94.82L452.7 176c-1.5 1.4-5.9-3-4.6-4.6l78.8-96.9c12.4-15.3-10.4-37.8-25.5-25.5l-96.9 78.8c-1.7 1.4-6-3.1-4.7-4.6L481 29.42c12.8-14.7-8.7-38-24.8-26.2-3.9 2.8-76.9 54.5-98.7 76.2-33.3 33.3-37.5 72.1-16.1 108.4-30.4 26.9-19.6 17.4-48.4 42.9l54 50.1c26.5-30 14.4-16.2 41-46.3 35 20.7 74.3 18.1 108.5-16.2 21.7-21.7 73.4-94.6 76.2-98.6 11.8-16.2-11.5-37.6-26.2-24.9z\", \"M501.7 424.42a32 32 0 0 1 .8 46.1l-32 32a32.09 32.09 0 0 1-46-.7C405.4 479.22 223.9 265.32 216 256 56 256 0 165.92 0 32.12c0-27.9 33.3-42.5 53.8-23.5z\"]]\n};\nvar faVacuum = {\n prefix: 'fad',\n iconName: 'vacuum',\n icon: [640, 512, [], \"e04d\", [\"M576,320V448a64,64,0,0,1-64,64H446.22A110.73,110.73,0,0,0,352,321.61V160a32,32,0,0,1,32-32C490,128,576,214,576,320Z\", \"M368,352a80,80,0,1,0,80,80A80,80,0,0,0,368,352Zm0,96a16,16,0,1,1,16-16A16,16,0,0,1,368,448ZM640,128A128.14,128.14,0,0,0,512,0H301.61C241.64,0,189,42.56,176.44,101.19L102.12,448H48A48,48,0,0,0,0,496a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V464a16,16,0,0,0-16-16h-8.41L239,114.59A64.33,64.33,0,0,1,301.61,64H512a64,64,0,0,1,13.47,126.51h0a191.73,191.73,0,0,1,35.9,56c-.15-.37-.26-.77-.41-1.14C607.16,226.11,640,181.13,640,128Z\"]]\n};\nvar faVacuumRobot = {\n prefix: 'fad',\n iconName: 'vacuum-robot',\n icon: [512, 512, [], \"e04e\", [\"M131.55,312.57a16,16,0,0,0-22.63,22.63l67.88,67.88a16,16,0,0,0,22.63-22.63Zm22.63-67.88a16,16,0,0,0-22.63,22.62L244.69,380.45a16,16,0,0,0,22.62-22.63Zm135.76,45.25-67.88-67.88a16,16,0,0,0-22.63,22.63l67.88,67.88a16,16,0,0,0,22.63-22.63Z\", \"M431.36,80.64c-96.85-96.85-253.87-96.85-350.72,0s-96.85,253.87,0,350.72,253.87,96.85,350.72,0S528.21,177.49,431.36,80.64ZM199.43,403.08a16,16,0,0,1-22.63,0L108.92,335.2a16,16,0,0,1,22.63-22.63l67.88,67.88A16,16,0,0,1,199.43,403.08Zm67.88-22.63a16,16,0,0,1-22.62,0L131.55,267.31a16,16,0,0,1,22.63-22.62L267.31,357.82A16,16,0,0,1,267.31,380.45Zm22.63-67.88a16,16,0,0,1-22.63,0l-67.88-67.88a16,16,0,0,1,22.63-22.63l67.88,67.88A16,16,0,0,1,289.94,312.57Zm90.51,67.88a16,16,0,0,1-22.62-22.62c56.14-56.16,56.14-147.5,0-203.66s-147.5-56.15-203.66,0a16,16,0,0,1-22.62-22.62c68.62-68.63,180.28-68.63,248.9,0S449.08,311.83,380.45,380.45Z\"]]\n};\nvar faValueAbsolute = {\n prefix: 'fad',\n iconName: 'value-absolute',\n icon: [512, 512, [], \"f6a6\", [\"M48 32H16A16 16 0 0 0 0 48v416a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm448 0h-32a16 16 0 0 0-16 16v416a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\", \"M377.3 183.22L304.52 256l72.78 72.78a22.88 22.88 0 0 1 0 32.35l-16.17 16.17a22.88 22.88 0 0 1-32.35 0L256 304.52l-72.78 72.78a22.88 22.88 0 0 1-32.35 0l-16.17-16.17a22.88 22.88 0 0 1 0-32.35L207.48 256l-72.78-72.78a22.88 22.88 0 0 1 0-32.35l16.17-16.17a22.88 22.88 0 0 1 32.35 0L256 207.48l72.78-72.78a22.88 22.88 0 0 1 32.35 0l16.17 16.17a22.88 22.88 0 0 1 0 32.35z\"]]\n};\nvar faVectorSquare = {\n prefix: 'fad',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", [\"M160 480h192v-64H160zM32 352h64V160H32zM160 96h192V32H160zm256 64v192h64V160z\", \"M128 352H32a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32zm-32 96H64v-32h32zm384-96h-96a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32zm-32 96h-32v-32h32zM480 0h-96a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm-32 96h-32V64h32zM128 0H32A32 32 0 0 0 0 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM96 96H64V64h32z\"]]\n};\nvar faVenus = {\n prefix: 'fad',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", [\"M144,256a80,80,0,1,1,80-80A80,80,0,0,1,144,256Z\", \"M288,176A144,144,0,1,0,112,316.4V368H76a12,12,0,0,0-12,12v40a12,12,0,0,0,12,12h36v36a12,12,0,0,0,12,12h40a12,12,0,0,0,12-12V432h36a12,12,0,0,0,12-12V380a12,12,0,0,0-12-12H176V316.4A144,144,0,0,0,288,176ZM144,256a80,80,0,1,1,80-80A80,80,0,0,1,144,256Z\"]]\n};\nvar faVenusDouble = {\n prefix: 'fad',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", [\"M512 176a144 144 0 0 1-112 140.4V368h36a12 12 0 0 1 12 12v40a12 12 0 0 1-12 12h-36v36a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-36h-36a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h36v-51.6a144.48 144.48 0 0 1-57.2-27.3 176.57 176.57 0 0 0 32.1-57.1 80 80 0 1 0 0-112 174.74 174.74 0 0 0-32.1-57.1A144.05 144.05 0 0 1 512 176z\", \"M288 176a144 144 0 1 0-176 140.4V368H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h36v36a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-36h36a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-36v-51.6A144 144 0 0 0 288 176zm-144 80a80 80 0 1 1 80-80 80.11 80.11 0 0 1-80 80z\"]]\n};\nvar faVenusMars = {\n prefix: 'fad',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", [\"M576 12v79a12 12 0 0 1-12.1 12 11.73 11.73 0 0 1-8.4-3.5l-16.9-16.9-48.7 48.7a144 144 0 0 1-211.1 189.8 174.74 174.74 0 0 0 32.1-57.1 80 80 0 1 0 0-112 176.57 176.57 0 0 0-32.1-57.1 144.17 144.17 0 0 1 165.9-8.8l48.7-48.7-16.9-16.9A12 12 0 0 1 485 0h79a12 12 0 0 1 12 12z\", \"M288 208a144 144 0 1 0-176 140.4V400H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h36v36a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-36h36a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12h-36v-51.6A144.12 144.12 0 0 0 288 208zm-144 80a80 80 0 1 1 80-80 80.11 80.11 0 0 1-80 80z\"]]\n};\nvar faVest = {\n prefix: 'fad',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", [\"M108.688,348.688l-48,48a16,16,0,1,0,22.624,22.624l48-48a16,16,0,0,0-22.624-22.624Zm278.624,48-48-48a16,16,0,0,0-22.624,22.624l48,48a16,16,0,0,0,22.624-22.624ZM306.688,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0l22.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L320,0A24.021,24.021,0,0,0,306.688,4.031Z\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877Zm-49.94,179.435a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312ZM96,0A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,128,0Zm35.312,371.312-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Z\"]]\n};\nvar faVestPatches = {\n prefix: 'fad',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", [\"M306.688,4.031l-25,16.672c-34.916,23.344-80.46,23.344-115.376,0 l-25-16.672C137.369,1.404,132.738,0.001,128,0l22.188,66.564c22.52,12.753,47.932,19.525,73.812,19.67 c25.88-0.147,51.291-6.92,73.812-19.672L320,0C315.262,0.001,310.631,1.404,306.688,4.031z M358.5,286.541l-5.051,0.037l0.037-5.057\\tc0.073-12.8-9.267-24.257-22.056-25.419c-13.745-1.231-25.885,8.913-27.117,22.658c-0.058,0.653-0.091,1.308-0.098,1.963L304,329.3 c-0.016,3.684,2.958,6.684,6.642,6.7c0.019,0,0.039,0,0.058,0l48.53-0.215c13.778-0.099,24.867-11.348,24.768-25.126\\tc-0.005-0.682-0.038-1.363-0.098-2.042C382.736,295.816,371.326,286.506,358.5,286.541z M96,376c-22.091,0-40,17.909-40,40\\ts17.909,40,40,40s40-17.909,40-40S118.091,376,96,376z\", \"M437.252,239.877L384,160V32c0-17.673-14.327-32-32-32h-32l-96,288v224h192c17.673,0,32-14.327,32-32V275.377\\tC448,262.742,444.26,250.39,437.252,239.877z M361.274,335.686c-0.681,0.061-1.363,0.094-2.047,0.099h0L310.7,336\\tc-3.684,0.016-6.684-2.958-6.7-6.642c0-0.019,0-0.039,0-0.058l0.215-48.574c0.144-13.799,11.448-24.869,25.247-24.724\\tc0.657,0.007,1.314,0.04,1.968,0.098c12.789,1.162,22.129,12.619,22.056,25.419l-0.037,5.057l5.051-0.037\\tc12.826-0.035,24.236,9.275,25.4,22.076C385.128,322.339,374.997,334.459,361.274,335.686z M96,0C78.327,0,64,14.327,64,32v128\\tl-53.252,79.877C3.74,250.39,0,262.742,0,275.377V480c0,17.673,14.327,32,32,32h160V288c0-3.439,0.555-6.856,1.643-10.119\\tl13.492-40.481L128,0H96z M96,456c-22.091,0-40-17.909-40-40c0-22.091,17.909-40,40-40s40,17.909,40,40\\tC136,438.091,118.091,456,96,456z M128.5,272.484L128.5,272.484L112.984,288l15.516,15.516c4.643,4.737,4.566,12.341-0.171,16.984\\tc-4.676,4.583-12.162,4.576-16.829-0.016l-15.5-15.5l-15.5,15.5c-4.728,4.652-12.332,4.59-16.984-0.139\\tc-4.592-4.668-4.599-12.153-0.016-16.829L79.016,288L63.5,272.484c-4.643-4.737-4.567-12.341,0.17-16.984\\tc4.676-4.584,12.162-4.577,16.83,0.016l15.5,15.5l15.5-15.5c4.728-4.652,12.332-4.59,16.984,0.139\\tC133.076,260.322,133.083,267.808,128.5,272.484z\"]]\n};\nvar faVhs = {\n prefix: 'fad',\n iconName: 'vhs',\n icon: [512, 512, [], \"f8ec\", [\"M0 160v240a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V160zm128 224H79.14C60 362.74 48 334.88 48 304s12-58.73 31.14-80H128zm192 0H192V224h128zm112.86 0H384V224h48.86C452 245.26 464 273.12 464 304s-12 58.73-31.14 80z\", \"M496 64H16A16 16 0 0 0 0 80v80h512V80a16 16 0 0 0-16-16zM384 224v34.94a47.73 47.73 0 0 1 0 90.12V384h48.86C452 362.73 464 334.87 464 304s-12-58.74-31.14-80zM48 304c0 30.88 12 58.74 31.14 80H128v-34.94a47.73 47.73 0 0 1 0-90.12V224H79.14C60 245.27 48 273.13 48 304z\"]]\n};\nvar faVial = {\n prefix: 'fad',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", [\"M318 256L138.61 435.44a55.46 55.46 0 0 1-78.39.06 55.46 55.46 0 0 1-.09-78.44L161 256z\", \"M477.65 186.12L309.45 18.33a8 8 0 0 0-11.3 0l-34 33.9a8 8 0 0 0 0 11.29l11.2 11.1L33 316.53c-38.8 38.69-45.1 102-9.4 143.5a102.44 102.44 0 0 0 78 35.9h.4a102.75 102.75 0 0 0 72.9-30.09l246.3-245.71 11.2 11.1a8 8 0 0 0 11.3 0l34-33.89a7.92 7.92 0 0 0-.05-11.22zM141 431.84a54.65 54.65 0 0 1-38.95 16h-.36A54.09 54.09 0 0 1 60 428.76c-8.67-10.08-12.85-23.53-11.76-37.86a64.77 64.77 0 0 1 18.61-40.4l242.4-241.9 78 77.54z\"]]\n};\nvar faVials = {\n prefix: 'fad',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", [\"M128 304a48 48 0 0 0 96 0V160h-96zm288-144v144a48 48 0 0 0 96 0V160z\", \"M360 64h24v240a80 80 0 0 0 160 0V64h24a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8H360a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zm72 0h64v240a32 32 0 0 1-64 0zm192 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM72 64h24v240a80 80 0 0 0 160 0V64h24a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8H72a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zm72 0h64v240a32 32 0 0 1-64 0z\"]]\n};\nvar faVideo = {\n prefix: 'fad',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", [\"M525.6 410.2L416 334.7V177.3l109.6-75.6c21.3-14.6 50.4.4 50.4 25.8v256.9c0 25.5-29.2 40.4-50.4 25.8z\", \"M0 400.2V111.8A47.8 47.8 0 0 1 47.8 64h288.4a47.8 47.8 0 0 1 47.8 47.8v288.4a47.8 47.8 0 0 1-47.8 47.8H47.8A47.8 47.8 0 0 1 0 400.2z\"]]\n};\nvar faVideoPlus = {\n prefix: 'fad',\n iconName: 'video-plus',\n icon: [576, 512, [], \"f4e1\", [\"M525.6 101.8L416 177.3v157.4l109.6 75.5c21.3 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.7zM288 232h-72v-72a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v72H96a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h72v72a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-72h72a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\", \"M336.2 64H47.8A47.8 47.8 0 0 0 0 111.8v288.4A47.8 47.8 0 0 0 47.8 448h288.4a47.8 47.8 0 0 0 47.8-47.8V111.8A47.8 47.8 0 0 0 336.2 64zM304 264a16 16 0 0 1-16 16h-72v72a16 16 0 0 1-16 16h-16a16 16 0 0 1-16-16v-72H96a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h72v-72a16 16 0 0 1 16-16h16a16 16 0 0 1 16 16v72h72a16 16 0 0 1 16 16z\"]]\n};\nvar faVideoSlash = {\n prefix: 'fad',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", [\"M448 314.49V177.3l109.6-75.6c21.3-14.6 50.4.4 50.4 25.8v256.9c0 17.39-13.59 29.84-29 31.38zm-32-24.74V111.8A47.8 47.8 0 0 0 368.2 64H123.91zM32 400.17A47.8 47.8 0 0 0 79.77 448h288.4a47.45 47.45 0 0 0 29.6-10.5L32 154.67z\", \"M3.37 31.37L23 6.17a16.06 16.06 0 0 1 22.5-2.8l588.3 454.7a15.85 15.85 0 0 1 2.8 22.4l-19.6 25.3a16.06 16.06 0 0 1-22.5 2.8L6.17 53.77a15.93 15.93 0 0 1-2.8-22.4z\"]]\n};\nvar faVihara = {\n prefix: 'fad',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", [\"M160 192h64v-64h-64zM96 352h64v-64H96zM64 496a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-48H64zm480-208h-64v64h64zm-32 160v48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-48zm-224 48a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-48h-64zm192-368h-64v64h64z\", \"M160 128h320l27.31-16.3a16 16 0 0 0-4.16-25.62L320 0 136.85 86.07a16 16 0 0 0-4.16 25.62zm472.88 272.71L544 352H96L7.12 400.71a16 16 0 0 0 1.72 27.62L64 448h512l55.15-19.67a16 16 0 0 0 1.73-27.62zm-592-130.4L96 288h448l55.16-17.69a16 16 0 0 0 0-28.62L480 192H160L40.84 241.69a16 16 0 0 0 0 28.62z\"]]\n};\nvar faViolin = {\n prefix: 'fad',\n iconName: 'violin',\n icon: [640, 512, [], \"f8ed\", [\"M457.77 227.48l-39.83 39.83a16 16 0 0 1-22.63 0l-22.62-22.62a16 16 0 0 1 0-22.63l39.83-39.83c-12.17-8.77-25.53-15.76-40.15-19.16-32.87-7.65-65.69-.93-88.56 21.05A79.09 79.09 0 0 1 288 208.4a79.78 79.78 0 0 1-123.28 67.08 89.85 89.85 0 0 0-7.16 6c-38.07 38-38.17 101.14-5.1 153.3L204 400.39a16 16 0 0 1 20.19 2l13.45 13.45a16 16 0 0 1 2 20.19l-34.35 51.53c52.16 33 115.31 32.85 153.26-5.12a89.77 89.77 0 0 0 6.23-7.48A79.27 79.27 0 0 1 455.87 356c21.92-22.84 28.6-55.6 21-88.4-3.36-14.6-10.34-27.95-19.1-40.12zM472 48a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm96 96a24 24 0 1 0 24 24 24 24 0 0 0-24-24zM520 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm96 96a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\", \"M224.16 402.39a16 16 0 0 0-20.19-2l-68.84 45.9a16 16 0 0 0-2.44 24.62l36.4 36.4a16 16 0 0 0 24.62-2.44l45.9-68.87a16 16 0 0 0-2-20.19zM336 4.69a16 16 0 0 0-22.62 0L4.69 313.38a16 16 0 0 0 0 22.62L16 347.31a16 16 0 0 0 22.62 0L347.31 38.62a16 16 0 0 0 0-22.62zm299.31 22.62L612.69 4.69a16 16 0 0 0-22.63 0L372.69 222.06a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0L635.31 49.94a16 16 0 0 0 0-22.63z\"]]\n};\nvar faVirus = {\n prefix: 'fad',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", [\"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\", \"M272,226.22a48,48,0,1,1-48-48A48,48,0,0,1,272,226.22Z\"]]\n};\nvar faVirusSlash = {\n prefix: 'fad',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", [\"M114,227.55H92.43a28.45,28.45,0,0,0,0,56.89H114c50.68,0,76.07,61.28,40.23,97.12L139,396.8A28.44,28.44,0,1,0,179.18,437l15.25-15.25c35.84-35.84,97.12-10.45,97.12,40.23v21.54a28.45,28.45,0,1,0,56.89,0V462c0-26.61,17-45.91,38.22-53.37l-244.5-189A55.57,55.57,0,0,1,114,227.55Zm433.57,0H526c-50.68,0-76.06-61.27-40.22-97.11L501,115.19A28.44,28.44,0,0,0,460.8,75L445.55,90.22c-35.83,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.89,0V50c0,50.68-61.28,76.06-97.12,40.23L179.18,75A28.43,28.43,0,0,0,139,75c-.13.14-.15.32-.28.45L272.56,178.89h0l62.87,48.59h0L470.61,332c4.17-25.4,24.91-47.52,55.39-47.52h21.55a28.45,28.45,0,1,0,0-56.89Z\", \"M636.63,480.55,617,505.81a16,16,0,0,1-22.45,2.82L6.18,53.91A16,16,0,0,1,3.37,31.46L23,6.19A16,16,0,0,1,45.46,3.38L633.82,458.1A16,16,0,0,1,636.63,480.55Z\"]]\n};\nvar faViruses = {\n prefix: 'fad',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", [\"M362.67,170.67H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43c-26.88-26.88-7.85-72.84,30.17-72.84h16.16a21.33,21.33,0,0,0,0-42.66ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Zm240,96a32,32,0,1,0,32,32A32,32,0,0,0,480,320Z\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM160,128a32,32,0,1,0,32,32A32,32,0,0,0,160,128Z\"]]\n};\nvar faVoicemail = {\n prefix: 'fad',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", [\"M496 224a48 48 0 1 0 48 48 48.05 48.05 0 0 0-48-48zm-352 0a48 48 0 1 0 48 48 48.05 48.05 0 0 0-48-48z\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]]\n};\nvar faVolcano = {\n prefix: 'fad',\n iconName: 'volcano',\n icon: [512, 512, [], \"f770\", [\"M304.4 224h-96.8a32 32 0 0 0-25.2 12.31l-55.6 71L140 323.8c9.8 12.2 30.3 12.2 40.1 0a57.37 57.37 0 0 1 44.1-21.6c17.2-1.5 33.6 7 44.8 20.1l31.6 36.8c9.8 11.4 29.2 11.4 39 0l45.1-52.6-55-70.2a32.2 32.2 0 0 0-25.3-12.3zM352 16a63.3 63.3 0 0 0-41.18 15.43 63.57 63.57 0 0 0-109.62 0A63.38 63.38 0 0 0 160 16a64 64 0 1 0 34.8 117.6L224 192h64l29.2-58.4A64 64 0 1 0 352 16z\", \"M480 512H32.1c-26.4 0-41.5-30.1-25.6-51.2L127 307l-.24.31L140 323.8c9.8 12.2 30.3 12.2 40.1 0a57.37 57.37 0 0 1 44.1-21.6c17.2-1.5 33.6 7 44.8 20.1l31.6 36.8c9.8 11.4 29.2 11.4 39 0l45.1-52.6 120.8 154.3c15.9 21.13.8 51.2-25.5 51.2z\"]]\n};\nvar faVolleyballBall = {\n prefix: 'fad',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", [\"M454.23 404.17a248.06 248.06 0 0 1-39.17 41.39c-112.46 15.75-202.52-25-256-62.22-15.15 25.91-25.63 54.21-32 83.91a248.89 248.89 0 0 1-41.65-32 333.88 333.88 0 0 1 146-191.83 285.58 285.58 0 0 0-22.7-105.7c-90.55 42.28-157.12 122-180.11 216a246.06 246.06 0 0 1-16.2-53.91C45.86 217.05 110.73 148.43 194.49 109a284.15 284.15 0 0 0-57.05-70.38A246.11 246.11 0 0 1 186 18.53 333.88 333.88 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18c8.58-99.59-27.15-197.09-97.06-264a246.08 246.08 0 0 1 54.5 12.77C394.73 93.3 421.88 184 414 276.34a286.48 286.48 0 0 0 89.43-14.12 247.86 247.86 0 0 1-6.83 52 336.11 336.11 0 0 1-80.6 10.32c-54.6-.1-108.9-14.1-158.6-40.9a286.16 286.16 0 0 0-80.2 72.6c81.86 57.21 184.15 75.04 277.03 47.93z\", \"M194.49 109a284.15 284.15 0 0 0-57.05-70.38A247.9 247.9 0 0 0 12.38 299.84C45.86 217.05 110.73 148.43 194.49 109zm36.9 134.4a285.58 285.58 0 0 0-22.7-105.7c-90.55 42.28-157.12 122-180.11 216a248.18 248.18 0 0 0 56.82 81.57 333.88 333.88 0 0 1 145.99-191.83zm150.7 30.7c8.58-99.59-27.15-197.08-97-264a250.78 250.78 0 0 0-29-1.71 247.15 247.15 0 0 0-70 10.08A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.14zM339.53 22.93C394.73 93.3 421.88 184 414 276.34a286.48 286.48 0 0 0 89.43-14.12q.07-3.12.08-6.26c-.01-107.38-68.39-198.77-163.98-233.03zM159.09 383.34c-15.15 25.91-25.63 54.21-32 83.9a247.51 247.51 0 0 0 288-21.68c-112.49 15.75-202.55-25.02-256-62.22zm98.3-99.7a286.16 286.16 0 0 0-80.2 72.6c81.87 57.21 184.16 75 277 47.93a246.5 246.5 0 0 0 42.36-90A336.11 336.11 0 0 1 416 324.54c-54.61-.1-108.91-14.1-158.61-40.9z\"]]\n};\nvar faVolume = {\n prefix: 'fad',\n iconName: 'volume',\n icon: [480, 512, [], \"f6a8\", [\"M256 88v336c0 21.44-25.94 32-41 17l-89-88.95H24A24 24 0 0 1 0 328V184a24 24 0 0 1 24-24h102.06l89-88.95C230 56 256 66.56 256 88z\", \"M338.23 179.13a24 24 0 1 0-23.16 42.06 39.42 39.42 0 0 1 0 69.62 24 24 0 1 0 23.16 42.06 87.43 87.43 0 0 0 0-153.74zm56-79.37a23.9 23.9 0 0 0-33.12 7.46 24.29 24.29 0 0 0 7.41 33.36 136.67 136.67 0 0 1 0 230.84 24.28 24.28 0 0 0-7.41 33.36 23.94 23.94 0 0 0 33.12 7.46 185.19 185.19 0 0 0 0-312.48z\"]]\n};\nvar faVolumeDown = {\n prefix: 'fad',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", [\"M0 328V184a24 24 0 0 1 24-24h102.06l89-89c15-15 41-4.49 41 17v336c0 21.44-25.94 32-41 17l-89-88.95H24A24 24 0 0 1 0 328z\", \"M305.62 188.57a24.08 24.08 0 0 1 32.61-9.45 87.44 87.44 0 0 1 0 153.75 24 24 0 1 1-23.16-42.06 39.43 39.43 0 0 0 0-69.63 24 24 0 0 1-9.45-32.61z\"]]\n};\nvar faVolumeMute = {\n prefix: 'fad',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", [\"M0 328V184a24 24 0 0 1 24-24h102.06l89-88.95c15-15 41-4.49 41 17V424c0 21.44-25.94 32-41 17l-89-88.95H24A24 24 0 0 1 0 328z\", \"M324.72 210.36a16.14 16.14 0 0 1 0-22.82l22.82-22.82a16.14 16.14 0 0 1 22.82 0L416 210.36l45.64-45.64a16.14 16.14 0 0 1 22.82 0l22.82 22.82a16.14 16.14 0 0 1 0 22.82L461.64 256l45.64 45.64a16.14 16.14 0 0 1 0 22.82l-22.82 22.82a16.14 16.14 0 0 1-22.82 0L416 301.64l-45.63 45.63a16.14 16.14 0 0 1-22.82 0l-22.82-22.82a16.14 16.14 0 0 1 0-22.82L370.36 256z\"]]\n};\nvar faVolumeOff = {\n prefix: 'fad',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", [\"M0 328V184a24 24 0 0 1 24-24h102.06l89-89c15-15 41-4.49 41 17v336c0 21.44-25.94 32-41 17l-89-88.95H24A24 24 0 0 1 0 328z\", \"\"]]\n};\nvar faVolumeSlash = {\n prefix: 'fad',\n iconName: 'volume-slash',\n icon: [640, 512, [], \"f2e2\", [\"M393.11 107.22a23.9 23.9 0 0 1 33.12-7.46A185.33 185.33 0 0 1 488.74 346l-38.65-29.9a136.7 136.7 0 0 0-49.57-175.52 24.29 24.29 0 0 1-7.41-33.36zm60.68-46.79a233.7 233.7 0 0 1 73 315l38.52 29.78A282.1 282.1 0 0 0 480.35 20a24.2 24.2 0 1 0-26.56 40.46zM347.07 221.19a40 40 0 0 1 20.75 31.32l42.92 33.18A86.79 86.79 0 0 0 416 256a87.89 87.89 0 0 0-45.78-76.86 24 24 0 1 0-23.16 42.06zM288 190.82V88c0-21.46-26-32-41-17l-49.7 49.69zM32 184v144a24 24 0 0 0 24 24h102.06L247 441c15 15 41 4.47 41-17v-71.4L43.76 163.84C36.86 168.05 32 175.32 32 184z\", \"M594.54 508.63L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.82 458.1a16 16 0 0 1 2.82 22.45L617 505.82a16 16 0 0 1-22.46 2.81z\"]]\n};\nvar faVolumeUp = {\n prefix: 'fad',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", [\"M0 328V184a24 24 0 0 1 24-24h102.06l89-88.95c15-15 41-4.49 41 17V424c0 21.44-25.94 32-41 17l-89-88.95H24A24 24 0 0 1 0 328z\", \"M338.23 179.13a24 24 0 1 0-23.16 42.06 39.42 39.42 0 0 1 0 69.62 24 24 0 1 0 23.16 42.06 87.43 87.43 0 0 0 0-153.74zM480 256a184.64 184.64 0 0 0-85.77-156.24 23.9 23.9 0 0 0-33.12 7.46 24.29 24.29 0 0 0 7.41 33.36 136.67 136.67 0 0 1 0 230.84 24.28 24.28 0 0 0-7.41 33.36 23.94 23.94 0 0 0 33.12 7.46A184.62 184.62 0 0 0 480 256zM448.35 20a24.2 24.2 0 1 0-26.56 40.46 233.65 233.65 0 0 1 0 391.16A24.2 24.2 0 1 0 448.35 492a282 282 0 0 0 0-472.07z\"]]\n};\nvar faVoteNay = {\n prefix: 'fad',\n iconName: 'vote-nay',\n icon: [640, 512, [], \"f771\", [\"M512 64.3A32.29 32.29 0 0 0 479.7 32H160.4A32.37 32.37 0 0 0 128 64.3V384h384zM404.8 281.5l-11.3 11.3a16.06 16.06 0 0 1-22.6 0L320 241.9l-50.9 50.9a16.06 16.06 0 0 1-22.6 0l-11.3-11.3a16.06 16.06 0 0 1 0-22.6l50.9-50.9-51-50.9a16.06 16.06 0 0 1 0-22.6l11.3-11.3a16.06 16.06 0 0 1 22.6 0l50.9 50.9 50.9-50.9a16.06 16.06 0 0 1 22.6 0l11.3 11.3a16.06 16.06 0 0 1 0 22.6L353.9 208l50.9 50.9a16.06 16.06 0 0 1 0 22.6z\", \"M286.1 208l-50.9 50.9a16.06 16.06 0 0 0 0 22.6l11.3 11.3a16.06 16.06 0 0 0 22.6 0l50.9-50.9 50.9 50.9a16.06 16.06 0 0 0 22.6 0l11.3-11.3a16.06 16.06 0 0 0 0-22.6L353.9 208l50.8-50.9a16.06 16.06 0 0 0 0-22.6l-11.3-11.3a16.06 16.06 0 0 0-22.6 0l-50.9 50.9-50.9-50.9a16.06 16.06 0 0 0-22.6 0l-11.3 11.3a16.06 16.06 0 0 0 0 22.6zM608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32z\"]]\n};\nvar faVoteYea = {\n prefix: 'fad',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", [\"M512 64.3A32.29 32.29 0 0 0 479.7 32H160.4A32.37 32.37 0 0 0 128 64.3V384h384zm-83.2 100.5L300.5 292a10.65 10.65 0 0 1-15.2-.1l-74.1-74.7a10.65 10.65 0 0 1 0-15.2l25.5-25.3a10.65 10.65 0 0 1 15.2.1l41.3 41.6 95.2-94.4a10.65 10.65 0 0 1 15.2.1l25.3 25.5a10.65 10.65 0 0 1-.1 15.2z\", \"M285.3 291.9a10.65 10.65 0 0 0 15.2.1l128.3-127.2a10.65 10.65 0 0 0 .1-15.2l-25.3-25.5a10.65 10.65 0 0 0-15.2-.1l-95.2 94.4-41.3-41.6a10.65 10.65 0 0 0-15.2-.1L211.2 202a10.65 10.65 0 0 0 0 15.2zM608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32z\"]]\n};\nvar faVrCardboard = {\n prefix: 'fad',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", [\"M608 64H32A32 32 0 0 0 0 96v320a32 32 0 0 0 32 32h160.22a64 64 0 0 0 58.36-37.74l27.74-61.64c7.89-17.54 24-28.62 41.68-28.62s33.79 11.08 41.68 28.62l27.74 61.64A64 64 0 0 0 447.78 448H608a32 32 0 0 0 32-32V96a32 32 0 0 0-32-32zM160 304a64 64 0 1 1 64-64 64 64 0 0 1-64 64zm320 0a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\", \"M160 176a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm320 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64z\"]]\n};\nvar faWagonCovered = {\n prefix: 'fad',\n iconName: 'wagon-covered',\n icon: [640, 512, [], \"f8ee\", [\"M224,224V64c0-36.88-25.33-39.27-59.43-44.49L39.55.39c-26-4-46.53,23.34-37.3,49.69L70.78,224ZM384,56a40,40,0,0,0-40-40H296a40,40,0,0,0-40,40V224H384ZM600.45.39l-125,19.12C441.33,24.73,416,27.12,416,64V224H569.22L637.75,50.08C647,23.73,626.48-3.59,600.45.39ZM176,288a112,112,0,1,0,79.2,32.8A111.7,111.7,0,0,0,176,288ZM160,461.74A62.48,62.48,0,0,1,114.26,416H160ZM160,384H114.26A62.44,62.44,0,0,1,160,338.26Zm61.25,61.25A63.43,63.43,0,0,1,192,461.74V416h45.74A63.43,63.43,0,0,1,221.25,445.25ZM192,384V338.26A62.44,62.44,0,0,1,237.74,384Zm272-96a112,112,0,1,0,79.2,32.8A111.7,111.7,0,0,0,464,288ZM448,461.74A62.48,62.48,0,0,1,402.26,416H448ZM448,384H402.26A62.44,62.44,0,0,1,448,338.26Zm61.25,61.25A63.43,63.43,0,0,1,480,461.74V416h45.74A63.34,63.34,0,0,1,509.25,445.25ZM480,384V338.26A62.44,62.44,0,0,1,525.74,384Z\", \"M560,256H80a16,16,0,0,0-16,16v32a16,16,0,0,0,16,16H97.79a111.8,111.8,0,0,1,157.41.8c25.95,26,36.12,61.46,31.27,95.2h67.06c-4.85-33.74,5.32-69.24,31.27-95.2a111.8,111.8,0,0,1,157.41-.8H560a16,16,0,0,0,16-16V272A16,16,0,0,0,560,256ZM416,40a8,8,0,0,0-8-8H392a8,8,0,0,0-8,8V224h32ZM256,40a8,8,0,0,0-8-8H232a8,8,0,0,0-8,8V224h32Z\"]]\n};\nvar faWalker = {\n prefix: 'fad',\n iconName: 'walker',\n icon: [448, 512, [], \"f831\", [\"M448 448a64 64 0 1 1-64-64 64 64 0 0 1 64 64z\", \"M352 357.47a96.34 96.34 0 0 1 64 0V96a96 96 0 0 0-96-96H190.66A95.62 95.62 0 0 0 96 80L.24 487.77a16 16 0 0 0 13 18.51l31.54 5.48a16 16 0 0 0 18.5-13L127.81 224H352zM142.83 160l16.26-69.25A31.91 31.91 0 0 1 190.66 64H320a32 32 0 0 1 32 32v64z\"]]\n};\nvar faWalkieTalkie = {\n prefix: 'fad',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", [\"M352 96h-32V80a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16h-32V80a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16H32a32.09 32.09 0 0 0-32 32v178.74a32 32 0 0 0 9.38 22.63L32 352v112a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48V352l22.63-22.63a32 32 0 0 0 9.37-22.63V128a32.09 32.09 0 0 0-32-32zm-64 216a8 8 0 0 1-8 8H104a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8zm0-64a8 8 0 0 1-8 8H104a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8zm0-64a8 8 0 0 1-8 8H104a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8z\", \"M112 16A16 16 0 0 0 96 0H80a16 16 0 0 0-16 16v80h48zm168 272H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-64H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-64H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]]\n};\nvar faWalking = {\n prefix: 'fad',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", [\"M208 0a48 48 0 1 1-48 48 48 48 0 0 1 48-48z\", \"M73.58 385.8a62.05 62.05 0 0 1-14.2 21.5l-50 50.1a32 32 0 0 0 45.2 45.3L114 443.3a64.82 64.82 0 0 0 14.19-21.5l13.5-33.8c-55.29-60.3-38.69-41.8-47.4-53.7zm228.9-140.7l-23.31-11.8-9.69-29.4c-14.71-44.6-55.71-75.8-102.21-75.9-36-.1-55.89 10.1-93.29 25.2a95.41 95.41 0 0 0-49.71 46.2L17.58 213a32.1 32.1 0 0 0 14.19 42.9 31.56 31.56 0 0 0 42.5-14.3L81 228a31.75 31.75 0 0 1 16.5-15.4l26.79-10.8-15.19 60.7a64.22 64.22 0 0 0 14.9 58.8l59.9 65.4a64.52 64.52 0 0 1 14.89 27.7l18.31 73.3a32 32 0 1 0 62.09-15.5l-22.19-89a64.07 64.07 0 0 0-14.9-27.7l-45.5-49.7 17.19-68.7 5.5 16.5a63.83 63.83 0 0 0 31.71 37l23.29 11.8a31.56 31.56 0 0 0 42.5-14.3 32.37 32.37 0 0 0-14.31-43z\"]]\n};\nvar faWallet = {\n prefix: 'fad',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", [\"M416 272a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm16-240H64A64 64 0 0 0 0 96a32 32 0 0 0 32 32h48a16 16 0 0 1 0-32h384a16 16 0 0 0 16-16 48 48 0 0 0-48-48z\", \"M461.2 128H32A32 32 0 0 1 0 96v320a64 64 0 0 0 64 64h397.2c28 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faWand = {\n prefix: 'fad',\n iconName: 'wand',\n icon: [512, 512, [], \"f72a\", [\"M128 272v36.87L186.6 256H144a16 16 0 0 0-16 16zm248.35-80H400a16 16 0 0 0 16-16v-28z\", \"M507.87 46.18L97.16 501.44A32 32 0 0 1 52 503.71q-.6-.54-1.17-1.11L9.37 461.17a32 32 0 0 1 0-45.25c.38-.38.77-.75 1.16-1.11L465.79 4.11a16 16 0 0 1 22 .55l19.48 19.47a16 16 0 0 1 .6 22.05z\"]]\n};\nvar faWandMagic = {\n prefix: 'fad',\n iconName: 'wand-magic',\n icon: [512, 512, [], \"f72b\", [\"M416 176v-28l-39.65 44H400a16 16 0 0 0 16-16zm-288 96v36.87L186.6 256H144a16 16 0 0 0-16 16zM106.66 53.33L80 0 53.34 53.34 0 80l53.34 26.67L80 160l26.66-53.33L160 80zm352 288L432 288l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368zM224 0l-16 32-32 16 32 16 16 32 16-32 32-16-32-16z\", \"M507.87 46.18L97.16 501.44A32 32 0 0 1 52 503.71q-.6-.54-1.17-1.11L9.37 461.17a32 32 0 0 1 0-45.25c.38-.38.77-.75 1.16-1.11L465.79 4.11a16 16 0 0 1 22 .55l19.48 19.47a16 16 0 0 1 .6 22.05z\"]]\n};\nvar faWarehouse = {\n prefix: 'fad',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", [\"M504 448H136.1a8 8 0 0 0-8 8l-.1 48a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zm0-192H136.6a8 8 0 0 0-8 8l-.1 48a8 8 0 0 0 8 8H504a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zm0 96H136.4a8 8 0 0 0-8 8l-.1 48a8 8 0 0 0 8 8H504a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8z\", \"M640 161.28V504a8 8 0 0 1-8 8h-80a8 8 0 0 1-8-8V256c0-17.6-14.6-32-32.6-32H128.6c-18 0-32.6 14.4-32.6 32v248a8 8 0 0 1-8 8H8a8 8 0 0 1-8-8V161.28A48.11 48.11 0 0 1 29.5 117l272-113.3a48.06 48.06 0 0 1 36.9 0L610.5 117a48.11 48.11 0 0 1 29.5 44.28z\"]]\n};\nvar faWarehouseAlt = {\n prefix: 'fad',\n iconName: 'warehouse-alt',\n icon: [640, 512, [], \"f495\", [\"M304 416H144a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-128H144a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm192 128H368a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16z\", \"M640 161.28V504a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V208a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v296a8 8 0 0 1-8 8H8a8 8 0 0 1-8-8V161.28A48.11 48.11 0 0 1 29.5 117l272-113.3a48.06 48.06 0 0 1 36.9 0L610.5 117a48.11 48.11 0 0 1 29.5 44.28z\"]]\n};\nvar faWasher = {\n prefix: 'fad',\n iconName: 'washer',\n icon: [446, 512, [], \"f898\", [\"M298 300a51.75 51.75 0 0 0 36.11-14.69A110.76 110.76 0 0 1 336 304a112 112 0 0 1-224 0 110.76 110.76 0 0 1 1.89-18.69 51.79 51.79 0 0 0 73.24-1 51.23 51.23 0 0 0 73.74 0A51.81 51.81 0 0 0 298 300z\", \"M384 0H64A64 64 0 0 0 0 64v416a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a64 64 0 0 0-64-64zM184 64a24 24 0 1 1-24 24 24 24 0 0 1 24-24zM64 88a24 24 0 1 1 24 24 24 24 0 0 1-24-24zm160 360a144 144 0 1 1 144-144 144 144 0 0 1-144 144z\"]]\n};\nvar faWatch = {\n prefix: 'fad',\n iconName: 'watch',\n icon: [384, 512, [], \"f2e1\", [\"M192 80a176 176 0 1 0 176 176A176 176 0 0 0 192 80zm71.8 219.8L245 325.7a11.91 11.91 0 0 1-16.62 2.73l-.18-.13-59.3-43.2a12 12 0 0 1-4.9-9.7V160a12 12 0 0 1 12-12h32a12 12 0 0 1 12 12v93l41.2 30a12.07 12.07 0 0 1 2.6 16.8z\", \"M208 148h-32a12 12 0 0 0-12 12v115.4a12 12 0 0 0 4.9 9.7l59.3 43.2.18.13A11.91 11.91 0 0 0 245 325.7l18.8-25.9a12.07 12.07 0 0 0-2.6-16.8L220 253v-93a12 12 0 0 0-12-12zm-16 284a175.5 175.5 0 0 1-128-55.21V488a23.94 23.94 0 0 0 23.88 24H296a23.94 23.94 0 0 0 24-23.88V376.79A175.5 175.5 0 0 1 192 432zM296.12 0H88a23.94 23.94 0 0 0-24 23.88v111.33a176 176 0 0 1 256 0V24a23.94 23.94 0 0 0-23.88-24z\"]]\n};\nvar faWatchCalculator = {\n prefix: 'fad',\n iconName: 'watch-calculator',\n icon: [384, 512, [], \"f8f0\", [\"M320 80H64a64 64 0 0 0-64 64v224a64 64 0 0 0 64 64h256a64 64 0 0 0 64-64V144a64 64 0 0 0-64-64zM120 368a8 8 0 0 1-8 8H80a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8H80a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8zm96 96a8 8 0 0 1-8 8h-32a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8h-32a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8zm96 96a8 8 0 0 1-8 8h-32a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8h-32a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8zm0-96a8 8 0 0 1-8 8H80a8 8 0 0 1-8-8v-32a8 8 0 0 1 8-8h224a8 8 0 0 1 8 8z\", \"M64 480a32 32 0 0 0 32 32h192a32 32 0 0 0 32-32v-48H64zM288 0H96a32 32 0 0 0-32 32v48h256V32a32 32 0 0 0-32-32zM72 368a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8H80a8 8 0 0 0-8 8zm8-88h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8H80a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8zm88 88a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8h-32a8 8 0 0 0-8 8zm8-88h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8zm88 88a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8h-32a8 8 0 0 0-8 8zm8-88h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8z\"]]\n};\nvar faWatchFitness = {\n prefix: 'fad',\n iconName: 'watch-fitness',\n icon: [384, 512, [], \"f63e\", [\"M320 80H64a64 64 0 0 0-64 64v224a64 64 0 0 0 64 64h256a64 64 0 0 0 64-64V144a64 64 0 0 0-64-64zm-33.43 182.21l-84.67 85.64a13.89 13.89 0 0 1-19.64.16l-.16-.16-84.67-85.64a60.64 60.64 0 0 1 .67-85.76q1.75-1.72 3.66-3.32c24-20 59.65-16.42 81.62 5.81l8.62 8.72 8.62-8.72c22-22.23 57.66-25.82 81.62-5.81a60.64 60.64 0 0 1 7.65 85.42q-1.58 1.89-3.32 3.66z\", \"M182.26 348a13.89 13.89 0 0 0 19.64-.16l84.67-85.64q1.74-1.77 3.32-3.66a60.64 60.64 0 0 0-7.65-85.42c-24-20-59.62-16.42-81.62 5.81l-8.62 8.73-8.62-8.72c-22-22.23-57.62-25.81-81.62-5.81q-1.91 1.59-3.66 3.32a60.64 60.64 0 0 0-.67 85.76l84.67 85.64zM64 480a32 32 0 0 0 32 32h192a32 32 0 0 0 32-32v-48H64zM288 0H96a32 32 0 0 0-32 32v48h256V32a32 32 0 0 0-32-32z\"]]\n};\nvar faWater = {\n prefix: 'fad',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", [\"M562.2 95.86c8.1.9 13.9 8.3 13.8 16.3v31.61c0 9.1-7.6 16.8-16.7 16A185 185 0 0 1 480.18 134c-55 34.11-135.52 34.61-192 0-55 34.11-135.52 34.61-192 0-23.31 14.5-50.61 23.4-79.42 25.9-9.1.8-16.7-6.9-16.7-16v-32.24c0-7.9 5.7-14.9 13.6-15.7 21.71-2.3 42.21-10.2 57.71-22.41 13.8-10.9 33.61-13.2 47.11-2 38.31 31.71 107.22 31.81 145.23 1.7 13.7-10.9 33.2-13 46.7-1.8 38.51 31.91 107.82 31.91 145.73 1.5a38.79 38.79 0 0 1 48.21 0c15.8 12.41 36.4 20.41 57.91 22.91z\", \"M562.2 383.93c-21.51-2.4-42.11-10.5-57.91-22.91a38.79 38.79 0 0 0-48.21 0c-37.91 30.41-107.22 30.41-145.73-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.11-106.92 30-145.23-1.7-13.5-11.2-33.31-8.9-47.11 2-15.5 12.21-36 20.11-57.71 22.41-7.9.8-13.6 7.8-13.6 15.7v32.21c0 9.1 7.6 16.8 16.7 16 28.81-2.5 56.11-11.4 79.42-25.9 56.51 34.61 137 34.1 192 0 56.51 34.61 137 34.1 192 0a185 185 0 0 0 79.12 25.8c9.1.8 16.7-6.9 16.7-16v-31.61c.16-8-5.64-15.4-13.74-16.3zm0-144c-21.51-2.4-42.11-10.5-57.91-22.9a38.79 38.79 0 0 0-48.21 0c-37.91 30.41-107.22 30.41-145.73-1.5-13.5-11.21-33-9.1-46.7 1.8-38 30.11-106.92 30-145.23-1.7-13.5-11.21-33.31-8.9-47.11 2-15.5 12.2-36 20.1-57.71 22.4C5.7 240.79 0 247.8 0 255.7v32.2c0 9.11 7.6 16.81 16.7 16 28.81-2.5 56.11-11.4 79.42-25.91 56.51 34.61 137 34.11 192 0 56.51 34.61 137 34.11 192 0a184.83 184.83 0 0 0 79.12 25.81c9.1.8 16.7-6.9 16.7-16v-31.6c.16-8-5.64-15.41-13.74-16.31z\"]]\n};\nvar faWaterLower = {\n prefix: 'fad',\n iconName: 'water-lower',\n icon: [576, 512, [], \"f774\", [\"M562.2 447.9c-21.51-2.4-42.11-10.5-57.91-22.9a38.79 38.79 0 0 0-48.21 0c-37.91 30.4-107.22 30.4-145.73-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.92 30-145.23-1.7-13.5-11.2-33.31-8.9-47.11 2-15.5 12.2-36 20.1-57.71 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.81-2.5 56.11-11.4 79.42-25.9 56.51 34.6 137 34.1 192 0 56.51 34.6 137 34.1 192 0a185 185 0 0 0 79.12 25.8c9.1.8 16.7-6.9 16.7-16v-31.6c.16-8-5.64-15.4-13.74-16.3zm0-144c-21.51-2.4-42.11-10.5-57.91-22.9a38.79 38.79 0 0 0-48.21 0c-37.91 30.4-107.22 30.4-145.73-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.92 30-145.23-1.7-13.5-11.2-33.31-8.9-47.11 2-15.5 12.2-36 20.1-57.71 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.81-2.5 56.11-11.4 79.42-25.9 56.51 34.6 137 34.1 192 0 56.51 34.6 137 34.1 192 0a185 185 0 0 0 79.12 25.8c9.1.8 16.7-6.9 16.7-16v-31.6c.16-8-5.64-15.4-13.74-16.3z\", \"M396.27 123.33L300 219.05a17 17 0 0 1-24 0l-96.2-95.62C169.62 113.33 176.71 96 191 96h65.1V16a16 16 0 0 1 16-16H304a16 16 0 0 1 16 16v79.92h65c14.26 0 21.35 17.31 11.27 27.41z\"]]\n};\nvar faWaterRise = {\n prefix: 'fad',\n iconName: 'water-rise',\n icon: [576, 512, [], \"f775\", [\"M562.2 447.85c-21.51-2.4-42.11-10.5-57.91-22.9a38.79 38.79 0 0 0-48.21 0c-37.91 30.4-107.22 30.4-145.73-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.92 30-145.23-1.7-13.5-11.2-33.31-8.9-47.11 2-15.5 12.2-36 20.1-57.71 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.81-2.5 56.11-11.4 79.42-25.9 56.51 34.6 137 34.1 192 0 56.51 34.6 137 34.1 192 0a185 185 0 0 0 79.12 25.8c9.1.8 16.7-6.9 16.7-16v-31.6c.16-8-5.64-15.4-13.74-16.3zm0-144c-21.51-2.4-42.11-10.5-57.91-22.9a38.79 38.79 0 0 0-48.21 0c-37.91 30.4-107.22 30.4-145.73-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.92 30-145.23-1.7-13.5-11.2-33.31-8.9-47.11 2-15.5 12.2-36 20.1-57.71 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.81-2.5 56.11-11.4 79.42-25.9 56.51 34.6 137 34.1 192 0 56.51 34.6 137 34.1 192 0a185 185 0 0 0 79.12 25.8c9.1.8 16.7-6.9 16.7-16v-31.6c.16-8-5.64-15.4-13.74-16.3z\", \"M385.19 128H320v80a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-80h-65.2c-14.2 0-21.4-17.31-11.2-27.31L276 5a17 17 0 0 1 24 0l96.4 95.62c10.19 10.05 3.09 27.38-11.21 27.38z\"]]\n};\nvar faWaveSine = {\n prefix: 'fad',\n iconName: 'wave-sine',\n icon: [640, 512, [], \"f899\", [\"M464 480c-90.52 0-132.84-107.94-173.8-212.31C258.64 187.2 222.88 96 176 96c-39.7 0-91.38 81.89-114.12 149a16 16 0 0 1-19.74 10.33l-30.72-9.21A16 16 0 0 1 .84 225.68C19.55 169.79 82.16 32 176 32c90.52 0 132.84 107.94 173.8 212.31C381.36 324.8 417.12 416 464 416c39.7 0 91.38-81.89 114.12-149a16 16 0 0 1 19.74-10.33l30.72 9.21a16 16 0 0 1 10.58 20.43C620.45 342.21 557.84 480 464 480z\", \"\"]]\n};\nvar faWaveSquare = {\n prefix: 'fad',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", [\"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\", \"\"]]\n};\nvar faWaveTriangle = {\n prefix: 'fad',\n iconName: 'wave-triangle',\n icon: [640, 512, [], \"f89a\", [\"M464 480h-.34a32 32 0 0 1-25.25-12.8l-263-350.65L53.73 281.88a16 16 0 0 1-22.46 2.7L6.12 264.82a16 16 0 0 1-2.7-22.47L150.84 44.23A32 32 0 0 1 176 32h.34a32 32 0 0 1 25.25 12.8l263 350.65 121.68-165.33a16 16 0 0 1 22.46-2.7l25.15 19.76a16 16 0 0 1 2.7 22.47L489.16 467.77A32 32 0 0 1 464 480z\", \"\"]]\n};\nvar faWaveform = {\n prefix: 'fad',\n iconName: 'waveform',\n icon: [640, 512, [], \"f8f1\", [\"M140 192h-24a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h24a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zM524 64h-24a16 16 0 0 0-16 16v352a16 16 0 0 0 16 16h24a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zM332 0h-24a16 16 0 0 0-16 16v480a16 16 0 0 0 16 16h24a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16z\", \"M44 224H20a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h24a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM236 96h-24a16 16 0 0 0-16 16v288a16 16 0 0 0 16 16h24a16 16 0 0 0 16-16V112a16 16 0 0 0-16-16zm384 128h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h24a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-192-96h-24a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16h24a16 16 0 0 0 16-16V144a16 16 0 0 0-16-16z\"]]\n};\nvar faWaveformPath = {\n prefix: 'fad',\n iconName: 'waveform-path',\n icon: [640, 512, [], \"f8f2\", [\"M195.41 64.23a24 24 0 0 0-27.16 20.38l-28.19 197.33 27.47 137.36a23.82 23.82 0 0 1 0 8.79c0-.25.19-.45.23-.7l48-336a24 24 0 0 0-20.35-27.16zm-95.75 96.05a24 24 0 0 0-27.38 20.06L59.41 264H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h64a24 24 0 0 0 23.71-20.35l16-104a24 24 0 0 0-20.05-27.37zm352.12-96a23.94 23.94 0 0 0-27.47 19.9l-38.54 240.93 22 159.61a23.61 23.61 0 0 1-.51 8.28c.09-.43.35-.77.42-1.2l64-400a24 24 0 0 0-19.9-27.5zm96.94 96.17a23.91 23.91 0 0 0-28.25 18.83l-20.53 102.66 19.81 138.67a23.84 23.84 0 0 1-.5 8.82c.06-.26.23-.46.28-.73l48-240a24 24 0 0 0-18.81-28.23zM323.28.22a24 24 0 0 0-27.06 20.5l-42 304.39 25.47 159.09a23.78 23.78 0 0 1-.34 8.39c.09-.47.37-.84.43-1.31l64-464A24 24 0 0 0 323.28.22z\", \"M119.31 178.78a23.7 23.7 0 0 1 .41 8.87l-16 104a23.94 23.94 0 0 1-7.81 14.23l24.56 122.82A24 24 0 0 0 144 448a23.39 23.39 0 0 0 4.75-.47 24 24 0 0 0 18.81-28.23l-48-240c-.07-.2-.2-.3-.25-.52zm96-95.68a23.65 23.65 0 0 1 .47 8.29l-22.44 156.85 39 243.56A24 24 0 0 0 256 512a23.56 23.56 0 0 0 3.81-.3 24 24 0 0 0 19.91-27.5l-64-400c-.09-.4-.36-.7-.44-1.1zM624 264h-43.41l-12.87-83.66c0-.2-.17-.35-.2-.55a23.83 23.83 0 0 1 0 8.91L544.1 305.88A23.87 23.87 0 0 0 560 312h64a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM343.28 19.29a23.66 23.66 0 0 1 .5 8L320 199.7l40.22 291.58A24 24 0 0 0 384 512a26.66 26.66 0 0 0 3.31-.22 24 24 0 0 0 20.5-27.06l-64-464c-.1-.52-.42-.92-.53-1.43zm128.07 64.19a23.86 23.86 0 0 1 .34 8.32l-25 156.44 25.59 179.15A24 24 0 0 0 496 448a27 27 0 0 0 3.44-.23 24 24 0 0 0 20.34-27.16l-48-336c-.09-.41-.35-.73-.43-1.13z\"]]\n};\nvar faWebcam = {\n prefix: 'fad',\n iconName: 'webcam',\n icon: [448, 512, [], \"f832\", [\"M224 96a128 128 0 1 0 128 128A128 128 0 0 0 224 96zm0 80a48.05 48.05 0 0 0-48 48 16 16 0 0 1-32 0 80.09 80.09 0 0 1 80-80 16 16 0 1 1 0 32z\", \"M401 438.6l-49.19-30.75C409.88 367.39 448 300.19 448 224 448 100.29 347.71 0 224 0S0 100.29 0 224c0 76.19 38.12 143.39 96.23 183.85L47 438.6a32 32 0 0 0-15 27.14V480a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32v-14.26a32 32 0 0 0-15-27.14zM224 384a160 160 0 1 1 160-160 160 160 0 0 1-160 160z\"]]\n};\nvar faWebcamSlash = {\n prefix: 'fad',\n iconName: 'webcam-slash',\n icon: [640, 512, [], \"f833\", [\"M146.93 81.8A223.54 223.54 0 0 1 320 0c123.71 0 224 100.29 224 224a222.55 222.55 0 0 1-42.83 131.58l-50.63-39.13A160 160 0 0 0 197.59 121zM320 96a127.67 127.67 0 0 0-97 44.54L261 170a79.87 79.87 0 0 1 59-26 16 16 0 0 1 0 32 47.85 47.85 0 0 0-33.48 13.65L425.2 296.87A128 128 0 0 0 320 96zM163.46 256.92l-66.53-51.41c-.5 6.11-.93 12.25-.93 18.49 0 76.19 38.12 143.39 96.23 183.85L143 438.6a32 32 0 0 0-15 27.14V480a32 32 0 0 0 32 32h320a31.44 31.44 0 0 0 10.7-2.16L327 383.3c-83.42 3.7-148.41-54.1-163.54-126.38z\", \"M636.64 480.55L617 505.82a16 16 0 0 1-22.45 2.8L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.45-2.8L633.82 458.1a16 16 0 0 1 2.82 22.45z\"]]\n};\nvar faWeight = {\n prefix: 'fad',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", [\"M256 320A160 160 0 1 0 96 160a160 160 0 0 0 160 160zm-.28-152l33.56-78.3a16 16 0 0 1 29.44 12.59l-33.58 78.33A40 40 0 1 1 255.72 168z\", \"M512 128v320a64.07 64.07 0 0 1-64 64H64a64.07 64.07 0 0 1-64-64V128a64.07 64.07 0 0 1 64-64h26a190.6 190.6 0 0 0-26 96c0 105.87 86.13 192 192 192s192-86.13 192-192a190.6 190.6 0 0 0-26-96h26a64.07 64.07 0 0 1 64 64zM256 248a40 40 0 0 0 29.14-67.38l33.58-78.33a16 16 0 0 0-29.44-12.59L255.72 168a40 40 0 0 0 .28 80z\"]]\n};\nvar faWeightHanging = {\n prefix: 'fad',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", [\"M164.47 128a96 96 0 1 1 181.06 0H255a32 32 0 1 0-32-32 32 32 0 0 0 32 32z\", \"M510.28 445.85l-73-292.13c-3.8-15.19-16.44-25.72-30.87-25.72H105.64c-14.43 0-27.08 10.54-30.87 25.72l-73 292.13C-6.61 479.16 16.38 512 48 512h416c31.62 0 54.61-32.84 46.28-66.15z\"]]\n};\nvar faWhale = {\n prefix: 'fad',\n iconName: 'whale',\n icon: [640, 512, [], \"f72c\", [\"M544 192c-243 0-315.29 224-380.12 224A35.92 35.92 0 0 1 128 380.11v-98l49.75-30.51A32 32 0 0 0 192 225v-81a16 16 0 0 0-24.88-13.31L96 178.11l-71.12-47.42A16 16 0 0 0 0 144v81a32 32 0 0 0 14.25 26.6L64 282.12v98A100 100 0 0 0 163.88 480H576a64 64 0 0 0 64-64V288a96.11 96.11 0 0 0-96-96zM432 360a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M432 312a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]]\n};\nvar faWheat = {\n prefix: 'fad',\n iconName: 'wheat',\n icon: [512, 512, [], \"f72d\", [\"M369.14 143.43c-1.23-8.7-7.44-75.65 29.76-113C431.2.29 482.47-1.39 511.45.55c2.72 40.92-4.36 85.57-29.75 113-27.56 25.73-70.99 32.66-112.56 29.88z\", \"M9.38 457.38l72.27-72.29c-22.27-22.53-39.85-50.45-40.93-78.93 1.14-33.49 24.07-65.14 52-89.52 6.24 4.69 52.24 42.87 52.32 89.73a81.23 81.23 0 0 1-3 18.39l41.49-41.48c-22.28-22.53-39.84-50.45-40.93-78.93 1.15-33.49 24.08-65.14 52-89.52 6.24 4.69 52.24 42.87 52.32 89.73a81.79 81.79 0 0 1-3 18.39l41.49-41.48C263 158.94 245.44 131 244.34 102.54c1.17-33.49 24.1-65.14 52-89.52 4.8 3.6 32.94 27.1 45.79 59-9.62 38.55-5 73.59-4.64 75.88l3.64 25.7 25.87 1.76c6.3.42 12.66.64 19 .64a220.57 220.57 0 0 0 52.18-6.45c26.75 10.24 48.69 31.44 61.45 46-24 27.43-56.53 51-89.73 52.32-29.05-1-56.67-18.4-79.4-41.17l-41.42 41.41a77.26 77.26 0 0 1 19.21-2.71c39.24 1.36 72.52 32.53 89.52 52-24 27.43-56.52 51-89.74 52.32-29-1-56.66-18.4-79.39-41.17L187.28 370a77 77 0 0 1 19.2-2.71c39.24 1.36 72.51 32.53 89.51 52-24 27.43-56.52 51-89.72 52.32-29.05-1-56.68-18.4-79.41-41.17l-72.24 72.18a32 32 0 1 1-45.24-45.24z\"]]\n};\nvar faWheelchair = {\n prefix: 'fad',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", [\"M350.39 359.82a176 176 0 1 1-208.54-196.5c2.53 17.67 5.52 38.63 9.08 63.48A112 112 0 1 0 288 336a114.79 114.79 0 0 0-1.13-16h44.81z\", \"M503.12 435.78l-65.46 32.88a32 32 0 0 1-42.89-14.43l-.3-.62L331.68 320H192a32 32 0 0 1-31.68-27.48C126.43 55.31 128.38 70 128 64a64 64 0 1 1 73.37 63.31L206 160h130a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H215.18l4.57 32H352a32 32 0 0 1 29 18.39l57.48 122.41 36.18-18.35a16 16 0 0 1 21.44 7.22l14.23 28.66a16 16 0 0 1-7.21 21.45z\"]]\n};\nvar faWhistle = {\n prefix: 'fad',\n iconName: 'whistle',\n icon: [640, 512, [], \"f460\", [\"M634 326.36l-150-120a16.16 16.16 0 0 0-18.2-1.2l-27.4 16.21a8 8 0 0 1-9.1-.6l-25.2-20.21a8 8 0 0 1-2.6-8.9l10.2-29.51a16 16 0 0 0-5.1-17.7L320 80.8c-62.6-40.1-141.7-42.9-207-9.3C100.9 56.9 83.2 48 64 48a64.06 64.06 0 0 0-64 64 63.27 63.27 0 0 0 23 49c-40.1 78.24-27.5 176.56 38 242 89.8 89.82 251.11 81.42 326.51-32l150.41 86a15.93 15.93 0 0 0 20.7-4.3l78.2-104.33a16 16 0 0 0-2.82-22.01zM40.4 133.22A31.86 31.86 0 0 1 85.5 88.3c-17.8 13.01-29.9 24.32-45.1 44.92zM208 352a96 96 0 1 1 96-96 96 96 0 0 1-96 96z\", \"M208 160a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 144a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]]\n};\nvar faWifi = {\n prefix: 'fad',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", [\"\", \"M320 352c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm202.7-83.6c-115.3-101.9-290.2-101.8-405.3 0-6.5 5.8-7.1 15.8-1.4 22.3.3.3.5.6.8.8l34.4 34c6 5.9 15.6 6.3 22 .8 84-72.6 209.7-72.4 293.5 0 6.4 5.5 16 5.2 22-.8l34.4-34c6.2-6.1 6.4-16.1.3-22.4l-.7-.7zm112.7-113c-.2-.2-.4-.3-.5-.5C457.7-9 182.2-8.9 5.1 154.9c-6.4 6-6.8 16-.9 22.5.2.2.3.4.5.5l34.2 34c6.2 6.1 16 6.2 22.4.4 145.9-133.7 371.3-133.7 517.2 0 6.4 5.9 16.2 5.7 22.4-.4l34.2-34c6.4-6.2 6.5-16.2.3-22.5z\"]]\n};\nvar faWifi1 = {\n prefix: 'fad',\n iconName: 'wifi-1',\n icon: [640, 512, [], \"f6aa\", [\"M634.9 154.9C457.7-9 182.2-8.9 5.1 154.9c-6.4 6-6.8 16-.9 22.5.2.2.3.4.5.5l34.2 34c6.2 6.1 16 6.2 22.4.4 145.9-133.7 371.3-133.7 517.2 0 6.4 5.9 16.2 5.7 22.4-.4l34.2-34c6.3-6.2 6.3-16.2.2-22.5 0-.2-.2-.4-.4-.5zM522.7 268.4c-115.3-101.9-290.2-101.8-405.3 0-6.5 5.8-7.1 15.8-1.4 22.3.3.3.5.6.8.8l34.4 34c6 5.9 15.6 6.3 22.1.8 83.9-72.6 209.7-72.4 293.5 0 6.4 5.5 16 5.2 22-.8l34.4-34c6.2-6.1 6.4-16.1.3-22.4-.3-.2-.5-.4-.8-.7z\", \"M320 352c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64z\"]]\n};\nvar faWifi2 = {\n prefix: 'fad',\n iconName: 'wifi-2',\n icon: [640, 512, [], \"f6ab\", [\"M635.3 177.9l-34.2 34c-6.2 6.1-16 6.2-22.4.4-146-133.7-371.3-133.7-517.2 0-6.4 5.9-16.2 5.7-22.4-.4l-34.2-34-.5-.5c-6-6.4-5.6-16.5.9-22.5C182.2-8.9 457.7-9 634.9 154.9c.2.2.4.3.5.5 6.2 6.3 6.1 16.3-.1 22.5z\", \"M320 352c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm203.5-82.8l-.8-.8c-115.3-101.9-290.2-101.8-405.3 0-6.5 5.8-7.1 15.8-1.4 22.3.3.3.5.6.8.8l34.4 34c6 5.9 15.6 6.3 22 .8 84-72.6 209.7-72.4 293.5 0 6.4 5.5 16 5.2 22-.8l34.4-34c6.4-6 6.5-16 .4-22.3z\"]]\n};\nvar faWifiSlash = {\n prefix: 'fad',\n iconName: 'wifi-slash',\n icon: [640, 512, [], \"f6ac\", [\"M466.74 326.35a222.2 222.2 0 0 0-36.69-25.75L291.29 193.36c81.8-7.62 166.15 17.36 231.38 75.05a15.81 15.81 0 0 1 .56 23.15l-34.44 34a16.31 16.31 0 0 1-22.05.79zM207.6 128.68c126.08-38.46 268.25-10.63 371 83.53a16.25 16.25 0 0 0 22.4-.38l34.24-34a15.9 15.9 0 0 0-.36-23C496.4 26.77 297.77-1.12 133.06 71.06zM256 416a63.88 63.88 0 0 0 127 10l-88.7-68.56A64 64 0 0 0 256 416zM5.09 154.87a15.88 15.88 0 0 0-.35 23L39 211.8a16.25 16.25 0 0 0 22.4.38c7-6.4 14.31-12.22 21.65-18L18.07 144c-4.3 3.67-8.79 7-12.98 10.87zm113.22 113.52a15.9 15.9 0 0 0-.57 23.17l34.28 34a16.17 16.17 0 0 0 21.94.8c13.35-11.6 28-20.66 43.15-28.55L148.75 245a299.77 299.77 0 0 0-30.44 23.39z\", \"M636.64 480.55L617 505.82a16 16 0 0 1-22.46 2.81L6.18 53.9a16 16 0 0 1-2.81-22.45L23 6.18a16 16 0 0 1 22.47-2.81L633.83 458.1a16 16 0 0 1 2.81 22.45z\"]]\n};\nvar faWind = {\n prefix: 'fad',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", [\"M508.88 394.71c-9.6 41.1-43.5 74-84.69 82.7-58.9 12.5-111.6-21.7-129.39-72.3-3.7-10.3 4.4-21.1 15.29-21.1h33.8c5.8 0 11.6 2.6 14.5 7.6A47.93 47.93 0 1 0 400 320H283.5a126.41 126.41 0 0 0-39.8-64H400c70.48 0 126 65.5 108.88 138.71z\", \"M156.76 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h142.26c15.9 0 30.81 10.9 33.41 26.6a32.06 32.06 0 0 1-62 15.5c-2.11-6.3-8.61-10.1-15.21-10.1H81.63c-9.8 0-17.71 8.8-15.91 18.4a96 96 0 0 0 189.47-31c-6.1-48.4-49.72-83.4-98.43-83.4zm289.07-148.72c-7.6-36.21-36.91-65.52-73.11-73.12a96.22 96.22 0 0 0-114.9 75.52c-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1a32 32 0 0 1 62 15.5C381 149.09 366.22 160 350.22 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h336a96.2 96.2 0 0 0 93.83-116.72z\"]]\n};\nvar faWindTurbine = {\n prefix: 'fad',\n iconName: 'wind-turbine',\n icon: [514, 512, [], \"f89b\", [\"M350.1 480h-48.32l-5-76.66L221 314l-10.78 166H161.9a36.94 36.94 0 0 0-33 20.42A8 8 0 0 0 136 512h240a8 8 0 0 0 7.15-11.58A36.93 36.93 0 0 0 350.1 480z\", \"M398.69 425.79l-88.35-182.32a55.77 55.77 0 0 1-.73-42.79l73.28-179.07a15.8 15.8 0 0 0-27.5-15.07L241.27 163.21a55.74 55.74 0 0 1-36.47 22.4L13.32 215.94A15.81 15.81 0 0 0 0 231.89v.23a15.8 15.8 0 0 0 14.1 15.35L203.84 268a55.77 55.77 0 0 1 37.53 20.58l130.31 153.5a15.81 15.81 0 0 0 20.53 3.63l.2-.12a15.8 15.8 0 0 0 6.28-19.8zM256 248a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]]\n};\nvar faWindWarning = {\n prefix: 'fad',\n iconName: 'wind-warning',\n icon: [640, 512, [], \"f776\", [\"M384 192C384 86 298 0 192 0S0 86 0 192s86 192 192 192 192-86 192-192zM192 320a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm38.2-238.4l-12.8 128a16 16 0 0 1-15.9 14.4h-19a16 16 0 0 1-15.9-14.4l-12.8-128A16 16 0 0 1 169.7 64h44.6a16 16 0 0 1 15.9 17.6z\", \"M540.17 320H375.59a225.79 225.79 0 0 1-68.3 63.7 9 9 0 0 0 1.6.3h233.28c15.9 0 30.8 10.9 33.4 26.6a32 32 0 0 1-62 15.5c-2.1-6.3-8.6-10.1-15.2-10.1h-32.8a16.06 16.06 0 0 0-15.7 19.1 96 96 0 0 0 188.19-38.2c-8.89-45.6-51.49-76.9-97.89-76.9zm95.1-158.5a93.75 93.75 0 0 0-60.7-60.8c-59.09-18.4-114 19.1-124.69 72.4-2 9.8 5.8 18.9 15.7 18.9h32.8c6.7 0 13.1-3.8 15.2-10.1a32 32 0 0 1 62 15.5c-2.6 15.7-17.4 26.6-33.4 26.6h-128.8A223.2 223.2 0 0 1 394 288h150c62.77 0 111.77-60.7 91.27-126.5zM192 256a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm22.3-192h-44.6a16 16 0 0 0-15.9 17.6l12.8 128a16 16 0 0 0 15.9 14.4h19a16 16 0 0 0 15.9-14.4l12.8-128A16 16 0 0 0 214.3 64z\"]]\n};\nvar faWindow = {\n prefix: 'fad',\n iconName: 'window',\n icon: [512, 512, [], \"f40e\", [\"M288 160a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm-96 0a32 32 0 1 0-32-32 32 32 0 0 0 32 32zM0 224v208a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V224z\", \"M464 32H48A48 48 0 0 0 0 80v144h512V80a48 48 0 0 0-48-48zM96 160a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]]\n};\nvar faWindowAlt = {\n prefix: 'fad',\n iconName: 'window-alt',\n icon: [512, 512, [], \"f40f\", [\"M464 32H48A48 48 0 0 0 0 80v80h512V80a48 48 0 0 0-48-48zm-240 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm96 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\", \"M320 128a32 32 0 1 0-32-32 32 32 0 0 0 32 32zm96 0a32 32 0 1 0-32-32 32 32 0 0 0 32 32zM0 160v272a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V160z\"]]\n};\nvar faWindowClose = {\n prefix: 'fad',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", [\"M464 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-83.6 290.5a12.31 12.31 0 0 1 0 17.4l-40.5 40.5a12.31 12.31 0 0 1-17.4 0L256 313.3l-66.5 67.1a12.31 12.31 0 0 1-17.4 0l-40.5-40.5a12.31 12.31 0 0 1 0-17.4l67.1-66.5-67.1-66.5a12.31 12.31 0 0 1 0-17.4l40.5-40.5a12.31 12.31 0 0 1 17.4 0l66.5 67.1 66.5-67.1a12.31 12.31 0 0 1 17.4 0l40.5 40.5a12.31 12.31 0 0 1 0 17.4L313.3 256z\", \"M380.4 322.5a12.31 12.31 0 0 1 0 17.4l-40.5 40.5a12.31 12.31 0 0 1-17.4 0L256 313.3l-66.5 67.1a12.31 12.31 0 0 1-17.4 0l-40.5-40.5a12.31 12.31 0 0 1 0-17.4l67.1-66.5-67.1-66.5a12.31 12.31 0 0 1 0-17.4l40.5-40.5a12.31 12.31 0 0 1 17.4 0l66.5 67.1 66.5-67.1a12.31 12.31 0 0 1 17.4 0l40.5 40.5a12.31 12.31 0 0 1 0 17.4L313.3 256z\"]]\n};\nvar faWindowFrame = {\n prefix: 'fad',\n iconName: 'window-frame',\n icon: [512, 512, [], \"e04f\", [\"M272,64V224H416V64ZM96,224H240V64H96Zm0,224H240V288H96Zm176,0H416V288H272Z\", \"M496,448H480V32A32,32,0,0,0,448,0H64A32,32,0,0,0,32,32V448H16A16,16,0,0,0,0,464v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V464A16,16,0,0,0,496,448Zm-256,0H96V288H240Zm0-224H96V64H240ZM416,448H272V288H416Zm0-224H272V64H416Z\"]]\n};\nvar faWindowFrameOpen = {\n prefix: 'fad',\n iconName: 'window-frame-open',\n icon: [512, 512, [], \"e050\", [\"M96,224H240V64H96ZM272,64V224H416V64Z\", \"M480,32A32,32,0,0,0,448,0H64A32,32,0,0,0,32,32V288H480ZM240,224H96V64H240Zm176,0H272V64H416Zm80,224H480V320H416V448H96V320H32V448H16A16,16,0,0,0,0,464v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V464A16,16,0,0,0,496,448Z\"]]\n};\nvar faWindowMaximize = {\n prefix: 'fad',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", [\"M448 192H64v-84a12 12 0 0 1 12-12h360a12 12 0 0 1 12 12z\", \"M464 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 160H64v-84a12 12 0 0 1 12-12h360a12 12 0 0 1 12 12z\"]]\n};\nvar faWindowMinimize = {\n prefix: 'fad',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", [\"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\", \"\"]]\n};\nvar faWindowRestore = {\n prefix: 'fad',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", [\"M512 48v288a48 48 0 0 1-48 48h-48V176a80.11 80.11 0 0 0-80-80H128V48a48 48 0 0 1 48-48h288a48 48 0 0 1 48 48z\", \"M336 128H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V176a48 48 0 0 0-48-48zm-20 128H64v-52a12 12 0 0 1 12-12h228a12 12 0 0 1 12 12z\"]]\n};\nvar faWindsock = {\n prefix: 'fad',\n iconName: 'windsock',\n icon: [512, 512, [], \"f777\", [\"M80.05 5.46a55.93 55.93 0 1 0-48.18 101V496a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V106.42a55.87 55.87 0 0 0 .17-101zm112 384.54l64-9V147l-64-9zM352.1 161v206l64-9V170z\", \"M111.89 401.1l80-11.39V138.32l-80-11.4zM498.3 182L416 170.31v187.4l82.33-11.8a15.94 15.94 0 0 0 13.7-15.8v-132.2A16.13 16.13 0 0 0 498.3 182zM255.93 380.61l96-13.7V161.12l-96-13.7z\"]]\n};\nvar faWineBottle = {\n prefix: 'fad',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", [\"M179.21 423.29L88.7 332.78l122-122 90.51 90.51z\", \"M507.3 72.57L439.42 4.69a16 16 0 0 0-22.63 0l-22.63 22.63a16 16 0 0 0 0 22.63l-76.67 76.67a127.91 127.91 0 0 0-140.37 27.23L18.74 312.23a64 64 0 0 0 0 90.51l90.51 90.51a64 64 0 0 0 90.51 0l158.39-158.39a127.91 127.91 0 0 0 27.23-140.37l76.67-76.67a16 16 0 0 0 22.63 0l22.63-22.63a16 16 0 0 0-.01-22.62zM179.21 423.29L88.7 332.78l122-122 90.51 90.51z\"]]\n};\nvar faWineGlass = {\n prefix: 'fad',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", [\"M208.35,253.62a81,81,0,0,1-46.83,30.85,77.47,77.47,0,0,1-35,0A81,81,0,0,1,79.7,253.62a79.76,79.76,0,0,1-15.29-55.26L76.42,64H211.63l12,134.36A79.63,79.63,0,0,1,208.35,253.62Z\", \"M211.63,64l12,134.36a79.63,79.63,0,0,1-15.28,55.26,81,81,0,0,1-46.83,30.85,77.47,77.47,0,0,1-35,0A81,81,0,0,1,79.7,253.62a79.76,79.76,0,0,1-15.29-55.26L76.42,64H211.63M255.74,0H32.31a15.85,15.85,0,0,0-15.7,14.55L.61,192.66A144.67,144.67,0,0,0,112,346.82V464H72a40,40,0,0,0-40,40,8,8,0,0,0,8,8H248a8,8,0,0,0,8-8,40,40,0,0,0-40-40H176V346.81A144.67,144.67,0,0,0,287.39,192.65l-16-178.1A15.85,15.85,0,0,0,255.74,0Z\"]]\n};\nvar faWineGlassAlt = {\n prefix: 'fad',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", [\"M64.38,198.37,70.69,128H217.36l6.3,70.36a79.63,79.63,0,0,1-15.28,55.26,81,81,0,0,1-46.83,30.85,77.47,77.47,0,0,1-35,0,81,81,0,0,1-46.83-30.85,79.76,79.76,0,0,1-15.35-55.25Z\", \"M211.63,64l12,134.36a79.63,79.63,0,0,1-15.28,55.26,81,81,0,0,1-46.83,30.85,77.47,77.47,0,0,1-35,0A81,81,0,0,1,79.7,253.62a79.76,79.76,0,0,1-15.29-55.26L76.42,64H211.63M255.74,0H32.31a15.85,15.85,0,0,0-15.7,14.55L.61,192.66A144.67,144.67,0,0,0,112,346.82V464H72a40,40,0,0,0-40,40,8,8,0,0,0,8,8H248a8,8,0,0,0,8-8,40,40,0,0,0-40-40H176V346.81A144.67,144.67,0,0,0,287.39,192.65l-16-178.1A15.85,15.85,0,0,0,255.74,0Z\"]]\n};\nvar faWonSign = {\n prefix: 'fad',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", [\"M158.2 288h38.72l14.91-64h-66.67zm-19.57-96h80.65l14.91-64h-108.6zM16 192h58.83l-.1-.45L60.53 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm285.18 32h-26.36L260 287.7l-.07.3h56.14l-.07-.3zM82 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h80.43l-.07-.3zm478-96h-44.53l-14.2 63.55-.1.45H560a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-66l-14.33 63.7-.07.3H560a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-203.28-32h80.65l13-64H341.81zm22.36 96h38.72l13-64h-66.63z\", \"M534 44a11.89 11.89 0 0 1-.29 2.59l-18.12 80.83-14.32 64.1-7.21 32-14.42 64.1-41 182.88A12 12 0 0 1 427 480h-56.92a12.11 12.11 0 0 1-11.72-9.31L316 287.7 299.08 215c-1.9-8-3.5-16-4.81-23.44h-12.54c-1.31 7.44-2.91 15.44-4.81 23.44L260 287.7l-42.36 183a12.11 12.11 0 0 1-11.72 9.3H149a12 12 0 0 1-11.72-9.42l-41-182.88-14.34-64.1-7.21-32-14.32-64.1-18.12-80.88A11.89 11.89 0 0 1 42 44a12 12 0 0 1 12-12h42.16A12 12 0 0 1 108 41.62l61.19 300.16a438.29 438.29 0 0 1 6.81 47.28h1.1c.5 0 1.1-21.44 7.31-47.28l70-300.47A12 12 0 0 1 266.1 32h43.8a12 12 0 0 1 11.71 9.31l70 300.47c6.21 25.84 6.81 47.28 7.31 47.28H400a438.29 438.29 0 0 1 6.81-47.28L468 41.62A12 12 0 0 1 479.84 32H522a12 12 0 0 1 12 12z\"]]\n};\nvar faWreath = {\n prefix: 'fad',\n iconName: 'wreath',\n icon: [448, 512, [], \"f7e2\", [\"M320 400v96a16 16 0 0 1-21.1 15.2L224 480l-74.9 31.2A16.06 16.06 0 0 1 128 496v-96a16 16 0 0 1 21.1-15.2L224 416l74.9-31.2A16.06 16.06 0 0 1 320 400z\", \"M448 224a47.8 47.8 0 0 0-21.9-40.2 47.88 47.88 0 0 0-31.6-74.4c3.3-15.4-.2-31.9-12.1-43.8s-28.5-15.4-43.8-12.1a47.78 47.78 0 0 0-74.3-31.6 47.94 47.94 0 0 0-80.5 0 47.78 47.78 0 0 0-74.3 31.6c-15.4-3.3-31.9.2-43.8 12.1S50.3 94 53.6 109.4A47.78 47.78 0 0 0 22 183.7a47.88 47.88 0 0 0-.1 80.5 47.65 47.65 0 0 0-4.8 45.5c6.6 15.8 20.7 25.8 36.5 28.5-3.4 15.5 0 32.2 12.1 44.2 8.6 8.6 19.6 12.7 30.8 13.5A47.52 47.52 0 0 1 144 352a46.15 46.15 0 0 1 15.2 2.5l1.1.4 1.1.4 62.7 26.1 62.7-26.1 1.1-.4 1.1-.4a48.91 48.91 0 0 1 15.2-2.5 48 48 0 0 1 47.6 43.8 47.07 47.07 0 0 0 30.8-13.5c12-12 15.5-28.7 12.1-44.2 15.8-2.7 29.9-12.6 36.5-28.5a47.91 47.91 0 0 0-4.8-45.5A47.94 47.94 0 0 0 448 224zm-146.5 26.2c-2.8 8.9-1.1 20.2-6.3 27.6s-16.1 9.3-23.3 14.8-12.1 15.6-20.7 18.5c-8.2 2.8-18.1-2.3-27.2-2.3s-19 5.1-27.2 2.3c-8.5-2.9-13.6-13.1-20.7-18.5s-18.1-7.3-23.3-14.8-3.5-18.7-6.3-27.6c-2.7-8.6-10.5-16.7-10.5-26.2s7.8-17.6 10.5-26.2c2.8-8.9 1.1-20.2 6.3-27.6s16.1-9.3 23.3-14.8 12.1-15.6 20.7-18.5c8.2-2.8 18.1 2.3 27.2 2.3s19-5.1 27.2-2.3c8.5 2.9 13.6 13.1 20.7 18.5s18.1 7.3 23.3 14.8 3.5 18.7 6.3 27.6c2.7 8.6 10.5 16.7 10.5 26.2s-7.8 17.6-10.5 26.2z\"]]\n};\nvar faWrench = {\n prefix: 'fad',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", [\"M322 280.47l-.26.26a144.62 144.62 0 0 1-90.3-90.64L18.09 403.41a64 64 0 0 0 90.5 90.5L322 280.49zM63.35 472.65a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\", \"M469.69 246.2c-40 40-97.48 51-147.72 34.27l-.26.26a144.64 144.64 0 0 1-90.41-90.94l.13-.13c-16.54-50.17-5.6-107.71 34.13-147.4a144.38 144.38 0 0 1 136.91-38 12 12 0 0 1 5.67 20.19l-74.53 74.48 11.33 68L413 178.28l74.53-74.52a12 12 0 0 1 20.17 5.52 144 144 0 0 1-38.01 136.92z\"]]\n};\nvar faXRay = {\n prefix: 'fad',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", [\"M624 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-448H16A16 16 0 0 0 0 16v32a16 16 0 0 0 16 16h608a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16zM168 192a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h136v32H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h104v32h-64a48 48 0 1 0 48 48v-16h64v16a48 48 0 1 0 48-48h-64v-32h104a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H336v-32h136a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H336v-32h104a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H336v-24a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h104v32zm72 192a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm160-32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\", \"M240 352a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm160 32a16 16 0 1 0-16-16 16 16 0 0 0 16 16zM64 64v384h512V64zm416 152a8 8 0 0 1-8 8H336v32h104a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H336v32h64a48 48 0 1 1-48 48v-16h-64v16a48 48 0 1 1-48-48h64v-32H200a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h104v-32H168a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h136v-32H200a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h104v-24a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8v24h104a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H336v32h136a8 8 0 0 1 8 8z\"]]\n};\nvar faYenSign = {\n prefix: 'fad',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", [\"M32.18 332v32a12 12 0 0 0 12 12h108v-56h-108a12 12 0 0 0-12 12zm308-12h-108v56h108a12 12 0 0 0 12-12v-32a12 12 0 0 0-12-12zm-296-64h88.17l-29.83-56H44.19a12 12 0 0 0-12 12v32a12 12 0 0 0 12 12zm296-56h-58.37L252 256h88.19a12 12 0 0 0 12-12v-32a12 12 0 0 0-12-12z\", \"M362 49.6L232.18 293.2V468a12 12 0 0 1-12 12h-56a12 12 0 0 1-12-12V293.2L22.39 49.6A12 12 0 0 1 33 32h65.2a12 12 0 0 1 10.8 6.7l55.4 113.2c14.5 34.7 27.1 71.9 27.1 71.9h1.3s12.6-37.2 27.1-71.9l55.4-113.2a12 12 0 0 1 10.8-6.7h65.3A12 12 0 0 1 362 49.6z\"]]\n};\nvar faYinYang = {\n prefix: 'fad',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", [\"M248,8C111,8,0,119,0,256S111,504,248,504a124,124,0,0,1,0-248A124,124,0,0,0,248,8Zm0,152a32,32,0,1,1,32-32A32,32,0,0,1,248,160Zm0,192a32,32,0,1,0,32,32A32,32,0,0,0,248,352Z\", \"M248,160a32,32,0,1,0-32-32A32,32,0,0,0,248,160ZM248,8a124,124,0,0,1,0,248,124,124,0,0,0,0,248c137,0,248-111,248-248S385,8,248,8Zm0,408a32,32,0,1,1,32-32A32,32,0,0,1,248,416Z\"]]\n};\nvar _iconsCache = {\n faAbacus: faAbacus,\n faAcorn: faAcorn,\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirConditioner: faAirConditioner,\n faAirFreshener: faAirFreshener,\n faAlarmClock: faAlarmClock,\n faAlarmExclamation: faAlarmExclamation,\n faAlarmPlus: faAlarmPlus,\n faAlarmSnooze: faAlarmSnooze,\n faAlbum: faAlbum,\n faAlbumCollection: faAlbumCollection,\n faAlicorn: faAlicorn,\n faAlien: faAlien,\n faAlienMonster: faAlienMonster,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAlignSlash: faAlignSlash,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAmpGuitar: faAmpGuitar,\n faAnalytics: faAnalytics,\n faAnchor: faAnchor,\n faAngel: faAngel,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faAppleCrate: faAppleCrate,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowAltDown: faArrowAltDown,\n faArrowAltFromBottom: faArrowAltFromBottom,\n faArrowAltFromLeft: faArrowAltFromLeft,\n faArrowAltFromRight: faArrowAltFromRight,\n faArrowAltFromTop: faArrowAltFromTop,\n faArrowAltLeft: faArrowAltLeft,\n faArrowAltRight: faArrowAltRight,\n faArrowAltSquareDown: faArrowAltSquareDown,\n faArrowAltSquareLeft: faArrowAltSquareLeft,\n faArrowAltSquareRight: faArrowAltSquareRight,\n faArrowAltSquareUp: faArrowAltSquareUp,\n faArrowAltToBottom: faArrowAltToBottom,\n faArrowAltToLeft: faArrowAltToLeft,\n faArrowAltToRight: faArrowAltToRight,\n faArrowAltToTop: faArrowAltToTop,\n faArrowAltUp: faArrowAltUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowFromBottom: faArrowFromBottom,\n faArrowFromLeft: faArrowFromLeft,\n faArrowFromRight: faArrowFromRight,\n faArrowFromTop: faArrowFromTop,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowSquareDown: faArrowSquareDown,\n faArrowSquareLeft: faArrowSquareLeft,\n faArrowSquareRight: faArrowSquareRight,\n faArrowSquareUp: faArrowSquareUp,\n faArrowToBottom: faArrowToBottom,\n faArrowToLeft: faArrowToLeft,\n faArrowToRight: faArrowToRight,\n faArrowToTop: faArrowToTop,\n faArrowUp: faArrowUp,\n faArrows: faArrows,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faArrowsH: faArrowsH,\n faArrowsV: faArrowsV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAtomAlt: faAtomAlt,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faAxe: faAxe,\n faAxeBattle: faAxeBattle,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackpack: faBackpack,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBadge: faBadge,\n faBadgeCheck: faBadgeCheck,\n faBadgeDollar: faBadgeDollar,\n faBadgePercent: faBadgePercent,\n faBadgeSheriff: faBadgeSheriff,\n faBadgerHoney: faBadgerHoney,\n faBagsShopping: faBagsShopping,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBallPile: faBallPile,\n faBallot: faBallot,\n faBallotCheck: faBallotCheck,\n faBan: faBan,\n faBandAid: faBandAid,\n faBanjo: faBanjo,\n faBarcode: faBarcode,\n faBarcodeAlt: faBarcodeAlt,\n faBarcodeRead: faBarcodeRead,\n faBarcodeScan: faBarcodeScan,\n faBars: faBars,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBasketballHoop: faBasketballHoop,\n faBat: faBat,\n faBath: faBath,\n faBatteryBolt: faBatteryBolt,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatterySlash: faBatterySlash,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBedAlt: faBedAlt,\n faBedBunk: faBedBunk,\n faBedEmpty: faBedEmpty,\n faBeer: faBeer,\n faBell: faBell,\n faBellExclamation: faBellExclamation,\n faBellOn: faBellOn,\n faBellPlus: faBellPlus,\n faBellSchool: faBellSchool,\n faBellSchoolSlash: faBellSchoolSlash,\n faBellSlash: faBellSlash,\n faBells: faBells,\n faBetamax: faBetamax,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBikingMountain: faBikingMountain,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlanket: faBlanket,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlinds: faBlinds,\n faBlindsOpen: faBlindsOpen,\n faBlindsRaised: faBlindsRaised,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBoneBreak: faBoneBreak,\n faBong: faBong,\n faBook: faBook,\n faBookAlt: faBookAlt,\n faBookDead: faBookDead,\n faBookHeart: faBookHeart,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookSpells: faBookSpells,\n faBookUser: faBookUser,\n faBookmark: faBookmark,\n faBooks: faBooks,\n faBooksMedical: faBooksMedical,\n faBoombox: faBoombox,\n faBoot: faBoot,\n faBoothCurtain: faBoothCurtain,\n faBorderAll: faBorderAll,\n faBorderBottom: faBorderBottom,\n faBorderCenterH: faBorderCenterH,\n faBorderCenterV: faBorderCenterV,\n faBorderInner: faBorderInner,\n faBorderLeft: faBorderLeft,\n faBorderNone: faBorderNone,\n faBorderOuter: faBorderOuter,\n faBorderRight: faBorderRight,\n faBorderStyle: faBorderStyle,\n faBorderStyleAlt: faBorderStyleAlt,\n faBorderTop: faBorderTop,\n faBowArrow: faBowArrow,\n faBowlingBall: faBowlingBall,\n faBowlingPins: faBowlingPins,\n faBox: faBox,\n faBoxAlt: faBoxAlt,\n faBoxBallot: faBoxBallot,\n faBoxCheck: faBoxCheck,\n faBoxFragile: faBoxFragile,\n faBoxFull: faBoxFull,\n faBoxHeart: faBoxHeart,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxUp: faBoxUp,\n faBoxUsd: faBoxUsd,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faBoxingGlove: faBoxingGlove,\n faBrackets: faBrackets,\n faBracketsCurly: faBracketsCurly,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadLoaf: faBreadLoaf,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBringForward: faBringForward,\n faBringFront: faBringFront,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrowser: faBrowser,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBullseyeArrow: faBullseyeArrow,\n faBullseyePointer: faBullseyePointer,\n faBurgerSoda: faBurgerSoda,\n faBurn: faBurn,\n faBurrito: faBurrito,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusSchool: faBusSchool,\n faBusinessTime: faBusinessTime,\n faCabinetFiling: faCabinetFiling,\n faCactus: faCactus,\n faCalculator: faCalculator,\n faCalculatorAlt: faCalculatorAlt,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarEdit: faCalendarEdit,\n faCalendarExclamation: faCalendarExclamation,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarStar: faCalendarStar,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamcorder: faCamcorder,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faCameraHome: faCameraHome,\n faCameraMovie: faCameraMovie,\n faCameraPolaroid: faCameraPolaroid,\n faCameraRetro: faCameraRetro,\n faCampfire: faCampfire,\n faCampground: faCampground,\n faCandleHolder: faCandleHolder,\n faCandyCane: faCandyCane,\n faCandyCorn: faCandyCorn,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarBuilding: faCarBuilding,\n faCarBump: faCarBump,\n faCarBus: faCarBus,\n faCarCrash: faCarCrash,\n faCarGarage: faCarGarage,\n faCarMechanic: faCarMechanic,\n faCarSide: faCarSide,\n faCarTilt: faCarTilt,\n faCarWash: faCarWash,\n faCaravan: faCaravan,\n faCaravanAlt: faCaravanAlt,\n faCaretCircleDown: faCaretCircleDown,\n faCaretCircleLeft: faCaretCircleLeft,\n faCaretCircleRight: faCaretCircleRight,\n faCaretCircleUp: faCaretCircleUp,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCars: faCars,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCassetteTape: faCassetteTape,\n faCat: faCat,\n faCatSpace: faCatSpace,\n faCauldron: faCauldron,\n faCctv: faCctv,\n faCertificate: faCertificate,\n faChair: faChair,\n faChairOffice: faChairOffice,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartLineDown: faChartLineDown,\n faChartNetwork: faChartNetwork,\n faChartPie: faChartPie,\n faChartPieAlt: faChartPieAlt,\n faChartScatter: faChartScatter,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faCheeseSwiss: faCheeseSwiss,\n faCheeseburger: faCheeseburger,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBishopAlt: faChessBishopAlt,\n faChessBoard: faChessBoard,\n faChessClock: faChessClock,\n faChessClockAlt: faChessClockAlt,\n faChessKing: faChessKing,\n faChessKingAlt: faChessKingAlt,\n faChessKnight: faChessKnight,\n faChessKnightAlt: faChessKnightAlt,\n faChessPawn: faChessPawn,\n faChessPawnAlt: faChessPawnAlt,\n faChessQueen: faChessQueen,\n faChessQueenAlt: faChessQueenAlt,\n faChessRook: faChessRook,\n faChessRookAlt: faChessRookAlt,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDoubleDown: faChevronDoubleDown,\n faChevronDoubleLeft: faChevronDoubleLeft,\n faChevronDoubleRight: faChevronDoubleRight,\n faChevronDoubleUp: faChevronDoubleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronSquareDown: faChevronSquareDown,\n faChevronSquareLeft: faChevronSquareLeft,\n faChevronSquareRight: faChevronSquareRight,\n faChevronSquareUp: faChevronSquareUp,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChimney: faChimney,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClarinet: faClarinet,\n faClawMarks: faClawMarks,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClipboardListCheck: faClipboardListCheck,\n faClipboardPrescription: faClipboardPrescription,\n faClipboardUser: faClipboardUser,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudDrizzle: faCloudDrizzle,\n faCloudHail: faCloudHail,\n faCloudHailMixed: faCloudHailMixed,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudMusic: faCloudMusic,\n faCloudRain: faCloudRain,\n faCloudRainbow: faCloudRainbow,\n faCloudShowers: faCloudShowers,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSleet: faCloudSleet,\n faCloudSnow: faCloudSnow,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faClouds: faClouds,\n faCloudsMoon: faCloudsMoon,\n faCloudsSun: faCloudsSun,\n faClub: faClub,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCodeCommit: faCodeCommit,\n faCodeMerge: faCodeMerge,\n faCoffee: faCoffee,\n faCoffeePot: faCoffeePot,\n faCoffeeTogo: faCoffeeTogo,\n faCoffin: faCoffin,\n faCoffinCross: faCoffinCross,\n faCog: faCog,\n faCogs: faCogs,\n faCoin: faCoin,\n faCoins: faCoins,\n faColumns: faColumns,\n faComet: faComet,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentAltCheck: faCommentAltCheck,\n faCommentAltDollar: faCommentAltDollar,\n faCommentAltDots: faCommentAltDots,\n faCommentAltEdit: faCommentAltEdit,\n faCommentAltExclamation: faCommentAltExclamation,\n faCommentAltLines: faCommentAltLines,\n faCommentAltMedical: faCommentAltMedical,\n faCommentAltMinus: faCommentAltMinus,\n faCommentAltMusic: faCommentAltMusic,\n faCommentAltPlus: faCommentAltPlus,\n faCommentAltSlash: faCommentAltSlash,\n faCommentAltSmile: faCommentAltSmile,\n faCommentAltTimes: faCommentAltTimes,\n faCommentCheck: faCommentCheck,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentEdit: faCommentEdit,\n faCommentExclamation: faCommentExclamation,\n faCommentLines: faCommentLines,\n faCommentMedical: faCommentMedical,\n faCommentMinus: faCommentMinus,\n faCommentMusic: faCommentMusic,\n faCommentPlus: faCommentPlus,\n faCommentSlash: faCommentSlash,\n faCommentSmile: faCommentSmile,\n faCommentTimes: faCommentTimes,\n faComments: faComments,\n faCommentsAlt: faCommentsAlt,\n faCommentsAltDollar: faCommentsAltDollar,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompassSlash: faCompassSlash,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faCompressWide: faCompressWide,\n faComputerClassic: faComputerClassic,\n faComputerSpeaker: faComputerSpeaker,\n faConciergeBell: faConciergeBell,\n faConstruction: faConstruction,\n faContainerStorage: faContainerStorage,\n faConveyorBelt: faConveyorBelt,\n faConveyorBeltAlt: faConveyorBeltAlt,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCorn: faCorn,\n faCouch: faCouch,\n faCow: faCow,\n faCowbell: faCowbell,\n faCowbellMore: faCowbellMore,\n faCreditCard: faCreditCard,\n faCreditCardBlank: faCreditCardBlank,\n faCreditCardFront: faCreditCardFront,\n faCricket: faCricket,\n faCroissant: faCroissant,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCrutches: faCrutches,\n faCube: faCube,\n faCubes: faCubes,\n faCurling: faCurling,\n faCut: faCut,\n faDagger: faDagger,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDebug: faDebug,\n faDeer: faDeer,\n faDeerRudolph: faDeerRudolph,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faDewpoint: faDewpoint,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDiamond: faDiamond,\n faDice: faDice,\n faDiceD10: faDiceD10,\n faDiceD12: faDiceD12,\n faDiceD20: faDiceD20,\n faDiceD4: faDiceD4,\n faDiceD6: faDiceD6,\n faDiceD8: faDiceD8,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigging: faDigging,\n faDigitalTachograph: faDigitalTachograph,\n faDiploma: faDiploma,\n faDirections: faDirections,\n faDiscDrive: faDiscDrive,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDoNotEnter: faDoNotEnter,\n faDog: faDog,\n faDogLeashed: faDogLeashed,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyEmpty: faDollyEmpty,\n faDollyFlatbed: faDollyFlatbed,\n faDollyFlatbedAlt: faDollyFlatbedAlt,\n faDollyFlatbedEmpty: faDollyFlatbedEmpty,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawCircle: faDrawCircle,\n faDrawPolygon: faDrawPolygon,\n faDrawSquare: faDrawSquare,\n faDreidel: faDreidel,\n faDrone: faDrone,\n faDroneAlt: faDroneAlt,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstick: faDrumstick,\n faDrumstickBite: faDrumstickBite,\n faDryer: faDryer,\n faDryerAlt: faDryerAlt,\n faDuck: faDuck,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEar: faEar,\n faEarMuffs: faEarMuffs,\n faEclipse: faEclipse,\n faEclipseAlt: faEclipseAlt,\n faEdit: faEdit,\n faEgg: faEgg,\n faEggFried: faEggFried,\n faEject: faEject,\n faElephant: faElephant,\n faEllipsisH: faEllipsisH,\n faEllipsisHAlt: faEllipsisHAlt,\n faEllipsisV: faEllipsisV,\n faEllipsisVAlt: faEllipsisVAlt,\n faEmptySet: faEmptySet,\n faEngineWarning: faEngineWarning,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenDollar: faEnvelopeOpenDollar,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchange: faExchange,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationSquare: faExclamationSquare,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrows: faExpandArrows,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExpandWide: faExpandWide,\n faExternalLink: faExternalLink,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquare: faExternalLinkSquare,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeEvil: faEyeEvil,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFanTable: faFanTable,\n faFarm: faFarm,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFaucetDrip: faFaucetDrip,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFieldHockey: faFieldHockey,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCertificate: faFileCertificate,\n faFileChartLine: faFileChartLine,\n faFileChartPie: faFileChartPie,\n faFileCheck: faFileCheck,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileEdit: faFileEdit,\n faFileExcel: faFileExcel,\n faFileExclamation: faFileExclamation,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFileMinus: faFileMinus,\n faFileMusic: faFileMusic,\n faFilePdf: faFilePdf,\n faFilePlus: faFilePlus,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSearch: faFileSearch,\n faFileSignature: faFileSignature,\n faFileSpreadsheet: faFileSpreadsheet,\n faFileTimes: faFileTimes,\n faFileUpload: faFileUpload,\n faFileUser: faFileUser,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFilesMedical: faFilesMedical,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilmAlt: faFilmAlt,\n faFilmCanister: faFilmCanister,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFireSmoke: faFireSmoke,\n faFireplace: faFireplace,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFishCooked: faFishCooked,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagAlt: faFlagAlt,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlame: faFlame,\n faFlashlight: faFlashlight,\n faFlask: faFlask,\n faFlaskPoison: faFlaskPoison,\n faFlaskPotion: faFlaskPotion,\n faFlower: faFlower,\n faFlowerDaffodil: faFlowerDaffodil,\n faFlowerTulip: faFlowerTulip,\n faFlushed: faFlushed,\n faFlute: faFlute,\n faFluxCapacitor: faFluxCapacitor,\n faFog: faFog,\n faFolder: faFolder,\n faFolderDownload: faFolderDownload,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFolderTimes: faFolderTimes,\n faFolderTree: faFolderTree,\n faFolderUpload: faFolderUpload,\n faFolders: faFolders,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFontCase: faFontCase,\n faFootballBall: faFootballBall,\n faFootballHelmet: faFootballHelmet,\n faForklift: faForklift,\n faForward: faForward,\n faFragile: faFragile,\n faFrenchFries: faFrenchFries,\n faFrog: faFrog,\n faFrostyHead: faFrostyHead,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunction: faFunction,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGalaxy: faGalaxy,\n faGameBoard: faGameBoard,\n faGameBoardAlt: faGameBoardAlt,\n faGameConsoleHandheld: faGameConsoleHandheld,\n faGamepad: faGamepad,\n faGamepadAlt: faGamepadAlt,\n faGarage: faGarage,\n faGarageCar: faGarageCar,\n faGarageOpen: faGarageOpen,\n faGasPump: faGasPump,\n faGasPumpSlash: faGasPumpSlash,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGiftCard: faGiftCard,\n faGifts: faGifts,\n faGingerbreadMan: faGingerbreadMan,\n faGlass: faGlass,\n faGlassChampagne: faGlassChampagne,\n faGlassCheers: faGlassCheers,\n faGlassCitrus: faGlassCitrus,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlassWhiskeyRocks: faGlassWhiskeyRocks,\n faGlasses: faGlasses,\n faGlassesAlt: faGlassesAlt,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGlobeSnow: faGlobeSnow,\n faGlobeStand: faGlobeStand,\n faGolfBall: faGolfBall,\n faGolfClub: faGolfClub,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGramophone: faGramophone,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faGuitarElectric: faGuitarElectric,\n faGuitars: faGuitars,\n faHSquare: faHSquare,\n faH1: faH1,\n faH2: faH2,\n faH3: faH3,\n faH4: faH4,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHammerWar: faHammerWar,\n faHamsa: faHamsa,\n faHandHeart: faHandHeart,\n faHandHolding: faHandHolding,\n faHandHoldingBox: faHandHoldingBox,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMagic: faHandHoldingMagic,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingSeedling: faHandHoldingSeedling,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandReceiving: faHandReceiving,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHeart: faHandsHeart,\n faHandsHelping: faHandsHelping,\n faHandsUsd: faHandsUsd,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAlt: faHandshakeAlt,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatChef: faHatChef,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatSanta: faHatSanta,\n faHatWinter: faHatWinter,\n faHatWitch: faHatWitch,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSide: faHeadSide,\n faHeadSideBrain: faHeadSideBrain,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideHeadphones: faHeadSideHeadphones,\n faHeadSideMask: faHeadSideMask,\n faHeadSideMedical: faHeadSideMedical,\n faHeadSideVirus: faHeadSideVirus,\n faHeadVr: faHeadVr,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartCircle: faHeartCircle,\n faHeartRate: faHeartRate,\n faHeartSquare: faHeartSquare,\n faHeartbeat: faHeartbeat,\n faHeat: faHeat,\n faHelicopter: faHelicopter,\n faHelmetBattle: faHelmetBattle,\n faHexagon: faHexagon,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyMask: faHockeyMask,\n faHockeyPuck: faHockeyPuck,\n faHockeySticks: faHockeySticks,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeHeart: faHomeHeart,\n faHomeLg: faHomeLg,\n faHomeLgAlt: faHomeLgAlt,\n faHoodCloak: faHoodCloak,\n faHorizontalRule: faHorizontalRule,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHorseSaddle: faHorseSaddle,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHospitals: faHospitals,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouse: faHouse,\n faHouseDamage: faHouseDamage,\n faHouseDay: faHouseDay,\n faHouseFlood: faHouseFlood,\n faHouseLeave: faHouseLeave,\n faHouseNight: faHouseNight,\n faHouseReturn: faHouseReturn,\n faHouseSignal: faHouseSignal,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faHumidity: faHumidity,\n faHurricane: faHurricane,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIceSkate: faIceSkate,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIconsAlt: faIconsAlt,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImagePolaroid: faImagePolaroid,\n faImages: faImages,\n faInbox: faInbox,\n faInboxIn: faInboxIn,\n faInboxOut: faInboxOut,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faIndustryAlt: faIndustryAlt,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faInfoSquare: faInfoSquare,\n faInhaler: faInhaler,\n faIntegral: faIntegral,\n faIntersection: faIntersection,\n faInventory: faInventory,\n faIslandTropical: faIslandTropical,\n faItalic: faItalic,\n faJackOLantern: faJackOLantern,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faJoystick: faJoystick,\n faJug: faJug,\n faKaaba: faKaaba,\n faKazoo: faKazoo,\n faKerning: faKerning,\n faKey: faKey,\n faKeySkeleton: faKeySkeleton,\n faKeyboard: faKeyboard,\n faKeynote: faKeynote,\n faKhanda: faKhanda,\n faKidneys: faKidneys,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKite: faKite,\n faKiwiBird: faKiwiBird,\n faKnifeKitchen: faKnifeKitchen,\n faLambda: faLambda,\n faLamp: faLamp,\n faLampDesk: faLampDesk,\n faLampFloor: faLampFloor,\n faLandmark: faLandmark,\n faLandmarkAlt: faLandmarkAlt,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLasso: faLasso,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLayerMinus: faLayerMinus,\n faLayerPlus: faLayerPlus,\n faLeaf: faLeaf,\n faLeafHeart: faLeafHeart,\n faLeafMaple: faLeafMaple,\n faLeafOak: faLeafOak,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDown: faLevelDown,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUp: faLevelUp,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightCeiling: faLightCeiling,\n faLightSwitch: faLightSwitch,\n faLightSwitchOff: faLightSwitchOff,\n faLightSwitchOn: faLightSwitchOn,\n faLightbulb: faLightbulb,\n faLightbulbDollar: faLightbulbDollar,\n faLightbulbExclamation: faLightbulbExclamation,\n faLightbulbOn: faLightbulbOn,\n faLightbulbSlash: faLightbulbSlash,\n faLightsHoliday: faLightsHoliday,\n faLineColumns: faLineColumns,\n faLineHeight: faLineHeight,\n faLink: faLink,\n faLips: faLips,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListMusic: faListMusic,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocation: faLocation,\n faLocationArrow: faLocationArrow,\n faLocationCircle: faLocationCircle,\n faLocationSlash: faLocationSlash,\n faLock: faLock,\n faLockAlt: faLockAlt,\n faLockOpen: faLockOpen,\n faLockOpenAlt: faLockOpenAlt,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLongArrowDown: faLongArrowDown,\n faLongArrowLeft: faLongArrowLeft,\n faLongArrowRight: faLongArrowRight,\n faLongArrowUp: faLongArrowUp,\n faLoveseat: faLoveseat,\n faLowVision: faLowVision,\n faLuchador: faLuchador,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMace: faMace,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMailbox: faMailbox,\n faMale: faMale,\n faMandolin: faMandolin,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapMarkerAltSlash: faMapMarkerAltSlash,\n faMapMarkerCheck: faMapMarkerCheck,\n faMapMarkerEdit: faMapMarkerEdit,\n faMapMarkerExclamation: faMapMarkerExclamation,\n faMapMarkerMinus: faMapMarkerMinus,\n faMapMarkerPlus: faMapMarkerPlus,\n faMapMarkerQuestion: faMapMarkerQuestion,\n faMapMarkerSlash: faMapMarkerSlash,\n faMapMarkerSmile: faMapMarkerSmile,\n faMapMarkerTimes: faMapMarkerTimes,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMeat: faMeat,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMegaphone: faMegaphone,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicrophoneStand: faMicrophoneStand,\n faMicroscope: faMicroscope,\n faMicrowave: faMicrowave,\n faMindShare: faMindShare,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusHexagon: faMinusHexagon,\n faMinusOctagon: faMinusOctagon,\n faMinusSquare: faMinusSquare,\n faMistletoe: faMistletoe,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMobileAndroid: faMobileAndroid,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMoneyCheckEdit: faMoneyCheckEdit,\n faMoneyCheckEditAlt: faMoneyCheckEditAlt,\n faMonitorHeartRate: faMonitorHeartRate,\n faMonkey: faMonkey,\n faMonument: faMonument,\n faMoon: faMoon,\n faMoonCloud: faMoonCloud,\n faMoonStars: faMoonStars,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMountains: faMountains,\n faMouse: faMouse,\n faMouseAlt: faMouseAlt,\n faMousePointer: faMousePointer,\n faMp3Player: faMp3Player,\n faMug: faMug,\n faMugHot: faMugHot,\n faMugMarshmallows: faMugMarshmallows,\n faMugTea: faMugTea,\n faMusic: faMusic,\n faMusicAlt: faMusicAlt,\n faMusicAltSlash: faMusicAltSlash,\n faMusicSlash: faMusicSlash,\n faNarwhal: faNarwhal,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOctagon: faOctagon,\n faOilCan: faOilCan,\n faOilTemp: faOilTemp,\n faOm: faOm,\n faOmega: faOmega,\n faOrnament: faOrnament,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faOutlet: faOutlet,\n faOven: faOven,\n faOverline: faOverline,\n faPageBreak: faPageBreak,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintBrushAlt: faPaintBrushAlt,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPalletAlt: faPalletAlt,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParagraphRtl: faParagraphRtl,\n faParking: faParking,\n faParkingCircle: faParkingCircle,\n faParkingCircleSlash: faParkingCircleSlash,\n faParkingSlash: faParkingSlash,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPawAlt: faPawAlt,\n faPawClaws: faPawClaws,\n faPeace: faPeace,\n faPegasus: faPegasus,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faPencilPaintbrush: faPencilPaintbrush,\n faPencilRuler: faPencilRuler,\n faPennant: faPennant,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPersonCarry: faPersonCarry,\n faPersonDolly: faPersonDolly,\n faPersonDollyEmpty: faPersonDollyEmpty,\n faPersonSign: faPersonSign,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneLaptop: faPhoneLaptop,\n faPhoneOffice: faPhoneOffice,\n faPhonePlus: faPhonePlus,\n faPhoneRotary: faPhoneRotary,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPi: faPi,\n faPiano: faPiano,\n faPianoKeyboard: faPianoKeyboard,\n faPie: faPie,\n faPig: faPig,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizza: faPizza,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneAlt: faPlaneAlt,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlanetMoon: faPlanetMoon,\n faPlanetRinged: faPlanetRinged,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusHexagon: faPlusHexagon,\n faPlusOctagon: faPlusOctagon,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPodium: faPodium,\n faPodiumStar: faPodiumStar,\n faPoliceBox: faPoliceBox,\n faPoll: faPoll,\n faPollH: faPollH,\n faPollPeople: faPollPeople,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPopcorn: faPopcorn,\n faPortalEnter: faPortalEnter,\n faPortalExit: faPortalExit,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPresentation: faPresentation,\n faPrint: faPrint,\n faPrintSearch: faPrintSearch,\n faPrintSlash: faPrintSlash,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faProjector: faProjector,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPumpkin: faPumpkin,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuestionSquare: faQuestionSquare,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRabbit: faRabbit,\n faRabbitFast: faRabbitFast,\n faRacquet: faRacquet,\n faRadar: faRadar,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRadio: faRadio,\n faRadioAlt: faRadioAlt,\n faRainbow: faRainbow,\n faRaindrops: faRaindrops,\n faRam: faRam,\n faRampLoading: faRampLoading,\n faRandom: faRandom,\n faRaygun: faRaygun,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRectangleLandscape: faRectangleLandscape,\n faRectanglePortrait: faRectanglePortrait,\n faRectangleWide: faRectangleWide,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRefrigerator: faRefrigerator,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faRepeat: faRepeat,\n faRepeat1: faRepeat1,\n faRepeat1Alt: faRepeat1Alt,\n faRepeatAlt: faRepeatAlt,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRetweetAlt: faRetweetAlt,\n faRibbon: faRibbon,\n faRing: faRing,\n faRingsWedding: faRingsWedding,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRocketLaunch: faRocketLaunch,\n faRoute: faRoute,\n faRouteHighway: faRouteHighway,\n faRouteInterstate: faRouteInterstate,\n faRouter: faRouter,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerTriangle: faRulerTriangle,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faRv: faRv,\n faSack: faSack,\n faSackDollar: faSackDollar,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSalad: faSalad,\n faSandwich: faSandwich,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSausage: faSausage,\n faSave: faSave,\n faSaxHot: faSaxHot,\n faSaxophone: faSaxophone,\n faScalpel: faScalpel,\n faScalpelPath: faScalpelPath,\n faScanner: faScanner,\n faScannerImage: faScannerImage,\n faScannerKeyboard: faScannerKeyboard,\n faScannerTouchscreen: faScannerTouchscreen,\n faScarecrow: faScarecrow,\n faScarf: faScarf,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faScrollOld: faScrollOld,\n faScrubber: faScrubber,\n faScythe: faScythe,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faSendBack: faSendBack,\n faSendBackward: faSendBackward,\n faSensor: faSensor,\n faSensorAlert: faSensorAlert,\n faSensorFire: faSensorFire,\n faSensorOn: faSensorOn,\n faSensorSmoke: faSensorSmoke,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAll: faShareAll,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faSheep: faSheep,\n faShekelSign: faShekelSign,\n faShield: faShield,\n faShieldAlt: faShieldAlt,\n faShieldCheck: faShieldCheck,\n faShieldCross: faShieldCross,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShippingTimed: faShippingTimed,\n faShishKebab: faShishKebab,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShovel: faShovel,\n faShovelSnow: faShovelSnow,\n faShower: faShower,\n faShredder: faShredder,\n faShuttleVan: faShuttleVan,\n faShuttlecock: faShuttlecock,\n faSickle: faSickle,\n faSigma: faSigma,\n faSign: faSign,\n faSignIn: faSignIn,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOut: faSignOut,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignal1: faSignal1,\n faSignal2: faSignal2,\n faSignal3: faSignal3,\n faSignal4: faSignal4,\n faSignalAlt: faSignalAlt,\n faSignalAlt1: faSignalAlt1,\n faSignalAlt2: faSignalAlt2,\n faSignalAlt3: faSignalAlt3,\n faSignalAltSlash: faSignalAltSlash,\n faSignalSlash: faSignalSlash,\n faSignalStream: faSignalStream,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSiren: faSiren,\n faSirenOn: faSirenOn,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkeleton: faSkeleton,\n faSkiJump: faSkiJump,\n faSkiLift: faSkiLift,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCow: faSkullCow,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSledding: faSledding,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSlidersHSquare: faSlidersHSquare,\n faSlidersV: faSlidersV,\n faSlidersVSquare: faSlidersVSquare,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmilePlus: faSmilePlus,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoke: faSmoke,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnake: faSnake,\n faSnooze: faSnooze,\n faSnowBlowing: faSnowBlowing,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowflakes: faSnowflakes,\n faSnowman: faSnowman,\n faSnowmobile: faSnowmobile,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSolarSystem: faSolarSystem,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAlt: faSortAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortCircle: faSortCircle,\n faSortCircleDown: faSortCircleDown,\n faSortCircleUp: faSortCircleUp,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortShapesDown: faSortShapesDown,\n faSortShapesDownAlt: faSortShapesDownAlt,\n faSortShapesUp: faSortShapesUp,\n faSortShapesUpAlt: faSortShapesUpAlt,\n faSortSizeDown: faSortSizeDown,\n faSortSizeDownAlt: faSortSizeDownAlt,\n faSortSizeUp: faSortSizeUp,\n faSortSizeUpAlt: faSortSizeUpAlt,\n faSortUp: faSortUp,\n faSoup: faSoup,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpaceStationMoon: faSpaceStationMoon,\n faSpaceStationMoonAlt: faSpaceStationMoonAlt,\n faSpade: faSpade,\n faSparkles: faSparkles,\n faSpeaker: faSpeaker,\n faSpeakers: faSpeakers,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpiderBlackWidow: faSpiderBlackWidow,\n faSpiderWeb: faSpiderWeb,\n faSpinner: faSpinner,\n faSpinnerThird: faSpinnerThird,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSprinkler: faSprinkler,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRoot: faSquareRoot,\n faSquareRootAlt: faSquareRootAlt,\n faSquirrel: faSquirrel,\n faStaff: faStaff,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarChristmas: faStarChristmas,\n faStarExclamation: faStarExclamation,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStarShooting: faStarShooting,\n faStarfighter: faStarfighter,\n faStarfighterAlt: faStarfighterAlt,\n faStars: faStars,\n faStarship: faStarship,\n faStarshipFreighter: faStarshipFreighter,\n faSteak: faSteak,\n faSteeringWheel: faSteeringWheel,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStocking: faStocking,\n faStomach: faStomach,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStretcher: faStretcher,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSunCloud: faSunCloud,\n faSunDust: faSunDust,\n faSunHaze: faSunHaze,\n faSunglasses: faSunglasses,\n faSunrise: faSunrise,\n faSunset: faSunset,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSword: faSword,\n faSwordLaser: faSwordLaser,\n faSwordLaserAlt: faSwordLaserAlt,\n faSwords: faSwords,\n faSwordsLaser: faSwordsLaser,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTabletAndroid: faTabletAndroid,\n faTabletAndroidAlt: faTabletAndroidAlt,\n faTabletRugged: faTabletRugged,\n faTablets: faTablets,\n faTachometer: faTachometer,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltAverage: faTachometerAltAverage,\n faTachometerAltFast: faTachometerAltFast,\n faTachometerAltFastest: faTachometerAltFastest,\n faTachometerAltSlow: faTachometerAltSlow,\n faTachometerAltSlowest: faTachometerAltSlowest,\n faTachometerAverage: faTachometerAverage,\n faTachometerFast: faTachometerFast,\n faTachometerFastest: faTachometerFastest,\n faTachometerSlow: faTachometerSlow,\n faTachometerSlowest: faTachometerSlowest,\n faTaco: faTaco,\n faTag: faTag,\n faTags: faTags,\n faTally: faTally,\n faTanakh: faTanakh,\n faTape: faTape,\n faTasks: faTasks,\n faTasksAlt: faTasksAlt,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTelescope: faTelescope,\n faTemperatureDown: faTemperatureDown,\n faTemperatureFrigid: faTemperatureFrigid,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureHot: faTemperatureHot,\n faTemperatureLow: faTemperatureLow,\n faTemperatureUp: faTemperatureUp,\n faTenge: faTenge,\n faTennisBall: faTennisBall,\n faTerminal: faTerminal,\n faText: faText,\n faTextHeight: faTextHeight,\n faTextSize: faTextSize,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faTheta: faTheta,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faThunderstorm: faThunderstorm,\n faThunderstormMoon: faThunderstormMoon,\n faThunderstormSun: faThunderstormSun,\n faTicket: faTicket,\n faTicketAlt: faTicketAlt,\n faTilde: faTilde,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTimesHexagon: faTimesHexagon,\n faTimesOctagon: faTimesOctagon,\n faTimesSquare: faTimesSquare,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTire: faTire,\n faTireFlat: faTireFlat,\n faTirePressureWarning: faTirePressureWarning,\n faTireRugged: faTireRugged,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperAlt: faToiletPaperAlt,\n faToiletPaperSlash: faToiletPaperSlash,\n faTombstone: faTombstone,\n faTombstoneAlt: faTombstoneAlt,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faToothbrush: faToothbrush,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTornado: faTornado,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficCone: faTrafficCone,\n faTrafficLight: faTrafficLight,\n faTrafficLightGo: faTrafficLightGo,\n faTrafficLightSlow: faTrafficLightSlow,\n faTrafficLightStop: faTrafficLightStop,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTransporter: faTransporter,\n faTransporter1: faTransporter1,\n faTransporter2: faTransporter2,\n faTransporter3: faTransporter3,\n faTransporterEmpty: faTransporterEmpty,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTrashUndo: faTrashUndo,\n faTrashUndoAlt: faTrashUndoAlt,\n faTreasureChest: faTreasureChest,\n faTree: faTree,\n faTreeAlt: faTreeAlt,\n faTreeChristmas: faTreeChristmas,\n faTreeDecorated: faTreeDecorated,\n faTreeLarge: faTreeLarge,\n faTreePalm: faTreePalm,\n faTrees: faTrees,\n faTriangle: faTriangle,\n faTriangleMusic: faTriangleMusic,\n faTrophy: faTrophy,\n faTrophyAlt: faTrophyAlt,\n faTruck: faTruck,\n faTruckContainer: faTruckContainer,\n faTruckCouch: faTruckCouch,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTruckPlow: faTruckPlow,\n faTruckRamp: faTruckRamp,\n faTrumpet: faTrumpet,\n faTshirt: faTshirt,\n faTty: faTty,\n faTurkey: faTurkey,\n faTurntable: faTurntable,\n faTurtle: faTurtle,\n faTv: faTv,\n faTvAlt: faTvAlt,\n faTvMusic: faTvMusic,\n faTvRetro: faTvRetro,\n faTypewriter: faTypewriter,\n faUfo: faUfo,\n faUfoBeam: faUfoBeam,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUnicorn: faUnicorn,\n faUnion: faUnion,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUsbDrive: faUsbDrive,\n faUsdCircle: faUsdCircle,\n faUsdSquare: faUsdSquare,\n faUser: faUser,\n faUserAlien: faUserAlien,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserChart: faUserChart,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserCowboy: faUserCowboy,\n faUserCrown: faUserCrown,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserHardHat: faUserHardHat,\n faUserHeadset: faUserHeadset,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMdChat: faUserMdChat,\n faUserMinus: faUserMinus,\n faUserMusic: faUserMusic,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserRobot: faUserRobot,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUserUnlock: faUserUnlock,\n faUserVisor: faUserVisor,\n faUsers: faUsers,\n faUsersClass: faUsersClass,\n faUsersCog: faUsersCog,\n faUsersCrown: faUsersCrown,\n faUsersMedical: faUsersMedical,\n faUsersSlash: faUsersSlash,\n faUtensilFork: faUtensilFork,\n faUtensilKnife: faUtensilKnife,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faUtensilsAlt: faUtensilsAlt,\n faVacuum: faVacuum,\n faVacuumRobot: faVacuumRobot,\n faValueAbsolute: faValueAbsolute,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVhs: faVhs,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoPlus: faVideoPlus,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faViolin: faViolin,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolcano: faVolcano,\n faVolleyballBall: faVolleyballBall,\n faVolume: faVolume,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeSlash: faVolumeSlash,\n faVolumeUp: faVolumeUp,\n faVoteNay: faVoteNay,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWagonCovered: faWagonCovered,\n faWalker: faWalker,\n faWalkieTalkie: faWalkieTalkie,\n faWalking: faWalking,\n faWallet: faWallet,\n faWand: faWand,\n faWandMagic: faWandMagic,\n faWarehouse: faWarehouse,\n faWarehouseAlt: faWarehouseAlt,\n faWasher: faWasher,\n faWatch: faWatch,\n faWatchCalculator: faWatchCalculator,\n faWatchFitness: faWatchFitness,\n faWater: faWater,\n faWaterLower: faWaterLower,\n faWaterRise: faWaterRise,\n faWaveSine: faWaveSine,\n faWaveSquare: faWaveSquare,\n faWaveTriangle: faWaveTriangle,\n faWaveform: faWaveform,\n faWaveformPath: faWaveformPath,\n faWebcam: faWebcam,\n faWebcamSlash: faWebcamSlash,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWhale: faWhale,\n faWheat: faWheat,\n faWheelchair: faWheelchair,\n faWhistle: faWhistle,\n faWifi: faWifi,\n faWifi1: faWifi1,\n faWifi2: faWifi2,\n faWifiSlash: faWifiSlash,\n faWind: faWind,\n faWindTurbine: faWindTurbine,\n faWindWarning: faWindWarning,\n faWindow: faWindow,\n faWindowAlt: faWindowAlt,\n faWindowClose: faWindowClose,\n faWindowFrame: faWindowFrame,\n faWindowFrameOpen: faWindowFrameOpen,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWindsock: faWindsock,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWreath: faWreath,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fad, prefix, faAbacus, faAcorn, faAd, faAddressBook, faAddressCard, faAdjust, faAirConditioner, faAirFreshener, faAlarmClock, faAlarmExclamation, faAlarmPlus, faAlarmSnooze, faAlbum, faAlbumCollection, faAlicorn, faAlien, faAlienMonster, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAlignSlash, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAmpGuitar, faAnalytics, faAnchor, faAngel, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faAppleCrate, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowAltDown, faArrowAltFromBottom, faArrowAltFromLeft, faArrowAltFromRight, faArrowAltFromTop, faArrowAltLeft, faArrowAltRight, faArrowAltSquareDown, faArrowAltSquareLeft, faArrowAltSquareRight, faArrowAltSquareUp, faArrowAltToBottom, faArrowAltToLeft, faArrowAltToRight, faArrowAltToTop, faArrowAltUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowFromBottom, faArrowFromLeft, faArrowFromRight, faArrowFromTop, faArrowLeft, faArrowRight, faArrowSquareDown, faArrowSquareLeft, faArrowSquareRight, faArrowSquareUp, faArrowToBottom, faArrowToLeft, faArrowToRight, faArrowToTop, faArrowUp, faArrows, faArrowsAlt, faArrowsAltH, faArrowsAltV, faArrowsH, faArrowsV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAtomAlt, faAudioDescription, faAward, faAxe, faAxeBattle, faBaby, faBabyCarriage, faBackpack, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBadge, faBadgeCheck, faBadgeDollar, faBadgePercent, faBadgeSheriff, faBadgerHoney, faBagsShopping, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBallPile, faBallot, faBallotCheck, faBan, faBandAid, faBanjo, faBarcode, faBarcodeAlt, faBarcodeRead, faBarcodeScan, faBars, faBaseball, faBaseballBall, faBasketballBall, faBasketballHoop, faBat, faBath, faBatteryBolt, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatterySlash, faBatteryThreeQuarters, faBed, faBedAlt, faBedBunk, faBedEmpty, faBeer, faBell, faBellExclamation, faBellOn, faBellPlus, faBellSchool, faBellSchoolSlash, faBellSlash, faBells, faBetamax, faBezierCurve, faBible, faBicycle, faBiking, faBikingMountain, faBinoculars, faBiohazard, faBirthdayCake, faBlanket, faBlender, faBlenderPhone, faBlind, faBlinds, faBlindsOpen, faBlindsRaised, faBlog, faBold, faBolt, faBomb, faBone, faBoneBreak, faBong, faBook, faBookAlt, faBookDead, faBookHeart, faBookMedical, faBookOpen, faBookReader, faBookSpells, faBookUser, faBookmark, faBooks, faBooksMedical, faBoombox, faBoot, faBoothCurtain, faBorderAll, faBorderBottom, faBorderCenterH, faBorderCenterV, faBorderInner, faBorderLeft, faBorderNone, faBorderOuter, faBorderRight, faBorderStyle, faBorderStyleAlt, faBorderTop, faBowArrow, faBowlingBall, faBowlingPins, faBox, faBoxAlt, faBoxBallot, faBoxCheck, faBoxFragile, faBoxFull, faBoxHeart, faBoxOpen, faBoxTissue, faBoxUp, faBoxUsd, faBoxes, faBoxesAlt, faBoxingGlove, faBrackets, faBracketsCurly, faBraille, faBrain, faBreadLoaf, faBreadSlice, faBriefcase, faBriefcaseMedical, faBringForward, faBringFront, faBroadcastTower, faBroom, faBrowser, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBullseyeArrow, faBullseyePointer, faBurgerSoda, faBurn, faBurrito, faBus, faBusAlt, faBusSchool, faBusinessTime, faCabinetFiling, faCactus, faCalculator, faCalculatorAlt, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarEdit, faCalendarExclamation, faCalendarMinus, faCalendarPlus, faCalendarStar, faCalendarTimes, faCalendarWeek, faCamcorder, faCamera, faCameraAlt, faCameraHome, faCameraMovie, faCameraPolaroid, faCameraRetro, faCampfire, faCampground, faCandleHolder, faCandyCane, faCandyCorn, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarBuilding, faCarBump, faCarBus, faCarCrash, faCarGarage, faCarMechanic, faCarSide, faCarTilt, faCarWash, faCaravan, faCaravanAlt, faCaretCircleDown, faCaretCircleLeft, faCaretCircleRight, faCaretCircleUp, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCars, faCartArrowDown, faCartPlus, faCashRegister, faCassetteTape, faCat, faCatSpace, faCauldron, faCctv, faCertificate, faChair, faChairOffice, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartLineDown, faChartNetwork, faChartPie, faChartPieAlt, faChartScatter, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faCheeseSwiss, faCheeseburger, faChess, faChessBishop, faChessBishopAlt, faChessBoard, faChessClock, faChessClockAlt, faChessKing, faChessKingAlt, faChessKnight, faChessKnightAlt, faChessPawn, faChessPawnAlt, faChessQueen, faChessQueenAlt, faChessRook, faChessRookAlt, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDoubleDown, faChevronDoubleLeft, faChevronDoubleRight, faChevronDoubleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronSquareDown, faChevronSquareLeft, faChevronSquareRight, faChevronSquareUp, faChevronUp, faChild, faChimney, faChurch, faCircle, faCircleNotch, faCity, faClarinet, faClawMarks, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClipboardListCheck, faClipboardPrescription, faClipboardUser, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownload, faCloudDownloadAlt, faCloudDrizzle, faCloudHail, faCloudHailMixed, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudMusic, faCloudRain, faCloudRainbow, faCloudShowers, faCloudShowersHeavy, faCloudSleet, faCloudSnow, faCloudSun, faCloudSunRain, faCloudUpload, faCloudUploadAlt, faClouds, faCloudsMoon, faCloudsSun, faClub, faCocktail, faCode, faCodeBranch, faCodeCommit, faCodeMerge, faCoffee, faCoffeePot, faCoffeeTogo, faCoffin, faCoffinCross, faCog, faCogs, faCoin, faCoins, faColumns, faComet, faComment, faCommentAlt, faCommentAltCheck, faCommentAltDollar, faCommentAltDots, faCommentAltEdit, faCommentAltExclamation, faCommentAltLines, faCommentAltMedical, faCommentAltMinus, faCommentAltMusic, faCommentAltPlus, faCommentAltSlash, faCommentAltSmile, faCommentAltTimes, faCommentCheck, faCommentDollar, faCommentDots, faCommentEdit, faCommentExclamation, faCommentLines, faCommentMedical, faCommentMinus, faCommentMusic, faCommentPlus, faCommentSlash, faCommentSmile, faCommentTimes, faComments, faCommentsAlt, faCommentsAltDollar, faCommentsDollar, faCompactDisc, faCompass, faCompassSlash, faCompress, faCompressAlt, faCompressArrowsAlt, faCompressWide, faComputerClassic, faComputerSpeaker, faConciergeBell, faConstruction, faContainerStorage, faConveyorBelt, faConveyorBeltAlt, faCookie, faCookieBite, faCopy, faCopyright, faCorn, faCouch, faCow, faCowbell, faCowbellMore, faCreditCard, faCreditCardBlank, faCreditCardFront, faCricket, faCroissant, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCrutches, faCube, faCubes, faCurling, faCut, faDagger, faDatabase, faDeaf, faDebug, faDeer, faDeerRudolph, faDemocrat, faDesktop, faDesktopAlt, faDewpoint, faDharmachakra, faDiagnoses, faDiamond, faDice, faDiceD10, faDiceD12, faDiceD20, faDiceD4, faDiceD6, faDiceD8, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigging, faDigitalTachograph, faDiploma, faDirections, faDiscDrive, faDisease, faDivide, faDizzy, faDna, faDoNotEnter, faDog, faDogLeashed, faDollarSign, faDolly, faDollyEmpty, faDollyFlatbed, faDollyFlatbedAlt, faDollyFlatbedEmpty, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawCircle, faDrawPolygon, faDrawSquare, faDreidel, faDrone, faDroneAlt, faDrum, faDrumSteelpan, faDrumstick, faDrumstickBite, faDryer, faDryerAlt, faDuck, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEar, faEarMuffs, faEclipse, faEclipseAlt, faEdit, faEgg, faEggFried, faEject, faElephant, faEllipsisH, faEllipsisHAlt, faEllipsisV, faEllipsisVAlt, faEmptySet, faEngineWarning, faEnvelope, faEnvelopeOpen, faEnvelopeOpenDollar, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchange, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationSquare, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrows, faExpandArrowsAlt, faExpandWide, faExternalLink, faExternalLinkAlt, faExternalLinkSquare, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeEvil, faEyeSlash, faFan, faFanTable, faFarm, faFastBackward, faFastForward, faFaucet, faFaucetDrip, faFax, faFeather, faFeatherAlt, faFemale, faFieldHockey, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCertificate, faFileChartLine, faFileChartPie, faFileCheck, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileEdit, faFileExcel, faFileExclamation, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFileMinus, faFileMusic, faFilePdf, faFilePlus, faFilePowerpoint, faFilePrescription, faFileSearch, faFileSignature, faFileSpreadsheet, faFileTimes, faFileUpload, faFileUser, faFileVideo, faFileWord, faFilesMedical, faFill, faFillDrip, faFilm, faFilmAlt, faFilmCanister, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFireSmoke, faFireplace, faFirstAid, faFish, faFishCooked, faFistRaised, faFlag, faFlagAlt, faFlagCheckered, faFlagUsa, faFlame, faFlashlight, faFlask, faFlaskPoison, faFlaskPotion, faFlower, faFlowerDaffodil, faFlowerTulip, faFlushed, faFlute, faFluxCapacitor, faFog, faFolder, faFolderDownload, faFolderMinus, faFolderOpen, faFolderPlus, faFolderTimes, faFolderTree, faFolderUpload, faFolders, faFont, faFontAwesomeLogoFull, faFontCase, faFootballBall, faFootballHelmet, faForklift, faForward, faFragile, faFrenchFries, faFrog, faFrostyHead, faFrown, faFrownOpen, faFunction, faFunnelDollar, faFutbol, faGalaxy, faGameBoard, faGameBoardAlt, faGameConsoleHandheld, faGamepad, faGamepadAlt, faGarage, faGarageCar, faGarageOpen, faGasPump, faGasPumpSlash, faGavel, faGem, faGenderless, faGhost, faGift, faGiftCard, faGifts, faGingerbreadMan, faGlass, faGlassChampagne, faGlassCheers, faGlassCitrus, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlassWhiskeyRocks, faGlasses, faGlassesAlt, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGlobeSnow, faGlobeStand, faGolfBall, faGolfClub, faGopuram, faGraduationCap, faGramophone, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faGuitarElectric, faGuitars, faHSquare, faH1, faH2, faH3, faH4, faHamburger, faHammer, faHammerWar, faHamsa, faHandHeart, faHandHolding, faHandHoldingBox, faHandHoldingHeart, faHandHoldingMagic, faHandHoldingMedical, faHandHoldingSeedling, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandReceiving, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHeart, faHandsHelping, faHandsUsd, faHandsWash, faHandshake, faHandshakeAlt, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatChef, faHatCowboy, faHatCowboySide, faHatSanta, faHatWinter, faHatWitch, faHatWizard, faHdd, faHeadSide, faHeadSideBrain, faHeadSideCough, faHeadSideCoughSlash, faHeadSideHeadphones, faHeadSideMask, faHeadSideMedical, faHeadSideVirus, faHeadVr, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartCircle, faHeartRate, faHeartSquare, faHeartbeat, faHeat, faHelicopter, faHelmetBattle, faHexagon, faHighlighter, faHiking, faHippo, faHistory, faHockeyMask, faHockeyPuck, faHockeySticks, faHollyBerry, faHome, faHomeAlt, faHomeHeart, faHomeLg, faHomeLgAlt, faHoodCloak, faHorizontalRule, faHorse, faHorseHead, faHorseSaddle, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHospitals, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouse, faHouseDamage, faHouseDay, faHouseFlood, faHouseLeave, faHouseNight, faHouseReturn, faHouseSignal, faHouseUser, faHryvnia, faHumidity, faHurricane, faICursor, faIceCream, faIceSkate, faIcicles, faIcons, faIconsAlt, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImagePolaroid, faImages, faInbox, faInboxIn, faInboxOut, faIndent, faIndustry, faIndustryAlt, faInfinity, faInfo, faInfoCircle, faInfoSquare, faInhaler, faIntegral, faIntersection, faInventory, faIslandTropical, faItalic, faJackOLantern, faJedi, faJoint, faJournalWhills, faJoystick, faJug, faKaaba, faKazoo, faKerning, faKey, faKeySkeleton, faKeyboard, faKeynote, faKhanda, faKidneys, faKiss, faKissBeam, faKissWinkHeart, faKite, faKiwiBird, faKnifeKitchen, faLambda, faLamp, faLampDesk, faLampFloor, faLandmark, faLandmarkAlt, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLasso, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLayerMinus, faLayerPlus, faLeaf, faLeafHeart, faLeafMaple, faLeafOak, faLemon, faLessThan, faLessThanEqual, faLevelDown, faLevelDownAlt, faLevelUp, faLevelUpAlt, faLifeRing, faLightCeiling, faLightSwitch, faLightSwitchOff, faLightSwitchOn, faLightbulb, faLightbulbDollar, faLightbulbExclamation, faLightbulbOn, faLightbulbSlash, faLightsHoliday, faLineColumns, faLineHeight, faLink, faLips, faLiraSign, faList, faListAlt, faListMusic, faListOl, faListUl, faLocation, faLocationArrow, faLocationCircle, faLocationSlash, faLock, faLockAlt, faLockOpen, faLockOpenAlt, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLongArrowDown, faLongArrowLeft, faLongArrowRight, faLongArrowUp, faLoveseat, faLowVision, faLuchador, faLuggageCart, faLungs, faLungsVirus, faMace, faMagic, faMagnet, faMailBulk, faMailbox, faMale, faMandolin, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapMarkerAltSlash, faMapMarkerCheck, faMapMarkerEdit, faMapMarkerExclamation, faMapMarkerMinus, faMapMarkerPlus, faMapMarkerQuestion, faMapMarkerSlash, faMapMarkerSmile, faMapMarkerTimes, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMeat, faMedal, faMedkit, faMegaphone, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicrophoneStand, faMicroscope, faMicrowave, faMindShare, faMinus, faMinusCircle, faMinusHexagon, faMinusOctagon, faMinusSquare, faMistletoe, faMitten, faMobile, faMobileAlt, faMobileAndroid, faMobileAndroidAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMoneyCheckEdit, faMoneyCheckEditAlt, faMonitorHeartRate, faMonkey, faMonument, faMoon, faMoonCloud, faMoonStars, faMortarPestle, faMosque, faMotorcycle, faMountain, faMountains, faMouse, faMouseAlt, faMousePointer, faMp3Player, faMug, faMugHot, faMugMarshmallows, faMugTea, faMusic, faMusicAlt, faMusicAltSlash, faMusicSlash, faNarwhal, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOctagon, faOilCan, faOilTemp, faOm, faOmega, faOrnament, faOtter, faOutdent, faOutlet, faOven, faOverline, faPageBreak, faPager, faPaintBrush, faPaintBrushAlt, faPaintRoller, faPalette, faPallet, faPalletAlt, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParagraphRtl, faParking, faParkingCircle, faParkingCircleSlash, faParkingSlash, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPawAlt, faPawClaws, faPeace, faPegasus, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencil, faPencilAlt, faPencilPaintbrush, faPencilRuler, faPennant, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPersonCarry, faPersonDolly, faPersonDollyEmpty, faPersonSign, faPhone, faPhoneAlt, faPhoneLaptop, faPhoneOffice, faPhonePlus, faPhoneRotary, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPi, faPiano, faPianoKeyboard, faPie, faPig, faPiggyBank, faPills, faPizza, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneAlt, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlanetMoon, faPlanetRinged, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusHexagon, faPlusOctagon, faPlusSquare, faPodcast, faPodium, faPodiumStar, faPoliceBox, faPoll, faPollH, faPollPeople, faPoo, faPooStorm, faPoop, faPopcorn, faPortalEnter, faPortalExit, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPresentation, faPrint, faPrintSearch, faPrintSlash, faProcedures, faProjectDiagram, faProjector, faPumpMedical, faPumpSoap, faPumpkin, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuestionSquare, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRabbit, faRabbitFast, faRacquet, faRadar, faRadiation, faRadiationAlt, faRadio, faRadioAlt, faRainbow, faRaindrops, faRam, faRampLoading, faRandom, faRaygun, faReceipt, faRecordVinyl, faRectangleLandscape, faRectanglePortrait, faRectangleWide, faRecycle, faRedo, faRedoAlt, faRefrigerator, faRegistered, faRemoveFormat, faRepeat, faRepeat1, faRepeat1Alt, faRepeatAlt, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRetweetAlt, faRibbon, faRing, faRingsWedding, faRoad, faRobot, faRocket, faRocketLaunch, faRoute, faRouteHighway, faRouteInterstate, faRouter, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerTriangle, faRulerVertical, faRunning, faRupeeSign, faRv, faSack, faSackDollar, faSadCry, faSadTear, faSalad, faSandwich, faSatellite, faSatelliteDish, faSausage, faSave, faSaxHot, faSaxophone, faScalpel, faScalpelPath, faScanner, faScannerImage, faScannerKeyboard, faScannerTouchscreen, faScarecrow, faScarf, faSchool, faScrewdriver, faScroll, faScrollOld, faScrubber, faScythe, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faSendBack, faSendBackward, faSensor, faSensorAlert, faSensorFire, faSensorOn, faSensorSmoke, faServer, faShapes, faShare, faShareAll, faShareAlt, faShareAltSquare, faShareSquare, faSheep, faShekelSign, faShield, faShieldAlt, faShieldCheck, faShieldCross, faShieldVirus, faShip, faShippingFast, faShippingTimed, faShishKebab, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShovel, faShovelSnow, faShower, faShredder, faShuttleVan, faShuttlecock, faSickle, faSigma, faSign, faSignIn, faSignInAlt, faSignLanguage, faSignOut, faSignOutAlt, faSignal, faSignal1, faSignal2, faSignal3, faSignal4, faSignalAlt, faSignalAlt1, faSignalAlt2, faSignalAlt3, faSignalAltSlash, faSignalSlash, faSignalStream, faSignature, faSimCard, faSink, faSiren, faSirenOn, faSitemap, faSkating, faSkeleton, faSkiJump, faSkiLift, faSkiing, faSkiingNordic, faSkull, faSkullCow, faSkullCrossbones, faSlash, faSledding, faSleigh, faSlidersH, faSlidersHSquare, faSlidersV, faSlidersVSquare, faSmile, faSmileBeam, faSmilePlus, faSmileWink, faSmog, faSmoke, faSmoking, faSmokingBan, faSms, faSnake, faSnooze, faSnowBlowing, faSnowboarding, faSnowflake, faSnowflakes, faSnowman, faSnowmobile, faSnowplow, faSoap, faSocks, faSolarPanel, faSolarSystem, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortCircle, faSortCircleDown, faSortCircleUp, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortShapesDown, faSortShapesDownAlt, faSortShapesUp, faSortShapesUpAlt, faSortSizeDown, faSortSizeDownAlt, faSortSizeUp, faSortSizeUpAlt, faSortUp, faSoup, faSpa, faSpaceShuttle, faSpaceStationMoon, faSpaceStationMoonAlt, faSpade, faSparkles, faSpeaker, faSpeakers, faSpellCheck, faSpider, faSpiderBlackWidow, faSpiderWeb, faSpinner, faSpinnerThird, faSplotch, faSprayCan, faSprinkler, faSquare, faSquareFull, faSquareRoot, faSquareRootAlt, faSquirrel, faStaff, faStamp, faStar, faStarAndCrescent, faStarChristmas, faStarExclamation, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStarShooting, faStarfighter, faStarfighterAlt, faStars, faStarship, faStarshipFreighter, faSteak, faSteeringWheel, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStocking, faStomach, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStretcher, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSunCloud, faSunDust, faSunHaze, faSunglasses, faSunrise, faSunset, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSword, faSwordLaser, faSwordLaserAlt, faSwords, faSwordsLaser, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTabletAndroid, faTabletAndroidAlt, faTabletRugged, faTablets, faTachometer, faTachometerAlt, faTachometerAltAverage, faTachometerAltFast, faTachometerAltFastest, faTachometerAltSlow, faTachometerAltSlowest, faTachometerAverage, faTachometerFast, faTachometerFastest, faTachometerSlow, faTachometerSlowest, faTaco, faTag, faTags, faTally, faTanakh, faTape, faTasks, faTasksAlt, faTaxi, faTeeth, faTeethOpen, faTelescope, faTemperatureDown, faTemperatureFrigid, faTemperatureHigh, faTemperatureHot, faTemperatureLow, faTemperatureUp, faTenge, faTennisBall, faTerminal, faText, faTextHeight, faTextSize, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faTheta, faThumbsDown, faThumbsUp, faThumbtack, faThunderstorm, faThunderstormMoon, faThunderstormSun, faTicket, faTicketAlt, faTilde, faTimes, faTimesCircle, faTimesHexagon, faTimesOctagon, faTimesSquare, faTint, faTintSlash, faTire, faTireFlat, faTirePressureWarning, faTireRugged, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperAlt, faToiletPaperSlash, faTombstone, faTombstoneAlt, faToolbox, faTools, faTooth, faToothbrush, faTorah, faToriiGate, faTornado, faTractor, faTrademark, faTrafficCone, faTrafficLight, faTrafficLightGo, faTrafficLightSlow, faTrafficLightStop, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTransporter, faTransporter1, faTransporter2, faTransporter3, faTransporterEmpty, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTrashUndo, faTrashUndoAlt, faTreasureChest, faTree, faTreeAlt, faTreeChristmas, faTreeDecorated, faTreeLarge, faTreePalm, faTrees, faTriangle, faTriangleMusic, faTrophy, faTrophyAlt, faTruck, faTruckContainer, faTruckCouch, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTruckPlow, faTruckRamp, faTrumpet, faTshirt, faTty, faTurkey, faTurntable, faTurtle, faTv, faTvAlt, faTvMusic, faTvRetro, faTypewriter, faUfo, faUfoBeam, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUnicorn, faUnion, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUsbDrive, faUsdCircle, faUsdSquare, faUser, faUserAlien, faUserAlt, faUserAltSlash, faUserAstronaut, faUserChart, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserCowboy, faUserCrown, faUserEdit, faUserFriends, faUserGraduate, faUserHardHat, faUserHeadset, faUserInjured, faUserLock, faUserMd, faUserMdChat, faUserMinus, faUserMusic, faUserNinja, faUserNurse, faUserPlus, faUserRobot, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUserUnlock, faUserVisor, faUsers, faUsersClass, faUsersCog, faUsersCrown, faUsersMedical, faUsersSlash, faUtensilFork, faUtensilKnife, faUtensilSpoon, faUtensils, faUtensilsAlt, faVacuum, faVacuumRobot, faValueAbsolute, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVhs, faVial, faVials, faVideo, faVideoPlus, faVideoSlash, faVihara, faViolin, faVirus, faVirusSlash, faViruses, faVoicemail, faVolcano, faVolleyballBall, faVolume, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeSlash, faVolumeUp, faVoteNay, faVoteYea, faVrCardboard, faWagonCovered, faWalker, faWalkieTalkie, faWalking, faWallet, faWand, faWandMagic, faWarehouse, faWarehouseAlt, faWasher, faWatch, faWatchCalculator, faWatchFitness, faWater, faWaterLower, faWaterRise, faWaveSine, faWaveSquare, faWaveTriangle, faWaveform, faWaveformPath, faWebcam, faWebcamSlash, faWeight, faWeightHanging, faWhale, faWheat, faWheelchair, faWhistle, faWifi, faWifi1, faWifi2, faWifiSlash, faWind, faWindTurbine, faWindWarning, faWindow, faWindowAlt, faWindowClose, faWindowFrame, faWindowFrameOpen, faWindowMaximize, faWindowMinimize, faWindowRestore, faWindsock, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWreath, faWrench, faXRay, faYenSign, faYinYang };\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ActivityLogIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ActivityLogIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ReloadIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ReloadIcon;\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var root = require('./_root'),\n toInteger = require('./toInteger'),\n toNumber = require('./toNumber'),\n toString = require('./toString');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite,\n nativeMin = Math.min;\n\n/**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\nfunction createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n}\n\nmodule.exports = createRound;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var createRound = require('./_createRound');\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\nvar round = createRound('round');\n\nmodule.exports = round;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\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 [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _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\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ChevronRight = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"9 18 15 12 9 6\"\n }));\n});\nChevronRight.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nChevronRight.displayName = 'ChevronRight';\nexport default ChevronRight;","import {\n AnyEqualityComparator,\n Cache,\n CircularState,\n Dictionary,\n State,\n TypeEqualityComparator,\n} from './internalTypes';\n\nconst { getOwnPropertyNames, getOwnPropertySymbols } = Object;\nconst { hasOwnProperty } = Object.prototype;\n\n/**\n * Combine two comparators into a single comparators.\n */\nexport function combineComparators(\n comparatorA: AnyEqualityComparator,\n comparatorB: AnyEqualityComparator,\n) {\n return function isEqual(a: A, b: B, state: State) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nexport function createIsCircular<\n AreItemsEqual extends TypeEqualityComparator,\n>(areItemsEqual: AreItemsEqual): AreItemsEqual {\n return function isCircular(\n a: any,\n b: any,\n state: CircularState>,\n ) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n\n const { cache } = state;\n\n const cachedA = cache.get(a);\n const cachedB = cache.get(b);\n\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n\n cache.set(a, b);\n cache.set(b, a);\n\n const result = areItemsEqual(a, b, state);\n\n cache.delete(a);\n cache.delete(b);\n\n return result;\n } as AreItemsEqual;\n}\n\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nexport function getStrictProperties(\n object: Dictionary,\n): Array {\n return (getOwnPropertyNames(object) as Array).concat(\n getOwnPropertySymbols(object),\n );\n}\n\n/**\n * Whether the object contains the property passed as an own property.\n */\nexport const hasOwn =\n Object.hasOwn ||\n ((object: Dictionary, property: number | string | symbol) =>\n hasOwnProperty.call(object, property));\n\n/**\n * Whether the values passed are strictly equal or both NaN.\n */\nexport function sameValueZeroEqual(a: any, b: any): boolean {\n return a || b ? a === b : a === b || (a !== a && b !== b);\n}\n","import { getStrictProperties, hasOwn, sameValueZeroEqual } from './utils';\nimport type {\n Dictionary,\n PrimitiveWrapper,\n State,\n TypedArray,\n} from './internalTypes';\n\nconst OWNER = '_owner';\n\nconst { getOwnPropertyDescriptor, keys } = Object;\n\n/**\n * Whether the arrays are equal in value.\n */\nexport function areArraysEqual(a: any[], b: any[], state: State) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the dates passed are equal in value.\n */\nexport function areDatesEqual(a: Date, b: Date): boolean {\n return sameValueZeroEqual(a.getTime(), b.getTime());\n}\n\n/**\n * Whether the `Map`s are equal in value.\n */\nexport function areMapsEqual(\n a: Map,\n b: Map,\n state: State,\n): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n const matchedIndices: Record = {};\n const aIterable = a.entries();\n\n let index = 0;\n let aResult: IteratorResult<[any, any]>;\n let bResult: IteratorResult<[any, any]>;\n\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n\n const bIterable = b.entries();\n\n let hasMatch = false;\n let matchIndex = 0;\n\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n\n const [aKey, aValue] = aResult.value;\n const [bKey, bValue] = bResult.value;\n\n if (\n !hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch =\n state.equals(aKey, bKey, index, matchIndex, a, b, state) &&\n state.equals(aValue, bValue, aKey, bKey, a, b, state))\n ) {\n matchedIndices[matchIndex] = true;\n }\n\n matchIndex++;\n }\n\n if (!hasMatch) {\n return false;\n }\n\n index++;\n }\n\n return true;\n}\n\n/**\n * Whether the objects are equal in value.\n */\nexport function areObjectsEqual(\n a: Dictionary,\n b: Dictionary,\n state: State,\n): boolean {\n const properties = keys(a);\n\n let index = properties.length;\n\n if (keys(b).length !== index) {\n return false;\n }\n\n let property: string;\n\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index]!;\n\n if (\n property === OWNER &&\n (a.$$typeof || b.$$typeof) &&\n a.$$typeof !== b.$$typeof\n ) {\n return false;\n }\n\n if (\n !hasOwn(b, property) ||\n !state.equals(a[property], b[property], property, property, a, b, state)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nexport function areObjectsEqualStrict(\n a: Dictionary,\n b: Dictionary,\n state: State,\n): boolean {\n const properties = getStrictProperties(a);\n\n let index = properties.length;\n\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n\n let property: string | symbol;\n let descriptorA: ReturnType;\n let descriptorB: ReturnType;\n\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index]!;\n\n if (\n property === OWNER &&\n (a.$$typeof || b.$$typeof) &&\n a.$$typeof !== b.$$typeof\n ) {\n return false;\n }\n\n if (!hasOwn(b, property)) {\n return false;\n }\n\n if (\n !state.equals(a[property], b[property], property, property, a, b, state)\n ) {\n return false;\n }\n\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n\n if (\n (descriptorA || descriptorB) &&\n (!descriptorA ||\n !descriptorB ||\n descriptorA.configurable !== descriptorB.configurable ||\n descriptorA.enumerable !== descriptorB.enumerable ||\n descriptorA.writable !== descriptorB.writable)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nexport function arePrimitiveWrappersEqual(\n a: PrimitiveWrapper,\n b: PrimitiveWrapper,\n): boolean {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n}\n\n/**\n * Whether the regexps passed are equal in value.\n */\nexport function areRegExpsEqual(a: RegExp, b: RegExp): boolean {\n return a.source === b.source && a.flags === b.flags;\n}\n\n/**\n * Whether the `Set`s are equal in value.\n */\nexport function areSetsEqual(\n a: Set,\n b: Set,\n state: State,\n): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n const matchedIndices: Record = {};\n const aIterable = a.values();\n\n let aResult: IteratorResult;\n let bResult: IteratorResult;\n\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n\n const bIterable = b.values();\n\n let hasMatch = false;\n let matchIndex = 0;\n\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n\n if (\n !hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch = state.equals(\n aResult.value,\n bResult.value,\n aResult.value,\n bResult.value,\n a,\n b,\n state,\n ))\n ) {\n matchedIndices[matchIndex] = true;\n }\n\n matchIndex++;\n }\n\n if (!hasMatch) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the TypedArray instances are equal in value.\n */\nexport function areTypedArraysEqual(a: TypedArray, b: TypedArray) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n\n return true;\n}\n","import {\n areArraysEqual as areArraysEqualDefault,\n areDatesEqual as areDatesEqualDefault,\n areMapsEqual as areMapsEqualDefault,\n areObjectsEqual as areObjectsEqualDefault,\n areObjectsEqualStrict as areObjectsEqualStrictDefault,\n arePrimitiveWrappersEqual as arePrimitiveWrappersEqualDefault,\n areRegExpsEqual as areRegExpsEqualDefault,\n areSetsEqual as areSetsEqualDefault,\n areTypedArraysEqual,\n} from './equals';\nimport { combineComparators, createIsCircular } from './utils';\nimport type {\n ComparatorConfig,\n CreateState,\n CustomEqualCreatorOptions,\n EqualityComparator,\n InternalEqualityComparator,\n State,\n} from './internalTypes';\n\nconst ARGUMENTS_TAG = '[object Arguments]';\nconst BOOLEAN_TAG = '[object Boolean]';\nconst DATE_TAG = '[object Date]';\nconst MAP_TAG = '[object Map]';\nconst NUMBER_TAG = '[object Number]';\nconst OBJECT_TAG = '[object Object]';\nconst REG_EXP_TAG = '[object RegExp]';\nconst SET_TAG = '[object Set]';\nconst STRING_TAG = '[object String]';\n\nconst { isArray } = Array;\nconst isTypedArray =\n typeof ArrayBuffer === 'function' && ArrayBuffer.isView\n ? ArrayBuffer.isView\n : null;\nconst { assign } = Object;\nconst getTag = Object.prototype.toString.call.bind(\n Object.prototype.toString,\n) as (a: object) => string;\n\ninterface CreateIsEqualOptions {\n circular: boolean;\n comparator: EqualityComparator;\n createState: CreateState | undefined;\n equals: InternalEqualityComparator;\n strict: boolean;\n}\n\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nexport function createEqualityComparator({\n areArraysEqual,\n areDatesEqual,\n areMapsEqual,\n areObjectsEqual,\n arePrimitiveWrappersEqual,\n areRegExpsEqual,\n areSetsEqual,\n areTypedArraysEqual,\n}: ComparatorConfig): EqualityComparator {\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a: any, b: any, state: State): boolean {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n\n // If the items are not non-nullish objects, then the only possibility\n // of them being equal but not strictly is if they are both `NaN`. Since\n // `NaN` is uniquely not equal to itself, we can use self-comparison of\n // both objects, which is faster than `isNaN()`.\n if (\n a == null ||\n b == null ||\n typeof a !== 'object' ||\n typeof b !== 'object'\n ) {\n return a !== a && b !== b;\n }\n\n const constructor = a.constructor;\n\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n\n // `isPlainObject` only checks against the object's own realm. Cross-realm\n // comparisons are rare, and will be handled in the ultimate fallback, so\n // we can avoid capturing the string tag.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` check.\n if (isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n\n // `isTypedArray()` works on all possible TypedArray classes, so we can avoid\n // capturing the string tag or comparing against all possible constructors.\n if (isTypedArray != null && isTypedArray(a)) {\n return areTypedArraysEqual(a, b, state);\n }\n\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is subclassing a native class, it will be handled\n // with the string tag comparison.\n\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n\n // Since this is a custom object, capture the string tag to determing its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n const tag = getTag(a);\n\n if (tag === DATE_TAG) {\n return areDatesEqual(a, b, state);\n }\n\n if (tag === REG_EXP_TAG) {\n return areRegExpsEqual(a, b, state);\n }\n\n if (tag === MAP_TAG) {\n return areMapsEqual(a, b, state);\n }\n\n if (tag === SET_TAG) {\n return areSetsEqual(a, b, state);\n }\n\n if (tag === OBJECT_TAG) {\n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n return (\n typeof a.then !== 'function' &&\n typeof b.then !== 'function' &&\n areObjectsEqual(a, b, state)\n );\n }\n\n // If an arguments tag, it should be treated as a standard object.\n if (tag === ARGUMENTS_TAG) {\n return areObjectsEqual(a, b, state);\n }\n\n // As the penultimate fallback, check if the values passed are primitive wrappers. This\n // is very rare in modern JS, which is why it is deprioritized compared to all other object\n // types.\n if (tag === BOOLEAN_TAG || tag === NUMBER_TAG || tag === STRING_TAG) {\n return arePrimitiveWrappersEqual(a, b, state);\n }\n\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected, but rarely have requirements to be compared\n // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common\n // use-cases (may be included in a future release, if requested enough).\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n\n/**\n * Create the configuration object used for building comparators.\n */\nexport function createEqualityComparatorConfig({\n circular,\n createCustomConfig,\n strict,\n}: CustomEqualCreatorOptions): ComparatorConfig {\n let config = {\n areArraysEqual: strict\n ? areObjectsEqualStrictDefault\n : areArraysEqualDefault,\n areDatesEqual: areDatesEqualDefault,\n areMapsEqual: strict\n ? combineComparators(areMapsEqualDefault, areObjectsEqualStrictDefault)\n : areMapsEqualDefault,\n areObjectsEqual: strict\n ? areObjectsEqualStrictDefault\n : areObjectsEqualDefault,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqualDefault,\n areRegExpsEqual: areRegExpsEqualDefault,\n areSetsEqual: strict\n ? combineComparators(areSetsEqualDefault, areObjectsEqualStrictDefault)\n : areSetsEqualDefault,\n areTypedArraysEqual: strict\n ? areObjectsEqualStrictDefault\n : areTypedArraysEqual,\n };\n\n if (createCustomConfig) {\n config = assign({}, config, createCustomConfig(config));\n }\n\n if (circular) {\n const areArraysEqual = createIsCircular(config.areArraysEqual);\n const areMapsEqual = createIsCircular(config.areMapsEqual);\n const areObjectsEqual = createIsCircular(config.areObjectsEqual);\n const areSetsEqual = createIsCircular(config.areSetsEqual);\n\n config = assign({}, config, {\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areSetsEqual,\n });\n }\n\n return config;\n}\n\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nexport function createInternalEqualityComparator(\n compare: EqualityComparator,\n): InternalEqualityComparator {\n return function (\n a: any,\n b: any,\n _indexOrKeyA: any,\n _indexOrKeyB: any,\n _parentA: any,\n _parentB: any,\n state: State,\n ) {\n return compare(a, b, state);\n };\n}\n\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nexport function createIsEqual({\n circular,\n comparator,\n createState,\n equals,\n strict,\n}: CreateIsEqualOptions) {\n if (createState) {\n return function isEqual(a: A, b: B): boolean {\n const { cache = circular ? new WeakMap() : undefined, meta } =\n createState!();\n\n return comparator(a, b, {\n cache,\n equals,\n meta,\n strict,\n } as State);\n };\n }\n\n if (circular) {\n return function isEqual(a: A, b: B): boolean {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals,\n meta: undefined as Meta,\n strict,\n } as State);\n };\n }\n\n const state = {\n cache: undefined,\n equals,\n meta: undefined,\n strict,\n } as State;\n\n return function isEqual(a: A, b: B): boolean {\n return comparator(a, b, state);\n };\n}\n","import {\n createEqualityComparatorConfig,\n createEqualityComparator,\n createInternalEqualityComparator,\n createIsEqual,\n} from './comparator';\nimport type { CustomEqualCreatorOptions } from './internalTypes';\nimport { sameValueZeroEqual } from './utils';\n\nexport { sameValueZeroEqual };\nexport * from './internalTypes';\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nexport const deepEqual = createCustomEqual();\n\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nexport const strictDeepEqual = createCustomEqual({ strict: true });\n\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nexport const circularDeepEqual = createCustomEqual({ circular: true });\n\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nexport const strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nexport const shallowEqual = createCustomEqual({\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nexport const strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nexport const circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nexport const strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n strict: true,\n});\n\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nexport function createCustomEqual(\n options: CustomEqualCreatorOptions = {},\n) {\n const {\n circular = false,\n createInternalComparator: createCustomInternalComparator,\n createState,\n strict = false,\n } = options;\n\n const config = createEqualityComparatorConfig(options);\n const comparator = createEqualityComparator(config);\n const equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n\n return createIsEqual({ circular, comparator, createState, equals, strict });\n}\n","function safeRequestAnimationFrame(callback) {\n if (typeof requestAnimationFrame !== 'undefined') requestAnimationFrame(callback);\n}\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n safeRequestAnimationFrame(shouldUpdate);\n }\n };\n requestAnimationFrame(shouldUpdate);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n var handleChange = function handleChange() {\n return null;\n };\n var shouldStop = false;\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n var styles = _style;\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'function') {\n _style();\n }\n };\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-console: 0 */\n\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\nexport var log = function log() {\n var _console;\n (_console = console).log.apply(_console, arguments);\n};\n\n/*\n * @description: log the value of a varible\n * string => any => any\n */\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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; }\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n default:\n {\n var easing = args[0].split('(');\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + \"oneOf 'linear', 'ease', 'ease-in', 'ease-out', \" + \"'ease-in-out','cubic-bezier(x1,y1,x2,y2)', instead received %s\", args);\n }\n }\n }\n }\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var easing = args[0];\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return configSpring();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n warn(false, \"[configEasing]: first argument should be one of 'ease', 'ease-in', \" + \"'ease-out', 'ease-in-out','cubic-bezier(x1,y1,x2,y2)', 'linear' and 'spring', instead received %s\", args);\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n warn(false, '[configEasing]: first argument type should be function or string, instead received %s', args);\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getIntersectionKeys, mapObject } from './util';\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n return val;\n }, preVals);\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n return val;\n }, preVals);\n }\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\n// configure update function\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n var update = function update() {\n return null;\n };\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n };\n\n // stepper timing function like spring\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n };\n\n // t => val timing function like cubic-bezier\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle);\n\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n update = easing.isStepper ? stepperUpdate : timingUpdate;\n\n // return start animation method\n return function () {\n requestAnimationFrame(update);\n\n // return stop animation method\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity } from './util';\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n var _super = _createSuper(Animate);\n function Animate(props, context) {\n var _this;\n _classCallCheck(this, Animate);\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children,\n duration = _this$props.duration;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n if (!isActive || duration <= 0) {\n _this.state = {\n style: {}\n };\n\n // if children is a function and animation is not active, set style to 'to'\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n return _possibleConstructorReturn(_this);\n }\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n return _this;\n }\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n if (!isActive || !canBegin) {\n return;\n }\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate,\n to = _this$props3.to,\n currentFrom = _this$props3.from;\n var style = this.state.style;\n if (!canBegin) {\n return;\n }\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, to) : to\n };\n if (this.state && style) {\n if (attributeName && style[attributeName] !== to || !attributeName && style !== to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n return;\n }\n if (deepEqual(prevProps.to, to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n if (this.manager) {\n this.manager.stop();\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n var from = isTriggered || shouldReAnimate ? currentFrom : prevProps.to;\n if (this.state && style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n if (attributeName && style[attributeName] !== from || !attributeName && style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n var onAnimationEnd = this.props.onAnimationEnd;\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n var transition = getTransitionVal(properties, duration, easing);\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, _excluded);\n var count = Children.count(children);\n // eslint-disable-next-line react/destructuring-assignment\n var stateStyle = this.state.style;\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n if (!isActive || count === 0 || duration <= 0) {\n return children;\n }\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n return Animate;\n}(PureComponent);\nAnimate.displayName = 'Animate';\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nexport default Animate;","import React from 'react';\nexport default React.createContext(null);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default {\n disabled: false\n};","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","var _excluded = [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\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; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n if (Number.isFinite(duration)) {\n return duration;\n }\n return 0;\n};\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n var _super = _createSuper(AnimateGroupChild);\n function AnimateGroupChild() {\n var _this;\n _classCallCheck(this, AnimateGroupChild);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"handleEnter\", function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleExit\", function () {\n var leaveOptions = _this.props.leaveOptions;\n _this.handleStyleActive(leaveOptions);\n });\n _this.state = {\n isActive: false\n };\n return _this;\n }\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, _excluded);\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n return AnimateGroupChild;\n}(Component);\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n }, child);\n }));\n}\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup };\nexport default Animate;","import { useLayoutEffect } from 'react';\n\nvar index = useLayoutEffect ;\n\nexport default index;\n","import * as React from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\n\nvar useLatest = function useLatest(value) {\n var ref = React.useRef(value);\n useIsomorphicLayoutEffect(function () {\n ref.current = value;\n });\n return ref;\n};\n\nexport { useLatest as default };\n","import { useRef, useCallback } from 'react';\n\nvar updateRef = function updateRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n return;\n }\n ref.current = value;\n};\n\nvar useComposedRef = function useComposedRef(libRef, userRef) {\n var prevUserRef = useRef();\n return useCallback(function (instance) {\n libRef.current = instance;\n\n if (prevUserRef.current) {\n updateRef(prevUserRef.current, null);\n }\n\n prevUserRef.current = userRef;\n\n if (!userRef) {\n return;\n }\n\n updateRef(userRef, instance);\n }, [userRef]);\n};\n\nexport default useComposedRef;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport * as React from 'react';\nimport useLatest from 'use-latest';\nimport useComposedRef from 'use-composed-ref';\n\nvar HIDDEN_TEXTAREA_STYLE = {\n 'min-height': '0',\n 'max-height': 'none',\n height: '0',\n visibility: 'hidden',\n overflow: 'hidden',\n position: 'absolute',\n 'z-index': '-1000',\n top: '0',\n right: '0'\n};\nvar forceHiddenStyles = function forceHiddenStyles(node) {\n Object.keys(HIDDEN_TEXTAREA_STYLE).forEach(function (key) {\n node.style.setProperty(key, HIDDEN_TEXTAREA_STYLE[key], 'important');\n });\n};\nvar forceHiddenStyles$1 = forceHiddenStyles;\n\n// TODO: use labelled tuples once they are avaiable:\n// export type CalculatedNodeHeights = [height: number, rowHeight: number];\n// https://github.com/microsoft/TypeScript/issues/28259\n\nvar hiddenTextarea = null;\nvar getHeight = function getHeight(node, sizingData) {\n var height = node.scrollHeight;\n if (sizingData.sizingStyle.boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n return height + sizingData.borderSize;\n }\n\n // remove padding, since height = content\n return height - sizingData.paddingSize;\n};\nfunction calculateNodeHeight(sizingData, value, minRows, maxRows) {\n if (minRows === void 0) {\n minRows = 1;\n }\n if (maxRows === void 0) {\n maxRows = Infinity;\n }\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tabindex', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n forceHiddenStyles$1(hiddenTextarea);\n }\n if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea);\n }\n var paddingSize = sizingData.paddingSize,\n borderSize = sizingData.borderSize,\n sizingStyle = sizingData.sizingStyle;\n var boxSizing = sizingStyle.boxSizing;\n Object.keys(sizingStyle).forEach(function (_key) {\n var key = _key;\n hiddenTextarea.style[key] = sizingStyle[key];\n });\n forceHiddenStyles$1(hiddenTextarea);\n hiddenTextarea.value = value;\n var height = getHeight(hiddenTextarea, sizingData);\n // Double set and calc due to Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1795904\n hiddenTextarea.value = value;\n height = getHeight(hiddenTextarea, sizingData);\n\n // measure height of a textarea with a single row\n hiddenTextarea.value = 'x';\n var rowHeight = hiddenTextarea.scrollHeight - paddingSize;\n var minHeight = rowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n var maxHeight = rowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n return [height, rowHeight];\n}\n\nvar noop = function noop() {};\nvar pick = function pick(props, obj) {\n return props.reduce(function (acc, prop) {\n acc[prop] = obj[prop];\n return acc;\n }, {});\n};\n\nvar SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'boxSizing', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'letterSpacing', 'lineHeight', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop',\n// non-standard\n'tabSize', 'textIndent',\n// non-standard\n'textRendering', 'textTransform', 'width', 'wordBreak'];\nvar isIE = !!document.documentElement.currentStyle ;\nvar getSizingData = function getSizingData(node) {\n var style = window.getComputedStyle(node);\n if (style === null) {\n return null;\n }\n var sizingStyle = pick(SIZING_STYLE, style);\n var boxSizing = sizingStyle.boxSizing;\n\n // probably node is detached from DOM, can't read computed dimensions\n if (boxSizing === '') {\n return null;\n }\n\n // IE (Edge has already correct behaviour) returns content width as computed width\n // so we need to add manually padding and border widths\n if (isIE && boxSizing === 'border-box') {\n sizingStyle.width = parseFloat(sizingStyle.width) + parseFloat(sizingStyle.borderRightWidth) + parseFloat(sizingStyle.borderLeftWidth) + parseFloat(sizingStyle.paddingRight) + parseFloat(sizingStyle.paddingLeft) + 'px';\n }\n var paddingSize = parseFloat(sizingStyle.paddingBottom) + parseFloat(sizingStyle.paddingTop);\n var borderSize = parseFloat(sizingStyle.borderBottomWidth) + parseFloat(sizingStyle.borderTopWidth);\n return {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize\n };\n};\nvar getSizingData$1 = getSizingData;\n\nfunction useListener(target, type, listener) {\n var latestListener = useLatest(listener);\n React.useLayoutEffect(function () {\n var handler = function handler(ev) {\n return latestListener.current(ev);\n };\n\n // might happen if document.fonts is not defined, for instance\n if (!target) {\n return;\n }\n target.addEventListener(type, handler);\n return function () {\n return target.removeEventListener(type, handler);\n };\n }, []);\n}\nvar useWindowResizeListener = function useWindowResizeListener(listener) {\n useListener(window, 'resize', listener);\n};\nvar useFontsLoadedListener = function useFontsLoadedListener(listener) {\n useListener(document.fonts, 'loadingdone', listener);\n};\n\nvar _excluded = [\"cacheMeasurements\", \"maxRows\", \"minRows\", \"onChange\", \"onHeightChange\"];\nvar TextareaAutosize = function TextareaAutosize(_ref, userRef) {\n var cacheMeasurements = _ref.cacheMeasurements,\n maxRows = _ref.maxRows,\n minRows = _ref.minRows,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n _ref$onHeightChange = _ref.onHeightChange,\n onHeightChange = _ref$onHeightChange === void 0 ? noop : _ref$onHeightChange,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n var isControlled = props.value !== undefined;\n var libRef = React.useRef(null);\n var ref = useComposedRef(libRef, userRef);\n var heightRef = React.useRef(0);\n var measurementsCacheRef = React.useRef();\n var resizeTextarea = function resizeTextarea() {\n var node = libRef.current;\n var nodeSizingData = cacheMeasurements && measurementsCacheRef.current ? measurementsCacheRef.current : getSizingData$1(node);\n if (!nodeSizingData) {\n return;\n }\n measurementsCacheRef.current = nodeSizingData;\n var _calculateNodeHeight = calculateNodeHeight(nodeSizingData, node.value || node.placeholder || 'x', minRows, maxRows),\n height = _calculateNodeHeight[0],\n rowHeight = _calculateNodeHeight[1];\n if (heightRef.current !== height) {\n heightRef.current = height;\n node.style.setProperty('height', height + \"px\", 'important');\n onHeightChange(height, {\n rowHeight: rowHeight\n });\n }\n };\n var handleChange = function handleChange(event) {\n if (!isControlled) {\n resizeTextarea();\n }\n onChange(event);\n };\n {\n React.useLayoutEffect(resizeTextarea);\n useWindowResizeListener(resizeTextarea);\n useFontsLoadedListener(resizeTextarea);\n return /*#__PURE__*/React.createElement(\"textarea\", _extends({}, props, {\n onChange: handleChange,\n ref: ref\n }));\n }\n};\nvar index = /* #__PURE__ */React.forwardRef(TextareaAutosize);\n\nexport { index as default };\n","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { cloneElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isFunction from 'lodash/isFunction';\nimport last from 'lodash/last';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return Array.isArray(entry.value) ? last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n ,\n index: index\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","var _excluded = [\"x\", \"y\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var xProp = _ref.x,\n yProp = _ref.y,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x: x\n } : {}), y ? {\n y: y\n } : {}), {}, {\n height: height,\n width: width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return function (value, index) {\n if (typeof minPointSize === 'number') return minPointSize;\n var isValueNumber = typeof value === 'number';\n if (isValueNumber) {\n return minPointSize(value, index);\n }\n !isValueNumber ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(_typeof(value), \". Currently only numbers are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","var _excluded = [\"value\", \"background\"];\nvar _Bar;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Bar, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n dataKey = _this$props.dataKey,\n activeIndex = _this$props.activeIndex,\n activeBar = _this$props.activeBar;\n var baseProps = filterProps(this.props, false);\n return data && data.map(function (entry, i) {\n var isActive = i === activeIndex;\n var option = isActive ? activeBar : shape;\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n isActive: isActive,\n option: option,\n index: i,\n dataKey: dataKey,\n onAnimationStart: _this2.handleAnimationStart,\n onAnimationEnd: _this2.handleAnimationEnd\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value)\n }), /*#__PURE__*/React.createElement(BarRectangle, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var _this$props4 = this.props,\n data = _this$props4.data,\n dataKey = _this$props4.dataKey,\n activeIndex = _this$props4.activeIndex;\n var backgroundProps = filterProps(this.props.background, false);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n return Bar;\n}(PureComponent);\n_Bar = Bar;\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n activeBar: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSizeProp = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, _Bar.defaultProps.minPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isFunction from 'lodash/isFunction';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = isVisible(sign, tail.tickCoord, function () {\n return tailSize;\n }, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = function getTickSize(content, index) {\n var value = isFunction(tickFormatter) ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluate all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _callSuper(this, CartesianAxis, [props]);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props, false)), filterProps(axisLine, false)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return CartesianAxis;\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","var _excluded = [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, _excluded);\n var svgProps = filterProps(others, false);\n !!(props.direction === 'x' && xAxis.type !== 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ErrorBar requires Axis type property to be \"number\".') : invariant(false) : void 0;\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview X Axis\n */\n\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useXAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\n\n/** Define of XAxis props */\n\nexport var XAxis = function XAxis(_ref) {\n var xAxisId = _ref.xAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useXAxisOrThrow(xAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Y Axis\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useYAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\nexport var YAxis = function YAxis(_ref) {\n var yAxisId = _ref.yAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useYAxisOrThrow(yAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport React from 'react';\nimport sortBy from 'lodash/sortBy';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? false : _props$accessibilityL;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport clsx from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y));\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offsetTopLeft = _ref2.offsetTopLeft,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offsetTopLeft;\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTopLeft = _ref4.offsetTopLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'x',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox: viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'y',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox: viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX: translateX,\n translateY: translateY,\n useTranslate3d: useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties: cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX: translateX,\n translateY: translateY,\n coordinate: coordinate\n })\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n _inherits(TooltipBoundingBox, _PureComponent);\n function TooltipBoundingBox() {\n var _this;\n _classCallCheck(this, TooltipBoundingBox);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, TooltipBoundingBox, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n },\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = _this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = _this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n return _this;\n }\n _createClass(TooltipBoundingBox, [{\n key: \"updateBBox\",\n value: function updateBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - this.state.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.state.lastBoundingBox.height) > EPSILON) {\n this.setState({\n lastBoundingBox: {\n width: box.width,\n height: box.height\n }\n });\n }\n } else if (this.state.lastBoundingBox.width !== -1 || this.state.lastBoundingBox.height !== -1) {\n this.setState({\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: this.state.lastBoundingBox,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key.\n // See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n return TooltipBoundingBox;\n}(PureComponent);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _callSuper(this, Tooltip, arguments);\n }\n _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n content = _this$props.content,\n coordinate = _this$props.coordinate,\n filterNull = _this$props.filterNull,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n payload = _this$props.payload,\n payloadUniqBy = _this$props.payloadUniqBy,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var finalPayload = payload !== null && payload !== void 0 ? payload : [];\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(payload.filter(function (entry) {\n return entry.value != null && (entry.hide !== true || _this.props.includeHidden);\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n return Tooltip;\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n accessibilityLayer: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Dot\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = clsx('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _callSuper(this, Brush, [props]);\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(_defineProperty(_defineProperty({}, movingTravellerId, prevValue + delta), \"brushMoveStartX\", e.pageX), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _data$startIndex,\n _data$endIndex,\n _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat((_data$startIndex = data[startIndex]) === null || _data$startIndex === void 0 ? void 0 : _data$startIndex.name, \", Max value: \").concat((_data$endIndex = data[endIndex]) === null || _data$endIndex === void 0 ? void 0 : _data$endIndex.name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n return Brush;\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\nReferenceDot.renderDot = function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport some from 'lodash/some';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { useClipPathId, useViewBox, useXAxisOrThrow, useYAxisOrThrow } from '../context/chartLayoutContext';\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `filterProps` which filters the viewBox away anyway\n */\n\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n// TODO: ScaleHelper\nexport var getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, viewBox, position, xAxisOrientation, yAxisOrientation, props) {\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (isFixedY) {\n var yCoord = props.y;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return xAxisOrientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow;\n var clipPathId = useClipPathId();\n var xAxis = useXAxisOrThrow(xAxisId);\n var yAxis = useYAxisOrThrow(yAxisId);\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox) {\n return null;\n }\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\nReferenceArea.renderRect = function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref2;\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? null : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = (_ref2 = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList) !== null && _ref2 !== void 0 ? _ref2 : [];\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(newIndex) {\n this.activeIndex = newIndex;\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n return AccessibilityManager;\n}();","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport upperFirst from 'lodash/upperFirst';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (Array.isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: cx,\n cy: cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n return getRadialCursorPoints(activeCoordinate);\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { filterProps } from '../util/ReactUtils';\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var element = props.element,\n tooltipEventType = props.tooltipEventType,\n isActive = props.isActive,\n activeCoordinate = props.activeCoordinate,\n activePayload = props.activePayload,\n offset = props.offset,\n activeTooltipIndex = props.activeTooltipIndex,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n chartName = props.chartName;\n if (!element || !element.props.cursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n }\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor, false)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', element.props.cursor.className)\n });\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n}","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","var _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component, cloneElement, isValidElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport throttle from 'lodash/throttle';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset } from '../util/DOMUtils';\nimport { findEntryInArray, getAnyElementOfObject, hasDuplicate, isNumber, uniqueId } from '../util/DataUtils';\nimport { appendOffsetOfLegend, calculateActiveTickIndex, combineEventHandlers, getBandSizeOfAxis, getBarPosition, getBarSizeList, getDomainOfDataByKey, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getLegendProps, getMainColorOfGraphicItem, getStackedDataOfItem, getStackGroupsByAxisId, getTicksOfAxis, getTooltipItem, isCategoricalAxis, parseDomainOfCategoryAxis, parseErrorBarsOfAxis, parseSpecifiedDomain } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { isDomainSpecifiedByUser } from '../util/isDomainSpecifiedByUser';\nimport { getActiveShapeIndexForTooltip, isFunnel, isPie, isScatter } from '../util/ActiveShapeUtils';\nimport { Cursor } from '../component/Cursor';\nimport { ChartLayoutContextProvider } from '../context/chartLayoutContext';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%'\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n/**\n * This function exists as a temporary workaround.\n *\n * Why? generateCategoricalChart does not render `{children}` directly;\n * instead it passes them through `renderByOrder` function which reads their handlers.\n *\n * So, this is a handler that does nothing.\n * Once we get rid of `renderByOrder` and switch to JSX only, we can get rid of this handler too.\n *\n * @param {JSX} element as is in JSX\n * @returns {JSX} the same element\n */\nfunction renderAsIs(element) {\n return element;\n}\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems !== null && graphicalItems !== void 0 ? graphicalItems : []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData.length > 0) {\n return itemsData;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var _child$props$data;\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _child$props$domain2;\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks,\n includeHidden = _child$props.includeHidden;\n var axisId = child.props[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(child.props.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(child.props.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _child$props$domain;\n var childDomain = (_child$props$domain = child.props.domain) !== null && _child$props$domain !== void 0 ? _child$props$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_child$props$domain2 = child.props.domain) !== null && _child$props$domain2 !== void 0 ? _child$props$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n return result;\n }, {});\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {React.ComponentType} [AxisComp] Axis Component\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nexport var createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = 0;\n var endIndex = 0;\n if (props.data && props.data.length !== 0) {\n endIndex = props.data.length - 1;\n }\n if (brushItem && brushItem.props) {\n if (brushItem.props.startIndex >= 0) {\n startIndex = brushItem.props.startIndex;\n }\n if (brushItem.props.endIndex >= 0) {\n endIndex = brushItem.props.endIndex;\n }\n }\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: Boolean(defaultShowTooltip)\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} params.props Latest props\n * @param {Array} params.graphicalItems The instances of item\n * @param {Object} params.xAxisMap The configuration of x-axis\n * @param {Object} params.yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox The boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n // @ts-expect-error margin is optional in props but required in appendOffsetOfLegend\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n var offsetWidth = width - offset.left - offset.right;\n var offsetHeight = height - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n};\n// Determine the size of the axis, used for calculation of relative bar sizes\nvar getCartesianAxisSize = function getCartesianAxisSize(axisObj, axisName) {\n if (axisName === 'xAxis') {\n return axisObj[axisName].width;\n }\n if (axisName === 'yAxis') {\n return axisObj[axisName].height;\n }\n // This is only supported for Bar charts (i.e. charts with cartesian axes), so we should never get here\n return undefined;\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _CategoricalChartWrapper;\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty(_defineProperty({}, entry.axisType, axis), \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)));\n }, axisObjInitialValue);\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups,\n totalSize: getCartesianAxisSize(axisObj, cateAxisName)\n });\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // If it is bar, calculate the position of bar\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, _defineProperty(_defineProperty(_defineProperty({\n key: item.key || \"item-\".concat(index)\n }, numericAxisName, axisObj[numericAxisName]), cateAxisName, axisObj[cateAxisName]), \"animationId\", updateId)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n return _CategoricalChartWrapper = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _callSuper(this, CategoricalChartWrapper, [_props]);\n _defineProperty(_assertThisInitialized(_this), \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_assertThisInitialized(_this), \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_assertThisInitialized(_this), \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function (e) {\n _this.throttleTriggeredAfterMouseMove.cancel();\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n var layout = _this.props.layout;\n var key = element.key || '_recharts-cursor';\n return /*#__PURE__*/React.createElement(Cursor, {\n key: key,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex,\n chartName: chartName,\n element: element,\n isActive: isActive,\n layout: layout,\n offset: offset,\n tooltipAxisBandSize: tooltipAxisBandSize,\n tooltipEventType: tooltipEventType\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var axisOption = axisMap && axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: clsx(axisType, axisOption.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_assertThisInitialized(_this), \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_assertThisInitialized(_this), \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n accessibilityLayer = _this$props3.accessibilityLayer;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n\n // The user can set isActive on the Tooltip,\n // and we respect the user to enable customisation.\n // The Tooltip is active if the user has set isActive, or if the tooltip is active due to a mouse event.\n var isActive = (_tooltipItem$props$ac = tooltipItem.props.active) !== null && _tooltipItem$props$ac !== void 0 ? _tooltipItem$props$ac : isTooltipActive;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isActive,\n label: activeLabel,\n payload: isActive ? activePayload : [],\n coordinate: activeCoordinate,\n accessibilityLayer: accessibilityLayer\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderActivePoints\", function (_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_assertThisInitialized(_this), \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide,\n activeBar = _item$item$props2.activeBar,\n activeShape = _item$item$props2.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref11 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref11$graphicalItem = _ref11.graphicalItem,\n _ref11$graphicalItem$ = _ref11$graphicalItem.item,\n xyItem = _ref11$graphicalItem$ === void 0 ? element : _ref11$graphicalItem$,\n childIndex = _ref11$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderMap\", {\n CartesianGrid: {\n handler: renderAsIs,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: renderAsIs\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: renderAsIs\n },\n YAxis: {\n handler: renderAsIs\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n this.displayDefaultTooltip();\n }\n }, {\n key: \"displayDefaultTooltip\",\n value: function displayDefaultTooltip() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n data = _this$props5.data,\n height = _this$props5.height,\n layout = _this$props5.layout;\n var tooltipElem = findChildByType(children, Tooltip);\n // If the chart doesn't include a element, there's no tooltip to display\n if (!tooltipElem) {\n return;\n }\n var defaultIndex = tooltipElem.props.defaultIndex;\n\n // Protect against runtime errors\n if (typeof defaultIndex !== 'number' || defaultIndex < 0 || defaultIndex > this.state.tooltipTicks.length) {\n return;\n }\n var activeLabel = this.state.tooltipTicks[defaultIndex] && this.state.tooltipTicks[defaultIndex].value;\n var activePayload = getTooltipContent(this.state, data, defaultIndex, activeLabel);\n var independentAxisCoord = this.state.tooltipTicks[defaultIndex].coordinate;\n var dependentAxisCoord = (this.state.offset.top + height) / 2;\n var isHorizontal = layout === 'horizontal';\n var activeCoordinate = isHorizontal ? {\n x: independentAxisCoord,\n y: dependentAxisCoord\n } : {\n y: independentAxisCoord,\n x: dependentAxisCoord\n };\n\n // Unlike other chart types, scatter plot's tooltip positions rely on both X and Y coordinates. Only the scatter plot\n // element knows its own Y coordinates.\n // If there's a scatter plot, we'll want to grab that element for an interrogation.\n var scatterPlotElement = this.state.formattedGraphicalItems.find(function (_ref12) {\n var item = _ref12.item;\n return item.type.name === 'Scatter';\n });\n if (scatterPlotElement) {\n activeCoordinate = _objectSpread(_objectSpread({}, activeCoordinate), scatterPlotElement.props.points[defaultIndex].tooltipPosition);\n activePayload = scatterPlotElement.props.points[defaultIndex].tooltipPayload;\n }\n var nextState = {\n activeTooltipIndex: defaultIndex,\n isTooltipActive: true,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n this.setState(nextState);\n this.renderCursor(tooltipElem);\n\n // Make sure that anyone who keyboard-only users who tab to the chart will start their\n // cursors at defaultIndex\n this.accessibilityManager.setIndex(defaultIndex);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Check to see if the Tooltip updated. If so, re-check default tooltip position\n if (!isChildrenEqual([findChildByType(prevProps.children, Tooltip)], [findChildByType(this.props.children, Tooltip)])) {\n this.displayDefaultTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListener();\n this.throttleTriggeredAfterMouseMove.cancel();\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && typeof tooltipItem.props.shared === 'boolean') {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {MousePointer} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var element = this.container;\n var boundingRect = element.getBoundingClientRect();\n var containerOffset = getOffset(boundingRect);\n var e = {\n chartX: Math.round(event.pageX - containerOffset.left),\n chartY: Math.round(event.pageY - containerOffset.top)\n };\n var scale = boundingRect.width / element.offsetWidth || 1;\n var rangeObj = this.inRange(e.chartX, e.chartY, scale);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var layout = this.props.layout;\n var scaledX = x / scale,\n scaledY = y / scale;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = scaledX >= offset.left && scaledX <= offset.left + offset.width && scaledY >= offset.top && scaledY <= offset.top + offset.height;\n return isInRange ? {\n x: scaledX,\n y: scaledY\n } : null;\n }\n var _this$state10 = this.state,\n angleAxisMap = _this$state10.angleAxisMap,\n radiusAxisMap = _this$state10.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 || (_this$state$xAxisMap = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap === void 0 ? void 0 : _this$state$xAxisMap.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 || (_this$state$yAxisMap = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap === void 0 ? void 0 : _this$state$yAxisMap.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var _this$state11 = this.state,\n formattedGraphicalItems = _this$state11.formattedGraphicalItems,\n activeItem = _this$state11.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: item.props.data\n });\n var childIndex = item.props.activeIndex === undefined ? activeIndex : item.props.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? item.props.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others, false);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)));\n }\n if (this.props.accessibilityLayer) {\n var _this$props$tabIndex, _this$props$role;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_this$props$tabIndex = this.props.tabIndex) !== null && _this$props$tabIndex !== void 0 ? _this$props$tabIndex : 0;\n // Set role to img by default (can be overwritten)\n attrs.role = (_this$props$role = this.props.role) !== null && _this$props$role !== void 0 ? _this$props$role : 'application';\n attrs.onKeyDown = function (e) {\n _this2.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n attrs.onFocus = function () {\n _this2.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip()));\n }\n }]);\n return CategoricalChartWrapper;\n }(Component), _defineProperty(_CategoricalChartWrapper, \"displayName\", chartName), _defineProperty(_CategoricalChartWrapper, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps)), _defineProperty(_CategoricalChartWrapper, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var dataKey = nextProps.dataKey,\n data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n var dataStartIndex = prevState.dataStartIndex,\n dataEndIndex = prevState.dataEndIndex;\n if (prevState.updateId === undefined) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (dataKey !== prevState.prevDataKey || data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n var _brush$props$startInd, _brush$props, _brush$props$endIndex, _brush$props2;\n // specifically check for Brush - if it exists and the start and end indexes are different, re-render with the new ones\n var brush = findChildByType(children, Brush);\n var startIndex = brush ? (_brush$props$startInd = (_brush$props = brush.props) === null || _brush$props === void 0 ? void 0 : _brush$props.startIndex) !== null && _brush$props$startInd !== void 0 ? _brush$props$startInd : dataStartIndex : dataStartIndex;\n var endIndex = brush ? (_brush$props$endIndex = (_brush$props2 = brush.props) === null || _brush$props2 === void 0 ? void 0 : _brush$props2.endIndex) !== null && _brush$props$endIndex !== void 0 ? _brush$props$endIndex : dataEndIndex : dataEndIndex;\n var hasDifferentStartOrEndIndex = startIndex !== dataStartIndex || endIndex !== dataEndIndex;\n\n // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData && !hasDifferentStartOrEndIndex ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }), prevState)), {}, {\n prevChildren: children,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n return null;\n }), _defineProperty(_CategoricalChartWrapper, \"renderActiveDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }), _CategoricalChartWrapper;\n};","import { isNumber } from './DataUtils';\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nexport function isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport clsx from 'clsx';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = isNil(props.children) ? value : props.children;\n if (isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || isNil(value) && isNil(children) && ! /*#__PURE__*/isValidElement(content) && !isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _callSuper(this, DefaultLegendContent, arguments);\n }\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx(_defineProperty(_defineProperty({\n 'recharts-legend-item': true\n }, \"legend-item-\".concat(i), true), \"inactive\", entry.inactive));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n return DefaultLegendContent;\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Legend, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box = this.wrapperNode.getBoundingClientRect();\n _box.height = this.wrapperNode.offsetHeight;\n _box.width = this.wrapperNode.offsetWidth;\n return _box;\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n var box = this.getBBox();\n if (box) {\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPS || Math.abs(box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box2 = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - _box2.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box3 = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box3.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n return Legend;\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n return DecimalCSS;\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return /*#__PURE__*/React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: words\n }, words);\n }));\n};","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n}","import memoize from 'lodash/memoize';\n/**\n * This is memoized because the viewBox is unlikely to change often\n * - but because it is computed from offset, any change to it would re-render all children.\n *\n * And because we have many readers of the viewBox, and update it only rarely,\n * then let's optimize with memoization.\n */\nexport var calculateViewBox = memoize(function (offset) {\n return {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n}, function (offset) {\n return ['l', offset.left, 't', offset.top, 'w', offset.width, 'h', offset.height].join('');\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport React, { createContext, useContext } from 'react';\nimport invariant from 'tiny-invariant';\nimport find from 'lodash/find';\nimport every from 'lodash/every';\nimport { calculateViewBox } from '../util/calculateViewBox';\nimport { getAnyElementOfObject } from '../util/DataUtils';\nexport var XAxisContext = /*#__PURE__*/createContext(undefined);\nexport var YAxisContext = /*#__PURE__*/createContext(undefined);\nexport var ViewBoxContext = /*#__PURE__*/createContext(undefined);\nexport var OffsetContext = /*#__PURE__*/createContext({});\nexport var ClipPathIdContext = /*#__PURE__*/createContext(undefined);\nexport var ChartHeightContext = /*#__PURE__*/createContext(0);\nexport var ChartWidthContext = /*#__PURE__*/createContext(0);\n\n/**\n * Will add all the properties required to render all individual Recharts components into a React Context.\n *\n * If you want to read these properties, see the collection of hooks exported from this file.\n *\n * @param {object} props CategoricalChartState, plus children\n * @returns {ReactElement} React Context Provider\n */\nexport var ChartLayoutContextProvider = function ChartLayoutContextProvider(props) {\n var _props$state = props.state,\n xAxisMap = _props$state.xAxisMap,\n yAxisMap = _props$state.yAxisMap,\n offset = _props$state.offset,\n clipPathId = props.clipPathId,\n children = props.children,\n width = props.width,\n height = props.height;\n\n /**\n * Perhaps we should compute this property when reading? Let's see what is more often used\n */\n var viewBox = calculateViewBox(offset);\n\n /*\n * This pretends to be a single context but actually is split into multiple smaller ones.\n * Why?\n * Because one React Context only allows to set one value.\n * But we need to set multiple values.\n * If we do that with one context, then we force re-render on components that might not even be interested\n * in the part of the state that has changed.\n *\n * By splitting into smaller contexts, we allow each components to be optimized and only re-render when its dependencies change.\n *\n * To actually achieve the optimal re-render, it is necessary to use React.memo().\n * See the test file for details.\n */\n return /*#__PURE__*/React.createElement(XAxisContext.Provider, {\n value: xAxisMap\n }, /*#__PURE__*/React.createElement(YAxisContext.Provider, {\n value: yAxisMap\n }, /*#__PURE__*/React.createElement(OffsetContext.Provider, {\n value: offset\n }, /*#__PURE__*/React.createElement(ViewBoxContext.Provider, {\n value: viewBox\n }, /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(ChartHeightContext.Provider, {\n value: height\n }, /*#__PURE__*/React.createElement(ChartWidthContext.Provider, {\n value: width\n }, children)))))));\n};\nexport var useClipPathId = function useClipPathId() {\n return useContext(ClipPathIdContext);\n};\nfunction getKeysForDebug(object) {\n var keys = Object.keys(object);\n if (keys.length === 0) {\n return 'There are no available ids.';\n }\n return \"Available ids are: \".concat(keys, \".\");\n}\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param xAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useXAxisOrThrow = function useXAxisOrThrow(xAxisId) {\n var xAxisMap = useContext(XAxisContext);\n !(xAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var xAxis = xAxisMap[xAxisId];\n !(xAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find xAxis by id \\\"\".concat(xAxisId, \"\\\" [\").concat(_typeof(xAxisId), \"]. \").concat(getKeysForDebug(xAxisMap))) : invariant(false) : void 0;\n return xAxis;\n};\n\n/**\n * This will find an arbitrary first XAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific XAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns X axisOptions, or undefined - if there are no X axes\n */\nexport var useArbitraryXAxis = function useArbitraryXAxis() {\n var xAxisMap = useContext(XAxisContext);\n return getAnyElementOfObject(xAxisMap);\n};\n\n/**\n * This will find an arbitrary first YAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific YAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns Y axisOptions, or undefined - if there are no Y axes\n */\nexport var useArbitraryYAxis = function useArbitraryYAxis() {\n var yAxisMap = useContext(YAxisContext);\n return getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This hooks will:\n * 1st attempt to find an YAxis that has all elements in its domain finite\n * If no such axis exists, it will return an arbitrary YAxis\n * if there are no Y axes then it returns undefined\n *\n * @returns Either Y axisOptions, or undefined if there are no Y axes\n */\nexport var useYAxisWithFiniteDomainOrRandom = function useYAxisWithFiniteDomainOrRandom() {\n var yAxisMap = useContext(YAxisContext);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n return yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param yAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useYAxisOrThrow = function useYAxisOrThrow(yAxisId) {\n var yAxisMap = useContext(YAxisContext);\n !(yAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var yAxis = yAxisMap[yAxisId];\n !(yAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find yAxis by id \\\"\".concat(yAxisId, \"\\\" [\").concat(_typeof(yAxisId), \"]. \").concat(getKeysForDebug(yAxisMap))) : invariant(false) : void 0;\n return yAxis;\n};\nexport var useViewBox = function useViewBox() {\n var viewBox = useContext(ViewBoxContext);\n return viewBox;\n};\nexport var useOffset = function useOffset() {\n return useContext(OffsetContext);\n};\nexport var useChartWidth = function useChartWidth() {\n return useContext(ChartWidthContext);\n};\nexport var useChartHeight = function useChartHeight() {\n return useContext(ChartHeightContext);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\n }\n};\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport upperFirst from 'lodash/upperFirst';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport mapValues from 'lodash/mapValues';\nimport every from 'lodash/every';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n if (Number.isFinite(smallestDistanceBetweenValues)) {\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n return ScaleHelper;\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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; }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport get from 'lodash/get';\nimport flatMap from 'lodash/flatMap';\nimport isNan from 'lodash/isNaN';\nimport upperFirst from 'lodash/upperFirst';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n totalSize = _ref2.totalSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n var barSize = isNil(selfSize) ? globalSize : selfSize;\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(barSize) ? undefined : getPercentValue(barSize, totalSize, 0)\n });\n }\n }\n }\n return result;\n};\n/**\n * Calculate the size of each bar and offset between start of band and the bar\n *\n * @param {number} bandSize is the size of area where bars can render\n * @param {number | string} barGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {number | string} barCategoryGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {Array} sizeList Sizes of all groups\n * @param {number} maxBarSize The maximum size of each bar\n * @return {Array} The size and offset of each bar\n */\nexport var getBarPosition = function getBarPosition(_ref3) {\n var barGap = _ref3.barGap,\n barCategoryGap = _ref3.barCategoryGap,\n bandSize = _ref3.bandSize,\n _ref3$sizeList = _ref3.sizeList,\n sizeList = _ref3$sizeList === void 0 ? [] : _ref3$sizeList,\n maxBarSize = _ref3.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n // @ts-expect-error the type check above does not check for type number explicitly\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newPosition = {\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n // @ts-expect-error the type check above does not check for type number explicitly\n size: useFull ? fullBarSize : entry.barSize\n }\n };\n var newRes = [].concat(_toConsumableArray(res), [newPosition]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, initialValue);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, _unused, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n if (legendProps) {\n var _ref4 = legendBox || {},\n boxWidth = _ref4.width,\n boxHeight = _ref4.height;\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, offset[align] + (boxWidth || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, offset[verticalAlign] + (boxHeight || 0)));\n }\n }\n return offset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey);\n if (isNil(entryValue)) return result;\n var mainValue = Array.isArray(entryValue) ? [min(entryValue), max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(Array.isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(Array.isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(\n // @ts-expect-error if (type === number) means that the domain is numerical type\n // - but this link is missing in the type definition\n function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n // @ts-expect-error Date cannot index an object\n if (!tag[entry[i]]) {\n // @ts-expect-error Date cannot index an object\n tag[entry[i]] = true;\n\n // @ts-expect-error Date cannot index an object\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimun value of axis\n * @param {Number} maxValue The maximun value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, minValue, maxValue, syncWithTicks) {\n if (syncWithTicks) {\n return ticks.map(function (entry) {\n return entry.coordinate;\n });\n }\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !isNan(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nvar handlerWeakMap = new WeakMap();\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, childHandler) {\n if (typeof childHandler !== 'function') {\n return defaultHandler;\n }\n if (!handlerWeakMap.has(defaultHandler)) {\n handlerWeakMap.set(defaultHandler, new WeakMap());\n }\n var childWeakMap = handlerWeakMap.get(defaultHandler);\n if (childWeakMap.has(childHandler)) {\n return childWeakMap.get(childHandler);\n }\n var combineHandler = function combineHandler() {\n defaultHandler.apply(void 0, arguments);\n childHandler.apply(void 0, arguments);\n };\n childWeakMap.set(childHandler, combineHandler);\n return combineHandler;\n};\n\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {object} The scale function and resolved name\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (isString(scale)) {\n var name = \"scale\".concat(upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var minValue = Math.min(range[0], range[1]) - EPS;\n var maxValue = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < minValue || first > maxValue || last < minValue || last > maxValue) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param {Array} value input that will be truncated\n * @param {Array} domain boundaries\n * @returns {Array} tuple of two numbers\n */\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var offsetAccessor = STACK_OFFSET_MAP[offsetType];\n var stack = shapeStack()\n // @ts-expect-error stack.keys type wants an array of strings, but we provide array of DataKeys\n .keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var parentStackGroupsInitialValue = {};\n var stackGroups = items.reduce(function (result, item) {\n var _item$props2 = item.props,\n stackId = _item$props2.stackId,\n hide = _item$props2.hide;\n if (hide) {\n return result;\n }\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, parentStackGroupsInitialValue);\n var axisStackGroupsInitialValue = {};\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n if (group.hasStack) {\n var stackGroupsInitialValue = {};\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, stackGroupsInitialValue);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, axisStackGroupsInitialValue);\n};\n\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n if (!domain.length) {\n return null;\n }\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain([min(tickValues), max(tickValues)]);\n return {\n niceTicks: tickValues\n };\n }\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n return {\n niceTicks: _tickValues\n };\n }\n return null;\n};\nexport function getCateCoordinateOfLine(_ref5) {\n var axis = _ref5.axis,\n ticks = _ref5.ticks,\n bandSize = _ref5.bandSize,\n entry = _ref5.entry,\n index = _ref5.index,\n dataKey = _ref5.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNil(dataKey) ? dataKey : axis.dataKey);\n return !isNil(value) ? axis.scale(value) : null;\n}\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n offset = _ref6.offset,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref7) {\n var numericAxis = _ref7.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n if (group) {\n var itemIndex = group.items.indexOf(item);\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n return null;\n};\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [min(entry.concat([result[0]]).filter(isNumber)), max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n if (!Array.isArray(specifiedDomain)) {\n return dataDomain;\n }\n var domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n domain[1] = dataDomain[1] + _value;\n } else if (isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n return domain;\n};\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n // @ts-expect-error we need to rethink scale type\n if (axis && axis.scale && axis.scale.bandwidth) {\n // @ts-expect-error we need to rethink scale type\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = sortBy(ticks, function (o) {\n return o.coordinate;\n });\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis ReactElement\n * @returns {Array} domains\n */\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n if (isEqual(specifiedDomain, get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType,\n hide = _graphicalItem$props.hide;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem, false)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType,\n hide: hide\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nfunction removeInvalidKeys(obj) {\n var copyObj = _objectSpread({}, obj);\n Object.keys(copyObj).forEach(function (key) {\n if (!copyObj[key]) {\n delete copyObj[key];\n }\n });\n return copyObj;\n}\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n var copyStyle = removeInvalidKeys(style);\n var cacheKey = JSON.stringify({\n text: text,\n copyStyle: copyStyle\n });\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), copyStyle);\n Object.assign(measurementSpan.style, measurementSpanStyle);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(rect) {\n return {\n top: rect.top + window.scrollY - document.documentElement.clientTop,\n left: rect.left + window.scrollX - document.documentElement.clientLeft\n };\n};","import isString from 'lodash/isString';\nimport isNan from 'lodash/isNaN';\nimport get from 'lodash/get';\nimport lodashIsNumber from 'lodash/isNumber';\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return lodashIsNumber(value) && !isNan(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Get percent value of a total value\n * @param {number|string} percent A percent\n * @param {number} totalValue Total value\n * @param {number} defaultValue The value returned when percent is undefined or invalid\n * @param {boolean} validate If set to be true, the result will be validated\n * @return {number} value\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && !isString(percent)) {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (isNan(value)) {\n value = defaultValue;\n }\n if (validate && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n var keys = Object.keys(obj);\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!Array.isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/* @todo consider to rename this function into `getInterpolator` */\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue;\n });\n}\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport isNil from 'lodash/isNil';\nimport { isValidElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};\nexport var getTickClassName = function getTickClassName(tick) {\n return ! /*#__PURE__*/isValidElement(tick) && !isFunction(tick) && typeof tick !== 'boolean' ? tick.className : '';\n};","var _excluded = [\"children\"],\n _excluded2 = [\"children\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport get from 'lodash/get';\nimport isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nimport { FilteredElementKeyMap, SVGElementPropKeys, EventKeys } from './types';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, function (child) {\n if (isNil(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/*\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\n\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` must be a React.ComponentType\n */\nexport function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n}\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var displayName = get(child, 'type.displayName');\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n return newChildren;\n};\n\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\nexport var isDotProps = function isDotProps(dot) {\n return dot && _typeof(dot) === 'object' && 'cx' in dot && 'cy' in dot && 'r' in dot;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return !isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(Array.isArray(nextChildren) ? nextChildren[0] : nextChildren, Array.isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n if (Array.isArray(nextChild) || Array.isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (isNil(nextChild) && isNil(prevChild)) {\n return true;\n }\n if (!isNil(nextChild) && !isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, _excluded);\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, _excluded2);\n if (nextChildren && prevChildren) {\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n return false;\n }\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Legend } from '../component/Legend';\nimport { getMainColorOfGraphicItem } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formattedGraphicalItems = _ref.formattedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n if (!legendItem) {\n return null;\n }\n var legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.item;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n name = _item$props.name,\n legendType = _item$props.legendType,\n hide = _item$props.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n // @ts-expect-error property strokeDasharray is required in Payload but optional in props\n payload: item.props\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};","import uniqBy from 'lodash/uniqBy';\nimport isFunction from 'lodash/isFunction';\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\n\nexport function getUniqPayload(payload, option, defaultUniqBy) {\n if (option === true) {\n return uniqBy(payload, defaultUniqBy);\n }\n if (isFunction(option)) {\n return uniqBy(payload, option);\n }\n return payload;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { isValidElement } from 'react';\nimport isObject from 'lodash/isObject';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * Also see https://d3js.org/d3-shape/stack#stack-offsets\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/** the offset of a chart, which define the blank space all around */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/** The props definition of base axis */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks are always shown.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n"],"names":["faCheckCircle","prefix","iconName","icon","ReloadIcon","forwardRef","_ref","forwardedRef","color","_ref$color","props","_objectWithoutPropertiesLoose","createElement","Object","assign","width","height","viewBox","fill","xmlns","ref","d","fillRule","clipRule","ONE","MAX_DIGITS","Decimal","precision","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","Math","floor","mathpow","pow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","add","x","y","carry","e","i","k","len","xd","yd","Ctor","constructor","pr","s","round","slice","length","ceil","reverse","push","unshift","pop","checkInt32","min","max","Error","digitsToString","ws","indexOfLastWord","str","w","getZeroString","absoluteValue","abs","this","comparedTo","cmp","j","xdL","ydL","decimalPlaces","dp","dividedBy","div","divide","dividedToIntegerBy","idiv","equals","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","log","base","r","wpr","ln","minus","sub","subtract","modulo","mod","q","times","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","z","squareRoot","sqrt","n","t","toExponential","indexOf","toString","mul","rL","shift","toDecimalPlaces","todp","rm","toFixed","toInteger","toint","toNumber","toPower","sign","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","val","toJSON","multiplyInteger","temp","compare","a","b","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c","c0","numerator","x2","charAt","parseDecimal","replace","search","substring","charCodeAt","rd","doRound","xdi","xe","xLTy","isExp","arr","config","obj","p","v","ps","clone","value","test","prototype","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","set","hasOwnProperty","define","has","Events","EE","fn","context","once","addListener","emitter","event","TypeError","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","getOwnPropertySymbols","concat","listeners","handlers","l","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","arguments","removeListener","undefined","apply","on","removeAllListeners","off","prefixed","module","exports","DataView","require","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","index","clear","entry","get","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Promise","Set","setCacheAdd","setCacheHas","SetCache","values","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","data","size","Uint8Array","WeakMap","func","thisArg","array","predicate","resIndex","result","baseIndexOf","comparator","baseTimes","isArguments","isArray","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","key","iteratee","offset","string","split","defineProperty","object","baseForOwn","baseEach","createBaseEach","collection","isSymbol","current","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","keys","castPath","toKey","path","keysFunc","symbolsFunc","other","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","source","matchData","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","reIsNative","RegExp","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","property","isPrototype","nativeKeys","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","iteratees","orders","nativeCeil","nativeMax","start","end","step","overRest","setToString","constant","baseSetToString","comparer","sort","Symbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","includes","isCommon","seen","outer","seenIndex","cache","stringToPath","baseSlice","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","coreJsData","eachFunc","iterable","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","trailing","join","findIndexFunc","baseRange","isIterateeCall","toFinite","root","nativeIsFinite","isFinite","nativeMin","number","pair","noop","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","symbolValueOf","tag","byteLength","byteOffset","buffer","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","getSymbols","isKeyable","map","baseIsNative","getValue","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","resolve","ctorString","hasFunc","reHasUnicode","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","type","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","exec","IE_PROTO","assocIndexOf","splice","getMapData","forEach","memoize","overArg","freeGlobal","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","transform","otherArgs","shortOut","nativeNow","Date","now","count","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","match","quote","subString","reWhitespace","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","arrayEvery","baseEvery","guard","find","createFind","defaultValue","baseHasIn","hasPath","baseIsArguments","stubFalse","Buffer","isNumber","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseAssignValue","baseExtremum","baseGt","resolver","memoized","Cache","baseLt","baseProperty","basePropertyDeep","range","createRange","createRound","baseSome","baseOrderBy","baseRest","sortBy","debounce","INFINITY","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","isBinary","baseUniq","upperFirst","createCaseFirst","useLottie","style","animationData","loop","autoplay","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","renderer","assetsPath","rendererSettings","rest","_objectWithoutProperties","_excluded$1","_useState2","_slicedToArray","React","useState","animationLoaded","setAnimationLoaded","animationInstanceRef","useRef","animationContainer","play","_a","stop","pause","setSpeed","speed","goToAndPlay","isFrame","goToAndStop","setDirection","direction","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","destroy","loadAnimation","forcedConfigs","_objectSpread2","container","lottie__default","useEffect","onUnmount","currentRawFrame","setSegment","resetSegments","handler","filter","deregisterList","addEventListener","removeEventListener","deregister","View","React__default","animationContainerRef","animationItem","getContainerVisibility","_container$getBoundin","getBoundingClientRect","top","window","innerHeight","getContainerCursorPosition","cursorX","cursorY","_container$getBoundin2","left","useInitInteractivity","wrapperRef","mode","actions","wrapper","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","action","_ref2","visibility","frames","frameToGo","firstFrame","isPaused","document","cursorModeHandler","handleCursor","_x","_y","pos","_ref3","position","Number","isNaN","xPercent","yPercent","mouseMoveHandler","ev","clientX","clientY","mouseOutHandler","useLottieInteractivity","_ref4","lottieObj","Lottie","_b","_c","interactivity","lottieProps","_excluded","_useLottie","factory","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","prop","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","src","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","iterator","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","userAgent","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","random","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","element","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","target","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","h","g","f","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","Worker","Blob","blob","url","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","id","comp","findComp","__used","JSON","parse","stringify","ks","it","o","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","open","error","send","completeData","payload","animation","onError","createProcess","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","line","lines","keysCount","trim","_markers","markers","_marker","markerData","tm","duration","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","animType","RendererClass","globalData","defs","setProjectInterface","autoloadSegments","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","init","pendingFrame","setLoop","isLooping","getPath","getAssetData","hide","show","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","m","translate","tx","tz","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bounds","bottom","shapeSegmentInverted","pointsType","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","surrogateModifiers","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","getCodePoint","codePoint","second","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","slotFactory","RenderableElement","slots","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","global","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","fetch","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","startTime","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","_extends","excluded","sourceKeys","sourceSymbolKeys","ChevronRight","_ref$size","strokeLinecap","strokeLinejoin","PropTypes","displayName","getOwnPropertyNames","combineComparators","comparatorA","comparatorB","createIsCircular","areItemsEqual","cachedA","cachedB","delete","getStrictProperties","hasOwn","sameValueZeroEqual","OWNER","areArraysEqual","areDatesEqual","getTime","areMapsEqual","aResult","bResult","matchedIndices","aIterable","next","done","bIterable","hasMatch","matchIndex","aKey","aValue","bKey","bValue","areObjectsEqual","$$typeof","areObjectsEqualStrict","descriptorA","descriptorB","configurable","enumerable","writable","arePrimitiveWrappersEqual","areRegExpsEqual","flags","areSetsEqual","areTypedArraysEqual","isView","deepEqual","createCustomEqual","strict","circular","createInternalComparator","createCustomInternalComparator","createState","createCustomConfig","areArraysEqual$1","areMapsEqual$1","areObjectsEqual$1","areSetsEqual$1","createEqualityComparatorConfig","then","createEqualityComparator","meta","createIsEqual","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","setRafTimeout","timeout","currTime","shouldUpdate","safeRequestAnimationFrame","_toArray","_arrayWithHoles","iter","from","_iterableToArray","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","createAnimateManager","handleChange","shouldStop","setStyle","_style","_styles","curr","restStyles","subscribe","_handleChange","ownKeys","_objectSpread","_defineProperty","getOwnPropertyDescriptors","arg","input","hint","prim","toPrimitive","res","_toPrimitive","_toPropertyKey","param","mapObject","reduce","getTransitionVal","easing","return","_iterableToArrayLimit","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","ACCURACY","cubicBezierFactor","multyTime","cubicBezier","configBezier","_len","_key","_easing$1$split$0$spl2","parseFloat","every","curveX","curveY","derCurveX","newParams","bezier","evalT","derVal","isStepper","configEasing","_len2","_key2","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","configSpring","alpha","begin","needContinue","calStepperVals","preVals","steps","nextStepVals","_easing2","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","currStyle","finalStyle","cancelAnimationFrame","_defineProperties","descriptor","_setPrototypeOf","setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","Animate","_PureComponent","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_this$props","isActive","attributeName","handleStyleChange","changeStyle","_this$props2","canBegin","mounted","runAnimation","prevProps","_this$props3","shouldReAnimate","currentFrom","isTriggered","manager","stopJSAnimation","_newState","setState","newState","onAnimationEnd","unSubscribe","_this2","onAnimationStart","startAnimation","configUpdate","_this3","_steps$","initialStyle","_steps$$duration","initialTime","nextItem","_nextItem$easing","nextProperties","preItem","runJSAnimation","transition","newStyle","propsTo","runStepAnimation","_this$props4","others","onAnimationReStart","Children","stateStyle","cloneContainer","_container$props","_container$props$styl","cloneElement","only","child","PureComponent","defaultProps","isRequired","getChildMapping","mapFn","isValidElement","mapper","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","prev","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","in","exit","enter","TransitionGroup","_React$Component","handleExited","contextValue","isMounting","firstRender","_inheritsLoose","_proto","componentDidMount","componentWillUnmount","getDerivedStateFromProps","appear","currentChildMapping","Component","childFactory","TransitionGroupContext","Provider","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","prevState","updateStatus","componentDidUpdate","nextStatus","cancelNextCallback","getTimeouts","mounting","nodeRef","ReactDOM","scrollTop","forceReflow","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","contextType","parseDurationOfSingleTransition","AnimateGroupChild","_Component","isAppearing","appearOptions","enterOptions","handleStyleActive","leaveOptions","handleEnter","handleExit","parseTimeout","AnimateGroup","leave","useLayoutEffect","updateRef","libRef","userRef","prevUserRef","useCallback","HIDDEN_TEXTAREA_STYLE","forceHiddenStyles$1","setProperty","hiddenTextarea","getHeight","sizingData","scrollHeight","sizingStyle","boxSizing","borderSize","paddingSize","SIZING_STYLE","isIE","documentElement","getSizingData$1","getComputedStyle","acc","borderRightWidth","borderLeftWidth","paddingRight","paddingLeft","paddingBottom","paddingTop","borderBottomWidth","borderTopWidth","useListener","latestListener","useIsomorphicLayoutEffect","useLatest","TextareaAutosize","cacheMeasurements","maxRows","minRows","_ref$onChange","onChange","_ref$onHeightChange","onHeightChange","isControlled","useComposedRef","heightRef","measurementsCacheRef","resizeTextarea","nodeSizingData","_calculateNodeHeight","Infinity","rowHeight","minHeight","maxHeight","calculateNodeHeight","placeholder","useFontsLoadedListener","Cell","_props","_excluded2","defaultAccessor","last","LabelList","_ref$valueAccessor","valueAccessor","restProps","dataKey","clockWise","textBreakAll","Layer","isNil","getValueByDataKey","idProps","Label","filterProps","parentViewBox","parseViewBox","renderCallByParent","parentProps","checkPropsLabel","label","explicitChildren","findAllByType","parseLabelList","typeguardBarRectangleProps","xProp","yProp","option","xValue","yValue","heightValue","widthValue","BarRectangle","Shape","shapeType","propTransformer","activeClassName","_Bar","_callSuper","Bar","isAnimationFinished","uniqueId","animationId","prevAnimationId","curData","prevData","activeIndex","activeBar","baseProps","handleAnimationStart","handleAnimationEnd","adaptEventsOfChild","layout","isAnimationActive","animationBegin","animationDuration","animationEasing","stepData","interpolatorX","interpolateNumber","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","interpolator","renderRectanglesStatically","isEqual","renderRectanglesWithAnimation","backgroundProps","background","needClip","clipPathId","_this$props5","xAxis","yAxis","errorBarItems","ErrorBar","dataPointFormatter","dataPoint","errorVal","errorBarProps","clipPath","_this$props6","layerClass","clsx","needClipX","allowDataOverflow","needClipY","renderBackground","renderRectangles","renderErrorBar","xAxisId","yAxisId","legendType","minPointSize","Global","isSsr","barPosition","bandSize","xAxisTicks","yAxisTicks","stackedData","dataStartIndex","displayedData","findPositionOfBar","_item$props","minPointSizeProp","numericAxis","stackedDomain","domain","baseValue","getBaseValueOfBar","cells","rects","truncateByDomain","isValueNumber","invariant","minPointSizeCallback","baseValueScale","currentValueScale","getCateCoordinateOfBar","axis","ticks","computedHeight","mathSign","_ref5","_baseValueScale","_currentValueScale","tooltipPayload","getTooltipItem","tooltipPosition","getEveryNthWithCondition","isValid","tickPosition","getSize","getTicks","tick","minTickGap","interval","tickFormatter","unit","getNumberIntervalTicks","candidates","sizeKey","unitSize","getStringSize","getTickSize","contentSize","getAngledRectangleWidth","getAngledTickWidth","coordinate","boundaries","isWidth","getTickBoundaries","_ret","initialStart","stepsize","_loop","tickCoord","isShow","getEquidistantTicks","preserveEnd","tail","tailSize","tailGap","_loop2","gap","getTicksStart","getTicksEnd","_excluded3","CartesianAxis","Text","viewBoxOld","restPropsOld","shallowEqual","htmlLayer","layerReference","tickSize","mirror","tickMargin","finalTickSize","textAnchor","verticalAnchor","axisLine","needHeight","needWidth","tickLine","finalTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this2$getTickLineCoo","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","_this$props7","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","svgProps","errorBars","_dataPointFormatter","lowBound","highBound","lineCoordinates","_errorVal","yMid","yMin","xMin","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","XAxis","useChartWidth","useChartHeight","axisOptions","useXAxisOrThrow","axisType","getTicksOfAxis","allowDecimals","tickCount","padding","reversed","allowDuplicatedCategory","YAxis","useYAxisOrThrow","defaultFormatter","isNumOrStr","DefaultTooltipContent","_props$separator","separator","_props$contentStyle","contentStyle","_props$itemStyle","itemStyle","_props$labelStyle","labelStyle","formatter","itemSorter","wrapperClassName","labelClassName","labelFormatter","_props$accessibilityL","accessibilityLayer","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","role","finalItemStyle","finalFormatter","finalName","formatted","_formatted","renderContent","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","getTooltipCSSClassName","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","reverseDirection","tooltipDimension","viewBoxDimension","negative","positive","TooltipBoundingBox","dismissed","dismissedAtCoordinate","lastBoundingBox","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","wrapperNode","handleKeyDown","updateBBox","_this$props$coordinat5","_this$props$coordinat6","hasPayload","useTranslate3d","wrapperStyle","_getTooltipTranslate","tooltipBox","cssProperties","getTransformStyle","cssClasses","getTooltipTranslate","outerStyle","pointerEvents","tabIndex","defaultUniqBy","Tooltip","filterNull","payloadUniqBy","finalPayload","getUniqPayload","includeHidden","cursor","cursorStyle","Dot","adaptEventHandlers","PREFIX_LIST","isTouch","changedTouches","Brush","leaveTimer","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleDrag","onDragEnd","startIndex","detachDragEndListener","handleDragEnd","leaveTimeOut","isTextActive","slideMoveStartX","pageX","attachDragEndListener","travellerDragStartHandlers","startX","handleTravellerDragStart","endX","lineY","renderDefaultTraveller","travellerWidth","updateId","prevUpdateId","prevTravellerWidth","prevX","prevWidth","scalePoint","scaleValues","isTravellerFocused","createScale","valueRange","middle","minIndex","getIndexInRange","maxIndex","_this$state","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$state2","prevValue","isFullGap","_this$state3","currentScaleValue","newScaleValue","chartElement","compact","travellerX","_data$startIndex","_data$endIndex","traveller","travellerProps","ariaLabelBrush","onMouseEnter","handleEnterSlideOrTraveller","onMouseLeave","handleLeaveSlideOrTraveller","onMouseDown","onTouchStart","onKeyDown","preventDefault","stopPropagation","handleTravellerMoveKeyboard","onFocus","onBlur","renderTraveller","_this$props9","handleSlideDragStart","fillOpacity","_this$props10","_this$state4","attrs","getTextOfTick","_this$props11","alwaysShowText","_this$state5","isPanoramic","camelName","toUpperCase","generatePrefixStyle","handleLeaveWrapper","onTouchMove","handleTouchMove","renderPanorama","renderSlide","renderTravellerLayer","renderText","ifOverflowMatches","alwaysShow","ifOverflow","ReferenceDot","isX","isY","scales","createLabeledScales","bandAware","getCoordinate","dotProps","renderDot","isFront","ReferenceLine","fixedX","fixedY","useClipPathId","useViewBox","endPoints","isFixedX","isFixedY","isSegment","xAxisOrientation","yAxisOrientation","yCoord","coord","xCoord","_coord","_points","_points2","some","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","rectWithCoords","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","rangeMin","rangeMax","rectWithPoints","getRect","renderRect","Rectangle","detectReferenceElementsDomain","axisId","specifiedTicks","dots","areas","idKey","valueKey","finalDomain","el","key1","key2","eventCenter","SYNC_EVENT","AccessibilityManager","_ref$coordinateList","coordinateList","_ref$container","_ref$layout","_ref$offset","_ref$mouseHandlerCall","mouseHandlerCallback","spoofMouse","_window","_window2","_this$container$getBo","scrollOffsetX","scrollX","scrollOffsetY","scrollY","pageY","that","_context","_x0","_x1","_y0","_y1","Basis","BasisClosed","BasisOpen","areaStart","_line","areaEnd","NaN","lineStart","_point","lineEnd","_x2","_x3","_x4","_y2","_y3","_y4","x0","y0","Bump","LinearClosed","Linear","slope3","h0","slope2","dx","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","Step","_t0","i0","defined","curve","curveLinear","output","withPath","defined0","pointX","pointY","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveBumpX","curveBumpY","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","lineFunction","_ref$type","_ref$points","baseLine","_ref$connectNulls","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","Curve","pathRef","realPath","Cross","_ref$x","_ref$y","_ref$top","_ref$left","_ref$width","_ref$height","getRadialCursorPoints","activeCoordinate","startAngle","endAngle","polarToCartesian","getCursorPoints","innerPoint","outerPoint","Cursor","tooltipEventType","activePayload","activeTooltipIndex","tooltipAxisBandSize","chartName","cursorComp","halfSize","getCursorRectangle","_getRadialCursorPoint","Sector","cursorProps","payloadIndex","ORIENT_MAP","FULL_WIDTH_AND_HEIGHT","originCoordinate","renderAsIs","getDisplayedData","graphicalItems","dataEndIndex","getDefaultDomainByAxisType","getTooltipContent","chartData","activeLabel","tooltipAxis","_child$props$data","findEntryInArray","getTooltipData","rangeObj","rangeData","chartX","chartY","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","calculateActiveTickIndex","_angle","_radius","getActiveCoordinate","getAxisMapByAxes","axes","axisIdKey","stackGroups","stackOffset","isCategorical","isCategoricalAxis","_child$props$domain2","_child$props","duplicateDomain","categoricalDomain","domainStart","domainEnd","isDomainSpecifiedByUser","parseSpecifiedDomain","getDomainOfDataByKey","defaultDomain","_child$props$domain","childDomain","hasDuplicate","parseDomainOfCategoryAxis","errorBarsDomain","parseErrorBarsOfAxis","hasStack","getDomainOfStackGroups","getDomainOfItemsWithSameAxis","axisDomain","originalDomain","getAxisMap","_ref4$axisType","AxisComp","axisMap","Axis","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","findChildByType","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","getCartesianAxisSize","axisObj","axisName","BarChart","_ref6","_CategoricalChartWrapper","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","legendContent","formatAxisMap","getFormatItems","currentState","barSize","barGap","barCategoryGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasBar","getDisplayName","hasGraphicalBarItem","formattedItems","childMaxBarSize","numericAxisId","cateAxisId","cateAxis","cateTicks","getStackedDataOfItem","itemIsBar","getBandSizeOfAxis","sizeList","getBarSizeList","totalSize","_ref7","_getBandSizeOfAxis","barBandSize","getBarPosition","composedFn","getComposedData","childIndex","parseChildIndex","updateStateOfAxisMapsOffsetAndStackGroups","_ref8","validateWidthHeight","reverseStackOrder","_getAxisNameByLayout2","getStackGroupsByAxisId","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","legendItem","Legend","offsetH","offsetV","brushBottom","appendOffsetOfLegend","calculateOffset","legendBBox","ticksObj","getAnyElementOfObject","tooltipTicksGenerator","formattedGraphicalItems","CategoricalChartWrapper","_props$id","_props$throttleDelay","cId","syncId","eventEmitterSymbol","syncMethod","applySyncEvent","_ref9","triggerSyncEvent","mouse","getMouseInfo","_nextState","onMouseMove","activeItem","persist","throttleTriggeredAfterMouseMove","_mouse","getReactEventByType","_nextState2","onClick","onMouseUp","handleMouseDown","handleMouseUp","validateChartX","validateChartY","_element$props$active","getTooltipEventType","axisOption","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","legendWidth","getLegendProps","otherProps","chartWidth","chartHeight","onBBoxUpdate","handleLegendBBoxUpdate","_tooltipItem$props$ac","tooltipItem","_this$state6","combineEventHandlers","handleBrushChange","_this$state7","_element$props2","_ref10","activePoint","basePoint","isRange","_item$item$props","activeDot","getMainColorOfGraphicItem","renderActiveDot","filterFormatItem","_this$state8","_item$props2","_item$item$props2","activeShape","hasActive","itemEvents","handleItemMouseEnter","handleItemMouseLeave","graphicalItem","_this$getItemByXY","_ref11$graphicalItem","getItemByXY","_ref11$graphicalItem$","xyItem","elementProps","specifiedKey","renderActivePoints","CartesianGrid","renderReferenceElement","renderBrush","renderGraphicChild","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","renderCursor","PolarGrid","renderPolarGrid","PolarAngleAxis","renderPolarAxis","PolarRadiusAxis","Customized","renderCustomized","throttle","triggeredAfterMouseMove","throttleDelay","_this$props$margin$le","_this$props$margin$to","accessibilityManager","setDetails","displayDefaultTooltip","tooltipElem","defaultIndex","independentAxisCoord","dependentAxisCoord","scatterPlotElement","_ref12","setIndex","_this$props$margin$le2","_this$props$margin$to2","isChildrenEqual","shared","eventType","boundingRect","containerOffset","getOffset","inRange","_this$state9","xScale","yScale","invert","toolTipData","scaledX","scaledY","_this$state10","inRangeOfSector","tooltipEvents","handleClick","handleMouseEnter","handleMouseMove","handleMouseLeave","handleTouchStart","onTouchEnd","handleTouchEnd","handleOuterEvent","handleReceiveSyncEvent","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$yAxisMap","chartXY","_this$state11","itemDisplayName","activeBarItem","isInRectangle","_activeBarItem","isFunnel","isPie","isScatter","getActiveShapeIndexForTooltip","activeTooltipItem","_this$props$tabIndex","_this$props$role","desc","ChartLayoutContextProvider","Surface","renderClipPath","renderByOrder","renderMap","keyboardEvent","focus","parseEventsOfWrapper","renderLegend","renderTooltip","defaultState","prevDataKey","prevHeight","prevLayout","prevStackOffset","prevMargin","prevChildren","_defaultState","keepFromPrevState","updatesToState","_brush$props$startInd","_brush$props","_brush$props$endIndex","_brush$props2","brush","hasDifferentStartOrEndIndex","newUpdateId","dot","generateCategoricalChart","getLabel","renderRadialLabel","labelProps","labelAngle","deltaAngle","getDeltaAngle","dominantBaseline","xlinkHref","getAttrsOfPolarLabel","midAngle","_polarToCartesian","_polarToCartesian2","getAttrsOfCartesianLabel","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","isPercent","getPercentValue","isPolar","_ref4$offset","_props$className","isPolarLabel","positionAttrs","breakAll","labelViewBox","implicitLabel","parseLabel","SIZE","DefaultLegendContent","inactiveColor","sixthSize","thirdSize","inactive","strokeDasharray","legendIcon","iconProps","Symbols","sizeType","iconSize","marginRight","verticalAlign","entryValue","renderIcon","align","textAlign","renderItems","_box","hPos","vPos","getBBoxSnapshot","getDefaultPosition","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","pc","Q","FIXED_CSS_LENGTH_UNITS","STR_NAN","DecimalCSS","convertToPx","_NUM_SPLIT_REGEX$exec","numStr","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","rTs","_ADD_OR_SUBTRACT_REGE","_leftOperand","_operator","_rightOperand","_lTs","_rTs","_result","PARENTHESES_REGEX","evaluateExpression","parentheticalExpression","calculateParentheses","reduceCSSCalc","safeEvaluateExpression","BREAKING_SPACES","calculateWordWidths","words","wordsWithComputedWidth","word","spaceWidth","getWordsWithoutCalculate","getWordsByLines","scaleToFit","maxLines","wordWidths","initialWordsWithComputedWith","shouldLimitLines","calculate","newLine","originalResult","trimmedResult","checkOverflow","tempText","doesOverflow","findLongestLine","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","DEFAULT_FILL","_ref5$x","propsX","_ref5$y","propsY","_ref5$lineHeight","_ref5$capHeight","capHeight","_ref5$scaleToFit","_ref5$textAnchor","_ref5$verticalAnchor","_ref5$fill","wordsByLines","useMemo","dy","textProps","startDy","svgView","calculateViewBox","XAxisContext","createContext","YAxisContext","ViewBoxContext","OffsetContext","ClipPathIdContext","ChartHeightContext","ChartWidthContext","_props$state","useContext","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","minX","maxX","minY","maxY","isUpdateAnimationActive","rectangleProps","setTotalLength","pathTotalLength","currWidth","currHeight","currY","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","RADIAN","centerAngle","lineTangencyAngle","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","sectorProps","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","tau","draw","arc","tan30","tan30_2","kr","kx","ky","sqrt3","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","_ref$sizeType","filteredProps","symbolFactory","getSymbolFactory","circle","shapeSymbol","calculateAreaSize","registerSymbol","getTrapezoidPath","upperWidth","lowerWidth","widthGap","Trapezoid","trapezoidProps","currUpperWidth","currLowerWidth","defaultPropTransformer","ShapeSelector","isSymbolsProps","_ref2$propTransformer","_ref2$activeClassName","getPropsFromShapeOption","isPlainObject","isBoolean","_item","compareFunnel","_activeTooltipItem$la","_activeTooltipItem$la2","xMatches","yMatches","comparePie","startAngleMatches","endAngleMatches","compareScatter","zMatches","shapeKey","getShapeDataKey","_activeItem$tooltipPa","_activeItem$tooltipPa2","getActiveShapeTooltipPayload","activeItemMatches","datum","dataIndex","valuesMatch","mouseCoordinateMatches","comparison","getComparisonFn","indexOfMouseCoordinates","ids","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","_axis$padding","offsetKey","diff","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","parseScale","realScaleType","checkDomainOfScale","getTicksOfScale","finalAxis","ScaleHelper","bandwidth","_offset","_offset2","mapValues","normalizedAngle","normalizeAngle","angleRadians","angleThreshold","angledWidth","e10","e5","tickSpec","power","log10","factor","inc","tickIncrement","tickStep","ascending","descending","bisector","compare1","compare2","lo","hi","zero","ascendingBisect","bisectRight","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","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","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","rgbn","Rgb","rgba","hsla","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","basis","t3","channels","displayable","formatHex8","formatHsl","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","colors","genericArray","nb","na","setTime","reA","reB","am","bs","bi","one","date","numberArray","bimap","interpolate","d0","r0","r1","polymap","bisect","unknown","transformer","untransform","piecewise","rescale","clamper","rangeRound","interpolateRound","continuous","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","comma","formatDecimalParts","coefficient","%","toLocaleString","formatRounded","locale","formatPrefix","prefixes","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","initRange","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","E","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","formatLocale","transformPow","transformSqrt","transformSquare","powish","radial","squared","unsquare","valueof","compareDefined","ascendingDefined","quickselect","swap","quantile","Float64Array","numbers","value0","subarray","quantileSorted","thresholds","invertExtent","quantiles","quantize","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","timeInterval","floori","offseti","field","previous","millisecond","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","initInterpolator","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","r2","I","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","series","order","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","X","utcParse","defaultLocale","stackValue","stackSeries","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","curry","compose","_len3","_key3","fns","firstFn","tailsFn","lastResult","_len4","_key4","rangeStep","getDigitCount","newA","uninterpolateNumber","uninterpolateTruncation","_arr","_n","_d","_e","getValidInterval","validMin","validMax","getFormatStep","roughStep","correctionFactor","digitCount","Arithmetic","digitCountValue","stepRatio","stepRatioScale","formatStep","getTickOfSingleValue","absVal","middleIndex","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval2","cormin","cormax","_values","_calculateStep","getTickValuesFixedDomain","_getValidInterval4","_getValidInterval6","filterNil","flattenData","flatMap","_ticks$length","unsortedTicks","before","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","minValue","maxValue","globalSize","_ref2$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","barItems","selfSize","cateId","stackList","_ref3$sizeList","realBarGap","initialValue","useFull","fullBarSize","newPosition","newRes","originalSize","_unused","legendBox","legendProps","getDomainOfErrorBars","errorBarChild","isErrorBarRelevantForAxis","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","domains","isGrid","isAll","offsetForBand","niceTicks","scaleContent","row","isNan","handlerWeakMap","defaultHandler","childHandler","childWeakMap","combineHandler","chartType","d3Scales","isString","EPS","STACK_OFFSET_MAP","expand","none","stackOffsetNone","silhouette","si","sij0","getStackedData","stackItems","offsetType","dataKeys","offsetAccessor","orderNone","offsetNone","oz","shapeStack","stackOrderNone","_items","stackId","parentGroup","childGroup","opts","scaleType","tickValues","_domain","itemIndex","MIN_VALUE_REG","MAX_VALUE_REG","specifiedDomain","dataDomain","isBar","bandWidth","orderedTicks","calculatedDomain","axisChild","_graphicalItem$props","tooltipType","stringCache","widthCache","cacheCount","SPAN_STYLE","MEASUREMENT_SPAN_ID","copyStyle","copyObj","removeInvalidKeys","cacheKey","measurementSpan","measurementSpanStyle","clientTop","clientLeft","lodashIsNumber","idCounter","totalValue","validate","ary","numberA","numberB","specifiedValue","condition","radianToDegree","angleInRadian","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startCnt","endCnt","sector","_getAngleOfPoint","_formatAngleOfSector","formatAngleOfSector","formatAngle","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","Comp","lastChildren","toArray","isFragment","childType","_el$props","SVG_TAGS","isSvgElement","includeEvents","svgElementType","inputProps","_inputProps","_FilteredElementKeyMa","matchingElementTypeKeys","FilteredElementKeyMap","SVGElementPropKeys","EventKeys","isValidSpreadableProp","nextChildren","isSingleChildEqual","record","results","legendData","sectors","iconType","getWithHeight","uniqBy","PolyElementKeys","polygon","polyline","newHandler","originalHandler","getEventHandlerOfChild","band","ordinal","ordinalRange","paddingInner","paddingOuter","pointish","InternMap","keyof","super","_intern","intern_get","intern_set","intern_delete","implicit","epsilon","tauEpsilon","strings","Path","digits","_append","appendRound","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","ccw","cw","RangeError"],"sourceRoot":""}