1 line
2.3 MiB
1 line
2.3 MiB
{"version":3,"file":"vendor.js","sources":["../../../../node_modules/.pnpm/@vue+shared@3.4.21/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../../../node_modules/.pnpm/@dcloudio+uni-shared@3.0.0-alpha-4010520240507001/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","../../../../node_modules/.pnpm/@dcloudio+uni-i18n@3.0.0-alpha-4010520240507001/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","../../../../node_modules/.pnpm/@dcloudio+uni-mp-weixin@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","../../../../node_modules/.pnpm/@dcloudio+uni-mp-vue@3.0.0-alpha-4010520240507001/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","../../../../node_modules/.pnpm/@dcloudio+uni-mp-weixin@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","../../../../node_modules/.pnpm/@dcloudio+uni-app@3.0.0-alpha-4010520240507001_@dcloudio+types@3.4.8_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-app/dist/uni-app.es.js","../../../../node_modules/.pnpm/pinia@2.0.36_typescript@4.9.5_vue@3.4.21/node_modules/vue-demi/lib/index.mjs","../../../../node_modules/.pnpm/pinia@2.0.36_typescript@4.9.5_vue@3.4.21/node_modules/pinia/dist/pinia.mjs","../../../../node_modules/luch-request/src/lib/utils.js","../../../../node_modules/luch-request/src/lib/helpers/buildURL.js","../../../../node_modules/luch-request/src/lib/helpers/isAbsoluteURL.js","../../../../node_modules/luch-request/src/lib/helpers/combineURLs.js","../../../../node_modules/luch-request/src/lib/core/buildFullPath.js","../../../../node_modules/luch-request/src/lib/core/settle.js","../../../../node_modules/luch-request/src/lib/adapters/index.js","../../../../node_modules/luch-request/src/lib/core/dispatchRequest.js","../../../../node_modules/luch-request/src/lib/core/InterceptorManager.js","../../../../node_modules/luch-request/src/lib/core/mergeConfig.js","../../../../node_modules/luch-request/src/lib/core/defaults.js","../../../../node_modules/luch-request/src/lib/utils/clone.js","../../../../node_modules/luch-request/src/lib/core/Request.js","../../../../node_modules/lodash-es/_freeGlobal.js","../../../../node_modules/lodash-es/_root.js","../../../../node_modules/lodash-es/_Symbol.js","../../../../node_modules/lodash-es/_getRawTag.js","../../../../node_modules/lodash-es/_objectToString.js","../../../../node_modules/lodash-es/_baseGetTag.js","../../../../node_modules/lodash-es/isObjectLike.js","../../../../node_modules/lodash-es/isSymbol.js","../../../../node_modules/lodash-es/_baseToNumber.js","../../../../node_modules/lodash-es/_arrayMap.js","../../../../node_modules/lodash-es/isArray.js","../../../../node_modules/lodash-es/_baseToString.js","../../../../node_modules/lodash-es/_createMathOperation.js","../../../../node_modules/lodash-es/add.js","../../../../node_modules/lodash-es/_trimmedEndIndex.js","../../../../node_modules/lodash-es/_baseTrim.js","../../../../node_modules/lodash-es/isObject.js","../../../../node_modules/lodash-es/toNumber.js","../../../../node_modules/lodash-es/toFinite.js","../../../../node_modules/lodash-es/toInteger.js","../../../../node_modules/lodash-es/after.js","../../../../node_modules/lodash-es/identity.js","../../../../node_modules/lodash-es/isFunction.js","../../../../node_modules/lodash-es/_coreJsData.js","../../../../node_modules/lodash-es/_isMasked.js","../../../../node_modules/lodash-es/_toSource.js","../../../../node_modules/lodash-es/_baseIsNative.js","../../../../node_modules/lodash-es/_getValue.js","../../../../node_modules/lodash-es/_getNative.js","../../../../node_modules/lodash-es/_WeakMap.js","../../../../node_modules/lodash-es/_metaMap.js","../../../../node_modules/lodash-es/_baseSetData.js","../../../../node_modules/lodash-es/_baseCreate.js","../../../../node_modules/lodash-es/_createCtor.js","../../../../node_modules/lodash-es/_createBind.js","../../../../node_modules/lodash-es/_apply.js","../../../../node_modules/lodash-es/_composeArgs.js","../../../../node_modules/lodash-es/_composeArgsRight.js","../../../../node_modules/lodash-es/_countHolders.js","../../../../node_modules/lodash-es/_baseLodash.js","../../../../node_modules/lodash-es/_LazyWrapper.js","../../../../node_modules/lodash-es/noop.js","../../../../node_modules/lodash-es/_getData.js","../../../../node_modules/lodash-es/_realNames.js","../../../../node_modules/lodash-es/_getFuncName.js","../../../../node_modules/lodash-es/_LodashWrapper.js","../../../../node_modules/lodash-es/_copyArray.js","../../../../node_modules/lodash-es/_wrapperClone.js","../../../../node_modules/lodash-es/wrapperLodash.js","../../../../node_modules/lodash-es/_isLaziable.js","../../../../node_modules/lodash-es/_shortOut.js","../../../../node_modules/lodash-es/_setData.js","../../../../node_modules/lodash-es/_getWrapDetails.js","../../../../node_modules/lodash-es/_insertWrapDetails.js","../../../../node_modules/lodash-es/constant.js","../../../../node_modules/lodash-es/_defineProperty.js","../../../../node_modules/lodash-es/_baseSetToString.js","../../../../node_modules/lodash-es/_setToString.js","../../../../node_modules/lodash-es/_arrayEach.js","../../../../node_modules/lodash-es/_baseFindIndex.js","../../../../node_modules/lodash-es/_baseIsNaN.js","../../../../node_modules/lodash-es/_strictIndexOf.js","../../../../node_modules/lodash-es/_baseIndexOf.js","../../../../node_modules/lodash-es/_arrayIncludes.js","../../../../node_modules/lodash-es/_updateWrapDetails.js","../../../../node_modules/lodash-es/_setWrapToString.js","../../../../node_modules/lodash-es/_createRecurry.js","../../../../node_modules/lodash-es/_getHolder.js","../../../../node_modules/lodash-es/_isIndex.js","../../../../node_modules/lodash-es/_reorder.js","../../../../node_modules/lodash-es/_replaceHolders.js","../../../../node_modules/lodash-es/_createHybrid.js","../../../../node_modules/lodash-es/_createCurry.js","../../../../node_modules/lodash-es/_createPartial.js","../../../../node_modules/lodash-es/_mergeData.js","../../../../node_modules/lodash-es/_createWrap.js","../../../../node_modules/lodash-es/ary.js","../../../../node_modules/lodash-es/_baseAssignValue.js","../../../../node_modules/lodash-es/eq.js","../../../../node_modules/lodash-es/_assignValue.js","../../../../node_modules/lodash-es/_copyObject.js","../../../../node_modules/lodash-es/_overRest.js","../../../../node_modules/lodash-es/_baseRest.js","../../../../node_modules/lodash-es/isLength.js","../../../../node_modules/lodash-es/isArrayLike.js","../../../../node_modules/lodash-es/_isIterateeCall.js","../../../../node_modules/lodash-es/_createAssigner.js","../../../../node_modules/lodash-es/_isPrototype.js","../../../../node_modules/lodash-es/_baseTimes.js","../../../../node_modules/lodash-es/_baseIsArguments.js","../../../../node_modules/lodash-es/isArguments.js","../../../../node_modules/lodash-es/stubFalse.js","../../../../node_modules/lodash-es/isBuffer.js","../../../../node_modules/lodash-es/_baseIsTypedArray.js","../../../../node_modules/lodash-es/_baseUnary.js","../../../../node_modules/lodash-es/_nodeUtil.js","../../../../node_modules/lodash-es/isTypedArray.js","../../../../node_modules/lodash-es/_arrayLikeKeys.js","../../../../node_modules/lodash-es/_overArg.js","../../../../node_modules/lodash-es/_nativeKeys.js","../../../../node_modules/lodash-es/_baseKeys.js","../../../../node_modules/lodash-es/keys.js","../../../../node_modules/lodash-es/assign.js","../../../../node_modules/lodash-es/_nativeKeysIn.js","../../../../node_modules/lodash-es/_baseKeysIn.js","../../../../node_modules/lodash-es/keysIn.js","../../../../node_modules/lodash-es/assignIn.js","../../../../node_modules/lodash-es/assignInWith.js","../../../../node_modules/lodash-es/assignWith.js","../../../../node_modules/lodash-es/_isKey.js","../../../../node_modules/lodash-es/_nativeCreate.js","../../../../node_modules/lodash-es/_hashClear.js","../../../../node_modules/lodash-es/_hashDelete.js","../../../../node_modules/lodash-es/_hashGet.js","../../../../node_modules/lodash-es/_hashHas.js","../../../../node_modules/lodash-es/_hashSet.js","../../../../node_modules/lodash-es/_Hash.js","../../../../node_modules/lodash-es/_listCacheClear.js","../../../../node_modules/lodash-es/_assocIndexOf.js","../../../../node_modules/lodash-es/_listCacheDelete.js","../../../../node_modules/lodash-es/_listCacheGet.js","../../../../node_modules/lodash-es/_listCacheHas.js","../../../../node_modules/lodash-es/_listCacheSet.js","../../../../node_modules/lodash-es/_ListCache.js","../../../../node_modules/lodash-es/_Map.js","../../../../node_modules/lodash-es/_mapCacheClear.js","../../../../node_modules/lodash-es/_isKeyable.js","../../../../node_modules/lodash-es/_getMapData.js","../../../../node_modules/lodash-es/_mapCacheDelete.js","../../../../node_modules/lodash-es/_mapCacheGet.js","../../../../node_modules/lodash-es/_mapCacheHas.js","../../../../node_modules/lodash-es/_mapCacheSet.js","../../../../node_modules/lodash-es/_MapCache.js","../../../../node_modules/lodash-es/memoize.js","../../../../node_modules/lodash-es/_memoizeCapped.js","../../../../node_modules/lodash-es/_stringToPath.js","../../../../node_modules/lodash-es/toString.js","../../../../node_modules/lodash-es/_castPath.js","../../../../node_modules/lodash-es/_toKey.js","../../../../node_modules/lodash-es/_baseGet.js","../../../../node_modules/lodash-es/get.js","../../../../node_modules/lodash-es/_baseAt.js","../../../../node_modules/lodash-es/_arrayPush.js","../../../../node_modules/lodash-es/_isFlattenable.js","../../../../node_modules/lodash-es/_baseFlatten.js","../../../../node_modules/lodash-es/flatten.js","../../../../node_modules/lodash-es/_flatRest.js","../../../../node_modules/lodash-es/at.js","../../../../node_modules/lodash-es/_getPrototype.js","../../../../node_modules/lodash-es/isPlainObject.js","../../../../node_modules/lodash-es/isError.js","../../../../node_modules/lodash-es/attempt.js","../../../../node_modules/lodash-es/before.js","../../../../node_modules/lodash-es/bind.js","../../../../node_modules/lodash-es/bindAll.js","../../../../node_modules/lodash-es/bindKey.js","../../../../node_modules/lodash-es/_baseSlice.js","../../../../node_modules/lodash-es/_castSlice.js","../../../../node_modules/lodash-es/_hasUnicode.js","../../../../node_modules/lodash-es/_asciiToArray.js","../../../../node_modules/lodash-es/_unicodeToArray.js","../../../../node_modules/lodash-es/_stringToArray.js","../../../../node_modules/lodash-es/_createCaseFirst.js","../../../../node_modules/lodash-es/upperFirst.js","../../../../node_modules/lodash-es/capitalize.js","../../../../node_modules/lodash-es/_arrayReduce.js","../../../../node_modules/lodash-es/_basePropertyOf.js","../../../../node_modules/lodash-es/_deburrLetter.js","../../../../node_modules/lodash-es/deburr.js","../../../../node_modules/lodash-es/_asciiWords.js","../../../../node_modules/lodash-es/_hasUnicodeWord.js","../../../../node_modules/lodash-es/_unicodeWords.js","../../../../node_modules/lodash-es/words.js","../../../../node_modules/lodash-es/_createCompounder.js","../../../../node_modules/lodash-es/camelCase.js","../../../../node_modules/lodash-es/castArray.js","../../../../node_modules/lodash-es/_createRound.js","../../../../node_modules/lodash-es/ceil.js","../../../../node_modules/lodash-es/chain.js","../../../../node_modules/lodash-es/chunk.js","../../../../node_modules/lodash-es/_baseClamp.js","../../../../node_modules/lodash-es/clamp.js","../../../../node_modules/lodash-es/_stackClear.js","../../../../node_modules/lodash-es/_stackDelete.js","../../../../node_modules/lodash-es/_stackGet.js","../../../../node_modules/lodash-es/_stackHas.js","../../../../node_modules/lodash-es/_stackSet.js","../../../../node_modules/lodash-es/_Stack.js","../../../../node_modules/lodash-es/_baseAssign.js","../../../../node_modules/lodash-es/_baseAssignIn.js","../../../../node_modules/lodash-es/_cloneBuffer.js","../../../../node_modules/lodash-es/_arrayFilter.js","../../../../node_modules/lodash-es/stubArray.js","../../../../node_modules/lodash-es/_getSymbols.js","../../../../node_modules/lodash-es/_copySymbols.js","../../../../node_modules/lodash-es/_getSymbolsIn.js","../../../../node_modules/lodash-es/_copySymbolsIn.js","../../../../node_modules/lodash-es/_baseGetAllKeys.js","../../../../node_modules/lodash-es/_getAllKeys.js","../../../../node_modules/lodash-es/_getAllKeysIn.js","../../../../node_modules/lodash-es/_DataView.js","../../../../node_modules/lodash-es/_Promise.js","../../../../node_modules/lodash-es/_Set.js","../../../../node_modules/lodash-es/_getTag.js","../../../../node_modules/lodash-es/_initCloneArray.js","../../../../node_modules/lodash-es/_Uint8Array.js","../../../../node_modules/lodash-es/_cloneArrayBuffer.js","../../../../node_modules/lodash-es/_cloneDataView.js","../../../../node_modules/lodash-es/_cloneRegExp.js","../../../../node_modules/lodash-es/_cloneSymbol.js","../../../../node_modules/lodash-es/_cloneTypedArray.js","../../../../node_modules/lodash-es/_initCloneByTag.js","../../../../node_modules/lodash-es/_initCloneObject.js","../../../../node_modules/lodash-es/_baseIsMap.js","../../../../node_modules/lodash-es/isMap.js","../../../../node_modules/lodash-es/_baseIsSet.js","../../../../node_modules/lodash-es/isSet.js","../../../../node_modules/lodash-es/_baseClone.js","../../../../node_modules/lodash-es/clone.js","../../../../node_modules/lodash-es/cloneDeep.js","../../../../node_modules/lodash-es/cloneDeepWith.js","../../../../node_modules/lodash-es/cloneWith.js","../../../../node_modules/lodash-es/commit.js","../../../../node_modules/lodash-es/compact.js","../../../../node_modules/lodash-es/concat.js","../../../../node_modules/lodash-es/_setCacheAdd.js","../../../../node_modules/lodash-es/_setCacheHas.js","../../../../node_modules/lodash-es/_SetCache.js","../../../../node_modules/lodash-es/_arraySome.js","../../../../node_modules/lodash-es/_cacheHas.js","../../../../node_modules/lodash-es/_equalArrays.js","../../../../node_modules/lodash-es/_mapToArray.js","../../../../node_modules/lodash-es/_setToArray.js","../../../../node_modules/lodash-es/_equalByTag.js","../../../../node_modules/lodash-es/_equalObjects.js","../../../../node_modules/lodash-es/_baseIsEqualDeep.js","../../../../node_modules/lodash-es/_baseIsEqual.js","../../../../node_modules/lodash-es/_baseIsMatch.js","../../../../node_modules/lodash-es/_isStrictComparable.js","../../../../node_modules/lodash-es/_getMatchData.js","../../../../node_modules/lodash-es/_matchesStrictComparable.js","../../../../node_modules/lodash-es/_baseMatches.js","../../../../node_modules/lodash-es/_baseHasIn.js","../../../../node_modules/lodash-es/_hasPath.js","../../../../node_modules/lodash-es/hasIn.js","../../../../node_modules/lodash-es/_baseMatchesProperty.js","../../../../node_modules/lodash-es/_baseProperty.js","../../../../node_modules/lodash-es/_basePropertyDeep.js","../../../../node_modules/lodash-es/property.js","../../../../node_modules/lodash-es/_baseIteratee.js","../../../../node_modules/lodash-es/cond.js","../../../../node_modules/lodash-es/_baseConformsTo.js","../../../../node_modules/lodash-es/_baseConforms.js","../../../../node_modules/lodash-es/conforms.js","../../../../node_modules/lodash-es/conformsTo.js","../../../../node_modules/lodash-es/_arrayAggregator.js","../../../../node_modules/lodash-es/_createBaseFor.js","../../../../node_modules/lodash-es/_baseFor.js","../../../../node_modules/lodash-es/_baseForOwn.js","../../../../node_modules/lodash-es/_createBaseEach.js","../../../../node_modules/lodash-es/_baseEach.js","../../../../node_modules/lodash-es/_baseAggregator.js","../../../../node_modules/lodash-es/_createAggregator.js","../../../../node_modules/lodash-es/countBy.js","../../../../node_modules/lodash-es/create.js","../../../../node_modules/lodash-es/curry.js","../../../../node_modules/lodash-es/curryRight.js","../../../../node_modules/lodash-es/now.js","../../../../node_modules/lodash-es/debounce.js","../../../../node_modules/lodash-es/defaultTo.js","../../../../node_modules/lodash-es/defaults.js","../../../../node_modules/lodash-es/_assignMergeValue.js","../../../../node_modules/lodash-es/isArrayLikeObject.js","../../../../node_modules/lodash-es/_safeGet.js","../../../../node_modules/lodash-es/toPlainObject.js","../../../../node_modules/lodash-es/_baseMergeDeep.js","../../../../node_modules/lodash-es/_baseMerge.js","../../../../node_modules/lodash-es/_customDefaultsMerge.js","../../../../node_modules/lodash-es/mergeWith.js","../../../../node_modules/lodash-es/defaultsDeep.js","../../../../node_modules/lodash-es/_baseDelay.js","../../../../node_modules/lodash-es/defer.js","../../../../node_modules/lodash-es/delay.js","../../../../node_modules/lodash-es/_arrayIncludesWith.js","../../../../node_modules/lodash-es/_baseDifference.js","../../../../node_modules/lodash-es/difference.js","../../../../node_modules/lodash-es/last.js","../../../../node_modules/lodash-es/differenceBy.js","../../../../node_modules/lodash-es/differenceWith.js","../../../../node_modules/lodash-es/divide.js","../../../../node_modules/lodash-es/drop.js","../../../../node_modules/lodash-es/dropRight.js","../../../../node_modules/lodash-es/_baseWhile.js","../../../../node_modules/lodash-es/dropRightWhile.js","../../../../node_modules/lodash-es/dropWhile.js","../../../../node_modules/lodash-es/_castFunction.js","../../../../node_modules/lodash-es/forEach.js","../../../../node_modules/lodash-es/_arrayEachRight.js","../../../../node_modules/lodash-es/_baseForRight.js","../../../../node_modules/lodash-es/_baseForOwnRight.js","../../../../node_modules/lodash-es/_baseEachRight.js","../../../../node_modules/lodash-es/forEachRight.js","../../../../node_modules/lodash-es/endsWith.js","../../../../node_modules/lodash-es/_baseToPairs.js","../../../../node_modules/lodash-es/_setToPairs.js","../../../../node_modules/lodash-es/_createToPairs.js","../../../../node_modules/lodash-es/toPairs.js","../../../../node_modules/lodash-es/toPairsIn.js","../../../../node_modules/lodash-es/_escapeHtmlChar.js","../../../../node_modules/lodash-es/escape.js","../../../../node_modules/lodash-es/escapeRegExp.js","../../../../node_modules/lodash-es/_arrayEvery.js","../../../../node_modules/lodash-es/_baseEvery.js","../../../../node_modules/lodash-es/every.js","../../../../node_modules/lodash-es/toLength.js","../../../../node_modules/lodash-es/_baseFill.js","../../../../node_modules/lodash-es/fill.js","../../../../node_modules/lodash-es/_baseFilter.js","../../../../node_modules/lodash-es/filter.js","../../../../node_modules/lodash-es/_createFind.js","../../../../node_modules/lodash-es/findIndex.js","../../../../node_modules/lodash-es/find.js","../../../../node_modules/lodash-es/_baseFindKey.js","../../../../node_modules/lodash-es/findKey.js","../../../../node_modules/lodash-es/findLastIndex.js","../../../../node_modules/lodash-es/findLast.js","../../../../node_modules/lodash-es/findLastKey.js","../../../../node_modules/lodash-es/head.js","../../../../node_modules/lodash-es/_baseMap.js","../../../../node_modules/lodash-es/map.js","../../../../node_modules/lodash-es/flatMap.js","../../../../node_modules/lodash-es/flatMapDeep.js","../../../../node_modules/lodash-es/flatMapDepth.js","../../../../node_modules/lodash-es/flattenDeep.js","../../../../node_modules/lodash-es/flattenDepth.js","../../../../node_modules/lodash-es/flip.js","../../../../node_modules/lodash-es/floor.js","../../../../node_modules/lodash-es/_createFlow.js","../../../../node_modules/lodash-es/flow.js","../../../../node_modules/lodash-es/flowRight.js","../../../../node_modules/lodash-es/forIn.js","../../../../node_modules/lodash-es/forInRight.js","../../../../node_modules/lodash-es/forOwn.js","../../../../node_modules/lodash-es/forOwnRight.js","../../../../node_modules/lodash-es/fromPairs.js","../../../../node_modules/lodash-es/_baseFunctions.js","../../../../node_modules/lodash-es/functions.js","../../../../node_modules/lodash-es/functionsIn.js","../../../../node_modules/lodash-es/groupBy.js","../../../../node_modules/lodash-es/_baseGt.js","../../../../node_modules/lodash-es/_createRelationalOperation.js","../../../../node_modules/lodash-es/gt.js","../../../../node_modules/lodash-es/gte.js","../../../../node_modules/lodash-es/_baseHas.js","../../../../node_modules/lodash-es/has.js","../../../../node_modules/lodash-es/_baseInRange.js","../../../../node_modules/lodash-es/inRange.js","../../../../node_modules/lodash-es/isString.js","../../../../node_modules/lodash-es/_baseValues.js","../../../../node_modules/lodash-es/values.js","../../../../node_modules/lodash-es/includes.js","../../../../node_modules/lodash-es/indexOf.js","../../../../node_modules/lodash-es/initial.js","../../../../node_modules/lodash-es/_baseIntersection.js","../../../../node_modules/lodash-es/_castArrayLikeObject.js","../../../../node_modules/lodash-es/intersection.js","../../../../node_modules/lodash-es/intersectionBy.js","../../../../node_modules/lodash-es/intersectionWith.js","../../../../node_modules/lodash-es/_baseInverter.js","../../../../node_modules/lodash-es/_createInverter.js","../../../../node_modules/lodash-es/invert.js","../../../../node_modules/lodash-es/invertBy.js","../../../../node_modules/lodash-es/_parent.js","../../../../node_modules/lodash-es/_baseInvoke.js","../../../../node_modules/lodash-es/invoke.js","../../../../node_modules/lodash-es/invokeMap.js","../../../../node_modules/lodash-es/_baseIsArrayBuffer.js","../../../../node_modules/lodash-es/isArrayBuffer.js","../../../../node_modules/lodash-es/isBoolean.js","../../../../node_modules/lodash-es/_baseIsDate.js","../../../../node_modules/lodash-es/isDate.js","../../../../node_modules/lodash-es/isElement.js","../../../../node_modules/lodash-es/isEmpty.js","../../../../node_modules/lodash-es/isEqual.js","../../../../node_modules/lodash-es/isEqualWith.js","../../../../node_modules/lodash-es/isFinite.js","../../../../node_modules/lodash-es/isInteger.js","../../../../node_modules/lodash-es/isMatch.js","../../../../node_modules/lodash-es/isMatchWith.js","../../../../node_modules/lodash-es/isNumber.js","../../../../node_modules/lodash-es/isNaN.js","../../../../node_modules/lodash-es/_isMaskable.js","../../../../node_modules/lodash-es/isNative.js","../../../../node_modules/lodash-es/isNil.js","../../../../node_modules/lodash-es/isNull.js","../../../../node_modules/lodash-es/_baseIsRegExp.js","../../../../node_modules/lodash-es/isRegExp.js","../../../../node_modules/lodash-es/isSafeInteger.js","../../../../node_modules/lodash-es/isUndefined.js","../../../../node_modules/lodash-es/isWeakMap.js","../../../../node_modules/lodash-es/isWeakSet.js","../../../../node_modules/lodash-es/iteratee.js","../../../../node_modules/lodash-es/join.js","../../../../node_modules/lodash-es/kebabCase.js","../../../../node_modules/lodash-es/keyBy.js","../../../../node_modules/lodash-es/_strictLastIndexOf.js","../../../../node_modules/lodash-es/lastIndexOf.js","../../../../node_modules/lodash-es/lowerCase.js","../../../../node_modules/lodash-es/lowerFirst.js","../../../../node_modules/lodash-es/_baseLt.js","../../../../node_modules/lodash-es/lt.js","../../../../node_modules/lodash-es/lte.js","../../../../node_modules/lodash-es/mapKeys.js","../../../../node_modules/lodash-es/mapValues.js","../../../../node_modules/lodash-es/matches.js","../../../../node_modules/lodash-es/matchesProperty.js","../../../../node_modules/lodash-es/_baseExtremum.js","../../../../node_modules/lodash-es/max.js","../../../../node_modules/lodash-es/maxBy.js","../../../../node_modules/lodash-es/_baseSum.js","../../../../node_modules/lodash-es/_baseMean.js","../../../../node_modules/lodash-es/mean.js","../../../../node_modules/lodash-es/meanBy.js","../../../../node_modules/lodash-es/merge.js","../../../../node_modules/lodash-es/method.js","../../../../node_modules/lodash-es/methodOf.js","../../../../node_modules/lodash-es/min.js","../../../../node_modules/lodash-es/minBy.js","../../../../node_modules/lodash-es/mixin.js","../../../../node_modules/lodash-es/multiply.js","../../../../node_modules/lodash-es/negate.js","../../../../node_modules/lodash-es/_iteratorToArray.js","../../../../node_modules/lodash-es/toArray.js","../../../../node_modules/lodash-es/next.js","../../../../node_modules/lodash-es/_baseNth.js","../../../../node_modules/lodash-es/nth.js","../../../../node_modules/lodash-es/nthArg.js","../../../../node_modules/lodash-es/_baseUnset.js","../../../../node_modules/lodash-es/_customOmitClone.js","../../../../node_modules/lodash-es/omit.js","../../../../node_modules/lodash-es/_baseSet.js","../../../../node_modules/lodash-es/_basePickBy.js","../../../../node_modules/lodash-es/pickBy.js","../../../../node_modules/lodash-es/omitBy.js","../../../../node_modules/lodash-es/once.js","../../../../node_modules/lodash-es/_baseSortBy.js","../../../../node_modules/lodash-es/_compareAscending.js","../../../../node_modules/lodash-es/_compareMultiple.js","../../../../node_modules/lodash-es/_baseOrderBy.js","../../../../node_modules/lodash-es/orderBy.js","../../../../node_modules/lodash-es/_createOver.js","../../../../node_modules/lodash-es/over.js","../../../../node_modules/lodash-es/_castRest.js","../../../../node_modules/lodash-es/overArgs.js","../../../../node_modules/lodash-es/overEvery.js","../../../../node_modules/lodash-es/overSome.js","../../../../node_modules/lodash-es/_baseRepeat.js","../../../../node_modules/lodash-es/_asciiSize.js","../../../../node_modules/lodash-es/_unicodeSize.js","../../../../node_modules/lodash-es/_stringSize.js","../../../../node_modules/lodash-es/_createPadding.js","../../../../node_modules/lodash-es/pad.js","../../../../node_modules/lodash-es/padEnd.js","../../../../node_modules/lodash-es/padStart.js","../../../../node_modules/lodash-es/parseInt.js","../../../../node_modules/lodash-es/partial.js","../../../../node_modules/lodash-es/partialRight.js","../../../../node_modules/lodash-es/partition.js","../../../../node_modules/lodash-es/_basePick.js","../../../../node_modules/lodash-es/pick.js","../../../../node_modules/lodash-es/plant.js","../../../../node_modules/lodash-es/propertyOf.js","../../../../node_modules/lodash-es/_baseIndexOfWith.js","../../../../node_modules/lodash-es/_basePullAll.js","../../../../node_modules/lodash-es/pullAll.js","../../../../node_modules/lodash-es/pull.js","../../../../node_modules/lodash-es/pullAllBy.js","../../../../node_modules/lodash-es/pullAllWith.js","../../../../node_modules/lodash-es/_basePullAt.js","../../../../node_modules/lodash-es/pullAt.js","../../../../node_modules/lodash-es/_baseRandom.js","../../../../node_modules/lodash-es/random.js","../../../../node_modules/lodash-es/_baseRange.js","../../../../node_modules/lodash-es/_createRange.js","../../../../node_modules/lodash-es/range.js","../../../../node_modules/lodash-es/rangeRight.js","../../../../node_modules/lodash-es/rearg.js","../../../../node_modules/lodash-es/_baseReduce.js","../../../../node_modules/lodash-es/reduce.js","../../../../node_modules/lodash-es/_arrayReduceRight.js","../../../../node_modules/lodash-es/reduceRight.js","../../../../node_modules/lodash-es/reject.js","../../../../node_modules/lodash-es/remove.js","../../../../node_modules/lodash-es/repeat.js","../../../../node_modules/lodash-es/replace.js","../../../../node_modules/lodash-es/rest.js","../../../../node_modules/lodash-es/result.js","../../../../node_modules/lodash-es/reverse.js","../../../../node_modules/lodash-es/round.js","../../../../node_modules/lodash-es/_arraySample.js","../../../../node_modules/lodash-es/_baseSample.js","../../../../node_modules/lodash-es/sample.js","../../../../node_modules/lodash-es/_shuffleSelf.js","../../../../node_modules/lodash-es/_arraySampleSize.js","../../../../node_modules/lodash-es/_baseSampleSize.js","../../../../node_modules/lodash-es/sampleSize.js","../../../../node_modules/lodash-es/set.js","../../../../node_modules/lodash-es/setWith.js","../../../../node_modules/lodash-es/_arrayShuffle.js","../../../../node_modules/lodash-es/_baseShuffle.js","../../../../node_modules/lodash-es/shuffle.js","../../../../node_modules/lodash-es/size.js","../../../../node_modules/lodash-es/slice.js","../../../../node_modules/lodash-es/snakeCase.js","../../../../node_modules/lodash-es/_baseSome.js","../../../../node_modules/lodash-es/some.js","../../../../node_modules/lodash-es/sortBy.js","../../../../node_modules/lodash-es/_baseSortedIndexBy.js","../../../../node_modules/lodash-es/_baseSortedIndex.js","../../../../node_modules/lodash-es/sortedIndex.js","../../../../node_modules/lodash-es/sortedIndexBy.js","../../../../node_modules/lodash-es/sortedIndexOf.js","../../../../node_modules/lodash-es/sortedLastIndex.js","../../../../node_modules/lodash-es/sortedLastIndexBy.js","../../../../node_modules/lodash-es/sortedLastIndexOf.js","../../../../node_modules/lodash-es/_baseSortedUniq.js","../../../../node_modules/lodash-es/sortedUniq.js","../../../../node_modules/lodash-es/sortedUniqBy.js","../../../../node_modules/lodash-es/split.js","../../../../node_modules/lodash-es/spread.js","../../../../node_modules/lodash-es/startCase.js","../../../../node_modules/lodash-es/startsWith.js","../../../../node_modules/lodash-es/stubObject.js","../../../../node_modules/lodash-es/stubString.js","../../../../node_modules/lodash-es/stubTrue.js","../../../../node_modules/lodash-es/subtract.js","../../../../node_modules/lodash-es/sum.js","../../../../node_modules/lodash-es/sumBy.js","../../../../node_modules/lodash-es/tail.js","../../../../node_modules/lodash-es/take.js","../../../../node_modules/lodash-es/takeRight.js","../../../../node_modules/lodash-es/takeRightWhile.js","../../../../node_modules/lodash-es/takeWhile.js","../../../../node_modules/lodash-es/tap.js","../../../../node_modules/lodash-es/_customDefaultsAssignIn.js","../../../../node_modules/lodash-es/_escapeStringChar.js","../../../../node_modules/lodash-es/_reInterpolate.js","../../../../node_modules/lodash-es/_reEscape.js","../../../../node_modules/lodash-es/_reEvaluate.js","../../../../node_modules/lodash-es/templateSettings.js","../../../../node_modules/lodash-es/template.js","../../../../node_modules/lodash-es/throttle.js","../../../../node_modules/lodash-es/thru.js","../../../../node_modules/lodash-es/times.js","../../../../node_modules/lodash-es/toIterator.js","../../../../node_modules/lodash-es/_baseWrapperValue.js","../../../../node_modules/lodash-es/wrapperValue.js","../../../../node_modules/lodash-es/toLower.js","../../../../node_modules/lodash-es/toPath.js","../../../../node_modules/lodash-es/toSafeInteger.js","../../../../node_modules/lodash-es/toUpper.js","../../../../node_modules/lodash-es/transform.js","../../../../node_modules/lodash-es/_charsEndIndex.js","../../../../node_modules/lodash-es/_charsStartIndex.js","../../../../node_modules/lodash-es/trim.js","../../../../node_modules/lodash-es/trimEnd.js","../../../../node_modules/lodash-es/trimStart.js","../../../../node_modules/lodash-es/truncate.js","../../../../node_modules/lodash-es/unary.js","../../../../node_modules/lodash-es/_unescapeHtmlChar.js","../../../../node_modules/lodash-es/unescape.js","../../../../node_modules/lodash-es/_createSet.js","../../../../node_modules/lodash-es/_baseUniq.js","../../../../node_modules/lodash-es/union.js","../../../../node_modules/lodash-es/unionBy.js","../../../../node_modules/lodash-es/unionWith.js","../../../../node_modules/lodash-es/uniq.js","../../../../node_modules/lodash-es/uniqBy.js","../../../../node_modules/lodash-es/uniqWith.js","../../../../node_modules/lodash-es/uniqueId.js","../../../../node_modules/lodash-es/unset.js","../../../../node_modules/lodash-es/unzip.js","../../../../node_modules/lodash-es/unzipWith.js","../../../../node_modules/lodash-es/_baseUpdate.js","../../../../node_modules/lodash-es/update.js","../../../../node_modules/lodash-es/updateWith.js","../../../../node_modules/lodash-es/upperCase.js","../../../../node_modules/lodash-es/valuesIn.js","../../../../node_modules/lodash-es/without.js","../../../../node_modules/lodash-es/wrap.js","../../../../node_modules/lodash-es/wrapperAt.js","../../../../node_modules/lodash-es/wrapperChain.js","../../../../node_modules/lodash-es/wrapperReverse.js","../../../../node_modules/lodash-es/_baseXor.js","../../../../node_modules/lodash-es/xor.js","../../../../node_modules/lodash-es/xorBy.js","../../../../node_modules/lodash-es/xorWith.js","../../../../node_modules/lodash-es/zip.js","../../../../node_modules/lodash-es/_baseZipObject.js","../../../../node_modules/lodash-es/zipObject.js","../../../../node_modules/lodash-es/zipObjectDeep.js","../../../../node_modules/lodash-es/zipWith.js","../../../../node_modules/lodash-es/array.default.js","../../../../node_modules/lodash-es/collection.default.js","../../../../node_modules/lodash-es/date.default.js","../../../../node_modules/lodash-es/function.default.js","../../../../node_modules/lodash-es/lang.default.js","../../../../node_modules/lodash-es/math.default.js","../../../../node_modules/lodash-es/number.default.js","../../../../node_modules/lodash-es/object.default.js","../../../../node_modules/lodash-es/seq.default.js","../../../../node_modules/lodash-es/string.default.js","../../../../node_modules/lodash-es/util.default.js","../../../../node_modules/lodash-es/_lazyClone.js","../../../../node_modules/lodash-es/_lazyReverse.js","../../../../node_modules/lodash-es/_getView.js","../../../../node_modules/lodash-es/_lazyValue.js","../../../../node_modules/lodash-es/lodash.default.js","../../../../node_modules/dayjs/dayjs.min.js","../../../../node_modules/pinia-plugin-persist-uni/dist/pinia-persist-uni.es.js","../../../../node_modules/dayjs/plugin/relativeTime.js","../../../../node_modules/dayjs/plugin/duration.js","../../../../node_modules/dayjs/locale/zh-cn.js","../../../../node_modules/pinia-plugin-persistedstate/dist/index.mjs","../../../../node_modules/.pnpm/@dcloudio+uni-cli-shared@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@intlify/shared/dist/shared.esm-bundler.js","../../../../node_modules/@intlify/message-resolver/dist/message-resolver.esm-bundler.js","../../../../node_modules/@intlify/shared/dist/shared.esm-bundler.js","../../../../node_modules/@intlify/runtime/dist/runtime.esm-bundler.js","../../../../node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","../../../../node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","../../../../node_modules/.pnpm/@dcloudio+uni-cli-shared@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","../../../../node_modules/.pnpm/@dcloudio+uni-cli-shared@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.js","../../../../node_modules/.pnpm/@dcloudio+uni-cli-shared@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-cli-shared/lib/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js","../../../../node_modules/qs/lib/utils.js","../../../../node_modules/qs/lib/formats.js","../../../../node_modules/qs/lib/stringify.js","../../../../node_modules/qs/lib/parse.js","../../../../node_modules/qs/lib/index.js","../../../../node_modules/wot-design-uni/components/common/AbortablePromise.ts","../../../../node_modules/wot-design-uni/components/common/util.ts","../../../../node_modules/wot-design-uni/components/common/props.ts","../../../../node_modules/wot-design-uni/components/wd-icon/types.ts","../../../../node_modules/wot-design-uni/components/wd-status-tip/types.ts","../../../../node_modules/wot-design-uni/components/wd-popup/types.ts","../../../../node_modules/@vant/area-data/dist/index.esm.mjs","../../../../node_modules/wot-design-uni/components/composables/useParent.ts","../../../../node_modules/wot-design-uni/components/wd-checkbox-group/types.ts","../../../../node_modules/wot-design-uni/components/wd-checkbox/types.ts","../../../../node_modules/wot-design-uni/components/wd-img/types.ts","../../../../node_modules/wot-design-uni/components/wd-cell-group/types.ts","../../../../node_modules/wot-design-uni/components/composables/useCell.ts","../../../../node_modules/wot-design-uni/components/wd-picker-view/types.ts","../../../../node_modules/wot-design-uni/components/wd-form/types.ts","../../../../node_modules/wot-design-uni/locale/lang/zh-CN.ts","../../../../node_modules/wot-design-uni/locale/index.ts","../../../../node_modules/wot-design-uni/components/composables/useTranslate.ts","../../../../node_modules/wot-design-uni/components/wd-picker/types.ts","../../../../node_modules/wot-design-uni/components/wd-input-number/types.ts","../../../../node_modules/wot-design-uni/components/wd-loadmore/types.ts","../../../../node_modules/.pnpm/@dcloudio+uni-cloud@3.0.0-alpha-4010520240507001_postcss@8.4.38_vue@3.4.21/node_modules/@dcloudio/uni-cloud/dist/uni-cloud.es.js","../../../../node_modules/wot-design-uni/components/common/base64.ts","../../../../node_modules/wot-design-uni/components/wd-toast/index.ts","../../../../node_modules/wot-design-uni/components/wd-toast/types.ts","../../../../node_modules/wot-design-uni/components/wd-message-box/types.ts","../../../../node_modules/wot-design-uni/components/wd-message-box/index.ts","../../../../node_modules/wot-design-uni/components/wd-config-provider/types.ts","../../../../node_modules/wot-design-uni/components/wd-overlay/types.ts","../../../../node_modules/wot-design-uni/components/composables/usePopover.ts","../../../../node_modules/wot-design-uni/components/common/clickoutside.ts","../../../../node_modules/wot-design-uni/components/composables/useQueue.ts","../../../../node_modules/wot-design-uni/components/wd-popover/types.ts","../../../../node_modules/wot-design-uni/components/wd-search/types.ts","../../../../node_modules/wot-design-uni/components/wd-input/types.ts","../../../../node_modules/wot-design-uni/components/wd-col-picker/types.ts","../../../../node_modules/wot-design-uni/components/composables/useChildren.ts","../../../../node_modules/wot-design-uni/components/wd-divider/types.ts","../../../../node_modules/wot-design-uni/components/wd-loading/types.ts","../../../../node_modules/wot-design-uni/components/wd-transition/types.ts","../../../../node_modules/wot-design-uni/components/wd-button/types.ts","../../../../node_modules/wot-design-uni/components/wd-action-sheet/types.ts"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { isHTMLTag, isSVGTag, hyphenate, camelize, normalizeStyle as normalizeStyle$1, isString, parseStringStyle, isArray, normalizeClass as normalizeClass$1, isFunction, isPlainObject, extend, capitalize } from '@vue/shared';\n\nconst BUILT_IN_TAG_NAMES = [\n 'ad',\n 'ad-content-page',\n 'ad-draw',\n 'audio',\n 'button',\n 'camera',\n 'canvas',\n 'checkbox',\n 'checkbox-group',\n 'cover-image',\n 'cover-view',\n 'editor',\n 'form',\n 'functional-page-navigator',\n 'icon',\n 'image',\n 'input',\n 'label',\n 'live-player',\n 'live-pusher',\n 'map',\n 'movable-area',\n 'movable-view',\n 'navigator',\n 'official-account',\n 'open-data',\n 'picker',\n 'picker-view',\n 'picker-view-column',\n 'progress',\n 'radio',\n 'radio-group',\n 'rich-text',\n 'scroll-view',\n 'slider',\n 'swiper',\n 'swiper-item',\n 'switch',\n 'text',\n 'textarea',\n 'video',\n 'view',\n 'web-view',\n];\nconst BUILT_IN_TAGS = BUILT_IN_TAG_NAMES.map((tag) => 'uni-' + tag);\nconst TAGS = [\n 'app',\n 'layout',\n 'content',\n 'main',\n 'top-window',\n 'left-window',\n 'right-window',\n 'tabbar',\n 'page',\n 'page-head',\n 'page-wrapper',\n 'page-body',\n 'page-refresh',\n 'actionsheet',\n 'modal',\n 'toast',\n 'resize-sensor',\n 'shadow-root',\n].map((tag) => 'uni-' + tag);\nconst NVUE_BUILT_IN_TAGS = [\n 'svg',\n 'view',\n 'a',\n 'div',\n 'img',\n 'image',\n 'text',\n 'span',\n 'input',\n 'textarea',\n 'spinner',\n 'select',\n // slider 被自定义 u-slider 替代\n // 'slider',\n 'slider-neighbor',\n 'indicator',\n 'canvas',\n 'list',\n 'cell',\n 'header',\n 'loading',\n 'loading-indicator',\n 'refresh',\n 'scrollable',\n 'scroller',\n 'video',\n 'web',\n 'embed',\n 'tabbar',\n 'tabheader',\n 'datepicker',\n 'timepicker',\n 'marquee',\n 'countdown',\n 'dc-switch',\n 'waterfall',\n 'richtext',\n 'recycle-list',\n 'u-scalable',\n 'barcode',\n 'gcanvas',\n];\nconst UVUE_BUILT_IN_TAGS = [\n 'loading-indicator',\n 'list-view',\n 'list-item',\n 'swiper',\n 'swiper-item',\n 'rich-text',\n 'sticky-view',\n 'sticky-header',\n 'sticky-section',\n // 自定义\n 'uni-slider',\n // 原生实现\n 'button',\n 'nested-scroll-header',\n 'nested-scroll-body',\n];\nconst UVUE_WEB_BUILT_IN_TAGS = [\n 'list-view',\n 'list-item',\n 'sticky-section',\n 'sticky-header',\n 'cloud-db-element',\n].map((tag) => 'uni-' + tag);\nconst UVUE_IOS_BUILT_IN_TAGS = [\n 'scroll-view',\n 'web-view',\n 'slider',\n 'form',\n 'switch',\n];\nconst NVUE_U_BUILT_IN_TAGS = [\n 'u-text',\n 'u-image',\n 'u-input',\n 'u-textarea',\n 'u-video',\n 'u-web-view',\n 'u-slider',\n 'u-ad',\n 'u-ad-draw',\n 'u-rich-text',\n];\nconst UNI_UI_CONFLICT_TAGS = ['list-item'].map((tag) => 'uni-' + tag);\nfunction isBuiltInComponent(tag) {\n if (UNI_UI_CONFLICT_TAGS.indexOf(tag) !== -1) {\n return false;\n }\n // h5 平台会被转换为 v-uni-\n const realTag = 'uni-' + tag.replace('v-uni-', '');\n // TODO 区分x和非x\n return (BUILT_IN_TAGS.indexOf(realTag) !== -1 ||\n UVUE_WEB_BUILT_IN_TAGS.indexOf(realTag) !== -1);\n}\nfunction isH5CustomElement(tag, isX = false) {\n if (isX && UVUE_WEB_BUILT_IN_TAGS.indexOf(tag) !== -1) {\n return true;\n }\n return TAGS.indexOf(tag) !== -1 || BUILT_IN_TAGS.indexOf(tag) !== -1;\n}\nfunction isUniXElement(name) {\n return /^I?Uni.*Element(?:Impl)?$/.test(name);\n}\nfunction isH5NativeTag(tag) {\n return (tag !== 'head' &&\n (isHTMLTag(tag) || isSVGTag(tag)) &&\n !isBuiltInComponent(tag));\n}\nfunction isAppNativeTag(tag) {\n return isHTMLTag(tag) || isSVGTag(tag) || isBuiltInComponent(tag);\n}\nconst NVUE_CUSTOM_COMPONENTS = [\n 'ad',\n 'ad-draw',\n 'button',\n 'checkbox-group',\n 'checkbox',\n 'form',\n 'icon',\n 'label',\n 'movable-area',\n 'movable-view',\n 'navigator',\n 'picker',\n 'progress',\n 'radio-group',\n 'radio',\n 'rich-text',\n 'swiper-item',\n 'swiper',\n 'switch',\n 'slider',\n 'picker-view',\n 'picker-view-column',\n];\nfunction isAppUVueNativeTag(tag) {\n // 前端实现的内置组件都会注册一个根组件\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n return true;\n }\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (NVUE_CUSTOM_COMPONENTS.includes(tag)) {\n return false;\n }\n if (isBuiltInComponent(tag)) {\n return true;\n }\n // u-text,u-video...\n if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isAppIOSUVueNativeTag(tag) {\n // 前端实现的内置组件都会注册一个根组件\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n return true;\n }\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (UVUE_IOS_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isAppNVueNativeTag(tag) {\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n if (NVUE_CUSTOM_COMPONENTS.includes(tag)) {\n return false;\n }\n if (isBuiltInComponent(tag)) {\n return true;\n }\n // u-text,u-video...\n if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\n return true;\n }\n return false;\n}\nfunction isMiniProgramNativeTag(tag) {\n return isBuiltInComponent(tag);\n}\nfunction createIsCustomElement(tags = []) {\n return function isCustomElement(tag) {\n return tags.includes(tag);\n };\n}\nfunction isComponentTag(tag) {\n return tag[0].toLowerCase() + tag.slice(1) === 'component';\n}\nconst COMPONENT_SELECTOR_PREFIX = 'uni-';\nconst COMPONENT_PREFIX = 'v-' + COMPONENT_SELECTOR_PREFIX;\n\nconst LINEFEED = '\\n';\nconst NAVBAR_HEIGHT = 44;\nconst TABBAR_HEIGHT = 50;\nconst ON_REACH_BOTTOM_DISTANCE = 50;\nconst RESPONSIVE_MIN_WIDTH = 768;\nconst UNI_STORAGE_LOCALE = 'UNI_LOCALE';\n// quickapp-webview 不能使用 default 作为插槽名称\nconst SLOT_DEFAULT_NAME = 'd';\nconst COMPONENT_NAME_PREFIX = 'VUni';\nconst I18N_JSON_DELIMITERS = ['%', '%'];\nconst PRIMARY_COLOR = '#007aff';\nconst SELECTED_COLOR = '#0062cc'; // 选中的颜色,如选项卡默认的选中颜色\nconst BACKGROUND_COLOR = '#f7f7f7'; // 背景色,如标题栏默认背景色\nconst UNI_SSR = '__uniSSR';\nconst UNI_SSR_TITLE = 'title';\nconst UNI_SSR_STORE = 'store';\nconst UNI_SSR_DATA = 'data';\nconst UNI_SSR_GLOBAL_DATA = 'globalData';\nconst SCHEME_RE = /^([a-z-]+:)?\\/\\//i;\nconst DATA_RE = /^data:.*,.*/;\nconst WEB_INVOKE_APPSERVICE = 'WEB_INVOKE_APPSERVICE';\nconst WXS_PROTOCOL = 'wxs://';\nconst JSON_PROTOCOL = 'json://';\nconst WXS_MODULES = 'wxsModules';\nconst RENDERJS_MODULES = 'renderjsModules';\n// lifecycle\n// App and Page\nconst ON_SHOW = 'onShow';\nconst ON_HIDE = 'onHide';\n//App\nconst ON_LAUNCH = 'onLaunch';\nconst ON_ERROR = 'onError';\nconst ON_THEME_CHANGE = 'onThemeChange';\nconst OFF_THEME_CHANGE = 'offThemeChange';\nconst ON_KEYBOARD_HEIGHT_CHANGE = 'onKeyboardHeightChange';\nconst ON_PAGE_NOT_FOUND = 'onPageNotFound';\nconst ON_UNHANDLE_REJECTION = 'onUnhandledRejection';\nconst ON_EXIT = 'onExit';\n//Page\nconst ON_LOAD = 'onLoad';\nconst ON_READY = 'onReady';\nconst ON_UNLOAD = 'onUnload';\n// 百度特有\nconst ON_INIT = 'onInit';\n// 微信特有\nconst ON_SAVE_EXIT_STATE = 'onSaveExitState';\nconst ON_RESIZE = 'onResize';\nconst ON_BACK_PRESS = 'onBackPress';\nconst ON_PAGE_SCROLL = 'onPageScroll';\nconst ON_TAB_ITEM_TAP = 'onTabItemTap';\nconst ON_REACH_BOTTOM = 'onReachBottom';\nconst ON_PULL_DOWN_REFRESH = 'onPullDownRefresh';\nconst ON_SHARE_TIMELINE = 'onShareTimeline';\nconst ON_ADD_TO_FAVORITES = 'onAddToFavorites';\nconst ON_SHARE_APP_MESSAGE = 'onShareAppMessage';\n// navigationBar\nconst ON_NAVIGATION_BAR_BUTTON_TAP = 'onNavigationBarButtonTap';\nconst ON_NAVIGATION_BAR_CHANGE = 'onNavigationBarChange';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = 'onNavigationBarSearchInputClicked';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = 'onNavigationBarSearchInputChanged';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = 'onNavigationBarSearchInputConfirmed';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = 'onNavigationBarSearchInputFocusChanged';\n// framework\nconst ON_APP_ENTER_FOREGROUND = 'onAppEnterForeground';\nconst ON_APP_ENTER_BACKGROUND = 'onAppEnterBackground';\nconst ON_WEB_INVOKE_APP_SERVICE = 'onWebInvokeAppService';\nconst ON_WXS_INVOKE_CALL_METHOD = 'onWxsInvokeCallMethod';\n\nfunction isComponentInternalInstance(vm) {\n return !!vm.appContext;\n}\nfunction resolveComponentInstance(instance) {\n return (instance &&\n (isComponentInternalInstance(instance) ? instance.proxy : instance));\n}\nfunction resolveOwnerVm(vm) {\n if (!vm) {\n return;\n }\n let componentName = vm.type.name;\n while (componentName && isBuiltInComponent(hyphenate(componentName))) {\n // ownerInstance 内置组件需要使用父 vm\n vm = vm.parent;\n componentName = vm.type.name;\n }\n return vm.proxy;\n}\nfunction isElement(el) {\n // Element\n return el.nodeType === 1;\n}\nfunction resolveOwnerEl(instance, multi = false) {\n const { vnode } = instance;\n if (isElement(vnode.el)) {\n return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\n }\n const { subTree } = instance;\n // ShapeFlags.ARRAY_CHILDREN = 1<<4\n if (subTree.shapeFlag & 16) {\n const elemVNodes = subTree.children.filter((vnode) => vnode.el && isElement(vnode.el));\n if (elemVNodes.length > 0) {\n if (multi) {\n return elemVNodes.map((node) => node.el);\n }\n return elemVNodes[0].el;\n }\n }\n return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\n}\nfunction dynamicSlotName(name) {\n return name === 'default' ? SLOT_DEFAULT_NAME : name;\n}\nconst customizeRE = /:/g;\nfunction customizeEvent(str) {\n return camelize(str.replace(customizeRE, '-'));\n}\nfunction normalizeStyle(value) {\n if (value instanceof Map) {\n const styleObject = {};\n value.forEach((value, key) => {\n styleObject[key] = value;\n });\n return normalizeStyle$1(styleObject);\n }\n else if (isString(value)) {\n return parseStringStyle(value);\n }\n else if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else {\n return normalizeStyle$1(value);\n }\n}\nfunction normalizeClass(value) {\n let res = '';\n if (value instanceof Map) {\n value.forEach((value, key) => {\n if (value) {\n res += key + ' ';\n }\n });\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else {\n res = normalizeClass$1(value);\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nlet lastLogTime = 0;\nfunction formatLog(module, ...args) {\n const now = Date.now();\n const diff = lastLogTime ? now - lastLogTime : 0;\n lastLogTime = now;\n return `[${now}][${diff}ms][${module}]:${args\n .map((arg) => JSON.stringify(arg))\n .join(' ')}`;\n}\n\nfunction cache(fn) {\n const cache = Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nfunction cacheStringFunction(fn) {\n return cache(fn);\n}\nfunction getLen(str = '') {\n return ('' + str).replace(/[^\\x00-\\xff]/g, '**').length;\n}\nfunction hasLeadingSlash(str) {\n return str.indexOf('/') === 0;\n}\nfunction addLeadingSlash(str) {\n return hasLeadingSlash(str) ? str : '/' + str;\n}\nfunction removeLeadingSlash(str) {\n return hasLeadingSlash(str) ? str.slice(1) : str;\n}\nconst invokeArrayFns = (fns, arg) => {\n let ret;\n for (let i = 0; i < fns.length; i++) {\n ret = fns[i](arg);\n }\n return ret;\n};\nfunction updateElementStyle(element, styles) {\n for (const attrName in styles) {\n element.style[attrName] = styles[attrName];\n }\n}\nfunction once(fn, ctx = null) {\n let res;\n return ((...args) => {\n if (fn) {\n res = fn.apply(ctx, args);\n fn = null;\n }\n return res;\n });\n}\nconst sanitise = (val) => (val && JSON.parse(JSON.stringify(val))) || val;\nconst _completeValue = (value) => (value > 9 ? value : '0' + value);\nfunction formatDateTime({ date = new Date(), mode = 'date' }) {\n if (mode === 'time') {\n return (_completeValue(date.getHours()) + ':' + _completeValue(date.getMinutes()));\n }\n else {\n return (date.getFullYear() +\n '-' +\n _completeValue(date.getMonth() + 1) +\n '-' +\n _completeValue(date.getDate()));\n }\n}\nfunction callOptions(options, data) {\n options = options || {};\n if (isString(data)) {\n data = {\n errMsg: data,\n };\n }\n if (/:ok$/.test(data.errMsg)) {\n if (isFunction(options.success)) {\n options.success(data);\n }\n }\n else {\n if (isFunction(options.fail)) {\n options.fail(data);\n }\n }\n if (isFunction(options.complete)) {\n options.complete(data);\n }\n}\nfunction getValueByDataPath(obj, path) {\n if (!isString(path)) {\n return;\n }\n path = path.replace(/\\[(\\d+)\\]/g, '.$1');\n const parts = path.split('.');\n let key = parts[0];\n if (!obj) {\n obj = {};\n }\n if (parts.length === 1) {\n return obj[key];\n }\n return getValueByDataPath(obj[key], parts.slice(1).join('.'));\n}\nfunction sortObject(obj) {\n let sortObj = {};\n if (isPlainObject(obj)) {\n Object.keys(obj)\n .sort()\n .forEach((key) => {\n const _key = key;\n sortObj[_key] = obj[_key];\n });\n }\n return !Object.keys(sortObj) ? obj : sortObj;\n}\n\nfunction formatKey(key) {\n return camelize(key.substring(5));\n}\n// question/139181,增加副作用,避免 initCustomDataset 在 build 下被 tree-shaking\nconst initCustomDatasetOnce = /*#__PURE__*/ once(() => {\n const prototype = HTMLElement.prototype;\n const setAttribute = prototype.setAttribute;\n prototype.setAttribute = function (key, value) {\n if (key.startsWith('data-') && this.tagName.startsWith('UNI-')) {\n const dataset = this.__uniDataset ||\n (this.__uniDataset = {});\n dataset[formatKey(key)] = value;\n }\n setAttribute.call(this, key, value);\n };\n const removeAttribute = prototype.removeAttribute;\n prototype.removeAttribute = function (key) {\n if (this.__uniDataset &&\n key.startsWith('data-') &&\n this.tagName.startsWith('UNI-')) {\n delete this.__uniDataset[formatKey(key)];\n }\n removeAttribute.call(this, key);\n };\n});\nfunction getCustomDataset(el) {\n return extend({}, el.dataset, el.__uniDataset);\n}\n\nconst unitRE = new RegExp(`\"[^\"]+\"|'[^']+'|url\\\\([^)]+\\\\)|(\\\\d*\\\\.?\\\\d+)[r|u]px`, 'g');\nfunction toFixed(number, precision) {\n const multiplier = Math.pow(10, precision + 1);\n const wholeNumber = Math.floor(number * multiplier);\n return (Math.round(wholeNumber / 10) * 10) / multiplier;\n}\nconst defaultRpx2Unit = {\n unit: 'rem',\n unitRatio: 10 / 320,\n unitPrecision: 5,\n};\nconst defaultMiniProgramRpx2Unit = {\n unit: 'rpx',\n unitRatio: 1,\n unitPrecision: 1,\n};\nconst defaultNVueRpx2Unit = defaultMiniProgramRpx2Unit;\nfunction createRpx2Unit(unit, unitRatio, unitPrecision) {\n // ignore: rpxCalcIncludeWidth\n return (val) => val.replace(unitRE, (m, $1) => {\n if (!$1) {\n return m;\n }\n if (unitRatio === 1) {\n return `${$1}${unit}`;\n }\n const value = toFixed(parseFloat($1) * unitRatio, unitPrecision);\n return value === 0 ? '0' : `${value}${unit}`;\n });\n}\n\nfunction passive(passive) {\n return { passive };\n}\nfunction normalizeDataset(el) {\n // TODO\n return JSON.parse(JSON.stringify(el.dataset || {}));\n}\nfunction normalizeTarget(el) {\n const { id, offsetTop, offsetLeft } = el;\n return {\n id,\n dataset: getCustomDataset(el),\n offsetTop,\n offsetLeft,\n };\n}\nfunction addFont(family, source, desc) {\n const fonts = document.fonts;\n if (fonts) {\n const fontFace = new FontFace(family, source, desc);\n return fontFace.load().then(() => {\n fonts.add && fonts.add(fontFace);\n });\n }\n return new Promise((resolve) => {\n const style = document.createElement('style');\n const values = [];\n if (desc) {\n const { style, weight, stretch, unicodeRange, variant, featureSettings } = desc;\n style && values.push(`font-style:${style}`);\n weight && values.push(`font-weight:${weight}`);\n stretch && values.push(`font-stretch:${stretch}`);\n unicodeRange && values.push(`unicode-range:${unicodeRange}`);\n variant && values.push(`font-variant:${variant}`);\n featureSettings && values.push(`font-feature-settings:${featureSettings}`);\n }\n style.innerText = `@font-face{font-family:\"${family}\";src:${source};${values.join(';')}}`;\n document.head.appendChild(style);\n resolve();\n });\n}\nfunction scrollTo(scrollTop, duration, isH5) {\n if (isString(scrollTop)) {\n const el = document.querySelector(scrollTop);\n if (el) {\n const { top } = el.getBoundingClientRect();\n scrollTop = top + window.pageYOffset;\n // 如果存在,减去 <uni-page-head> 高度\n const pageHeader = document.querySelector('uni-page-head');\n if (pageHeader) {\n scrollTop -= pageHeader.offsetHeight;\n }\n }\n }\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n const documentElement = document.documentElement;\n const { clientHeight, scrollHeight } = documentElement;\n scrollTop = Math.min(scrollTop, scrollHeight - clientHeight);\n if (duration === 0) {\n // 部分浏览器(比如微信)中 scrollTop 的值需要通过 document.body 来控制\n documentElement.scrollTop = document.body.scrollTop = scrollTop;\n return;\n }\n if (window.scrollY === scrollTop) {\n return;\n }\n const scrollTo = (duration) => {\n if (duration <= 0) {\n window.scrollTo(0, scrollTop);\n return;\n }\n const distaince = scrollTop - window.scrollY;\n requestAnimationFrame(function () {\n window.scrollTo(0, window.scrollY + (distaince / duration) * 10);\n scrollTo(duration - 10);\n });\n };\n scrollTo(duration);\n}\n\nconst encode = encodeURIComponent;\nfunction stringifyQuery(obj, encodeStr = encode) {\n const res = obj\n ? Object.keys(obj)\n .map((key) => {\n let val = obj[key];\n if (typeof val === undefined || val === null) {\n val = '';\n }\n else if (isPlainObject(val)) {\n val = JSON.stringify(val);\n }\n return encodeStr(key) + '=' + encodeStr(val);\n })\n .filter((x) => x.length > 0)\n .join('&')\n : null;\n return res ? `?${res}` : '';\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) { }\n return '' + text;\n}\nfunction decodedQuery(query = {}) {\n const decodedQuery = {};\n Object.keys(query).forEach((name) => {\n try {\n decodedQuery[name] = decode(query[name]);\n }\n catch (e) {\n decodedQuery[name] = query[name];\n }\n });\n return decodedQuery;\n}\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * https://github.com/vuejs/vue-router-next/blob/master/src/query.ts\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n let eqPos = searchParam.indexOf('=');\n let key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n let value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n\nfunction parseUrl(url) {\n const [path, querystring] = url.split('?', 2);\n return {\n path,\n query: parseQuery(querystring || ''),\n };\n}\n\nfunction parseNVueDataset(attr) {\n const dataset = {};\n if (attr) {\n Object.keys(attr).forEach((key) => {\n if (key.indexOf('data-') === 0) {\n dataset[key.replace('data-', '')] = attr[key];\n }\n });\n }\n return dataset;\n}\n\nfunction plusReady(callback) {\n if (!isFunction(callback)) {\n return;\n }\n if (window.plus) {\n return callback();\n }\n document.addEventListener('plusready', callback);\n}\n\nclass DOMException extends Error {\n constructor(message) {\n super(message);\n this.name = 'DOMException';\n }\n}\n\nfunction normalizeEventType(type, options) {\n if (options) {\n if (options.capture) {\n type += 'Capture';\n }\n if (options.once) {\n type += 'Once';\n }\n if (options.passive) {\n type += 'Passive';\n }\n }\n return `on${capitalize(camelize(type))}`;\n}\nclass UniEvent {\n constructor(type, opts) {\n this.defaultPrevented = false;\n this.timeStamp = Date.now();\n this._stop = false;\n this._end = false;\n this.type = type;\n this.bubbles = !!opts.bubbles;\n this.cancelable = !!opts.cancelable;\n }\n preventDefault() {\n this.defaultPrevented = true;\n }\n stopImmediatePropagation() {\n this._end = this._stop = true;\n }\n stopPropagation() {\n this._stop = true;\n }\n}\nfunction createUniEvent(evt) {\n if (evt instanceof UniEvent) {\n return evt;\n }\n const [type] = parseEventName(evt.type);\n const uniEvent = new UniEvent(type, {\n bubbles: false,\n cancelable: false,\n });\n extend(uniEvent, evt);\n return uniEvent;\n}\nclass UniEventTarget {\n constructor() {\n this.listeners = Object.create(null);\n }\n dispatchEvent(evt) {\n const listeners = this.listeners[evt.type];\n if (!listeners) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(formatLog('dispatchEvent', this.nodeId), evt.type, 'not found');\n }\n return false;\n }\n // 格式化事件类型\n const event = createUniEvent(evt);\n const len = listeners.length;\n for (let i = 0; i < len; i++) {\n listeners[i].call(this, event);\n if (event._end) {\n break;\n }\n }\n return event.cancelable && event.defaultPrevented;\n }\n addEventListener(type, listener, options) {\n type = normalizeEventType(type, options);\n (this.listeners[type] || (this.listeners[type] = [])).push(listener);\n }\n removeEventListener(type, callback, options) {\n type = normalizeEventType(type, options);\n const listeners = this.listeners[type];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseEventName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while ((m = name.match(optionsModifierRE))) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n return [hyphenate(name.slice(2)), options];\n}\n\nconst EventModifierFlags = /*#__PURE__*/ (() => {\n return {\n stop: 1,\n prevent: 1 << 1,\n self: 1 << 2,\n };\n})();\nfunction encodeModifier(modifiers) {\n let flag = 0;\n if (modifiers.includes('stop')) {\n flag |= EventModifierFlags.stop;\n }\n if (modifiers.includes('prevent')) {\n flag |= EventModifierFlags.prevent;\n }\n if (modifiers.includes('self')) {\n flag |= EventModifierFlags.self;\n }\n return flag;\n}\n\nconst NODE_TYPE_PAGE = 0;\nconst NODE_TYPE_ELEMENT = 1;\nconst NODE_TYPE_TEXT = 3;\nconst NODE_TYPE_COMMENT = 8;\nfunction sibling(node, type) {\n const { parentNode } = node;\n if (!parentNode) {\n return null;\n }\n const { childNodes } = parentNode;\n return childNodes[childNodes.indexOf(node) + (type === 'n' ? 1 : -1)] || null;\n}\nfunction removeNode(node) {\n const { parentNode } = node;\n if (parentNode) {\n const { childNodes } = parentNode;\n const index = childNodes.indexOf(node);\n if (index > -1) {\n node.parentNode = null;\n childNodes.splice(index, 1);\n }\n }\n}\nfunction checkNodeId(node) {\n if (!node.nodeId && node.pageNode) {\n node.nodeId = node.pageNode.genId();\n }\n}\n// 为优化性能,各平台不使用proxy来实现node的操作拦截,而是直接通过pageNode定制\nclass UniNode extends UniEventTarget {\n constructor(nodeType, nodeName, container) {\n super();\n this.pageNode = null;\n this.parentNode = null;\n this._text = null;\n if (container) {\n const { pageNode } = container;\n if (pageNode) {\n this.pageNode = pageNode;\n this.nodeId = pageNode.genId();\n !pageNode.isUnmounted && pageNode.onCreate(this, nodeName);\n }\n }\n this.nodeType = nodeType;\n this.nodeName = nodeName;\n this.childNodes = [];\n }\n get firstChild() {\n return this.childNodes[0] || null;\n }\n get lastChild() {\n const { childNodes } = this;\n const length = childNodes.length;\n return length ? childNodes[length - 1] : null;\n }\n get nextSibling() {\n return sibling(this, 'n');\n }\n get nodeValue() {\n return null;\n }\n set nodeValue(_val) { }\n get textContent() {\n return this._text || '';\n }\n set textContent(text) {\n this._text = text;\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onTextContent(this, text);\n }\n }\n get parentElement() {\n const { parentNode } = this;\n if (parentNode && parentNode.nodeType === NODE_TYPE_ELEMENT) {\n return parentNode;\n }\n return null;\n }\n get previousSibling() {\n return sibling(this, 'p');\n }\n appendChild(newChild) {\n return this.insertBefore(newChild, null);\n }\n cloneNode(deep) {\n const cloned = extend(Object.create(Object.getPrototypeOf(this)), this);\n const { attributes } = cloned;\n if (attributes) {\n cloned.attributes = extend({}, attributes);\n }\n if (deep) {\n cloned.childNodes = cloned.childNodes.map((childNode) => childNode.cloneNode(true));\n }\n return cloned;\n }\n insertBefore(newChild, refChild) {\n // 先从现在的父节点移除(注意:不能触发onRemoveChild,否则会生成先remove该 id,再 insert)\n removeNode(newChild);\n newChild.pageNode = this.pageNode;\n newChild.parentNode = this;\n checkNodeId(newChild);\n const { childNodes } = this;\n if (refChild) {\n const index = childNodes.indexOf(refChild);\n if (index === -1) {\n throw new DOMException(`Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.`);\n }\n childNodes.splice(index, 0, newChild);\n }\n else {\n childNodes.push(newChild);\n }\n return this.pageNode && !this.pageNode.isUnmounted\n ? this.pageNode.onInsertBefore(this, newChild, refChild)\n : newChild;\n }\n removeChild(oldChild) {\n const { childNodes } = this;\n const index = childNodes.indexOf(oldChild);\n if (index === -1) {\n throw new DOMException(`Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.`);\n }\n oldChild.parentNode = null;\n childNodes.splice(index, 1);\n return this.pageNode && !this.pageNode.isUnmounted\n ? this.pageNode.onRemoveChild(oldChild)\n : oldChild;\n }\n}\nconst ATTR_CLASS = 'class';\nconst ATTR_STYLE = 'style';\nconst ATTR_INNER_HTML = 'innerHTML';\nconst ATTR_TEXT_CONTENT = 'textContent';\nconst ATTR_V_SHOW = '.vShow';\nconst ATTR_V_OWNER_ID = '.vOwnerId';\nconst ATTR_V_RENDERJS = '.vRenderjs';\nconst ATTR_CHANGE_PREFIX = 'change:';\nclass UniBaseNode extends UniNode {\n constructor(nodeType, nodeName, container) {\n super(nodeType, nodeName, container);\n this.attributes = Object.create(null);\n this.style = null;\n this.vShow = null;\n this._html = null;\n }\n get className() {\n return (this.attributes[ATTR_CLASS] || '');\n }\n set className(val) {\n this.setAttribute(ATTR_CLASS, val);\n }\n get innerHTML() {\n return '';\n }\n set innerHTML(html) {\n this._html = html;\n }\n addEventListener(type, listener, options) {\n super.addEventListener(type, listener, options);\n if (this.pageNode && !this.pageNode.isUnmounted) {\n if (listener.wxsEvent) {\n this.pageNode.onAddWxsEvent(this, normalizeEventType(type, options), listener.wxsEvent, encodeModifier(listener.modifiers || []));\n }\n else {\n this.pageNode.onAddEvent(this, normalizeEventType(type, options), encodeModifier(listener.modifiers || []));\n }\n }\n }\n removeEventListener(type, callback, options) {\n super.removeEventListener(type, callback, options);\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onRemoveEvent(this, normalizeEventType(type, options));\n }\n }\n getAttribute(qualifiedName) {\n if (qualifiedName === ATTR_STYLE) {\n return this.style;\n }\n return this.attributes[qualifiedName];\n }\n removeAttribute(qualifiedName) {\n if (qualifiedName == ATTR_STYLE) {\n this.style = null;\n }\n else {\n delete this.attributes[qualifiedName];\n }\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onRemoveAttribute(this, qualifiedName);\n }\n }\n setAttribute(qualifiedName, value) {\n if (qualifiedName === ATTR_STYLE) {\n this.style = value;\n }\n else {\n this.attributes[qualifiedName] = value;\n }\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onSetAttribute(this, qualifiedName, value);\n }\n }\n toJSON({ attr, normalize, } = {}) {\n const { attributes, style, listeners, _text } = this;\n const res = {};\n if (Object.keys(attributes).length) {\n res.a = normalize ? normalize(attributes) : attributes;\n }\n const events = Object.keys(listeners);\n if (events.length) {\n let w = undefined;\n const e = {};\n events.forEach((name) => {\n const handlers = listeners[name];\n if (handlers.length) {\n // 可能存在多个 handler 且不同 modifiers 吗?\n const { wxsEvent, modifiers } = handlers[0];\n const modifier = encodeModifier(modifiers || []);\n if (!wxsEvent) {\n e[name] = modifier;\n }\n else {\n if (!w) {\n w = {};\n }\n w[name] = [normalize ? normalize(wxsEvent) : wxsEvent, modifier];\n }\n }\n });\n res.e = normalize ? normalize(e, false) : e;\n if (w) {\n res.w = normalize ? normalize(w, false) : w;\n }\n }\n if (style !== null) {\n res.s = normalize ? normalize(style) : style;\n }\n if (!attr) {\n res.i = this.nodeId;\n res.n = this.nodeName;\n }\n if (_text !== null) {\n res.t = normalize ? normalize(_text) : _text;\n }\n return res;\n }\n}\n\nclass UniCommentNode extends UniNode {\n constructor(text, container) {\n super(NODE_TYPE_COMMENT, '#comment', container);\n this._text = (process.env.NODE_ENV !== 'production') ? text : '';\n }\n toJSON(opts = {}) {\n // 暂时不传递 text 到 view 层,没啥意义,节省点数据量\n return opts.attr\n ? {}\n : {\n i: this.nodeId,\n };\n // return opts.attr\n // ? { t: this._text as string }\n // : {\n // i: this.nodeId!,\n // t: this._text as string,\n // }\n }\n}\n\nclass UniElement extends UniBaseNode {\n constructor(nodeName, container) {\n super(NODE_TYPE_ELEMENT, nodeName.toUpperCase(), container);\n this.tagName = this.nodeName;\n }\n}\nclass UniInputElement extends UniElement {\n get value() {\n return this.getAttribute('value');\n }\n set value(val) {\n this.setAttribute('value', val);\n }\n}\nclass UniTextAreaElement extends UniInputElement {\n}\n\nclass UniTextNode extends UniBaseNode {\n constructor(text, container) {\n super(NODE_TYPE_TEXT, '#text', container);\n this._text = text;\n }\n get nodeValue() {\n return this._text || '';\n }\n set nodeValue(text) {\n this._text = text;\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onNodeValue(this, text);\n }\n }\n}\n\nconst forcePatchProps = {\n AD: ['data'],\n 'AD-DRAW': ['data'],\n 'LIVE-PLAYER': ['picture-in-picture-mode'],\n MAP: [\n 'markers',\n 'polyline',\n 'circles',\n 'controls',\n 'include-points',\n 'polygons',\n ],\n PICKER: ['range', 'value'],\n 'PICKER-VIEW': ['value'],\n 'RICH-TEXT': ['nodes'],\n VIDEO: ['danmu-list', 'header'],\n 'WEB-VIEW': ['webview-styles'],\n};\nconst forcePatchPropKeys = ['animation'];\n\nconst forcePatchProp = (el, key) => {\n if (forcePatchPropKeys.indexOf(key) > -1) {\n return true;\n }\n const keys = forcePatchProps[el.nodeName];\n if (keys && keys.indexOf(key) > -1) {\n return true;\n }\n return false;\n};\n\nconst ACTION_TYPE_PAGE_CREATE = 1;\nconst ACTION_TYPE_PAGE_CREATED = 2;\nconst ACTION_TYPE_CREATE = 3;\nconst ACTION_TYPE_INSERT = 4;\nconst ACTION_TYPE_REMOVE = 5;\nconst ACTION_TYPE_SET_ATTRIBUTE = 6;\nconst ACTION_TYPE_REMOVE_ATTRIBUTE = 7;\nconst ACTION_TYPE_ADD_EVENT = 8;\nconst ACTION_TYPE_REMOVE_EVENT = 9;\nconst ACTION_TYPE_SET_TEXT = 10;\nconst ACTION_TYPE_ADD_WXS_EVENT = 12;\nconst ACTION_TYPE_PAGE_SCROLL = 15;\nconst ACTION_TYPE_EVENT = 20;\n\n/**\n * 需要手动传入 timer,主要是解决 App 平台的定制 timer\n */\nfunction debounce(fn, delay, { clearTimeout, setTimeout }) {\n let timeout;\n const newFn = function () {\n clearTimeout(timeout);\n const timerFn = () => fn.apply(this, arguments);\n timeout = setTimeout(timerFn, delay);\n };\n newFn.cancel = function () {\n clearTimeout(timeout);\n };\n return newFn;\n}\n\nclass EventChannel {\n constructor(id, events) {\n this.id = id;\n this.listener = {};\n this.emitCache = [];\n if (events) {\n Object.keys(events).forEach((name) => {\n this.on(name, events[name]);\n });\n }\n }\n emit(eventName, ...args) {\n const fns = this.listener[eventName];\n if (!fns) {\n return this.emitCache.push({\n eventName,\n args,\n });\n }\n fns.forEach((opt) => {\n opt.fn.apply(opt.fn, args);\n });\n this.listener[eventName] = fns.filter((opt) => opt.type !== 'once');\n }\n on(eventName, fn) {\n this._addListener(eventName, 'on', fn);\n this._clearCache(eventName);\n }\n once(eventName, fn) {\n this._addListener(eventName, 'once', fn);\n this._clearCache(eventName);\n }\n off(eventName, fn) {\n const fns = this.listener[eventName];\n if (!fns) {\n return;\n }\n if (fn) {\n for (let i = 0; i < fns.length;) {\n if (fns[i].fn === fn) {\n fns.splice(i, 1);\n i--;\n }\n i++;\n }\n }\n else {\n delete this.listener[eventName];\n }\n }\n _clearCache(eventName) {\n for (let index = 0; index < this.emitCache.length; index++) {\n const cache = this.emitCache[index];\n const _name = eventName\n ? cache.eventName === eventName\n ? eventName\n : null\n : cache.eventName;\n if (!_name)\n continue;\n const location = this.emit.apply(this, [_name, ...cache.args]);\n if (typeof location === 'number') {\n this.emitCache.pop();\n continue;\n }\n this.emitCache.splice(index, 1);\n index--;\n }\n }\n _addListener(eventName, type, fn) {\n (this.listener[eventName] || (this.listener[eventName] = [])).push({\n fn,\n type,\n });\n }\n}\n\nconst PAGE_HOOKS = [\n ON_INIT,\n ON_LOAD,\n ON_SHOW,\n ON_HIDE,\n ON_UNLOAD,\n ON_BACK_PRESS,\n ON_PAGE_SCROLL,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_SHARE_TIMELINE,\n ON_SHARE_APP_MESSAGE,\n ON_ADD_TO_FAVORITES,\n ON_SAVE_EXIT_STATE,\n ON_NAVIGATION_BAR_BUTTON_TAP,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nfunction isRootImmediateHook(name) {\n const PAGE_SYNC_HOOKS = [ON_LOAD, ON_SHOW];\n return PAGE_SYNC_HOOKS.indexOf(name) > -1;\n}\n// iOS-X 和安卓一致,on_show 不参与判断,避免引入新的运行时判断,导出两份\nfunction isRootImmediateHookX(name) {\n const PAGE_SYNC_HOOKS = [ON_LOAD];\n return PAGE_SYNC_HOOKS.indexOf(name) > -1;\n}\nfunction isRootHook(name) {\n return PAGE_HOOKS.indexOf(name) > -1;\n}\nconst UniLifecycleHooks = [\n ON_SHOW,\n ON_HIDE,\n ON_LAUNCH,\n ON_ERROR,\n ON_THEME_CHANGE,\n ON_PAGE_NOT_FOUND,\n ON_UNHANDLE_REJECTION,\n ON_EXIT,\n ON_INIT,\n ON_LOAD,\n ON_READY,\n ON_UNLOAD,\n ON_RESIZE,\n ON_BACK_PRESS,\n ON_PAGE_SCROLL,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_SHARE_TIMELINE,\n ON_ADD_TO_FAVORITES,\n ON_SHARE_APP_MESSAGE,\n ON_SAVE_EXIT_STATE,\n ON_NAVIGATION_BAR_BUTTON_TAP,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nconst MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /*#__PURE__*/ (() => {\n return {\n onPageScroll: 1,\n onShareAppMessage: 1 << 1,\n onShareTimeline: 1 << 2,\n };\n})();\nfunction isUniLifecycleHook(name, value, checkType = true) {\n // 检查类型\n if (checkType && !isFunction(value)) {\n return false;\n }\n if (UniLifecycleHooks.indexOf(name) > -1) {\n // 已预定义\n return true;\n }\n else if (name.indexOf('on') === 0) {\n // 以 on 开头\n return true;\n }\n return false;\n}\n\nlet vueApp;\nconst createVueAppHooks = [];\n/**\n * 提供 createApp 的回调事件,方便三方插件接收 App 对象,处理挂靠全局 mixin 之类的逻辑\n */\nfunction onCreateVueApp(hook) {\n // TODO 每个 nvue 页面都会触发\n if (vueApp) {\n return hook(vueApp);\n }\n createVueAppHooks.push(hook);\n}\nfunction invokeCreateVueAppHook(app) {\n vueApp = app;\n createVueAppHooks.forEach((hook) => hook(app));\n}\nconst invokeCreateErrorHandler = once((app, createErrorHandler) => {\n if (isFunction(app._component.onError)) {\n return createErrorHandler(app);\n }\n});\n\nconst E = function () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n};\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx,\n });\n return this;\n },\n once: function (name, callback, ctx) {\n var self = this;\n function listener() {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n },\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n if (evts && callback) {\n for (var i = evts.length - 1; i >= 0; i--) {\n if (evts[i].fn === callback || evts[i].fn._ === callback) {\n evts.splice(i, 1);\n break;\n }\n }\n liveEvents = evts;\n }\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n liveEvents.length ? (e[name] = liveEvents) : delete e[name];\n return this;\n },\n};\nvar E$1 = E;\n\nconst borderStyles = {\n black: 'rgba(0,0,0,0.4)',\n white: 'rgba(255,255,255,0.4)',\n};\nfunction normalizeTabBarStyles(borderStyle) {\n if (borderStyle && borderStyle in borderStyles) {\n return borderStyles[borderStyle];\n }\n return borderStyle;\n}\nfunction normalizeTitleColor(titleColor) {\n return titleColor === 'black' ? '#000000' : '#ffffff';\n}\nfunction normalizeStyles(pageStyle, themeConfig = {}, mode = 'light') {\n const modeStyle = themeConfig[mode];\n const styles = {};\n if (!modeStyle) {\n return pageStyle;\n }\n Object.keys(pageStyle).forEach((key) => {\n let styleItem = pageStyle[key] // Object Array String\n ;\n styles[key] = (() => {\n if (isPlainObject(styleItem)) {\n return normalizeStyles(styleItem, themeConfig, mode);\n }\n else if (isArray(styleItem)) {\n return styleItem.map((item) => isPlainObject(item)\n ? normalizeStyles(item, themeConfig, mode)\n : item);\n }\n else if (isString(styleItem) && styleItem.startsWith('@')) {\n const _key = styleItem.replace('@', '');\n let _styleItem = modeStyle[_key] || styleItem;\n switch (key) {\n case 'titleColor':\n _styleItem = normalizeTitleColor(_styleItem);\n break;\n case 'borderStyle':\n _styleItem = normalizeTabBarStyles(_styleItem);\n break;\n }\n return _styleItem;\n }\n return styleItem;\n })();\n });\n return styles;\n}\n\nfunction getEnvLocale() {\n const { env } = process;\n const lang = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;\n return (lang && lang.replace(/[.:].*/, '')) || 'en';\n}\n\nexport { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_ADD_WXS_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_PAGE_SCROLL, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CHANGE_PREFIX, ATTR_CLASS, ATTR_INNER_HTML, ATTR_STYLE, ATTR_TEXT_CONTENT, ATTR_V_OWNER_ID, ATTR_V_RENDERJS, ATTR_V_SHOW, BACKGROUND_COLOR, BUILT_IN_TAGS, BUILT_IN_TAG_NAMES, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, E$1 as Emitter, EventChannel, EventModifierFlags, I18N_JSON_DELIMITERS, JSON_PROTOCOL, LINEFEED, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, NVUE_BUILT_IN_TAGS, NVUE_U_BUILT_IN_TAGS, OFF_THEME_CHANGE, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_EXIT, ON_HIDE, ON_INIT, ON_KEYBOARD_HEIGHT_CHANGE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_CHANGE, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SAVE_EXIT_STATE, ON_SHARE_APP_MESSAGE, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, ON_WXS_INVOKE_CALL_METHOD, PLUS_RE, PRIMARY_COLOR, RENDERJS_MODULES, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, SLOT_DEFAULT_NAME, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UNI_STORAGE_LOCALE, UNI_UI_CONFLICT_TAGS, UVUE_BUILT_IN_TAGS, UVUE_IOS_BUILT_IN_TAGS, UVUE_WEB_BUILT_IN_TAGS, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniLifecycleHooks, UniNode, UniTextAreaElement, UniTextNode, WEB_INVOKE_APPSERVICE, WXS_MODULES, WXS_PROTOCOL, addFont, addLeadingSlash, borderStyles, cache, cacheStringFunction, callOptions, createIsCustomElement, createRpx2Unit, createUniEvent, customizeEvent, debounce, decode, decodedQuery, defaultMiniProgramRpx2Unit, defaultNVueRpx2Unit, defaultRpx2Unit, dynamicSlotName, forcePatchProp, formatDateTime, formatLog, getCustomDataset, getEnvLocale, getLen, getValueByDataPath, initCustomDatasetOnce, invokeArrayFns, invokeCreateErrorHandler, invokeCreateVueAppHook, isAppIOSUVueNativeTag, isAppNVueNativeTag, isAppNativeTag, isAppUVueNativeTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isMiniProgramNativeTag, isRootHook, isRootImmediateHook, isRootImmediateHookX, isUniLifecycleHook, isUniXElement, normalizeClass, normalizeDataset, normalizeEventType, normalizeProps, normalizeStyle, normalizeStyles, normalizeTabBarStyles, normalizeTarget, normalizeTitleColor, onCreateVueApp, once, parseEventName, parseNVueDataset, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, resolveComponentInstance, resolveOwnerEl, resolveOwnerVm, sanitise, scrollTo, sortObject, stringifyQuery, updateElementStyle };\n","const isObject = (val) => val !== null && typeof val === 'object';\nconst defaultDelimiters = ['{', '}'];\nclass BaseFormatter {\n constructor() {\n this._caches = Object.create(null);\n }\n interpolate(message, values, delimiters = defaultDelimiters) {\n if (!values) {\n return [message];\n }\n let tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message, delimiters);\n this._caches[message] = tokens;\n }\n return compile(tokens, values);\n }\n}\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\nfunction parse(format, [startDelimiter, endDelimiter]) {\n const tokens = [];\n let position = 0;\n let text = '';\n while (position < format.length) {\n let char = format[position++];\n if (char === startDelimiter) {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n text = '';\n let sub = '';\n char = format[position++];\n while (char !== undefined && char !== endDelimiter) {\n sub += char;\n char = format[position++];\n }\n const isClosed = char === endDelimiter;\n const type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type });\n }\n // else if (char === '%') {\n // // when found rails i18n syntax, skip text capture\n // if (format[position] !== '{') {\n // text += char\n // }\n // }\n else {\n text += char;\n }\n }\n text && tokens.push({ type: 'text', value: text });\n return tokens;\n}\nfunction compile(tokens, values) {\n const compiled = [];\n let index = 0;\n const mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') {\n return compiled;\n }\n while (index < tokens.length) {\n const token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break;\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break;\n case 'named':\n if (mode === 'named') {\n compiled.push(values[token.value]);\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\n }\n }\n break;\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Detect 'unknown' type of token!`);\n }\n break;\n }\n index++;\n }\n return compiled;\n}\n\nconst LOCALE_ZH_HANS = 'zh-Hans';\nconst LOCALE_ZH_HANT = 'zh-Hant';\nconst LOCALE_EN = 'en';\nconst LOCALE_FR = 'fr';\nconst LOCALE_ES = 'es';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst defaultFormatter = new BaseFormatter();\nfunction include(str, parts) {\n return !!parts.find((part) => str.indexOf(part) !== -1);\n}\nfunction startsWith(str, parts) {\n return parts.find((part) => str.indexOf(part) === 0);\n}\nfunction normalizeLocale(locale, messages) {\n if (!locale) {\n return;\n }\n locale = locale.trim().replace(/_/g, '-');\n if (messages && messages[locale]) {\n return locale;\n }\n locale = locale.toLowerCase();\n if (locale === 'chinese') {\n // 支付宝\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('zh') === 0) {\n if (locale.indexOf('-hans') > -1) {\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('-hant') > -1) {\n return LOCALE_ZH_HANT;\n }\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\n return LOCALE_ZH_HANT;\n }\n return LOCALE_ZH_HANS;\n }\n let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];\n if (messages && Object.keys(messages).length > 0) {\n locales = Object.keys(messages);\n }\n const lang = startsWith(locale, locales);\n if (lang) {\n return lang;\n }\n}\nclass I18n {\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\n this.locale = LOCALE_EN;\n this.fallbackLocale = LOCALE_EN;\n this.message = {};\n this.messages = {};\n this.watchers = [];\n if (fallbackLocale) {\n this.fallbackLocale = fallbackLocale;\n }\n this.formater = formater || defaultFormatter;\n this.messages = messages || {};\n this.setLocale(locale || LOCALE_EN);\n if (watcher) {\n this.watchLocale(watcher);\n }\n }\n setLocale(locale) {\n const oldLocale = this.locale;\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\n if (!this.messages[this.locale]) {\n // 可能初始化时不存在\n this.messages[this.locale] = {};\n }\n this.message = this.messages[this.locale];\n // 仅发生变化时,通知\n if (oldLocale !== this.locale) {\n this.watchers.forEach((watcher) => {\n watcher(this.locale, oldLocale);\n });\n }\n }\n getLocale() {\n return this.locale;\n }\n watchLocale(fn) {\n const index = this.watchers.push(fn) - 1;\n return () => {\n this.watchers.splice(index, 1);\n };\n }\n add(locale, message, override = true) {\n const curMessages = this.messages[locale];\n if (curMessages) {\n if (override) {\n Object.assign(curMessages, message);\n }\n else {\n Object.keys(message).forEach((key) => {\n if (!hasOwn(curMessages, key)) {\n curMessages[key] = message[key];\n }\n });\n }\n }\n else {\n this.messages[locale] = message;\n }\n }\n f(message, values, delimiters) {\n return this.formater.interpolate(message, values, delimiters).join('');\n }\n t(key, locale, values) {\n let message = this.message;\n if (typeof locale === 'string') {\n locale = normalizeLocale(locale, this.messages);\n locale && (message = this.messages[locale]);\n }\n else {\n values = locale;\n }\n if (!hasOwn(message, key)) {\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\n return key;\n }\n return this.formater.interpolate(message[key], values).join('');\n }\n}\n\nfunction watchAppLocale(appVm, i18n) {\n // 需要保证 watch 的触发在组件渲染之前\n if (appVm.$watchLocale) {\n // vue2\n appVm.$watchLocale((newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n else {\n appVm.$watch(() => appVm.$locale, (newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n}\nfunction getDefaultLocale() {\n if (typeof uni !== 'undefined' && uni.getLocale) {\n return uni.getLocale();\n }\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\n if (typeof global !== 'undefined' && global.getLocale) {\n return global.getLocale();\n }\n return LOCALE_EN;\n}\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\n // 兼容旧版本入参\n if (typeof locale !== 'string') {\n [locale, messages] = [\n messages,\n locale,\n ];\n }\n if (typeof locale !== 'string') {\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\n locale = getDefaultLocale();\n }\n if (typeof fallbackLocale !== 'string') {\n fallbackLocale =\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\n LOCALE_EN;\n }\n const i18n = new I18n({\n locale,\n fallbackLocale,\n messages,\n watcher,\n });\n let t = (key, values) => {\n if (typeof getApp !== 'function') {\n // app view\n /* eslint-disable no-func-assign */\n t = function (key, values) {\n return i18n.t(key, values);\n };\n }\n else {\n let isWatchedAppLocale = false;\n t = function (key, values) {\n const appVm = getApp().$vm;\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\n // options: {\n // \ttype: Array,\n // \tdefault () {\n // \t\treturn [{\n // \t\t\ticon: 'shop',\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\n // \t\t}, {\n // \t\t\ticon: 'cart',\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\n // \t\t}]\n // \t}\n // },\n if (appVm) {\n // 触发响应式\n appVm.$locale;\n if (!isWatchedAppLocale) {\n isWatchedAppLocale = true;\n watchAppLocale(appVm, i18n);\n }\n }\n return i18n.t(key, values);\n };\n }\n return t(key, values);\n };\n return {\n i18n,\n f(message, values, delimiters) {\n return i18n.f(message, values, delimiters);\n },\n t(key, values) {\n return t(key, values);\n },\n add(locale, message, override = true) {\n return i18n.add(locale, message, override);\n },\n watch(fn) {\n return i18n.watchLocale(fn);\n },\n getLocale() {\n return i18n.getLocale();\n },\n setLocale(newLocale) {\n return i18n.setLocale(newLocale);\n },\n };\n}\n\nconst isString = (val) => typeof val === 'string';\nlet formater;\nfunction hasI18nJson(jsonObj, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n return walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n return true;\n }\n }\n else {\n return hasI18nJson(value, delimiters);\n }\n });\n}\nfunction parseI18nJson(jsonObj, values, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, values, delimiters);\n }\n }\n else {\n parseI18nJson(value, values, delimiters);\n }\n });\n return jsonObj;\n}\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\n if (!isI18nStr(jsonStr, delimiters)) {\n return jsonStr;\n }\n if (!formater) {\n formater = new BaseFormatter();\n }\n const localeValues = [];\n Object.keys(locales).forEach((name) => {\n if (name !== locale) {\n localeValues.push({\n locale: name,\n values: locales[name],\n });\n }\n });\n localeValues.unshift({ locale, values: locales[locale] });\n try {\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\n }\n catch (e) { }\n return jsonStr;\n}\nfunction isI18nStr(value, delimiters) {\n return value.indexOf(delimiters[0]) > -1;\n}\nfunction compileStr(value, values, delimiters) {\n return formater.interpolate(value, values, delimiters).join('');\n}\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\n const value = jsonObj[key];\n if (isString(value)) {\n // 存在国际化\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\n if (localeValues.length > 1) {\n // 格式化国际化语言\n const valueLocales = (jsonObj[key + 'Locales'] = {});\n localeValues.forEach((localValue) => {\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\n });\n }\n }\n }\n else {\n compileJsonObj(value, localeValues, delimiters);\n }\n}\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\n walkJsonObj(jsonObj, (jsonObj, key) => {\n compileValue(jsonObj, key, localeValues, delimiters);\n });\n return jsonObj;\n}\nfunction walkJsonObj(jsonObj, walk) {\n if (Array.isArray(jsonObj)) {\n for (let i = 0; i < jsonObj.length; i++) {\n if (walk(jsonObj, i)) {\n return true;\n }\n }\n }\n else if (isObject(jsonObj)) {\n for (const key in jsonObj) {\n if (walk(jsonObj, key)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction resolveLocale(locales) {\n return (locale) => {\n if (!locale) {\n return locale;\n }\n locale = normalizeLocale(locale) || locale;\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\n };\n}\nfunction resolveLocaleChain(locale) {\n const chain = [];\n const tokens = locale.split('-');\n while (tokens.length) {\n chain.push(tokens.join('-'));\n tokens.pop();\n }\n return chain;\n}\n\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\n","import { isArray, hasOwn, isString, isPlainObject, isObject, capitalize, toRawType, makeMap, isFunction, isPromise, extend, remove } from '@vue/shared';\nimport { normalizeLocale, LOCALE_EN } from '@dcloudio/uni-i18n';\nimport { LINEFEED, Emitter, sortObject, onCreateVueApp, invokeCreateVueAppHook } from '@dcloudio/uni-shared';\n\nfunction getBaseSystemInfo() {\n return wx.getSystemInfoSync();\n}\n\nfunction validateProtocolFail(name, msg) {\n console.warn(`${name}: ${msg}`);\n}\nfunction validateProtocol(name, data, protocol, onFail) {\n if (!onFail) {\n onFail = validateProtocolFail;\n }\n for (const key in protocol) {\n const errMsg = validateProp(key, data[key], protocol[key], !hasOwn(data, key));\n if (isString(errMsg)) {\n onFail(name, errMsg);\n }\n }\n}\nfunction validateProtocols(name, args, protocol, onFail) {\n if (!protocol) {\n return;\n }\n if (!isArray(protocol)) {\n return validateProtocol(name, args[0] || Object.create(null), protocol, onFail);\n }\n const len = protocol.length;\n const argsLen = args.length;\n for (let i = 0; i < len; i++) {\n const opts = protocol[i];\n const data = Object.create(null);\n if (argsLen > i) {\n data[opts.name] = args[i];\n }\n validateProtocol(name, data, { [opts.name]: opts }, onFail);\n }\n}\nfunction validateProp(name, value, prop, isAbsent) {\n if (!isPlainObject(prop)) {\n prop = { type: prop };\n }\n const { type, required, validator } = prop;\n // required!\n if (required && isAbsent) {\n return 'Missing required args: \"' + name + '\"';\n }\n // missing but optional\n if (value == null && !required) {\n return;\n }\n // type check\n if (type != null) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n // value is valid as long as one of the specified types match\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || '');\n isValid = valid;\n }\n if (!isValid) {\n return getInvalidTypeMessage(name, value, expectedTypes);\n }\n }\n // custom validator\n if (validator) {\n return validator(value);\n }\n}\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol');\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n }\n else if (expectedType === 'Object') {\n valid = isObject(value);\n }\n else if (expectedType === 'Array') {\n valid = isArray(value);\n }\n else {\n {\n valid = value instanceof type;\n }\n }\n return {\n valid,\n expectedType,\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n let message = `Invalid args: type check failed for args \"${name}\".` +\n ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : '';\n}\nfunction styleValue(value, type) {\n if (type === 'String') {\n return `\"${value}\"`;\n }\n else if (type === 'Number') {\n return `${Number(value)}`;\n }\n else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === 'boolean');\n}\n\nfunction tryCatch(fn) {\n return function () {\n try {\n return fn.apply(fn, arguments);\n }\n catch (e) {\n // TODO\n console.error(e);\n }\n };\n}\n\nlet invokeCallbackId = 1;\nconst invokeCallbacks = {};\nfunction addInvokeCallback(id, name, callback, keepAlive = false) {\n invokeCallbacks[id] = {\n name,\n keepAlive,\n callback,\n };\n return id;\n}\n// onNativeEventReceive((event,data)=>{}) 需要两个参数,目前写死最多两个参数\nfunction invokeCallback(id, res, extras) {\n if (typeof id === 'number') {\n const opts = invokeCallbacks[id];\n if (opts) {\n if (!opts.keepAlive) {\n delete invokeCallbacks[id];\n }\n return opts.callback(res, extras);\n }\n }\n return res;\n}\nconst API_SUCCESS = 'success';\nconst API_FAIL = 'fail';\nconst API_COMPLETE = 'complete';\nfunction getApiCallbacks(args) {\n const apiCallbacks = {};\n for (const name in args) {\n const fn = args[name];\n if (isFunction(fn)) {\n apiCallbacks[name] = tryCatch(fn);\n delete args[name];\n }\n }\n return apiCallbacks;\n}\nfunction normalizeErrMsg$1(errMsg, name) {\n if (!errMsg || errMsg.indexOf(':fail') === -1) {\n return name + ':ok';\n }\n return name + errMsg.substring(errMsg.indexOf(':fail'));\n}\nfunction createAsyncApiCallback(name, args = {}, { beforeAll, beforeSuccess } = {}) {\n if (!isPlainObject(args)) {\n args = {};\n }\n const { success, fail, complete } = getApiCallbacks(args);\n const hasSuccess = isFunction(success);\n const hasFail = isFunction(fail);\n const hasComplete = isFunction(complete);\n const callbackId = invokeCallbackId++;\n addInvokeCallback(callbackId, name, (res) => {\n res = res || {};\n res.errMsg = normalizeErrMsg$1(res.errMsg, name);\n isFunction(beforeAll) && beforeAll(res);\n if (res.errMsg === name + ':ok') {\n isFunction(beforeSuccess) && beforeSuccess(res, args);\n hasSuccess && success(res);\n }\n else {\n hasFail && fail(res);\n }\n hasComplete && complete(res);\n });\n return callbackId;\n}\n\nconst HOOK_SUCCESS = 'success';\nconst HOOK_FAIL = 'fail';\nconst HOOK_COMPLETE = 'complete';\nconst globalInterceptors = {};\nconst scopedInterceptors = {};\nfunction wrapperHook(hook, params) {\n return function (data) {\n return hook(data, params) || data;\n };\n}\nfunction queue(hooks, data, params) {\n let promise = false;\n for (let i = 0; i < hooks.length; i++) {\n const hook = hooks[i];\n if (promise) {\n promise = Promise.resolve(wrapperHook(hook, params));\n }\n else {\n const res = hook(data, params);\n if (isPromise(res)) {\n promise = Promise.resolve(res);\n }\n if (res === false) {\n return {\n then() { },\n catch() { },\n };\n }\n }\n }\n return (promise || {\n then(callback) {\n return callback(data);\n },\n catch() { },\n });\n}\nfunction wrapperOptions(interceptors, options = {}) {\n [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {\n const hooks = interceptors[name];\n if (!isArray(hooks)) {\n return;\n }\n const oldCallback = options[name];\n options[name] = function callbackInterceptor(res) {\n queue(hooks, res, options).then((res) => {\n return (isFunction(oldCallback) && oldCallback(res)) || res;\n });\n };\n });\n return options;\n}\nfunction wrapperReturnValue(method, returnValue) {\n const returnValueHooks = [];\n if (isArray(globalInterceptors.returnValue)) {\n returnValueHooks.push(...globalInterceptors.returnValue);\n }\n const interceptor = scopedInterceptors[method];\n if (interceptor && isArray(interceptor.returnValue)) {\n returnValueHooks.push(...interceptor.returnValue);\n }\n returnValueHooks.forEach((hook) => {\n returnValue = hook(returnValue) || returnValue;\n });\n return returnValue;\n}\nfunction getApiInterceptorHooks(method) {\n const interceptor = Object.create(null);\n Object.keys(globalInterceptors).forEach((hook) => {\n if (hook !== 'returnValue') {\n interceptor[hook] = globalInterceptors[hook].slice();\n }\n });\n const scopedInterceptor = scopedInterceptors[method];\n if (scopedInterceptor) {\n Object.keys(scopedInterceptor).forEach((hook) => {\n if (hook !== 'returnValue') {\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\n }\n });\n }\n return interceptor;\n}\nfunction invokeApi(method, api, options, params) {\n const interceptor = getApiInterceptorHooks(method);\n if (interceptor && Object.keys(interceptor).length) {\n if (isArray(interceptor.invoke)) {\n const res = queue(interceptor.invoke, options);\n return res.then((options) => {\n // 重新访问 getApiInterceptorHooks, 允许 invoke 中再次调用 addInterceptor,removeInterceptor\n return api(wrapperOptions(getApiInterceptorHooks(method), options), ...params);\n });\n }\n else {\n return api(wrapperOptions(interceptor, options), ...params);\n }\n }\n return api(options, ...params);\n}\n\nfunction hasCallback(args) {\n if (isPlainObject(args) &&\n [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => isFunction(args[cb]))) {\n return true;\n }\n return false;\n}\nfunction handlePromise(promise) {\n // if (__UNI_FEATURE_PROMISE__) {\n // return promise\n // .then((data) => {\n // return [null, data]\n // })\n // .catch((err) => [err])\n // }\n return promise;\n}\nfunction promisify$1(name, fn) {\n return (args = {}, ...rest) => {\n if (hasCallback(args)) {\n return wrapperReturnValue(name, invokeApi(name, fn, args, rest));\n }\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\n invokeApi(name, fn, extend(args, { success: resolve, fail: reject }), rest);\n })));\n };\n}\n\nfunction formatApiArgs(args, options) {\n const params = args[0];\n if (!options ||\n (!isPlainObject(options.formatArgs) && isPlainObject(params))) {\n return;\n }\n const formatArgs = options.formatArgs;\n const keys = Object.keys(formatArgs);\n for (let i = 0; i < keys.length; i++) {\n const name = keys[i];\n const formatterOrDefaultValue = formatArgs[name];\n if (isFunction(formatterOrDefaultValue)) {\n const errMsg = formatterOrDefaultValue(args[0][name], params);\n if (isString(errMsg)) {\n return errMsg;\n }\n }\n else {\n // defaultValue\n if (!hasOwn(params, name)) {\n params[name] = formatterOrDefaultValue;\n }\n }\n }\n}\nfunction invokeSuccess(id, name, res) {\n const result = {\n errMsg: name + ':ok',\n };\n return invokeCallback(id, extend((res || {}), result));\n}\nfunction invokeFail(id, name, errMsg, errRes = {}) {\n const apiErrMsg = name + ':fail' + (errMsg ? ' ' + errMsg : '');\n delete errRes.errCode;\n let res = extend({ errMsg: apiErrMsg }, errRes);\n return invokeCallback(id, res);\n}\nfunction beforeInvokeApi(name, args, protocol, options) {\n if ((process.env.NODE_ENV !== 'production')) {\n validateProtocols(name, args, protocol);\n }\n if (options && options.beforeInvoke) {\n const errMsg = options.beforeInvoke(args);\n if (isString(errMsg)) {\n return errMsg;\n }\n }\n const errMsg = formatApiArgs(args, options);\n if (errMsg) {\n return errMsg;\n }\n}\nfunction normalizeErrMsg(errMsg) {\n if (!errMsg || isString(errMsg)) {\n return errMsg;\n }\n if (errMsg.stack) {\n console.error(errMsg.message + LINEFEED + errMsg.stack);\n return errMsg.message;\n }\n return errMsg;\n}\nfunction wrapperTaskApi(name, fn, protocol, options) {\n return (args) => {\n const id = createAsyncApiCallback(name, args, options);\n const errMsg = beforeInvokeApi(name, [args], protocol, options);\n if (errMsg) {\n return invokeFail(id, name, errMsg);\n }\n return fn(args, {\n resolve: (res) => invokeSuccess(id, name, res),\n reject: (errMsg, errRes) => invokeFail(id, name, normalizeErrMsg(errMsg), errRes),\n });\n };\n}\nfunction wrapperSyncApi(name, fn, protocol, options) {\n return (...args) => {\n const errMsg = beforeInvokeApi(name, args, protocol, options);\n if (errMsg) {\n throw new Error(errMsg);\n }\n return fn.apply(null, args);\n };\n}\nfunction wrapperAsyncApi(name, fn, protocol, options) {\n return wrapperTaskApi(name, fn, protocol, options);\n}\nfunction defineSyncApi(name, fn, protocol, options) {\n return wrapperSyncApi(name, fn, (process.env.NODE_ENV !== 'production') ? protocol : undefined, options);\n}\nfunction defineAsyncApi(name, fn, protocol, options) {\n return promisify$1(name, wrapperAsyncApi(name, fn, (process.env.NODE_ENV !== 'production') ? protocol : undefined, options));\n}\n\nconst API_UPX2PX = 'upx2px';\nconst Upx2pxProtocol = [\n {\n name: 'upx',\n type: [Number, String],\n required: true,\n },\n];\n\nconst EPS = 1e-4;\nconst BASE_DEVICE_WIDTH = 750;\nlet isIOS = false;\nlet deviceWidth = 0;\nlet deviceDPR = 0;\nfunction checkDeviceWidth() {\n const { platform, pixelRatio, windowWidth } = getBaseSystemInfo();\n deviceWidth = windowWidth;\n deviceDPR = pixelRatio;\n isIOS = platform === 'ios';\n}\nconst upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => {\n if (deviceWidth === 0) {\n checkDeviceWidth();\n }\n number = Number(number);\n if (number === 0) {\n return 0;\n }\n let width = newDeviceWidth || deviceWidth;\n let result = (number / BASE_DEVICE_WIDTH) * width;\n if (result < 0) {\n result = -result;\n }\n result = Math.floor(result + EPS);\n if (result === 0) {\n if (deviceDPR === 1 || !isIOS) {\n result = 1;\n }\n else {\n result = 0.5;\n }\n }\n return number < 0 ? -result : result;\n}, Upx2pxProtocol);\n\nconst API_ADD_INTERCEPTOR = 'addInterceptor';\nconst API_REMOVE_INTERCEPTOR = 'removeInterceptor';\nconst AddInterceptorProtocol = [\n {\n name: 'method',\n type: [String, Object],\n required: true,\n },\n];\nconst RemoveInterceptorProtocol = AddInterceptorProtocol;\n\nfunction mergeInterceptorHook(interceptors, interceptor) {\n Object.keys(interceptor).forEach((hook) => {\n if (isFunction(interceptor[hook])) {\n interceptors[hook] = mergeHook(interceptors[hook], interceptor[hook]);\n }\n });\n}\nfunction removeInterceptorHook(interceptors, interceptor) {\n if (!interceptors || !interceptor) {\n return;\n }\n Object.keys(interceptor).forEach((name) => {\n const hooks = interceptors[name];\n const hook = interceptor[name];\n if (isArray(hooks) && isFunction(hook)) {\n remove(hooks, hook);\n }\n });\n}\nfunction mergeHook(parentVal, childVal) {\n const res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res ? dedupeHooks(res) : res;\n}\nfunction dedupeHooks(hooks) {\n const res = [];\n for (let i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res;\n}\nconst addInterceptor = defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => {\n if (isString(method) && isPlainObject(interceptor)) {\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor);\n }\n else if (isPlainObject(method)) {\n mergeInterceptorHook(globalInterceptors, method);\n }\n}, AddInterceptorProtocol);\nconst removeInterceptor = defineSyncApi(API_REMOVE_INTERCEPTOR, (method, interceptor) => {\n if (isString(method)) {\n if (isPlainObject(interceptor)) {\n removeInterceptorHook(scopedInterceptors[method], interceptor);\n }\n else {\n delete scopedInterceptors[method];\n }\n }\n else if (isPlainObject(method)) {\n removeInterceptorHook(globalInterceptors, method);\n }\n}, RemoveInterceptorProtocol);\nconst interceptors = {};\n\nconst API_ON = '$on';\nconst OnProtocol = [\n {\n name: 'event',\n type: String,\n required: true,\n },\n {\n name: 'callback',\n type: Function,\n required: true,\n },\n];\nconst API_ONCE = '$once';\nconst OnceProtocol = OnProtocol;\nconst API_OFF = '$off';\nconst OffProtocol = [\n {\n name: 'event',\n type: [String, Array],\n },\n {\n name: 'callback',\n type: Function,\n },\n];\nconst API_EMIT = '$emit';\nconst EmitProtocol = [\n {\n name: 'event',\n type: String,\n required: true,\n },\n];\n\nconst emitter = new Emitter();\nconst $on = defineSyncApi(API_ON, (name, callback) => {\n emitter.on(name, callback);\n return () => emitter.off(name, callback);\n}, OnProtocol);\nconst $once = defineSyncApi(API_ONCE, (name, callback) => {\n emitter.once(name, callback);\n return () => emitter.off(name, callback);\n}, OnceProtocol);\nconst $off = defineSyncApi(API_OFF, (name, callback) => {\n if (!name) {\n emitter.e = {};\n return;\n }\n if (!isArray(name))\n name = [name];\n name.forEach((n) => emitter.off(n, callback));\n}, OffProtocol);\nconst $emit = defineSyncApi(API_EMIT, (name, ...args) => {\n emitter.emit(name, ...args);\n}, EmitProtocol);\n\nlet cid;\nlet cidErrMsg;\nlet enabled;\nfunction normalizePushMessage(message) {\n try {\n return JSON.parse(message);\n }\n catch (e) { }\n return message;\n}\n/**\n * @private\n * @param args\n */\nfunction invokePushCallback(args) {\n if (args.type === 'enabled') {\n enabled = true;\n }\n else if (args.type === 'clientId') {\n cid = args.cid;\n cidErrMsg = args.errMsg;\n invokeGetPushCidCallbacks(cid, args.errMsg);\n }\n else if (args.type === 'pushMsg') {\n const message = {\n type: 'receive',\n data: normalizePushMessage(args.message),\n };\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\n const callback = onPushMessageCallbacks[i];\n callback(message);\n // 该消息已被阻止\n if (message.stopped) {\n break;\n }\n }\n }\n else if (args.type === 'click') {\n onPushMessageCallbacks.forEach((callback) => {\n callback({\n type: 'click',\n data: normalizePushMessage(args.message),\n });\n });\n }\n}\nconst getPushCidCallbacks = [];\nfunction invokeGetPushCidCallbacks(cid, errMsg) {\n getPushCidCallbacks.forEach((callback) => {\n callback(cid, errMsg);\n });\n getPushCidCallbacks.length = 0;\n}\nconst API_GET_PUSH_CLIENT_ID = 'getPushClientId';\nconst getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve, reject }) => {\n Promise.resolve().then(() => {\n if (typeof enabled === 'undefined') {\n enabled = false;\n cid = '';\n cidErrMsg = 'uniPush is not enabled';\n }\n getPushCidCallbacks.push((cid, errMsg) => {\n if (cid) {\n resolve({ cid });\n }\n else {\n reject(errMsg);\n }\n });\n if (typeof cid !== 'undefined') {\n invokeGetPushCidCallbacks(cid, cidErrMsg);\n }\n });\n});\nconst onPushMessageCallbacks = [];\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\nconst onPushMessage = (fn) => {\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\n onPushMessageCallbacks.push(fn);\n }\n};\nconst offPushMessage = (fn) => {\n if (!fn) {\n onPushMessageCallbacks.length = 0;\n }\n else {\n const index = onPushMessageCallbacks.indexOf(fn);\n if (index > -1) {\n onPushMessageCallbacks.splice(index, 1);\n }\n }\n};\n\nconst SYNC_API_RE = /^\\$|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/;\nconst CONTEXT_API_RE = /^create|Manager$/;\n// Context例外情况\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\n// 同步例外情况\nconst ASYNC_API = ['createBLEConnection'];\nconst CALLBACK_API_RE = /^on|^off/;\nfunction isContextApi(name) {\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1;\n}\nfunction isSyncApi(name) {\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1;\n}\nfunction isCallbackApi(name) {\n return CALLBACK_API_RE.test(name) && name !== 'onPush';\n}\nfunction shouldPromise(name) {\n if (isContextApi(name) || isSyncApi(name) || isCallbackApi(name)) {\n return false;\n }\n return true;\n}\n/* eslint-disable no-extend-native */\nif (!Promise.prototype.finally) {\n Promise.prototype.finally = function (onfinally) {\n const promise = this.constructor;\n return this.then((value) => promise.resolve(onfinally && onfinally()).then(() => value), (reason) => promise.resolve(onfinally && onfinally()).then(() => {\n throw reason;\n }));\n };\n}\nfunction promisify(name, api) {\n if (!shouldPromise(name)) {\n return api;\n }\n if (!isFunction(api)) {\n return api;\n }\n return function promiseApi(options = {}, ...rest) {\n if (isFunction(options.success) ||\n isFunction(options.fail) ||\n isFunction(options.complete)) {\n return wrapperReturnValue(name, invokeApi(name, api, options, rest));\n }\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\n invokeApi(name, api, extend({}, options, {\n success: resolve,\n fail: reject,\n }), rest);\n })));\n };\n}\n\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\nfunction initWrapper(protocols) {\n function processCallback(methodName, method, returnValue) {\n return function (res) {\n return method(processReturnValue(methodName, res, returnValue));\n };\n }\n function processArgs(methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\n if (isPlainObject(fromArgs)) {\n // 一般 api 的参数解析\n const toArgs = (keepFromArgs === true ? fromArgs : {}); // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\n if (isFunction(argsOption)) {\n argsOption = argsOption(fromArgs, toArgs) || {};\n }\n for (const key in fromArgs) {\n if (hasOwn(argsOption, key)) {\n let keyOption = argsOption[key];\n if (isFunction(keyOption)) {\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\n }\n if (!keyOption) {\n // 不支持的参数\n console.warn(`微信小程序 ${methodName} 暂不支持 ${key}`);\n }\n else if (isString(keyOption)) {\n // 重写参数 key\n toArgs[keyOption] = fromArgs[key];\n }\n else if (isPlainObject(keyOption)) {\n // {name:newName,value:value}可重新指定参数 key:value\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\n }\n }\n else if (CALLBACKS.indexOf(key) !== -1) {\n const callback = fromArgs[key];\n if (isFunction(callback)) {\n toArgs[key] = processCallback(methodName, callback, returnValue);\n }\n }\n else {\n if (!keepFromArgs && !hasOwn(toArgs, key)) {\n toArgs[key] = fromArgs[key];\n }\n }\n }\n return toArgs;\n }\n else if (isFunction(fromArgs)) {\n fromArgs = processCallback(methodName, fromArgs, returnValue);\n }\n return fromArgs;\n }\n function processReturnValue(methodName, res, returnValue, keepReturnValue = false) {\n if (isFunction(protocols.returnValue)) {\n // 处理通用 returnValue\n res = protocols.returnValue(methodName, res);\n }\n return processArgs(methodName, res, returnValue, {}, keepReturnValue);\n }\n return function wrapper(methodName, method) {\n if (!hasOwn(protocols, methodName)) {\n return method;\n }\n const protocol = protocols[methodName];\n if (!protocol) {\n // 暂不支持的 api\n return function () {\n console.error(`微信小程序 暂不支持${methodName}`);\n };\n }\n return function (arg1, arg2) {\n // 目前 api 最多两个参数\n let options = protocol;\n if (isFunction(protocol)) {\n options = protocol(arg1);\n }\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\n const args = [arg1];\n if (typeof arg2 !== 'undefined') {\n args.push(arg2);\n }\n const returnValue = wx[options.name || methodName].apply(wx, args);\n if (isSyncApi(methodName)) {\n // 同步 api\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName));\n }\n return returnValue;\n };\n };\n}\n\nconst getLocale = () => {\n // 优先使用 $locale\n const app = isFunction(getApp) && getApp({ allowDefault: true });\n if (app && app.$vm) {\n return app.$vm.$locale;\n }\n return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;\n};\nconst setLocale = (locale) => {\n const app = isFunction(getApp) && getApp();\n if (!app) {\n return false;\n }\n const oldLocale = app.$vm.$locale;\n if (oldLocale !== locale) {\n app.$vm.$locale = locale;\n onLocaleChangeCallbacks.forEach((fn) => fn({ locale }));\n return true;\n }\n return false;\n};\nconst onLocaleChangeCallbacks = [];\nconst onLocaleChange = (fn) => {\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\n onLocaleChangeCallbacks.push(fn);\n }\n};\nif (typeof global !== 'undefined') {\n global.getLocale = getLocale;\n}\n\nconst UUID_KEY = '__DC_STAT_UUID';\nlet deviceId;\nfunction useDeviceId(global = wx) {\n return function addDeviceId(_, toRes) {\n deviceId = deviceId || global.getStorageSync(UUID_KEY);\n if (!deviceId) {\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\n wx.setStorage({\n key: UUID_KEY,\n data: deviceId,\n });\n }\n toRes.deviceId = deviceId;\n };\n}\nfunction addSafeAreaInsets(fromRes, toRes) {\n if (fromRes.safeArea) {\n const safeArea = fromRes.safeArea;\n toRes.safeAreaInsets = {\n top: safeArea.top,\n left: safeArea.left,\n right: fromRes.windowWidth - safeArea.right,\n bottom: fromRes.screenHeight - safeArea.bottom,\n };\n }\n}\nfunction populateParameters(fromRes, toRes) {\n const { brand = '', model = '', system = '', language = '', theme, version, platform, fontSizeSetting, SDKVersion, pixelRatio, deviceOrientation, } = fromRes;\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\n // osName osVersion\n let osName = '';\n let osVersion = '';\n {\n osName = system.split(' ')[0] || '';\n osVersion = system.split(' ')[1] || '';\n }\n let hostVersion = version;\n // deviceType\n let deviceType = getGetDeviceType(fromRes, model);\n // deviceModel\n let deviceBrand = getDeviceBrand(brand);\n // hostName\n let _hostName = getHostName(fromRes);\n // deviceOrientation\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\n // devicePixelRatio\n let _devicePixelRatio = pixelRatio;\n // SDKVersion\n let _SDKVersion = SDKVersion;\n // hostLanguage\n const hostLanguage = language.replace(/_/g, '-');\n // wx.getAccountInfoSync\n const parameters = {\n appId: process.env.UNI_APP_ID,\n appName: process.env.UNI_APP_NAME,\n appVersion: process.env.UNI_APP_VERSION_NAME,\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\n appLanguage: getAppLanguage(hostLanguage),\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\n deviceBrand,\n deviceModel: model,\n deviceType,\n devicePixelRatio: _devicePixelRatio,\n deviceOrientation: _deviceOrientation,\n osName: osName.toLocaleLowerCase(),\n osVersion,\n hostTheme: theme,\n hostVersion,\n hostLanguage,\n hostName: _hostName,\n hostSDKVersion: _SDKVersion,\n hostFontSizeSetting: fontSizeSetting,\n windowTop: 0,\n windowBottom: 0,\n // TODO\n osLanguage: undefined,\n osTheme: undefined,\n ua: undefined,\n hostPackageName: undefined,\n browserName: undefined,\n browserVersion: undefined,\n };\n extend(toRes, parameters);\n}\nfunction getGetDeviceType(fromRes, model) {\n // deviceType\n let deviceType = fromRes.deviceType || 'phone';\n {\n const deviceTypeMaps = {\n ipad: 'pad',\n windows: 'pc',\n mac: 'pc',\n };\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\n const _model = model.toLocaleLowerCase();\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\n const _m = deviceTypeMapsKeys[index];\n if (_model.indexOf(_m) !== -1) {\n deviceType = deviceTypeMaps[_m];\n break;\n }\n }\n }\n return deviceType;\n}\nfunction getDeviceBrand(brand) {\n // deviceModel\n let deviceBrand = brand;\n if (deviceBrand) {\n deviceBrand = deviceBrand.toLocaleLowerCase();\n }\n return deviceBrand;\n}\nfunction getAppLanguage(defaultLanguage) {\n return getLocale ? getLocale() : defaultLanguage;\n}\nfunction getHostName(fromRes) {\n const _platform = 'WeChat' ;\n let _hostName = fromRes.hostName || _platform; // mp-jd\n {\n if (fromRes.environment) {\n _hostName = fromRes.environment;\n }\n else if (fromRes.host && fromRes.host.env) {\n _hostName = fromRes.host.env;\n }\n }\n return _hostName;\n}\n\nconst getSystemInfo = {\n returnValue: (fromRes, toRes) => {\n addSafeAreaInsets(fromRes, toRes);\n useDeviceId()(fromRes, toRes);\n populateParameters(fromRes, toRes);\n },\n};\n\nconst getSystemInfoSync = getSystemInfo;\n\nconst redirectTo = {};\n\nconst previewImage = {\n args(fromArgs, toArgs) {\n let currentIndex = parseInt(fromArgs.current);\n if (isNaN(currentIndex)) {\n return;\n }\n const urls = fromArgs.urls;\n if (!isArray(urls)) {\n return;\n }\n const len = urls.length;\n if (!len) {\n return;\n }\n if (currentIndex < 0) {\n currentIndex = 0;\n }\n else if (currentIndex >= len) {\n currentIndex = len - 1;\n }\n if (currentIndex > 0) {\n toArgs.current = urls[currentIndex];\n toArgs.urls = urls.filter((item, index) => index < currentIndex ? item !== urls[currentIndex] : true);\n }\n else {\n toArgs.current = urls[0];\n }\n return {\n indicator: false,\n loop: false,\n };\n },\n};\n\nconst showActionSheet = {\n args(fromArgs, toArgs) {\n toArgs.alertText = fromArgs.title;\n },\n};\n\nconst getDeviceInfo = {\n returnValue: (fromRes, toRes) => {\n const { brand, model } = fromRes;\n let deviceType = getGetDeviceType(fromRes, model);\n let deviceBrand = getDeviceBrand(brand);\n useDeviceId()(fromRes, toRes);\n toRes = sortObject(extend(toRes, {\n deviceType,\n deviceBrand,\n deviceModel: model,\n }));\n },\n};\n\nconst getAppBaseInfo = {\n returnValue: (fromRes, toRes) => {\n const { version, language, SDKVersion, theme } = fromRes;\n let _hostName = getHostName(fromRes);\n let hostLanguage = language.replace(/_/g, '-');\n toRes = sortObject(extend(toRes, {\n hostVersion: version,\n hostLanguage,\n hostName: _hostName,\n hostSDKVersion: SDKVersion,\n hostTheme: theme,\n appId: process.env.UNI_APP_ID,\n appName: process.env.UNI_APP_NAME,\n appVersion: process.env.UNI_APP_VERSION_NAME,\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\n appLanguage: getAppLanguage(hostLanguage),\n }));\n },\n};\n\nconst getWindowInfo = {\n returnValue: (fromRes, toRes) => {\n addSafeAreaInsets(fromRes, toRes);\n toRes = sortObject(extend(toRes, {\n windowTop: 0,\n windowBottom: 0,\n }));\n },\n};\n\nconst getAppAuthorizeSetting = {\n returnValue: function (fromRes, toRes) {\n const { locationReducedAccuracy } = fromRes;\n toRes.locationAccuracy = 'unsupported';\n if (locationReducedAccuracy === true) {\n toRes.locationAccuracy = 'reduced';\n }\n else if (locationReducedAccuracy === false) {\n toRes.locationAccuracy = 'full';\n }\n },\n};\n\nconst baseApis = {\n $on,\n $off,\n $once,\n $emit,\n upx2px,\n interceptors,\n addInterceptor,\n removeInterceptor,\n onCreateVueApp,\n invokeCreateVueAppHook,\n getLocale,\n setLocale,\n onLocaleChange,\n getPushClientId,\n onPushMessage,\n offPushMessage,\n invokePushCallback,\n};\nfunction initUni(api, protocols, platform = wx) {\n const wrapper = initWrapper(protocols);\n const UniProxyHandlers = {\n get(target, key) {\n if (hasOwn(target, key)) {\n return target[key];\n }\n if (hasOwn(api, key)) {\n return promisify(key, api[key]);\n }\n if (hasOwn(baseApis, key)) {\n return promisify(key, baseApis[key]);\n }\n // event-api\n // provider-api?\n return promisify(key, wrapper(key, platform[key]));\n },\n };\n return new Proxy({}, UniProxyHandlers);\n}\n\nfunction initGetProvider(providers) {\n return function getProvider({ service, success, fail, complete, }) {\n let res;\n if (providers[service]) {\n res = {\n errMsg: 'getProvider:ok',\n service,\n provider: providers[service],\n };\n isFunction(success) && success(res);\n }\n else {\n res = {\n errMsg: 'getProvider:fail:服务[' + service + ']不存在',\n };\n isFunction(fail) && fail(res);\n }\n isFunction(complete) && complete(res);\n };\n}\n\nconst objectKeys = [\n 'qy',\n 'env',\n 'error',\n 'version',\n 'lanDebug',\n 'cloud',\n 'serviceMarket',\n 'router',\n 'worklet',\n '__webpack_require_UNI_MP_PLUGIN__',\n];\nconst singlePageDisableKey = ['lanDebug', 'router', 'worklet'];\nconst launchOption = wx.getLaunchOptionsSync\n ? wx.getLaunchOptionsSync()\n : null;\nfunction isWxKey(key) {\n if (launchOption &&\n launchOption.scene === 1154 &&\n singlePageDisableKey.includes(key)) {\n return false;\n }\n return objectKeys.indexOf(key) > -1 || typeof wx[key] === 'function';\n}\nfunction initWx() {\n const newWx = {};\n for (const key in wx) {\n if (isWxKey(key)) {\n // TODO wrapper function\n newWx[key] = wx[key];\n }\n }\n if (typeof globalThis !== 'undefined' &&\n typeof requireMiniProgram === 'undefined') {\n globalThis.wx = newWx;\n }\n return newWx;\n}\n\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\n\nconst getProvider = initGetProvider({\n oauth: ['weixin'],\n share: ['weixin'],\n payment: ['wxpay'],\n push: ['weixin'],\n});\nfunction initComponentMocks(component) {\n const res = Object.create(null);\n mocks.forEach((name) => {\n res[name] = component[name];\n });\n return res;\n}\n/**\n * 微信小程序内部会 Object.keys(vm),导致告警\n * Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.\n * @returns\n */\nfunction createSelectorQuery() {\n const query = wx$2.createSelectorQuery();\n const oldIn = query.in;\n query.in = function newIn(component) {\n return oldIn.call(this, initComponentMocks(component));\n };\n return query;\n}\nconst wx$2 = initWx();\nlet baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo();\nif (!baseInfo) {\n baseInfo = wx$2.getSystemInfoSync();\n}\nconst host = baseInfo ? baseInfo.host : null;\nconst shareVideoMessage = host && host.env === 'SAAASDK'\n ? wx$2.miniapp.shareVideoMessage\n : wx$2.shareVideoMessage;\n\nvar shims = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createSelectorQuery: createSelectorQuery,\n getProvider: getProvider,\n shareVideoMessage: shareVideoMessage\n});\n\nconst compressImage = {\n args(fromArgs, toArgs) {\n // https://developers.weixin.qq.com/community/develop/doc/000c08940c865011298e0a43256800?highLine=compressHeight\n // @ts-expect-error\n if (fromArgs.compressedHeight && !toArgs.compressHeight) {\n // @ts-expect-error\n toArgs.compressHeight = fromArgs.compressedHeight;\n }\n // @ts-expect-error\n if (fromArgs.compressedWidth && !toArgs.compressWidth) {\n // @ts-expect-error\n toArgs.compressWidth = fromArgs.compressedWidth;\n }\n },\n};\n\nvar protocols = /*#__PURE__*/Object.freeze({\n __proto__: null,\n compressImage: compressImage,\n getAppAuthorizeSetting: getAppAuthorizeSetting,\n getAppBaseInfo: getAppBaseInfo,\n getDeviceInfo: getDeviceInfo,\n getSystemInfo: getSystemInfo,\n getSystemInfoSync: getSystemInfoSync,\n getWindowInfo: getWindowInfo,\n previewImage: previewImage,\n redirectTo: redirectTo,\n showActionSheet: showActionSheet\n});\n\nconst wx$1 = initWx();\nvar index = initUni(shims, protocols, wx$1);\n\nexport { index as default, wx$1 as wx };\n","import { isRootHook, getValueByDataPath, isUniLifecycleHook, ON_ERROR, UniLifecycleHooks, invokeCreateErrorHandler, dynamicSlotName } from '@dcloudio/uni-shared';\nimport { isSymbol, extend, isObject, toRawType, def, hasOwn, isArray, isIntegerKey, makeMap, hasChanged, isMap, capitalize, getGlobalThis, isString, normalizeClass, normalizeStyle, isFunction, isOn, NOOP, EMPTY_OBJ, isPromise, isSet, isPlainObject, camelize, remove, toHandlerKey, hyphenate, isReservedProp, toTypeString, invokeArrayFns, isBuiltInDirective, looseToNumber, NO, EMPTY_ARR, isModelListener, toNumber, toDisplayString } from '@vue/shared';\nexport { EMPTY_OBJ, camelize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/**\n* @vue/reactivity v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nfunction warn$4(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope$1;\nfunction recordEffectScope$1(effect, scope = activeEffectScope$1) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\n\nlet activeEffect$1;\nlet ReactiveEffect$1 = class ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope$1(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking$1();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed$1(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking$1();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack$1;\n let lastEffect = activeEffect$1;\n try {\n shouldTrack$1 = true;\n activeEffect$1 = this;\n this._runnings++;\n preCleanupEffect$1(this);\n return this.fn();\n } finally {\n postCleanupEffect$1(this);\n this._runnings--;\n activeEffect$1 = lastEffect;\n shouldTrack$1 = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect$1(this);\n postCleanupEffect$1(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n};\nfunction triggerComputed$1(computed) {\n return computed.value;\n}\nfunction preCleanupEffect$1(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect$1(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect$1(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect$1(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nlet shouldTrack$1 = true;\nlet pauseScheduleStack$1 = 0;\nconst trackStack$1 = [];\nfunction pauseTracking$1() {\n trackStack$1.push(shouldTrack$1);\n shouldTrack$1 = false;\n}\nfunction resetTracking$1() {\n const last = trackStack$1.pop();\n shouldTrack$1 = last === void 0 ? true : last;\n}\nfunction pauseScheduling$1() {\n pauseScheduleStack$1++;\n}\nfunction resetScheduling$1() {\n pauseScheduleStack$1--;\n while (!pauseScheduleStack$1 && queueEffectSchedulers$1.length) {\n queueEffectSchedulers$1.shift()();\n }\n}\nfunction trackEffect$1(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect$1(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers$1 = [];\nfunction triggerEffects$1(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling$1();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers$1.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling$1();\n}\n\nconst createDep$1 = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap$1 = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY$1 = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY$1 = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track$1(target, type, key) {\n if (shouldTrack$1 && activeEffect$1) {\n let depsMap = targetMap$1.get(target);\n if (!depsMap) {\n targetMap$1.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep$1(() => depsMap.delete(key)));\n }\n trackEffect$1(\n activeEffect$1,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger$1(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap$1.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY$1));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY$1));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY$1));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY$1));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY$1));\n }\n break;\n }\n }\n pauseScheduling$1();\n for (const dep of deps) {\n if (dep) {\n triggerEffects$1(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling$1();\n}\n\nconst isNonTrackableKeys$1 = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols$1 = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations$1 = /* @__PURE__ */ createArrayInstrumentations$1();\nfunction createArrayInstrumentations$1() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw$1(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track$1(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw$1));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking$1();\n pauseScheduling$1();\n const res = toRaw$1(this)[key].apply(this, args);\n resetScheduling$1();\n resetTracking$1();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty$1(key) {\n const obj = toRaw$1(this);\n track$1(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nlet BaseReactiveHandler$1 = class BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap$1 : readonlyMap$1 : isShallow2 ? shallowReactiveMap$1 : reactiveMap$1).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations$1, key)) {\n return Reflect.get(arrayInstrumentations$1, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty$1;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols$1.has(key) : isNonTrackableKeys$1(key)) {\n return res;\n }\n if (!isReadonly2) {\n track$1(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef$1(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly$1(res) : reactive$1(res);\n }\n return res;\n }\n};\nlet MutableReactiveHandler$1 = class MutableReactiveHandler extends BaseReactiveHandler$1 {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly$1(oldValue);\n if (!isShallow$1(value) && !isReadonly$1(value)) {\n oldValue = toRaw$1(oldValue);\n value = toRaw$1(value);\n }\n if (!isArray(target) && isRef$1(oldValue) && !isRef$1(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw$1(receiver)) {\n if (!hadKey) {\n trigger$1(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger$1(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger$1(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols$1.has(key)) {\n track$1(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track$1(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY$1\n );\n return Reflect.ownKeys(target);\n }\n};\nlet ReadonlyReactiveHandler$1 = class ReadonlyReactiveHandler extends BaseReactiveHandler$1 {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$4(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$4(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n};\nconst mutableHandlers$1 = /* @__PURE__ */ new MutableReactiveHandler$1();\nconst readonlyHandlers$1 = /* @__PURE__ */ new ReadonlyReactiveHandler$1();\nconst shallowReadonlyHandlers$1 = /* @__PURE__ */ new ReadonlyReactiveHandler$1(true);\n\nconst toShallow$1 = (value) => value;\nconst getProto$1 = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw$1(target);\n const rawKey = toRaw$1(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track$1(rawTarget, \"get\", key);\n }\n track$1(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto$1(rawTarget);\n const wrap = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw$1(target);\n const rawKey = toRaw$1(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track$1(rawTarget, \"has\", key);\n }\n track$1(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size$1(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track$1(toRaw$1(target), \"iterate\", ITERATE_KEY$1);\n return Reflect.get(target, \"size\", target);\n}\nfunction add$1(value) {\n value = toRaw$1(value);\n const target = toRaw$1(this);\n const proto = getProto$1(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger$1(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$2(key, value) {\n value = toRaw$1(value);\n const target = toRaw$1(this);\n const { has: has2, get: get2 } = getProto$1(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw$1(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys$1(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger$1(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger$1(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry$1(key) {\n const target = toRaw$1(this);\n const { has: has2, get: get2 } = getProto$1(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw$1(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys$1(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger$1(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear$1() {\n const target = toRaw$1(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger$1(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach$1(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw$1(target);\n const wrap = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;\n !isReadonly && track$1(rawTarget, \"iterate\", ITERATE_KEY$1);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod$1(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw$1(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow$1 : isReadonly ? toReadonly$1 : toReactive$1;\n !isReadonly && track$1(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY$1 : ITERATE_KEY$1\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod$1(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$4(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw$1(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations$1() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size$1(this);\n },\n has: has$1,\n add: add$1,\n set: set$2,\n delete: deleteEntry$1,\n clear: clear$1,\n forEach: createForEach$1(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size$1(this);\n },\n has: has$1,\n add: add$1,\n set: set$2,\n delete: deleteEntry$1,\n clear: clear$1,\n forEach: createForEach$1(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size$1(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod$1(\"add\"),\n set: createReadonlyMethod$1(\"set\"),\n delete: createReadonlyMethod$1(\"delete\"),\n clear: createReadonlyMethod$1(\"clear\"),\n forEach: createForEach$1(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size$1(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod$1(\"add\"),\n set: createReadonlyMethod$1(\"set\"),\n delete: createReadonlyMethod$1(\"delete\"),\n clear: createReadonlyMethod$1(\"clear\"),\n forEach: createForEach$1(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod$1(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod$1(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod$1(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod$1(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations$1,\n readonlyInstrumentations$1,\n shallowInstrumentations$1,\n shallowReadonlyInstrumentations$1\n] = /* @__PURE__ */ createInstrumentations$1();\nfunction createInstrumentationGetter$1(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations$1 : shallowInstrumentations$1 : isReadonly ? readonlyInstrumentations$1 : mutableInstrumentations$1;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers$1 = {\n get: /* @__PURE__ */ createInstrumentationGetter$1(false, false)\n};\nconst readonlyCollectionHandlers$1 = {\n get: /* @__PURE__ */ createInstrumentationGetter$1(true, false)\n};\nconst shallowReadonlyCollectionHandlers$1 = {\n get: /* @__PURE__ */ createInstrumentationGetter$1(true, true)\n};\nfunction checkIdentityKeys$1(target, has2, key) {\n const rawKey = toRaw$1(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn$4(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap$1 = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap$1 = /* @__PURE__ */ new WeakMap();\nconst readonlyMap$1 = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap$1 = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap$1(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType$1(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap$1(toRawType(value));\n}\nfunction reactive$1(target) {\n if (isReadonly$1(target)) {\n return target;\n }\n return createReactiveObject$1(\n target,\n false,\n mutableHandlers$1,\n mutableCollectionHandlers$1,\n reactiveMap$1\n );\n}\nfunction readonly$1(target) {\n return createReactiveObject$1(\n target,\n true,\n readonlyHandlers$1,\n readonlyCollectionHandlers$1,\n readonlyMap$1\n );\n}\nfunction shallowReadonly$1(target) {\n return createReactiveObject$1(\n target,\n true,\n shallowReadonlyHandlers$1,\n shallowReadonlyCollectionHandlers$1,\n shallowReadonlyMap$1\n );\n}\nfunction createReactiveObject$1(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$4(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType$1(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive$1(value) {\n if (isReadonly$1(value)) {\n return isReactive$1(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly$1(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow$1(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy$1(value) {\n return isReactive$1(value) || isReadonly$1(value);\n}\nfunction toRaw$1(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw$1(raw) : observed;\n}\nfunction markRaw$1(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive$1 = (value) => isObject(value) ? reactive$1(value) : value;\nconst toReadonly$1 = (value) => isObject(value) ? readonly$1(value) : value;\nfunction isRef$1(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction unref$1(ref2) {\n return isRef$1(ref2) ? ref2.value : ref2;\n}\nconst shallowUnwrapHandlers$1 = {\n get: (target, key, receiver) => unref$1(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef$1(oldValue) && !isRef$1(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs$1(objectWithRefs) {\n return isReactive$1(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers$1);\n}\n\n/**\n* @vue/runtime-core v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nconst stack$1 = [];\nfunction pushWarningContext$1(vnode) {\n stack$1.push(vnode);\n}\nfunction popWarningContext$1() {\n stack$1.pop();\n}\nfunction warn$1$1(msg, ...args) {\n pauseTracking$1();\n const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace$1();\n if (appWarnHandler) {\n callWithErrorHandling$1(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName$1(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace$1(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking$1();\n}\nfunction getComponentTrace$1() {\n let currentVNode = stack$1[stack$1.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace$1(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry$1(entry));\n });\n return logs;\n}\nfunction formatTraceEntry$1({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName$1(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps$1(vnode.props), close] : [open + close];\n}\nfunction formatProps$1(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp$1(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp$1(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef$1(value)) {\n value = formatProp$1(key, toRaw$1(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw$1(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling$1(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError$1(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling$1(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling$1(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError$1(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling$1(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError$1(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling$1(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError$1(err, type, contextVNode, throwInDev);\n}\nfunction logError$1(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext$1(contextVNode);\n }\n warn$1$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext$1();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing$1 = false;\nlet isFlushPending$1 = false;\nconst queue$1 = [];\nlet flushIndex$1 = 0;\nconst pendingPostFlushCbs$1 = [];\nlet activePostFlushCbs$1 = null;\nlet postFlushIndex$1 = 0;\nconst resolvedPromise$1 = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise$1 = null;\nconst RECURSION_LIMIT$1 = 100;\nfunction nextTick$2(fn) {\n const p = currentFlushPromise$1 || resolvedPromise$1;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex$1(id) {\n let start = flushIndex$1 + 1;\n let end = queue$1.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue$1[middle];\n const middleJobId = getId$1(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob$1(job) {\n if (!queue$1.length || !queue$1.includes(\n job,\n isFlushing$1 && job.allowRecurse ? flushIndex$1 + 1 : flushIndex$1\n )) {\n if (job.id == null) {\n queue$1.push(job);\n } else {\n queue$1.splice(findInsertionIndex$1(job.id), 0, job);\n }\n queueFlush$1();\n }\n}\nfunction queueFlush$1() {\n if (!isFlushing$1 && !isFlushPending$1) {\n isFlushPending$1 = true;\n currentFlushPromise$1 = resolvedPromise$1.then(flushJobs$1);\n }\n}\nfunction queuePostFlushCb$1(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs$1 || !activePostFlushCbs$1.includes(\n cb,\n cb.allowRecurse ? postFlushIndex$1 + 1 : postFlushIndex$1\n )) {\n pendingPostFlushCbs$1.push(cb);\n }\n } else {\n pendingPostFlushCbs$1.push(...cb);\n }\n queueFlush$1();\n}\nfunction flushPostFlushCbs$1(seen) {\n if (pendingPostFlushCbs$1.length) {\n const deduped = [...new Set(pendingPostFlushCbs$1)].sort(\n (a, b) => getId$1(a) - getId$1(b)\n );\n pendingPostFlushCbs$1.length = 0;\n if (activePostFlushCbs$1) {\n activePostFlushCbs$1.push(...deduped);\n return;\n }\n activePostFlushCbs$1 = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex$1 = 0; postFlushIndex$1 < activePostFlushCbs$1.length; postFlushIndex$1++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates$1(seen, activePostFlushCbs$1[postFlushIndex$1])) {\n continue;\n }\n activePostFlushCbs$1[postFlushIndex$1]();\n }\n activePostFlushCbs$1 = null;\n postFlushIndex$1 = 0;\n }\n}\nconst getId$1 = (job) => job.id == null ? Infinity : job.id;\nconst comparator$1 = (a, b) => {\n const diff = getId$1(a) - getId$1(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs$1(seen) {\n isFlushPending$1 = false;\n isFlushing$1 = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue$1.sort(comparator$1);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates$1(seen, job) : NOOP;\n try {\n for (flushIndex$1 = 0; flushIndex$1 < queue$1.length; flushIndex$1++) {\n const job = queue$1[flushIndex$1];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling$1(job, null, 14);\n }\n }\n } finally {\n flushIndex$1 = 0;\n queue$1.length = 0;\n flushPostFlushCbs$1(seen);\n isFlushing$1 = false;\n currentFlushPromise$1 = null;\n if (queue$1.length || pendingPostFlushCbs$1.length) {\n flushJobs$1(seen);\n }\n }\n}\nfunction checkRecursiveUpdates$1(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT$1) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName$1(instance.type);\n handleError$1(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent$1(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n instance.effect.dirty = true;\n instance.update();\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob$1(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb$1(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer$1 = [];\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer$1.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer$1 = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n buffer$1 = [];\n }\n }, 3e3);\n } else {\n buffer$1 = [];\n }\n}\n\nlet currentRenderingInstance$1 = null;\nlet currentScopeId$1 = null;\nfunction markAttrsAccessed$1() {\n}\nconst NULL_DYNAMIC_COMPONENT$1 = Symbol.for(\"v-ndc\");\n\nconst isSuspense = (type) => type.__isSuspense;\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb$1(fn);\n }\n}\n\nconst ssrContextKey$1 = Symbol.for(\"v-scx\");\nconst useSSRContext$1 = () => {\n {\n const ctx = inject$1(ssrContextKey$1);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\nconst INITIAL_WATCHER_VALUE$1 = {};\nfunction doWatch$1(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance$1;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse$1(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef$1(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n } else if (isReactive$1(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive$1(s) || isShallow$1(s));\n getter = () => source.map((s) => {\n if (isRef$1(s)) {\n return s.value;\n } else if (isReactive$1(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling$1(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling$1(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling$1(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse$1(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling$1(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup$1) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling$1(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext$1();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE$1) : INITIAL_WATCHER_VALUE$1;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling$1(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE$1 ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE$1 ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect$2(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob$1(job);\n }\n const effect = new ReactiveEffect$1(getter, NOOP, scheduler);\n const unwatch = () => {\n effect.stop();\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect$2(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch$1(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter$1(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance$1(this);\n const res = doWatch$1(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter$1(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse$1(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef$1(value)) {\n traverse$1(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse$1(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse$1(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse$1(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nconst getPublicInstance$1 = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent$1(i))\n return getExposeProxy$1(i) || i.proxy;\n return getPublicInstance$1(i.parent);\n};\nconst publicPropertiesMap$1 = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly$1(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly$1(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly$1(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly$1(i.refs) : i.refs,\n $parent: (i) => getPublicInstance$1(i.parent),\n $root: (i) => getPublicInstance$1(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions$1(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob$1(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick$2.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch$1.bind(i) : NOOP\n })\n);\nconst isReservedPrefix$1 = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding$1 = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers$1 = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding$1(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess$1) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap$1[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track$1(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed$1();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track$1(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance$1 && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix$1(key[0]) && hasOwn(data, key)) {\n warn$1$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance$1) {\n warn$1$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding$1(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding$1(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap$1, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers$1.ownKeys = (target) => {\n warn$1$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nfunction normalizePropsOrEmits$1(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nlet shouldCacheAccess$1 = true;\nfunction resolveMergedOptions$1(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions$1(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions$1(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions$1(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions$1(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions$1(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats$1[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats$1 = {\n data: mergeDataFn$1,\n props: mergeEmitsOrPropsOptions$1,\n emits: mergeEmitsOrPropsOptions$1,\n // objects\n methods: mergeObjectOptions$1,\n computed: mergeObjectOptions$1,\n // lifecycle\n beforeCreate: mergeAsArray$2,\n created: mergeAsArray$2,\n beforeMount: mergeAsArray$2,\n mounted: mergeAsArray$2,\n beforeUpdate: mergeAsArray$2,\n updated: mergeAsArray$2,\n beforeDestroy: mergeAsArray$2,\n beforeUnmount: mergeAsArray$2,\n destroyed: mergeAsArray$2,\n unmounted: mergeAsArray$2,\n activated: mergeAsArray$2,\n deactivated: mergeAsArray$2,\n errorCaptured: mergeAsArray$2,\n serverPrefetch: mergeAsArray$2,\n // assets\n components: mergeObjectOptions$1,\n directives: mergeObjectOptions$1,\n // watch\n watch: mergeWatchOptions$1,\n // provide / inject\n provide: mergeDataFn$1,\n inject: mergeInject$1\n};\nfunction mergeDataFn$1(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject$1(to, from) {\n return mergeObjectOptions$1(normalizeInject$1(to), normalizeInject$1(from));\n}\nfunction normalizeInject$1(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray$2(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions$1(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions$1(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits$1(to),\n normalizePropsOrEmits$1(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions$1(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray$2(to[key], from[key]);\n }\n return merged;\n}\nlet currentApp$1 = null;\nfunction inject$1(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance$1 || currentRenderingInstance$1;\n if (instance || currentApp$1) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp$1._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\nconst queuePostRenderEffect$2 = queueEffectWithSuspense ;\n\nconst isTeleport$1 = (type) => type.__isTeleport;\n\nconst Fragment$1 = Symbol.for(\"v-fgt\");\nconst Text$1 = Symbol.for(\"v-txt\");\nconst Comment$1 = Symbol.for(\"v-cmt\");\nlet currentBlock$1 = null;\nfunction isVNode$1(value) {\n return value ? value.__v_isVNode === true : false;\n}\nconst createVNodeWithArgsTransform$1 = (...args) => {\n return _createVNode$1(\n ...args\n );\n};\nconst InternalObjectKey$1 = `__vInternal`;\nconst normalizeKey$1 = ({ key }) => key != null ? key : null;\nconst normalizeRef$1 = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef$1(ref) || isFunction(ref) ? { i: currentRenderingInstance$1, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode$1(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment$1 ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey$1(props),\n ref: props && normalizeRef$1(props),\n scopeId: currentScopeId$1,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance$1\n };\n if (needFullChildrenNormalization) {\n normalizeChildren$1(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (// avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock$1 && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock$1.push(vnode);\n }\n return vnode;\n}\nconst createVNode$2 = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform$1 : _createVNode$1;\nfunction _createVNode$1(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT$1) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment$1;\n }\n if (isVNode$1(type)) {\n const cloned = cloneVNode$1(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren$1(cloned, children);\n }\n if (!isBlockNode && currentBlock$1) {\n if (cloned.shapeFlag & 6) {\n currentBlock$1[currentBlock$1.indexOf(type)] = cloned;\n } else {\n currentBlock$1.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent$1(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps$1(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy$1(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport$1(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy$1(type)) {\n type = toRaw$1(type);\n warn$1$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode$1(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps$1(props) {\n if (!props)\n return null;\n return isProxy$1(props) || InternalObjectKey$1 in props ? extend({}, props) : props;\n}\nfunction cloneVNode$1(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps$1(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey$1(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef$1(extraProps)) : [ref, normalizeRef$1(extraProps)] : normalizeRef$1(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode$1) : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment$1 ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode$1(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode$1(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n return cloned;\n}\nfunction deepCloneVNode$1(vnode) {\n const cloned = cloneVNode$1(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode$1);\n }\n return cloned;\n}\nfunction createTextVNode$1(text = \" \", flag = 0) {\n return createVNode$2(Text$1, null, text, flag);\n}\nfunction normalizeChildren$1(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren$1(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey$1 in children)) {\n children._ctx = currentRenderingInstance$1;\n } else if (slotFlag === 3 && currentRenderingInstance$1) {\n if (currentRenderingInstance$1.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance$1 };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode$1(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps$1(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nlet currentInstance$1 = null;\nconst getCurrentInstance$1 = () => currentInstance$1 || currentRenderingInstance$1;\nlet internalSetCurrentInstance$1;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key]))\n setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1)\n setters.forEach((set) => set(v));\n else\n setters[0](v);\n };\n };\n internalSetCurrentInstance$1 = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance$1 = v\n );\n registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup$1 = v\n );\n}\nconst setCurrentInstance$1 = (instance) => {\n const prev = currentInstance$1;\n internalSetCurrentInstance$1(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance$1(prev);\n };\n};\nfunction isStatefulComponent$1(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup$1 = false;\nfunction getExposeProxy$1(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs$1(markRaw$1(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap$1) {\n return publicPropertiesMap$1[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap$1;\n }\n }));\n }\n}\nconst classifyRE$1 = /(?:^|[-_])(\\w)/g;\nconst classify$1 = (str) => str.replace(classifyRE$1, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName$1(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName$1(instance, Component, isRoot = false) {\n let name = getComponentName$1(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify$1(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent$1(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\nconst warn$3 = !!(process.env.NODE_ENV !== \"production\") ? warn$1$1 : NOOP;\n!!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\n!!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\n\n/**\n* @vue/runtime-dom v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nif (!!(process.env.NODE_ENV !== \"production\")) ;\n\nSymbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance$1();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$3(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn$3(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn$3(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\n/**\n* @dcloudio/uni-mp-vue v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$2(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn$2(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn$2(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$2(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn$2(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] || type : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type] || type;\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n console.error(err);\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick$1(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction hasQueueJob(job) {\n return queue.indexOf(job) > -1;\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n // fixed by xxxxxx\n // 为 0 是 App,无 parent 是 Page 指向 App\n component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction markAttrsAccessed() {\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect$1(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n // fixed by xxxxxx\n mount() {\n },\n // fixed by xxxxxx\n unmount() {\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n if (currentInstance.type.mpType === \"app\") {\n currentInstance.appContext.app.provide(key, value);\n }\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n if (isRootHook(type)) {\n target = target.root;\n }\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(\n (ErrorTypeStrings[type] || type.replace(/^on/, \"\")).replace(/ hook$/, \"\")\n );\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (``)\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的\n // $el: i => i.vnode.el,\n $el: (i) => i.__$el || (i.__$el = {}),\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\"))\n continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions$1(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (!__VUE_CREATED_DEFERRED__ && injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (!__VUE_CREATED_DEFERRED__) {\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n }\n if (__VUE_CREATED_DEFERRED__) {\n ctx.$callCreatedHook = function(name) {\n if (created) {\n return callHook(created, instance, \"c\");\n }\n };\n } else {\n if (created) {\n callHook(created, instance, \"c\");\n }\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n if (instance.ctx.$onApplyOptions) {\n instance.ctx.$onApplyOptions(options, instance, publicThis);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray$1,\n created: mergeAsArray$1,\n beforeMount: mergeAsArray$1,\n mounted: mergeAsArray$1,\n beforeUpdate: mergeAsArray$1,\n updated: mergeAsArray$1,\n beforeDestroy: mergeAsArray$1,\n beforeUnmount: mergeAsArray$1,\n destroyed: mergeAsArray$1,\n unmounted: mergeAsArray$1,\n activated: mergeAsArray$1,\n deactivated: mergeAsArray$1,\n errorCaptured: mergeAsArray$1,\n serverPrefetch: mergeAsArray$1,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray$1(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray$1(to[key], from[key]);\n }\n return merged;\n}\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = {};\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance, \"set\", \"$attrs\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* shouldCast */] = booleanIndex > -1;\n prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex;\n if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex((t) => isSameType(t, type));\n } else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else if (expectedType === \"null\") {\n valid = value === null;\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nconst queuePostRenderEffect$1 = queuePostFlushCb;\n\nconst isTeleport = (type) => type.__isTeleport;\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nlet currentBlock = null;\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...args\n );\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode$1 = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode$1(Text, null, text, flag);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n attrsProxy: null,\n slotsProxy: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n internalSetCurrentInstance = (i) => {\n currentInstance = i;\n };\n setInSSRSetupState = (v) => {\n isInSSRComponentSetup = v;\n };\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isSSR && setInSSRSetupState(isSSR);\n const {\n props\n /*, children*/\n } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n resetTracking();\n reset();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `setup() returned a Promise, but the version of Vue you are using does not support it yet.`\n );\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n instance.render = Component.render || NOOP;\n }\n if (__VUE_OPTIONS_API__ && true) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions$1(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function.`);\n }\n }\n}\nfunction getAttrsProxy(instance) {\n return instance.attrsProxy || (instance.attrsProxy = new Proxy(\n instance.attrs,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n track(instance, \"get\", \"$attrs\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n } : {\n get(target, key) {\n track(instance, \"get\", \"$attrs\");\n return target[key];\n }\n }\n ));\n}\nfunction getSlotsProxy(instance) {\n return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n }));\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n return Object.freeze({\n get attrs() {\n return getAttrsProxy(instance);\n },\n get slots() {\n return getSlotsProxy(instance);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n get attrs() {\n return getAttrsProxy(instance);\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n }\n return instance.proxy[key];\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nconst version = \"3.4.21\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst resolveFilter = null;\n\nfunction unwrapper(target) {\n return unref(target);\n}\nfunction defineAsyncComponent(source) {\n console.error(\"defineAsyncComponent is unsupported\");\n}\n\nconst ARRAYTYPE = \"[object Array]\";\nconst OBJECTTYPE = \"[object Object]\";\nfunction diff(current, pre) {\n const result = {};\n syncKeys(current, pre);\n _diff(current, pre, \"\", result);\n return result;\n}\nfunction syncKeys(current, pre) {\n current = unwrapper(current);\n if (current === pre)\n return;\n const rootCurrentType = toTypeString(current);\n const rootPreType = toTypeString(pre);\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n for (let key in pre) {\n const currentValue = current[key];\n if (currentValue === void 0) {\n current[key] = null;\n } else {\n syncKeys(currentValue, pre[key]);\n }\n }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item);\n });\n }\n }\n}\nfunction _diff(current, pre, path, result) {\n current = unwrapper(current);\n if (current === pre)\n return;\n const rootCurrentType = toTypeString(current);\n const rootPreType = toTypeString(pre);\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current);\n } else {\n for (let key in current) {\n const currentValue = unwrapper(current[key]);\n const preValue = pre[key];\n const currentType = toTypeString(currentValue);\n const preType = toTypeString(preValue);\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != preValue) {\n setResult(\n result,\n (path == \"\" ? \"\" : path + \".\") + key,\n currentValue\n );\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(\n result,\n (path == \"\" ? \"\" : path + \".\") + key,\n currentValue\n );\n } else {\n if (currentValue.length < preValue.length) {\n setResult(\n result,\n (path == \"\" ? \"\" : path + \".\") + key,\n currentValue\n );\n } else {\n currentValue.forEach((item, index) => {\n _diff(\n item,\n preValue[index],\n (path == \"\" ? \"\" : path + \".\") + key + \"[\" + index + \"]\",\n result\n );\n });\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(\n result,\n (path == \"\" ? \"\" : path + \".\") + key,\n currentValue\n );\n } else {\n for (let subKey in currentValue) {\n _diff(\n currentValue[subKey],\n preValue[subKey],\n (path == \"\" ? \"\" : path + \".\") + key + \".\" + subKey,\n result\n );\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current);\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current);\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + \"[\" + index + \"]\", result);\n });\n }\n }\n } else {\n setResult(result, path, current);\n }\n}\nfunction setResult(result, k, v) {\n result[k] = v;\n}\n\nfunction hasComponentEffect(instance) {\n return queue.includes(instance.update);\n}\nfunction flushCallbacks(instance) {\n const ctx = instance.ctx;\n const callbacks = ctx.__next_tick_callbacks;\n if (callbacks && callbacks.length) {\n if (process.env.UNI_DEBUG) {\n const mpInstance = ctx.$scope;\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:flushCallbacks[\" + callbacks.length + \"]\"\n );\n }\n const copies = callbacks.slice(0);\n callbacks.length = 0;\n for (let i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n}\nfunction nextTick(instance, fn) {\n const ctx = instance.ctx;\n if (!ctx.__next_tick_pending && !hasComponentEffect(instance)) {\n if (process.env.UNI_DEBUG) {\n const mpInstance = ctx.$scope;\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:nextVueTick\"\n );\n }\n return nextTick$1(fn && fn.bind(instance.proxy));\n }\n if (process.env.UNI_DEBUG) {\n const mpInstance = ctx.$scope;\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:nextMPTick\"\n );\n }\n let _resolve;\n if (!ctx.__next_tick_callbacks) {\n ctx.__next_tick_callbacks = [];\n }\n ctx.__next_tick_callbacks.push(() => {\n if (fn) {\n callWithErrorHandling(\n fn.bind(instance.proxy),\n instance,\n 14\n );\n } else if (_resolve) {\n _resolve(instance.proxy);\n }\n });\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n}\n\nfunction clone(src, seen) {\n src = unwrapper(src);\n const type = typeof src;\n if (type === \"object\" && src !== null) {\n let copy = seen.get(src);\n if (typeof copy !== \"undefined\") {\n return copy;\n }\n if (isArray(src)) {\n const len = src.length;\n copy = new Array(len);\n seen.set(src, copy);\n for (let i = 0; i < len; i++) {\n copy[i] = clone(src[i], seen);\n }\n } else {\n copy = {};\n seen.set(src, copy);\n for (const name in src) {\n if (hasOwn(src, name)) {\n copy[name] = clone(src[name], seen);\n }\n }\n }\n return copy;\n }\n if (type !== \"symbol\") {\n return src;\n }\n}\nfunction deepCopy(src) {\n return clone(src, typeof WeakMap !== \"undefined\" ? /* @__PURE__ */ new WeakMap() : /* @__PURE__ */ new Map());\n}\n\nfunction getMPInstanceData(instance, keys) {\n const data = instance.data;\n const ret = /* @__PURE__ */ Object.create(null);\n keys.forEach((key) => {\n ret[key] = data[key];\n });\n return ret;\n}\nfunction patch(instance, data, oldData) {\n if (!data) {\n return;\n }\n data = deepCopy(data);\n const ctx = instance.ctx;\n const mpType = ctx.mpType;\n if (mpType === \"page\" || mpType === \"component\") {\n data.r0 = 1;\n const start = Date.now();\n const mpInstance = ctx.$scope;\n const keys = Object.keys(data);\n const diffData = diff(data, oldData || getMPInstanceData(mpInstance, keys));\n if (Object.keys(diffData).length) {\n if (process.env.UNI_DEBUG) {\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"][\\u8017\\u65F6\" + (Date.now() - start) + \"]\\u5DEE\\u91CF\\u66F4\\u65B0\",\n JSON.stringify(diffData)\n );\n }\n ctx.__next_tick_pending = true;\n mpInstance.setData(diffData, () => {\n ctx.__next_tick_pending = false;\n flushCallbacks(instance);\n });\n flushPreFlushCbs();\n } else {\n flushCallbacks(instance);\n }\n }\n}\n\nfunction initAppConfig(appConfig) {\n appConfig.globalProperties.$nextTick = function $nextTick(fn) {\n return nextTick(this.$, fn);\n };\n}\n\nfunction onApplyOptions(options, instance, publicThis) {\n instance.appContext.config.globalProperties.$applyOptions(\n options,\n instance,\n publicThis\n );\n const computedOptions = options.computed;\n if (computedOptions) {\n const keys = Object.keys(computedOptions);\n if (keys.length) {\n const ctx = instance.ctx;\n if (!ctx.$computedKeys) {\n ctx.$computedKeys = [];\n }\n ctx.$computedKeys.push(...keys);\n }\n }\n delete instance.ctx.$onApplyOptions;\n}\n\nfunction setRef$1(instance, isUnmount = false) {\n const {\n setupState,\n $templateRefs,\n ctx: { $scope, $mpPlatform }\n } = instance;\n if ($mpPlatform === \"mp-alipay\") {\n return;\n }\n if (!$templateRefs || !$scope) {\n return;\n }\n if (isUnmount) {\n return $templateRefs.forEach(\n (templateRef) => setTemplateRef(templateRef, null, setupState)\n );\n }\n const check = $mpPlatform === \"mp-baidu\" || $mpPlatform === \"mp-toutiao\";\n const doSetByRefs = (refs) => {\n const mpComponents = (\n // 字节小程序 selectAllComponents 可能返回 null\n // https://github.com/dcloudio/uni-app/issues/3954\n ($scope.selectAllComponents(\".r\") || []).concat(\n $scope.selectAllComponents(\".r-i-f\") || []\n )\n );\n return refs.filter((templateRef) => {\n const refValue = findComponentPublicInstance(mpComponents, templateRef.i);\n if (check && refValue === null) {\n return true;\n }\n setTemplateRef(templateRef, refValue, setupState);\n return false;\n });\n };\n const doSet = () => {\n const refs = doSetByRefs($templateRefs);\n if (refs.length && instance.proxy && instance.proxy.$scope) {\n instance.proxy.$scope.setData({ r1: 1 }, () => {\n doSetByRefs(refs);\n });\n }\n };\n if ($scope._$setRef) {\n $scope._$setRef(doSet);\n } else {\n nextTick(instance, doSet);\n }\n}\nfunction toSkip(value) {\n if (isObject(value)) {\n markRaw(value);\n }\n return value;\n}\nfunction findComponentPublicInstance(mpComponents, id) {\n const mpInstance = mpComponents.find(\n (com) => com && (com.properties || com.props).uI === id\n );\n if (mpInstance) {\n const vm = mpInstance.$vm;\n if (vm) {\n return getExposeProxy(vm.$) || vm;\n }\n return toSkip(mpInstance);\n }\n return null;\n}\nfunction setTemplateRef({ r, f }, refValue, setupState) {\n if (isFunction(r)) {\n r(refValue, {});\n } else {\n const _isString = isString(r);\n const _isRef = isRef(r);\n if (_isString || _isRef) {\n if (f) {\n if (!_isRef) {\n return;\n }\n if (!isArray(r.value)) {\n r.value = [];\n }\n const existing = r.value;\n if (existing.indexOf(refValue) === -1) {\n existing.push(refValue);\n if (!refValue) {\n return;\n }\n onBeforeUnmount(() => remove(existing, refValue), refValue.$);\n }\n } else if (_isString) {\n if (hasOwn(setupState, r)) {\n setupState[r] = refValue;\n }\n } else if (isRef(r)) {\n r.value = refValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRef(r);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRef(r);\n }\n }\n}\nfunction warnRef(ref) {\n warn(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n}\n\nconst queuePostRenderEffect = queuePostFlushCb;\nfunction mountComponent(initialVNode, options) {\n const instance = initialVNode.component = createComponentInstance(initialVNode, options.parentComponent, null);\n if (__VUE_OPTIONS_API__) {\n instance.ctx.$onApplyOptions = onApplyOptions;\n instance.ctx.$children = [];\n }\n if (options.mpType === \"app\") {\n instance.render = NOOP;\n }\n if (options.onBeforeSetup) {\n options.onBeforeSetup(instance, options);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n if (__VUE_OPTIONS_API__) {\n if (options.parentComponent && instance.proxy) {\n options.parentComponent.ctx.$children.push(getExposeProxy(instance) || instance.proxy);\n }\n }\n setupRenderEffect(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n return instance.proxy;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n uid,\n appContext: {\n app: {\n config: {\n globalProperties: { pruneComponentPropsCache }\n }\n }\n },\n inheritAttrs\n } = instance;\n instance.$templateRefs = [];\n instance.$ei = 0;\n pruneComponentPropsCache(uid);\n instance.__counter = instance.__counter === 0 ? 1 : 0;\n let result;\n const prev = setCurrentRenderingInstance(instance);\n try {\n if (vnode.shapeFlag & 4) {\n fallthroughAttrs(inheritAttrs, props, propsOptions, attrs);\n const proxyToUse = withProxy || proxy;\n result = render.call(\n proxyToUse,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n );\n } else {\n fallthroughAttrs(\n inheritAttrs,\n props,\n propsOptions,\n Component.props ? attrs : getFunctionalFallthrough(attrs)\n );\n const render2 = Component;\n result = render2.length > 1 ? render2(props, { attrs, slots, emit }) : render2(\n props,\n null\n /* we know it doesn't need it */\n );\n }\n } catch (err) {\n handleError(err, instance, 1);\n result = false;\n }\n setRef$1(instance);\n setCurrentRenderingInstance(prev);\n return result;\n}\nfunction fallthroughAttrs(inheritAttrs, props, propsOptions, fallthroughAttrs2) {\n if (props && fallthroughAttrs2 && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs2).filter(\n (key) => key !== \"class\" && key !== \"style\"\n );\n if (!keys.length) {\n return;\n }\n if (propsOptions && keys.some(isModelListener)) {\n keys.forEach((key) => {\n if (!isModelListener(key) || !(key.slice(9) in propsOptions)) {\n props[key] = fallthroughAttrs2[key];\n }\n });\n } else {\n keys.forEach((key) => props[key] = fallthroughAttrs2[key]);\n }\n }\n}\nconst updateComponentPreRender = (instance) => {\n pauseTracking();\n flushPreFlushCbs();\n resetTracking();\n};\nfunction componentUpdateScopedSlotsFn() {\n const scopedSlotsData = this.$scopedSlotsData;\n if (!scopedSlotsData || scopedSlotsData.length === 0) {\n return;\n }\n const start = Date.now();\n const mpInstance = this.ctx.$scope;\n const oldData = mpInstance.data;\n const diffData = /* @__PURE__ */ Object.create(null);\n scopedSlotsData.forEach(({ path, index, data }) => {\n const oldScopedSlotData = getValueByDataPath(oldData, path);\n const diffPath = isString(index) ? `${path}.${index}` : `${path}[${index}]`;\n if (typeof oldScopedSlotData === \"undefined\" || typeof oldScopedSlotData[index] === \"undefined\") {\n diffData[diffPath] = data;\n } else {\n const diffScopedSlotData = diff(\n data,\n oldScopedSlotData[index]\n );\n Object.keys(diffScopedSlotData).forEach((name) => {\n diffData[diffPath + \".\" + name] = diffScopedSlotData[name];\n });\n }\n });\n scopedSlotsData.length = 0;\n if (Object.keys(diffData).length) {\n if (process.env.UNI_DEBUG) {\n console.log(\n \"[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + this.uid + \"][\\u8017\\u65F6\" + (Date.now() - start) + \"]\\u4F5C\\u7528\\u57DF\\u63D2\\u69FD\\u5DEE\\u91CF\\u66F4\\u65B0\",\n JSON.stringify(diffData)\n );\n }\n mpInstance.setData(diffData);\n }\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\nfunction setupRenderEffect(instance) {\n const updateScopedSlots = componentUpdateScopedSlotsFn.bind(\n instance\n );\n instance.$updateScopedSlots = () => nextTick$1(() => queueJob(updateScopedSlots));\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n onBeforeUnmount(() => {\n setRef$1(instance, true);\n }, instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(instance, renderComponentRoot(instance));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n } else {\n const { next, bu, u } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n updateComponentPreRender();\n if (bu) {\n invokeArrayFns(bu);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(instance, renderComponentRoot(instance));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n if (u) {\n queuePostRenderEffect(u);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n const effect = instance.effect = new ReactiveEffect(\n componentUpdateFn,\n NOOP,\n () => queueJob(update),\n instance.scope\n // track it in component's effect scope\n );\n const update = instance.update = () => {\n if (effect.dirty) {\n effect.run();\n }\n };\n update.id = instance.uid;\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n update.ownerInstance = instance;\n }\n update();\n}\nfunction unmountComponent(instance) {\n const { bum, scope, update, um } = instance;\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (update) {\n update.active = false;\n }\n if (um) {\n queuePostRenderEffect(um);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n });\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n}\nconst oldCreateApp = createAppAPI();\nfunction getTarget() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof my !== \"undefined\") {\n return my;\n }\n}\nfunction createVueApp(rootComponent, rootProps = null) {\n const target = getTarget();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const app = oldCreateApp(rootComponent, rootProps);\n const appContext = app._context;\n initAppConfig(appContext.config);\n const createVNode = (initialVNode) => {\n initialVNode.appContext = appContext;\n initialVNode.shapeFlag = 6;\n return initialVNode;\n };\n const createComponent = function createComponent2(initialVNode, options) {\n return mountComponent(createVNode(initialVNode), options);\n };\n const destroyComponent = function destroyComponent2(component) {\n return component && unmountComponent(component.$);\n };\n app.mount = function mount() {\n rootComponent.render = NOOP;\n const instance = mountComponent(\n createVNode({ type: rootComponent }),\n {\n mpType: \"app\",\n mpInstance: null,\n parentComponent: null,\n slots: [],\n props: null\n }\n );\n app._instance = instance.$;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsInitApp(app, version);\n }\n instance.$app = app;\n instance.$createComponent = createComponent;\n instance.$destroyComponent = destroyComponent;\n appContext.$appInstance = instance;\n return instance;\n };\n app.unmount = function unmount() {\n warn(`Cannot unmount an app.`);\n };\n return app;\n}\n\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n initCssVarsRender(instance, getter);\n}\nfunction initCssVarsRender(instance, getter) {\n instance.ctx.__cssVars = () => {\n const vars = getter(instance.proxy);\n const cssVars = {};\n for (const key in vars) {\n cssVars[`--${key}`] = vars[key];\n }\n return cssVars;\n };\n}\n\nfunction withModifiers() {\n}\nfunction createVNode() {\n}\n\nfunction injectLifecycleHook(name, hook, publicThis, instance) {\n if (isFunction(hook)) {\n injectHook(name, hook.bind(publicThis), instance);\n }\n}\nfunction initHooks(options, instance, publicThis) {\n const mpType = options.mpType || publicThis.$mpType;\n if (!mpType || mpType === 'component') {\n // 仅 App,Page 类型支持在 options 中配置 on 生命周期,组件可以使用组合式 API 定义页面生命周期\n return;\n }\n Object.keys(options).forEach((name) => {\n if (isUniLifecycleHook(name, options[name], false)) {\n const hooks = options[name];\n if (isArray(hooks)) {\n hooks.forEach((hook) => injectLifecycleHook(name, hook, publicThis, instance));\n }\n else {\n injectLifecycleHook(name, hooks, publicThis, instance);\n }\n }\n });\n}\n\nfunction applyOptions(options, instance, publicThis) {\n initHooks(options, instance, publicThis);\n}\n\nfunction set(target, key, val) {\n return (target[key] = val);\n}\nfunction $callMethod(method, ...args) {\n const fn = this[method];\n if (fn) {\n return fn(...args);\n }\n console.error(`method ${method} not found`);\n return null;\n}\n\nfunction createErrorHandler(app) {\n return function errorHandler(err, instance, _info) {\n if (!instance) {\n throw err;\n }\n const appInstance = app._instance;\n if (!appInstance || !appInstance.proxy) {\n throw err;\n }\n {\n appInstance.proxy.$callHook(ON_ERROR, err);\n }\n };\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction initOptionMergeStrategies(optionMergeStrategies) {\n UniLifecycleHooks.forEach((name) => {\n optionMergeStrategies[name] = mergeAsArray;\n });\n}\n\nlet realAtob;\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\nif (typeof atob !== 'function') {\n realAtob = function (str) {\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\n if (!b64re.test(str)) {\n throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");\n }\n // Adding the padding if missing, for semplicity\n str += '=='.slice(2 - (str.length & 3));\n var bitmap;\n var result = '';\n var r1;\n var r2;\n var i = 0;\n for (; i < str.length;) {\n bitmap =\n (b64.indexOf(str.charAt(i++)) << 18) |\n (b64.indexOf(str.charAt(i++)) << 12) |\n ((r1 = b64.indexOf(str.charAt(i++))) << 6) |\n (r2 = b64.indexOf(str.charAt(i++)));\n result +=\n r1 === 64\n ? String.fromCharCode((bitmap >> 16) & 255)\n : r2 === 64\n ? String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255)\n : String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255, bitmap & 255);\n }\n return result;\n };\n}\nelse {\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\n realAtob = atob;\n}\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(realAtob(str)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(''));\n}\nfunction getCurrentUserInfo() {\n const token = uni.getStorageSync('uni_id_token') || '';\n const tokenArr = token.split('.');\n if (!token || tokenArr.length !== 3) {\n return {\n uid: null,\n role: [],\n permission: [],\n tokenExpired: 0,\n };\n }\n let userInfo;\n try {\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\n }\n catch (error) {\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message);\n }\n userInfo.tokenExpired = userInfo.exp * 1000;\n delete userInfo.exp;\n delete userInfo.iat;\n return userInfo;\n}\nfunction uniIdMixin(globalProperties) {\n globalProperties.uniIDHasRole = function (roleId) {\n const { role } = getCurrentUserInfo();\n return role.indexOf(roleId) > -1;\n };\n globalProperties.uniIDHasPermission = function (permissionId) {\n const { permission } = getCurrentUserInfo();\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1;\n };\n globalProperties.uniIDTokenValid = function () {\n const { tokenExpired } = getCurrentUserInfo();\n return tokenExpired > Date.now();\n };\n}\n\nfunction initApp(app) {\n const appConfig = app._context.config;\n appConfig.errorHandler = invokeCreateErrorHandler(app, createErrorHandler);\n initOptionMergeStrategies(appConfig.optionMergeStrategies);\n const globalProperties = appConfig.globalProperties;\n {\n uniIdMixin(globalProperties);\n }\n if (__VUE_OPTIONS_API__) {\n globalProperties.$set = set;\n globalProperties.$applyOptions = applyOptions;\n globalProperties.$callMethod = $callMethod;\n }\n {\n uni.invokeCreateVueAppHook(app);\n }\n}\n\nconst propsCaches = Object.create(null);\nfunction renderProps(props) {\n const { uid, __counter } = getCurrentInstance();\n const propsId = (propsCaches[uid] || (propsCaches[uid] = [])).push(guardReactiveProps(props)) - 1;\n // 强制每次更新\n return uid + ',' + propsId + ',' + __counter;\n}\nfunction pruneComponentPropsCache(uid) {\n delete propsCaches[uid];\n}\nfunction findComponentPropsData(up) {\n if (!up) {\n return;\n }\n const [uid, propsId] = up.split(',');\n if (!propsCaches[uid]) {\n return;\n }\n return propsCaches[uid][parseInt(propsId)];\n}\n\nvar plugin = {\n install(app) {\n initApp(app);\n app.config.globalProperties.pruneComponentPropsCache =\n pruneComponentPropsCache;\n const oldMount = app.mount;\n app.mount = function mount(rootContainer) {\n const instance = oldMount.call(app, rootContainer);\n const createApp = getCreateApp();\n if (createApp) {\n createApp(instance);\n }\n else {\n // @ts-expect-error 旧编译器\n if (typeof createMiniProgramApp !== 'undefined') {\n // @ts-expect-error\n createMiniProgramApp(instance);\n }\n }\n return instance;\n };\n },\n};\nfunction getCreateApp() {\n const method = process.env.UNI_MP_PLUGIN\n ? 'createPluginApp'\n : process.env.UNI_SUBPACKAGE\n ? 'createSubpackageApp'\n : 'createApp';\n if (typeof global !== 'undefined' &&\n typeof global[method] !== 'undefined') {\n return global[method];\n }\n else if (typeof my !== 'undefined') {\n // 支付宝小程序开启globalObjectMode配置后才会有global\n return my[method];\n }\n}\n\nfunction vOn(value, key) {\n const instance = getCurrentInstance();\n const ctx = instance.ctx;\n // 微信小程序,QQ小程序,当 setData diff 的时候,若事件不主动同步过去,会导致事件绑定不更新,(question/137217)\n const extraKey = typeof key !== 'undefined' &&\n (ctx.$mpPlatform === 'mp-weixin' ||\n ctx.$mpPlatform === 'mp-qq' ||\n ctx.$mpPlatform === 'mp-xhs') &&\n (isString(key) || typeof key === 'number')\n ? '_' + key\n : '';\n const name = 'e' + instance.$ei++ + extraKey;\n const mpInstance = ctx.$scope;\n if (!value) {\n // remove\n delete mpInstance[name];\n return name;\n }\n const existingInvoker = mpInstance[name];\n if (existingInvoker) {\n // patch\n existingInvoker.value = value;\n }\n else {\n // add\n mpInstance[name] = createInvoker(value, instance);\n }\n return name;\n}\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n patchMPEvent(e);\n let args = [e];\n if (e.detail && e.detail.__args__) {\n args = e.detail.__args__;\n }\n const eventValue = invoker.value;\n const invoke = () => callWithAsyncErrorHandling(patchStopImmediatePropagation(e, eventValue), instance, 5 /* ErrorCodes.NATIVE_EVENT_HANDLER */, args);\n // 冒泡事件触发时,启用延迟策略,避免同一批次的事件执行时机不正确,对性能可能有略微影响 https://github.com/dcloudio/uni-app/issues/3228\n const eventTarget = e.target;\n const eventSync = eventTarget\n ? eventTarget.dataset\n ? String(eventTarget.dataset.eventsync) === 'true'\n : false\n : false;\n if (bubbles.includes(e.type) && !eventSync) {\n setTimeout(invoke);\n }\n else {\n const res = invoke();\n if (e.type === 'input' && (isArray(res) || isPromise(res))) {\n return;\n }\n return res;\n }\n };\n invoker.value = initialValue;\n return invoker;\n}\n// 冒泡事件列表\nconst bubbles = [\n // touch事件暂不做延迟,否则在 Android 上会影响性能,比如一些拖拽跟手手势等\n // 'touchstart',\n // 'touchmove',\n // 'touchcancel',\n // 'touchend',\n 'tap',\n 'longpress',\n 'longtap',\n 'transitionend',\n 'animationstart',\n 'animationiteration',\n 'animationend',\n 'touchforcechange',\n];\nfunction patchMPEvent(event) {\n if (event.type && event.target) {\n event.preventDefault = NOOP;\n event.stopPropagation = NOOP;\n event.stopImmediatePropagation = NOOP;\n if (!hasOwn(event, 'detail')) {\n event.detail = {};\n }\n if (hasOwn(event, 'markerId')) {\n event.detail = typeof event.detail === 'object' ? event.detail : {};\n event.detail.markerId = event.markerId;\n }\n // mp-baidu,checked=>value\n if (isPlainObject(event.detail) &&\n hasOwn(event.detail, 'checked') &&\n !hasOwn(event.detail, 'value')) {\n event.detail.value = event.detail.checked;\n }\n if (isPlainObject(event.detail)) {\n event.target = extend({}, event.target, event.detail);\n }\n }\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop && originalStop.call(e);\n e._stopped = true;\n };\n return value.map((fn) => (e) => !e._stopped && fn(e));\n }\n else {\n return value;\n }\n}\n\n/**\n * Actual implementation\n */\nfunction vFor(source, renderItem) {\n let ret;\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, i);\n }\n }\n else if (typeof source === 'number') {\n if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n return [];\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, i);\n }\n }\n else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, i));\n }\n else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i);\n }\n }\n }\n else {\n ret = [];\n }\n return ret;\n}\n\nfunction renderSlot(name, props = {}, key) {\n const instance = getCurrentInstance();\n const { parent, isMounted, ctx: { $scope }, } = instance;\n // mp-alipay 为 props\n const vueIds = ($scope.properties || $scope.props).uI;\n if (!vueIds) {\n return;\n }\n if (!parent && !isMounted) {\n // 头条小程序首次 render 时,还没有 parent\n onMounted(() => {\n renderSlot(name, props, key);\n }, instance);\n return;\n }\n const invoker = findScopedSlotInvoker(vueIds, instance);\n // 可能不存在,因为插槽不是必需的\n if (invoker) {\n invoker(name, props, key);\n }\n}\nfunction findScopedSlotInvoker(vueId, instance) {\n let parent = instance.parent;\n while (parent) {\n const invokers = parent.$ssi;\n if (invokers && invokers[vueId]) {\n return invokers[vueId];\n }\n parent = parent.parent;\n }\n}\n\nfunction withScopedSlot(fn, { name, path, vueId, }) {\n const instance = getCurrentInstance();\n fn.path = path;\n const scopedSlots = (instance.$ssi ||\n (instance.$ssi = {}));\n const invoker = scopedSlots[vueId] ||\n (scopedSlots[vueId] = createScopedSlotInvoker(instance));\n if (!invoker.slots[name]) {\n invoker.slots[name] = {\n fn,\n };\n }\n else {\n invoker.slots[name].fn = fn;\n }\n return getValueByDataPath(instance.ctx.$scope.data, path);\n}\nfunction createScopedSlotInvoker(instance) {\n const invoker = (slotName, args, index) => {\n const slot = invoker.slots[slotName];\n if (!slot) {\n // slot 可能不存在 https://github.com/dcloudio/uni-app/issues/3346\n return;\n }\n const hasIndex = typeof index !== 'undefined';\n index = index || 0;\n // 确保当前 slot 的上下文,类似 withCtx\n const prevInstance = setCurrentRenderingInstance(instance);\n const data = slot.fn(args, slotName + (hasIndex ? '-' + index : ''), index);\n const path = slot.fn.path;\n setCurrentRenderingInstance(prevInstance);\n (instance.$scopedSlotsData || (instance.$scopedSlotsData = [])).push({\n path,\n index,\n data,\n });\n instance.$updateScopedSlots();\n };\n invoker.slots = {};\n return invoker;\n}\n\nfunction stringifyStyle(value) {\n if (isString(value)) {\n return value;\n }\n return stringify(normalizeStyle(value));\n}\nfunction stringify(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n ret += `${key.startsWith(`--`) ? key : hyphenate(key)}:${styles[key]};`;\n }\n return ret;\n}\n\n/**\n * quickapp-webview 不能使用 default 作为插槽名称,故统一转换 default 为 d\n * @param names\n * @returns\n */\nfunction dynamicSlot(names) {\n if (isString(names)) {\n return dynamicSlotName(names);\n }\n return names.map((name) => dynamicSlotName(name));\n}\n\nfunction setRef(ref, id, opts = {}) {\n const { $templateRefs } = getCurrentInstance();\n $templateRefs.push({ i: id, r: ref, k: opts.k, f: opts.f });\n}\n\nfunction withModelModifiers(fn, { number, trim }, isComponent = false) {\n if (isComponent) {\n return (...args) => {\n if (trim) {\n args = args.map((a) => a.trim());\n }\n else if (number) {\n args = args.map(toNumber);\n }\n return fn(...args);\n };\n }\n return (event) => {\n const value = event.detail.value;\n if (trim) {\n event.detail.value = value.trim();\n }\n else if (number) {\n event.detail.value = toNumber(value);\n }\n return fn(event);\n };\n}\n\nfunction setupDevtoolsPlugin() {\n // noop\n}\n\nconst o = (value, key) => vOn(value, key);\nconst f = (source, renderItem) => vFor(source, renderItem);\nconst d = (names) => dynamicSlot(names);\nconst r = (name, props, key) => renderSlot(name, props, key);\nconst w = (fn, options) => withScopedSlot(fn, options);\nconst s = (value) => stringifyStyle(value);\nconst c = (str) => camelize(str);\nconst e = (target, ...sources) => extend(target, ...sources);\nconst h = (str) => hyphenate(str);\nconst n = (value) => normalizeClass(value);\nconst t = (val) => toDisplayString(val);\nconst p = (props) => renderProps(props);\nconst sr = (ref, id, opts) => setRef(ref, id, opts);\nconst m = (fn, modifiers, isComponent = false) => withModelModifiers(fn, modifiers, isComponent);\nconst j = (obj) => JSON.stringify(obj);\n\nfunction createApp(rootComponent, rootProps = null) {\n rootComponent && (rootComponent.mpType = 'app');\n return createVueApp(rootComponent, rootProps).use(plugin);\n}\nconst createSSRApp = createApp;\n\nexport { EffectScope, Fragment, ReactiveEffect, Text, c, callWithAsyncErrorHandling, callWithErrorHandling, computed, createApp, createSSRApp, createVNode, createVueApp, customRef, d, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtoolsComponentAdded, devtoolsComponentRemoved, devtoolsComponentUpdated, diff, e, effect, effectScope, f, findComponentPropsData, getCurrentInstance, getCurrentScope, getExposeProxy, guardReactiveProps, h, hasInjectionContext, hasQueueJob, inject, injectHook, invalidateJob, isInSSRComponentSetup, isProxy, isReactive, isReadonly, isRef, j, logError, m, markRaw, mergeDefaults, mergeProps, n, nextTick$1 as nextTick, o, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, p, patch, provide, proxyRefs, pruneComponentPropsCache, queuePostFlushCb, r, reactive, readonly, ref, resolveComponent, resolveDirective, resolveFilter, s, setCurrentRenderingInstance, setTemplateRef, setupDevtoolsPlugin, shallowReactive, shallowReadonly, shallowRef, sr, stop, t, toHandlers, toRaw, toRef, toRefs, triggerRef, unref, updateProps, useAttrs, useCssModule, useCssVars, useSSRContext, useSlots, version, w, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withModifiers, withScopeId };\n","import { SLOT_DEFAULT_NAME, invokeArrayFns, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, ON_LOAD, ON_SHOW, ON_HIDE, ON_UNLOAD, ON_RESIZE, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_ADD_TO_FAVORITES, isUniLifecycleHook, ON_READY, once, ON_LAUNCH, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION, addLeadingSlash, stringifyQuery, customizeEvent } from '@dcloudio/uni-shared';\nimport { isArray, hasOwn, isFunction, extend, isPlainObject, isObject } from '@vue/shared';\nimport { ref, findComponentPropsData, toRaw, updateProps, hasQueueJob, invalidateJob, devtoolsComponentAdded, getExposeProxy, pruneComponentPropsCache } from 'vue';\nimport { normalizeLocale, LOCALE_EN } from '@dcloudio/uni-i18n';\n\nconst MP_METHODS = [\n 'createSelectorQuery',\n 'createIntersectionObserver',\n 'selectAllComponents',\n 'selectComponent',\n];\nfunction createEmitFn(oldEmit, ctx) {\n return function emit(event, ...args) {\n const scope = ctx.$scope;\n if (scope && event) {\n const detail = { __args__: args };\n {\n scope.triggerEvent(event, detail);\n }\n }\n return oldEmit.apply(this, [event, ...args]);\n };\n}\nfunction initBaseInstance(instance, options) {\n const ctx = instance.ctx;\n // mp\n ctx.mpType = options.mpType; // @deprecated\n ctx.$mpType = options.mpType;\n ctx.$mpPlatform = \"mp-weixin\";\n ctx.$scope = options.mpInstance;\n // TODO @deprecated\n ctx.$mp = {};\n if (__VUE_OPTIONS_API__) {\n ctx._self = {};\n }\n // slots\n instance.slots = {};\n if (isArray(options.slots) && options.slots.length) {\n options.slots.forEach((name) => {\n instance.slots[name] = true;\n });\n if (instance.slots[SLOT_DEFAULT_NAME]) {\n instance.slots.default = true;\n }\n }\n ctx.getOpenerEventChannel = function () {\n // 微信小程序使用自身getOpenerEventChannel\n {\n return options.mpInstance.getOpenerEventChannel();\n }\n };\n ctx.$hasHook = hasHook;\n ctx.$callHook = callHook;\n // $emit\n instance.emit = createEmitFn(instance.emit, ctx);\n}\nfunction initComponentInstance(instance, options) {\n initBaseInstance(instance, options);\n const ctx = instance.ctx;\n MP_METHODS.forEach((method) => {\n ctx[method] = function (...args) {\n const mpInstance = ctx.$scope;\n if (mpInstance && mpInstance[method]) {\n return mpInstance[method].apply(mpInstance, args);\n }\n };\n });\n}\nfunction initMocks(instance, mpInstance, mocks) {\n const ctx = instance.ctx;\n mocks.forEach((mock) => {\n if (hasOwn(mpInstance, mock)) {\n instance[mock] = ctx[mock] = mpInstance[mock];\n }\n });\n}\nfunction hasHook(name) {\n const hooks = this.$[name];\n if (hooks && hooks.length) {\n return true;\n }\n return false;\n}\nfunction callHook(name, args) {\n if (name === 'mounted') {\n callHook.call(this, 'bm'); // beforeMount\n this.$.isMounted = true;\n name = 'm';\n }\n const hooks = this.$[name];\n return hooks && invokeArrayFns(hooks, args);\n}\n\nconst PAGE_INIT_HOOKS = [\n ON_LOAD,\n ON_SHOW,\n ON_HIDE,\n ON_UNLOAD,\n ON_RESIZE,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_ADD_TO_FAVORITES,\n // 'onReady', // lifetimes.ready\n // 'onPageScroll', // 影响性能,开发者手动注册\n // 'onShareTimeline', // 右上角菜单,开发者手动注册\n // 'onShareAppMessage' // 右上角菜单,开发者手动注册\n];\nfunction findHooks(vueOptions, hooks = new Set()) {\n if (vueOptions) {\n Object.keys(vueOptions).forEach((name) => {\n if (isUniLifecycleHook(name, vueOptions[name])) {\n hooks.add(name);\n }\n });\n if (__VUE_OPTIONS_API__) {\n const { extends: extendsOptions, mixins } = vueOptions;\n if (mixins) {\n mixins.forEach((mixin) => findHooks(mixin, hooks));\n }\n if (extendsOptions) {\n findHooks(extendsOptions, hooks);\n }\n }\n }\n return hooks;\n}\nfunction initHook(mpOptions, hook, excludes) {\n if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\n mpOptions[hook] = function (args) {\n return this.$vm && this.$vm.$callHook(hook, args);\n };\n }\n}\nconst EXCLUDE_HOOKS = [ON_READY];\nfunction initHooks(mpOptions, hooks, excludes = EXCLUDE_HOOKS) {\n hooks.forEach((hook) => initHook(mpOptions, hook, excludes));\n}\nfunction initUnknownHooks(mpOptions, vueOptions, excludes = EXCLUDE_HOOKS) {\n findHooks(vueOptions).forEach((hook) => initHook(mpOptions, hook, excludes));\n}\nfunction initRuntimeHooks(mpOptions, runtimeHooks) {\n if (!runtimeHooks) {\n return;\n }\n const hooks = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);\n hooks.forEach((hook) => {\n if (runtimeHooks & MINI_PROGRAM_PAGE_RUNTIME_HOOKS[hook]) {\n initHook(mpOptions, hook, []);\n }\n });\n}\nconst findMixinRuntimeHooks = /*#__PURE__*/ once(() => {\n const runtimeHooks = [];\n const app = isFunction(getApp) && getApp({ allowDefault: true });\n if (app && app.$vm && app.$vm.$) {\n const mixins = app.$vm.$.appContext.mixins;\n if (isArray(mixins)) {\n const hooks = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);\n mixins.forEach((mixin) => {\n hooks.forEach((hook) => {\n if (hasOwn(mixin, hook) && !runtimeHooks.includes(hook)) {\n runtimeHooks.push(hook);\n }\n });\n });\n }\n }\n return runtimeHooks;\n});\nfunction initMixinRuntimeHooks(mpOptions) {\n initHooks(mpOptions, findMixinRuntimeHooks());\n}\n\nconst HOOKS = [\n ON_SHOW,\n ON_HIDE,\n ON_ERROR,\n ON_THEME_CHANGE,\n ON_PAGE_NOT_FOUND,\n ON_UNHANDLE_REJECTION,\n];\nfunction parseApp(instance, parseAppOptions) {\n const internalInstance = instance.$;\n if (__VUE_PROD_DEVTOOLS__) {\n // 定制 App 的 $children\n Object.defineProperty(internalInstance.ctx, '$children', {\n get() {\n return getCurrentPages().map((page) => page.$vm);\n },\n });\n }\n const appOptions = {\n globalData: (instance.$options && instance.$options.globalData) || {},\n $vm: instance, // mp-alipay 组件 data 初始化比 onLaunch 早,提前挂载\n onLaunch(options) {\n this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失\n const ctx = internalInstance.ctx;\n if (this.$vm && ctx.$scope) {\n // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\n return;\n }\n initBaseInstance(internalInstance, {\n mpType: 'app',\n mpInstance: this,\n slots: [],\n });\n ctx.globalData = this.globalData;\n instance.$callHook(ON_LAUNCH, options);\n },\n };\n const { onError } = internalInstance;\n if (onError) {\n internalInstance.appContext.config.errorHandler = (err) => {\n instance.$callHook(ON_ERROR, err);\n };\n }\n initLocale(instance);\n const vueOptions = instance.$.type;\n initHooks(appOptions, HOOKS);\n initUnknownHooks(appOptions, vueOptions);\n if (__VUE_OPTIONS_API__) {\n const methods = vueOptions.methods;\n methods && extend(appOptions, methods);\n }\n if (parseAppOptions) {\n parseAppOptions.parse(appOptions);\n }\n return appOptions;\n}\nfunction initCreateApp(parseAppOptions) {\n return function createApp(vm) {\n return App(parseApp(vm, parseAppOptions));\n };\n}\nfunction initCreateSubpackageApp(parseAppOptions) {\n return function createApp(vm) {\n const appOptions = parseApp(vm, parseAppOptions);\n const app = isFunction(getApp) &&\n getApp({\n allowDefault: true,\n });\n if (!app)\n return;\n vm.$.ctx.$scope = app;\n const globalData = app.globalData;\n if (globalData) {\n Object.keys(appOptions.globalData).forEach((name) => {\n if (!hasOwn(globalData, name)) {\n globalData[name] = appOptions.globalData[name];\n }\n });\n }\n Object.keys(appOptions).forEach((name) => {\n if (!hasOwn(app, name)) {\n app[name] = appOptions[name];\n }\n });\n initAppLifecycle(appOptions, vm);\n if (process.env.UNI_SUBPACKAGE) {\n (wx.$subpackages || (wx.$subpackages = {}))[process.env.UNI_SUBPACKAGE] = {\n $vm: vm,\n };\n }\n };\n}\nfunction initAppLifecycle(appOptions, vm) {\n if (isFunction(appOptions.onLaunch)) {\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\n appOptions.onLaunch(args);\n }\n if (isFunction(appOptions.onShow) && wx.onAppShow) {\n wx.onAppShow((args) => {\n vm.$callHook('onShow', args);\n });\n }\n if (isFunction(appOptions.onHide) && wx.onAppHide) {\n wx.onAppHide((args) => {\n vm.$callHook('onHide', args);\n });\n }\n}\nfunction initLocale(appVm) {\n const locale = ref(normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);\n Object.defineProperty(appVm, '$locale', {\n get() {\n return locale.value;\n },\n set(v) {\n locale.value = v;\n },\n });\n}\n\nfunction initVueIds(vueIds, mpInstance) {\n if (!vueIds) {\n return;\n }\n const ids = vueIds.split(',');\n const len = ids.length;\n if (len === 1) {\n mpInstance._$vueId = ids[0];\n }\n else if (len === 2) {\n mpInstance._$vueId = ids[0];\n mpInstance._$vuePid = ids[1];\n }\n}\nconst EXTRAS = ['externalClasses'];\nfunction initExtraOptions(miniProgramComponentOptions, vueOptions) {\n EXTRAS.forEach((name) => {\n if (hasOwn(vueOptions, name)) {\n miniProgramComponentOptions[name] = vueOptions[name];\n }\n });\n}\nconst WORKLET_RE = /_(.*)_worklet_factory_/;\nfunction initWorkletMethods(mpMethods, vueMethods) {\n if (vueMethods) {\n Object.keys(vueMethods).forEach((name) => {\n const matches = name.match(WORKLET_RE);\n if (matches) {\n const workletName = matches[1];\n mpMethods[name] = vueMethods[name];\n mpMethods[workletName] = vueMethods[workletName];\n }\n });\n }\n}\nfunction initWxsCallMethods(methods, wxsCallMethods) {\n if (!isArray(wxsCallMethods)) {\n return;\n }\n wxsCallMethods.forEach((callMethod) => {\n methods[callMethod] = function (args) {\n return this.$vm[callMethod](args);\n };\n });\n}\nfunction selectAllComponents(mpInstance, selector, $refs) {\n const components = mpInstance.selectAllComponents(selector);\n components.forEach((component) => {\n const ref = component.properties.uR;\n $refs[ref] = component.$vm || component;\n });\n}\nfunction initRefs(instance, mpInstance) {\n Object.defineProperty(instance, 'refs', {\n get() {\n const $refs = {};\n selectAllComponents(mpInstance, '.r', $refs);\n const forComponents = mpInstance.selectAllComponents('.r-i-f');\n forComponents.forEach((component) => {\n const ref = component.properties.uR;\n if (!ref) {\n return;\n }\n if (!$refs[ref]) {\n $refs[ref] = [];\n }\n $refs[ref].push(component.$vm || component);\n });\n return $refs;\n },\n });\n}\nfunction findVmByVueId(instance, vuePid) {\n // 标准 vue3 中 没有 $children,定制了内核\n const $children = instance.$children;\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\n for (let i = $children.length - 1; i >= 0; i--) {\n const childVm = $children[i];\n if (childVm.$scope._$vueId === vuePid) {\n return childVm;\n }\n }\n // 反向递归查找\n let parentVm;\n for (let i = $children.length - 1; i >= 0; i--) {\n parentVm = findVmByVueId($children[i], vuePid);\n if (parentVm) {\n return parentVm;\n }\n }\n}\n\nconst builtInProps = [\n // 百度小程序,快手小程序自定义组件不支持绑定动态事件,动态dataset,故通过props传递事件信息\n // event-opts\n 'eO',\n // 组件 ref\n 'uR',\n // 组件 ref-in-for\n 'uRIF',\n // 组件 id\n 'uI',\n // 组件类型 m: 小程序组件\n 'uT',\n // 组件 props\n 'uP',\n // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\n 'uS',\n];\nfunction initDefaultProps(options, isBehavior = false) {\n const properties = {};\n if (!isBehavior) {\n // 均不指定类型,避免微信小程序 property received type-uncompatible value 警告\n builtInProps.forEach((name) => {\n properties[name] = {\n type: null,\n value: '',\n };\n });\n // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\n properties.uS = {\n type: null,\n value: [],\n observer: function (newVal) {\n const $slots = Object.create(null);\n newVal &&\n newVal.forEach((slotName) => {\n $slots[slotName] = true;\n });\n this.setData({\n $slots,\n });\n },\n };\n }\n if (options.behaviors) {\n // wx://form-field\n if (options.behaviors.includes('__GLOBAL__://form-field')) {\n if (!options.properties || !options.properties.name) {\n properties.name = {\n type: null,\n value: '',\n };\n }\n if (!options.properties || !options.properties.value) {\n properties.value = {\n type: null,\n value: '',\n };\n }\n }\n }\n return properties;\n}\nfunction initVirtualHostProps(options) {\n const properties = {};\n {\n if ((options && options.virtualHost)) {\n properties.virtualHostStyle = {\n type: null,\n value: '',\n };\n properties.virtualHostClass = {\n type: null,\n value: '',\n };\n }\n }\n return properties;\n}\n/**\n *\n * @param mpComponentOptions\n * @param isBehavior\n */\nfunction initProps(mpComponentOptions) {\n if (!mpComponentOptions.properties) {\n mpComponentOptions.properties = {};\n }\n extend(mpComponentOptions.properties, initDefaultProps(mpComponentOptions), initVirtualHostProps(mpComponentOptions.options));\n}\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\nfunction parsePropType(type, defaultValue) {\n // [String]=>String\n if (isArray(type) && type.length === 1) {\n return type[0];\n }\n return type;\n}\nfunction normalizePropType(type, defaultValue) {\n const res = parsePropType(type);\n return PROP_TYPES.indexOf(res) !== -1 ? res : null;\n}\n/**\n * 初始化页面 props,方便接收页面参数,类型均为String,默认值均为''\n * @param param\n * @param rawProps\n */\nfunction initPageProps({ properties }, rawProps) {\n if (isArray(rawProps)) {\n rawProps.forEach((key) => {\n properties[key] = {\n type: String,\n value: '',\n };\n });\n }\n else if (isPlainObject(rawProps)) {\n Object.keys(rawProps).forEach((key) => {\n const opts = rawProps[key];\n if (isPlainObject(opts)) {\n // title:{type:String,default:''}\n let value = opts.default;\n if (isFunction(value)) {\n value = value();\n }\n const type = opts.type;\n opts.type = normalizePropType(type);\n properties[key] = {\n type: opts.type,\n value,\n };\n }\n else {\n // content:String\n properties[key] = {\n type: normalizePropType(opts),\n };\n }\n });\n }\n}\nfunction findPropsData(properties, isPage) {\n return ((isPage\n ? findPagePropsData(properties)\n : findComponentPropsData(properties.uP)) || {});\n}\nfunction findPagePropsData(properties) {\n const propsData = {};\n if (isPlainObject(properties)) {\n Object.keys(properties).forEach((name) => {\n if (builtInProps.indexOf(name) === -1) {\n propsData[name] = properties[name];\n }\n });\n }\n return propsData;\n}\nfunction initFormField(vm) {\n // 同步 form-field 的 name,value 值\n const vueOptions = vm.$options;\n if (isArray(vueOptions.behaviors) &&\n vueOptions.behaviors.includes('uni://form-field')) {\n vm.$watch('modelValue', () => {\n vm.$scope &&\n vm.$scope.setData({\n name: vm.name,\n value: vm.modelValue,\n });\n }, {\n immediate: true,\n });\n }\n}\n\nfunction initData(_) {\n return {};\n}\nfunction initPropsObserver(componentOptions) {\n const observe = function observe() {\n const up = this.properties.uP;\n if (!up) {\n return;\n }\n if (this.$vm) {\n updateComponentProps(up, this.$vm.$);\n }\n else if (this.properties.uT === 'm') {\n // 小程序组件\n updateMiniProgramComponentProperties(up, this);\n }\n };\n {\n if (!componentOptions.observers) {\n componentOptions.observers = {};\n }\n componentOptions.observers.uP = observe;\n }\n}\nfunction updateMiniProgramComponentProperties(up, mpInstance) {\n const prevProps = mpInstance.properties;\n const nextProps = findComponentPropsData(up) || {};\n if (hasPropsChanged(prevProps, nextProps, false)) {\n mpInstance.setData(nextProps);\n }\n}\nfunction updateComponentProps(up, instance) {\n const prevProps = toRaw(instance.props);\n const nextProps = findComponentPropsData(up) || {};\n if (hasPropsChanged(prevProps, nextProps)) {\n updateProps(instance, nextProps, prevProps, false);\n if (hasQueueJob(instance.update)) {\n invalidateJob(instance.update);\n }\n {\n instance.update();\n }\n }\n}\nfunction hasPropsChanged(prevProps, nextProps, checkLen = true) {\n const nextKeys = Object.keys(nextProps);\n if (checkLen && nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key]) {\n return true;\n }\n }\n return false;\n}\nfunction initBehaviors(vueOptions) {\n const vueBehaviors = vueOptions.behaviors;\n let vueProps = vueOptions.props;\n if (!vueProps) {\n vueOptions.props = vueProps = [];\n }\n const behaviors = [];\n if (isArray(vueBehaviors)) {\n vueBehaviors.forEach((behavior) => {\n behaviors.push(behavior.replace('uni://', '__GLOBAL__://'));\n if (behavior === 'uni://form-field') {\n if (isArray(vueProps)) {\n vueProps.push('name');\n vueProps.push('modelValue');\n }\n else {\n vueProps.name = {\n type: String,\n default: '',\n };\n vueProps.modelValue = {\n type: [String, Number, Boolean, Array, Object, Date],\n default: '',\n };\n }\n }\n });\n }\n return behaviors;\n}\nfunction applyOptions(componentOptions, vueOptions) {\n componentOptions.data = initData();\n componentOptions.behaviors = initBehaviors(vueOptions);\n}\n\nfunction parseComponent(vueOptions, { parse, mocks, isPage, initRelation, handleLink, initLifetimes, }) {\n vueOptions = vueOptions.default || vueOptions;\n const options = {\n multipleSlots: true,\n // styleIsolation: 'apply-shared',\n addGlobalClass: true,\n pureDataPattern: /^uP$/,\n };\n if (isArray(vueOptions.mixins)) {\n vueOptions.mixins.forEach((item) => {\n if (isObject(item.options)) {\n extend(options, item.options);\n }\n });\n }\n if (vueOptions.options) {\n extend(options, vueOptions.options);\n }\n const mpComponentOptions = {\n options,\n lifetimes: initLifetimes({ mocks, isPage, initRelation, vueOptions }),\n pageLifetimes: {\n show() {\n if (__VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(this.$vm.$);\n }\n this.$vm && this.$vm.$callHook('onPageShow');\n },\n hide() {\n this.$vm && this.$vm.$callHook('onPageHide');\n },\n resize(size) {\n this.$vm && this.$vm.$callHook('onPageResize', size);\n },\n },\n methods: {\n __l: handleLink,\n },\n };\n if (__VUE_OPTIONS_API__) {\n applyOptions(mpComponentOptions, vueOptions);\n }\n initProps(mpComponentOptions);\n initPropsObserver(mpComponentOptions);\n initExtraOptions(mpComponentOptions, vueOptions);\n initWxsCallMethods(mpComponentOptions.methods, vueOptions.wxsCallMethods);\n {\n initWorkletMethods(mpComponentOptions.methods, vueOptions.methods);\n }\n if (parse) {\n parse(mpComponentOptions, { handleLink });\n }\n return mpComponentOptions;\n}\nfunction initCreateComponent(parseOptions) {\n return function createComponent(vueComponentOptions) {\n return Component(parseComponent(vueComponentOptions, parseOptions));\n };\n}\nlet $createComponentFn;\nlet $destroyComponentFn;\nfunction getAppVm() {\n if (process.env.UNI_MP_PLUGIN) {\n return wx.$vm;\n }\n if (process.env.UNI_SUBPACKAGE) {\n return wx.$subpackages[process.env.UNI_SUBPACKAGE].$vm;\n }\n return getApp().$vm;\n}\nfunction $createComponent(initialVNode, options) {\n if (!$createComponentFn) {\n $createComponentFn = getAppVm().$createComponent;\n }\n const proxy = $createComponentFn(initialVNode, options);\n return getExposeProxy(proxy.$) || proxy;\n}\nfunction $destroyComponent(instance) {\n if (!$destroyComponentFn) {\n $destroyComponentFn = getAppVm().$destroyComponent;\n }\n return $destroyComponentFn(instance);\n}\n\nfunction parsePage(vueOptions, parseOptions) {\n const { parse, mocks, isPage, initRelation, handleLink, initLifetimes } = parseOptions;\n const miniProgramPageOptions = parseComponent(vueOptions, {\n mocks,\n isPage,\n initRelation,\n handleLink,\n initLifetimes,\n });\n initPageProps(miniProgramPageOptions, (vueOptions.default || vueOptions).props);\n const methods = miniProgramPageOptions.methods;\n methods.onLoad = function (query) {\n this.options = query;\n this.$page = {\n fullPath: addLeadingSlash(this.route + stringifyQuery(query)),\n };\n return this.$vm && this.$vm.$callHook(ON_LOAD, query);\n };\n initHooks(methods, PAGE_INIT_HOOKS);\n {\n initUnknownHooks(methods, vueOptions);\n }\n initRuntimeHooks(methods, vueOptions.__runtimeHooks);\n initMixinRuntimeHooks(methods);\n parse && parse(miniProgramPageOptions, { handleLink });\n return miniProgramPageOptions;\n}\nfunction initCreatePage(parseOptions) {\n return function createPage(vuePageOptions) {\n return Component(parsePage(vuePageOptions, parseOptions));\n };\n}\n\nfunction initCreatePluginApp(parseAppOptions) {\n return function createApp(vm) {\n initAppLifecycle(parseApp(vm, parseAppOptions), vm);\n if (process.env.UNI_MP_PLUGIN) {\n wx.$vm = vm;\n }\n };\n}\n\nconst MPPage = Page;\nconst MPComponent = Component;\nfunction initTriggerEvent(mpInstance) {\n const oldTriggerEvent = mpInstance.triggerEvent;\n const newTriggerEvent = function (event, ...args) {\n return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]);\n };\n // 京东小程序triggerEvent为只读属性\n try {\n mpInstance.triggerEvent = newTriggerEvent;\n }\n catch (error) {\n mpInstance._triggerEvent = newTriggerEvent;\n }\n}\nfunction initMiniProgramHook(name, options, isComponent) {\n const oldHook = options[name];\n if (!oldHook) {\n options[name] = function () {\n initTriggerEvent(this);\n };\n }\n else {\n options[name] = function (...args) {\n initTriggerEvent(this);\n return oldHook.apply(this, args);\n };\n }\n}\nPage = function (options) {\n initMiniProgramHook(ON_LOAD, options);\n return MPPage(options);\n};\nComponent = function (options) {\n initMiniProgramHook('created', options);\n // 小程序组件\n const isVueComponent = options.properties && options.properties.uP;\n if (!isVueComponent) {\n initProps(options);\n initPropsObserver(options);\n }\n return MPComponent(options);\n};\n\n// @ts-expect-error\nfunction initLifetimes({ mocks, isPage, initRelation, vueOptions, }) {\n return {\n attached() {\n let properties = this.properties;\n initVueIds(properties.uI, this);\n const relationOptions = {\n vuePid: this._$vuePid,\n };\n // 处理父子关系\n initRelation(this, relationOptions);\n // 初始化 vue 实例\n const mpInstance = this;\n const isMiniProgramPage = isPage(mpInstance);\n let propsData = properties;\n this.$vm = $createComponent({\n type: vueOptions,\n props: findPropsData(propsData, isMiniProgramPage),\n }, {\n mpType: isMiniProgramPage ? 'page' : 'component',\n mpInstance,\n slots: properties.uS || {}, // vueSlots\n parentComponent: relationOptions.parent && relationOptions.parent.$,\n onBeforeSetup(instance, options) {\n initRefs(instance, mpInstance);\n initMocks(instance, mpInstance, mocks);\n initComponentInstance(instance, options);\n },\n });\n if (!isMiniProgramPage) {\n initFormField(this.$vm);\n }\n },\n ready() {\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\n if (this.$vm) {\n {\n this.$vm.$callHook('mounted');\n this.$vm.$callHook(ON_READY);\n }\n }\n },\n detached() {\n if (this.$vm) {\n pruneComponentPropsCache(this.$vm.$.uid);\n $destroyComponent(this.$vm);\n }\n },\n };\n}\n\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\nfunction isPage(mpInstance) {\n return !!mpInstance.route;\n}\nfunction initRelation(mpInstance, detail) {\n mpInstance.triggerEvent('__l', detail);\n}\nfunction handleLink(event) {\n // detail 是微信,value 是百度(dipatch)\n const detail = (event.detail ||\n event.value);\n const vuePid = detail.vuePid;\n let parentVm;\n if (vuePid) {\n parentVm = findVmByVueId(this.$vm, vuePid);\n }\n if (!parentVm) {\n parentVm = this.$vm;\n }\n detail.parent = parentVm;\n}\n\nvar parseOptions = /*#__PURE__*/Object.freeze({\n __proto__: null,\n handleLink: handleLink,\n initLifetimes: initLifetimes,\n initRelation: initRelation,\n isPage: isPage,\n mocks: mocks\n});\n\nconst createApp = initCreateApp();\nconst createPage = initCreatePage(parseOptions);\nconst createComponent = initCreateComponent(parseOptions);\nconst createPluginApp = initCreatePluginApp();\nconst createSubpackageApp = initCreateSubpackageApp();\n{\n wx.createApp = global.createApp = createApp;\n wx.createPage = createPage;\n wx.createComponent = createComponent;\n wx.createPluginApp = global.createPluginApp =\n createPluginApp;\n wx.createSubpackageApp = global.createSubpackageApp =\n createSubpackageApp;\n}\n\nexport { createApp, createComponent, createPage, createPluginApp, createSubpackageApp };\n","import { shallowRef, ref, getCurrentInstance, isInSSRComponentSetup, injectHook } from 'vue';\nimport { hasOwn } from '@vue/shared';\nexport { capitalize, extend, hasOwn, isPlainObject } from '@vue/shared';\nimport { sanitise, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR, ON_SHOW, ON_HIDE, ON_LAUNCH, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION, ON_EXIT, ON_INIT, ON_LOAD, ON_READY, ON_UNLOAD, ON_RESIZE, ON_BACK_PRESS, ON_PAGE_SCROLL, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_SAVE_EXIT_STATE, ON_SHARE_TIMELINE, ON_ADD_TO_FAVORITES, ON_SHARE_APP_MESSAGE, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED } from '@dcloudio/uni-shared';\n\nfunction getSSRDataType() {\n return getCurrentInstance() ? UNI_SSR_DATA : UNI_SSR_GLOBAL_DATA;\n}\nfunction assertKey(key, shallow = false) {\n if (!key) {\n throw new Error(`${shallow ? 'shallowSsrRef' : 'ssrRef'}: You must provide a key.`);\n }\n}\nconst ssrClientRef = (value, key, shallow = false) => {\n const valRef = shallow ? shallowRef(value) : ref(value);\n // 非 h5 平台\n if (typeof window === 'undefined') {\n return valRef;\n }\n const __uniSSR = window[UNI_SSR];\n if (!__uniSSR) {\n return valRef;\n }\n const type = getSSRDataType();\n assertKey(key, shallow);\n if (hasOwn(__uniSSR[type], key)) {\n valRef.value = __uniSSR[type][key];\n if (type === UNI_SSR_DATA) {\n delete __uniSSR[type][key]; // TODO 非全局数据仅使用一次?否则下次还会再次使用该数据\n }\n }\n return valRef;\n};\nconst globalData = {};\nconst ssrRef = (value, key) => {\n return ssrClientRef(value, key);\n};\nconst shallowSsrRef = (value, key) => {\n return ssrClientRef(value, key, true);\n};\nfunction getSsrGlobalData() {\n return sanitise(globalData);\n}\n\n/**\n * uni 对象是跨实例的,而此处列的 API 均是需要跟当前实例关联的,比如 requireNativePlugin 获取 dom 时,依赖当前 weex 实例\n */\nfunction getCurrentSubNVue() {\n return uni.getSubNVueById(plus.webview.currentWebview().id);\n}\nfunction requireNativePlugin(name) {\n return weex.requireModule(name);\n}\n\nfunction formatAppLog(type, filename, ...args) {\n // @ts-expect-error\n if (uni.__log__) {\n // @ts-expect-error\n uni.__log__(type, filename, ...args);\n }\n else {\n console[type].apply(console, [...args, filename]);\n }\n}\nfunction formatH5Log(type, filename, ...args) {\n console[type].apply(console, [...args, filename]);\n}\n\nfunction resolveEasycom(component, easycom) {\n return typeof component === 'string' ? easycom : component;\n}\n\n/// <reference types=\"@dcloudio/types\" />\nconst createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {\n // post-create lifecycle registrations are noops during SSR\n !isInSSRComponentSetup && injectHook(lifecycle, hook, target);\n};\nconst onShow = /*#__PURE__*/ createHook(ON_SHOW);\nconst onHide = /*#__PURE__*/ createHook(ON_HIDE);\nconst onLaunch = \n/*#__PURE__*/ createHook(ON_LAUNCH);\nconst onError = \n/*#__PURE__*/ createHook(ON_ERROR);\nconst onThemeChange = \n/*#__PURE__*/ createHook(ON_THEME_CHANGE);\nconst onPageNotFound = \n/*#__PURE__*/ createHook(ON_PAGE_NOT_FOUND);\nconst onUnhandledRejection = /*#__PURE__*/ createHook(ON_UNHANDLE_REJECTION);\nconst onExit = /*#__PURE__*/ createHook(ON_EXIT);\nconst onInit = \n/*#__PURE__*/ createHook(ON_INIT);\n// 小程序如果想在 setup 的 props 传递页面参数,需要定义 props,故同时暴露 onLoad 吧\nconst onLoad = \n/*#__PURE__*/ createHook(ON_LOAD);\nconst onReady = /*#__PURE__*/ createHook(ON_READY);\nconst onUnload = /*#__PURE__*/ createHook(ON_UNLOAD);\nconst onResize = \n/*#__PURE__*/ createHook(ON_RESIZE);\nconst onBackPress = \n/*#__PURE__*/ createHook(ON_BACK_PRESS);\nconst onPageScroll = \n/*#__PURE__*/ createHook(ON_PAGE_SCROLL);\nconst onTabItemTap = \n/*#__PURE__*/ createHook(ON_TAB_ITEM_TAP);\nconst onReachBottom = /*#__PURE__*/ createHook(ON_REACH_BOTTOM);\nconst onPullDownRefresh = /*#__PURE__*/ createHook(ON_PULL_DOWN_REFRESH);\nconst onSaveExitState = \n/*#__PURE__*/ createHook(ON_SAVE_EXIT_STATE);\nconst onShareTimeline = \n/*#__PURE__*/ createHook(ON_SHARE_TIMELINE);\nconst onAddToFavorites = \n/*#__PURE__*/ createHook(ON_ADD_TO_FAVORITES);\nconst onShareAppMessage = \n/*#__PURE__*/ createHook(ON_SHARE_APP_MESSAGE);\nconst onNavigationBarButtonTap = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_BUTTON_TAP);\nconst onNavigationBarSearchInputChanged = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED);\nconst onNavigationBarSearchInputClicked = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED);\nconst onNavigationBarSearchInputConfirmed = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED);\nconst onNavigationBarSearchInputFocusChanged = \n/*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED);\n// for uni-app-x web\nconst onPageHide = onHide;\nconst onPageShow = onShow;\n\nfunction renderComponentSlot(slots, name, props = null) {\n if (slots[name]) {\n return slots[name](props);\n }\n return null;\n}\n\nexport { formatAppLog, formatH5Log, getCurrentSubNVue, getSsrGlobalData, onAddToFavorites, onBackPress, onError, onExit, onHide, onInit, onLaunch, onLoad, onNavigationBarButtonTap, onNavigationBarSearchInputChanged, onNavigationBarSearchInputClicked, onNavigationBarSearchInputConfirmed, onNavigationBarSearchInputFocusChanged, onPageHide, onPageNotFound, onPageScroll, onPageShow, onPullDownRefresh, onReachBottom, onReady, onResize, onSaveExitState, onShareAppMessage, onShareTimeline, onShow, onTabItemTap, onThemeChange, onUnhandledRejection, onUnload, renderComponentSlot, requireNativePlugin, resolveEasycom, shallowSsrRef, ssrRef };\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","/*!\n * pinia v2.0.36\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, getCurrentScope, onScopeDispose, reactive, toRef, del, nextTick, computed, toRefs } from 'vue-demi';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (getCurrentInstance() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n/**\n * Should we add the devtools plugins.\n * - only if dev mode or forced through the prod devtools flag\n * - not in test\n * - only if window exists (could change in the future)\n */\nconst USE_DEVTOOLS = ((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test') && IS_CLIENT;\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = \n typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n pinia.state.value = JSON.parse(await navigator.clipboard.readText());\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = await getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n pinia.state.value = JSON.parse(text);\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (option store only)',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (!store._isOptionsAPI) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it's a setup store.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload, ctx) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload, ctx) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n // reset for the next mutation\n activeAction = undefined;\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // setActivePinia(store._p)\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n });\n return actions[actionName].apply(trackedStore, arguments);\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n if (options.state) {\n store._isOptionsAPI = true;\n }\n // only wrap actions in option-defined stores as this technique relies on\n // wrapping the context of the action with a proxy\n if (typeof options.state === 'function') {\n patchActionForGrouping(\n // @ts-expect-error: can cast the store...\n store, Object.keys(options.actions));\n const originalHotUpdate = store._hotUpdate;\n // Upgrade the HMR to also update the new actions\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions));\n };\n }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n if (!isVue2) {\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n }\n },\n use(plugin) {\n if (!this._a && !isVue2) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if (USE_DEVTOOLS && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n if (isVue2) {\n set(newState, key, subPatch);\n }\n else {\n newState[key] = subPatch;\n }\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\n\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n // Handle Set instances\n if (target instanceof Set && patchToApply instanceof Set) {\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\nconst skipHydrateMap = /*#__PURE__*/ new WeakMap();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return isVue2\n ? // in @vue/composition-api, the refs are sealed so defineProperty doesn't work...\n /* istanbul ignore next */ skipHydrateMap.set(obj, 1) && obj\n : Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return isVue2\n ? /* istanbul ignore next */ !skipHydrateMap.has(obj)\n : !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value, id, state ? state() : {});\n }\n else {\n pinia.state.value[id] = state ? state() : {};\n }\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n /* istanbul ignore next */\n if (isVue2 && !store._r)\n return;\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = {\n deep: true,\n // flush: 'post',\n };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production') && !isVue2) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = markRaw([]);\n let actionSubscriptions = markRaw([]);\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value, $id, {});\n }\n else {\n pinia.state.value[$id] = {};\n }\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia._s.delete($id);\n }\n /**\n * Wraps an action to handle subscriptions.\n *\n * @param name - name of the action\n * @param action - action to wrap\n * @returns a wrapped action to handle subscriptions\n */\n function wrapAction(name, action) {\n return function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name,\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = action.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n }\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n /* istanbul ignore if */\n if (isVue2) {\n // start as non ready\n partialStore._r = false;\n }\n const store = reactive((process.env.NODE_ENV !== 'production') || USE_DEVTOOLS\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = pinia._e.run(() => {\n scope = effectScope();\n return scope.run(() => setup());\n });\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n set(hotState.value, key, toRef(setupStore, key));\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value[$id], key, prop);\n }\n else {\n pinia.state.value[$id][key] = prop;\n }\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n // @ts-expect-error: we are overriding the function we avoid wrapping if\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : wrapAction(key, prop);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n /* istanbul ignore if */\n if (isVue2) {\n set(setupStore, key, actionValue);\n }\n else {\n // @ts-expect-error\n setupStore[key] = actionValue;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n if (isVue2) {\n Object.keys(setupStore).forEach((key) => {\n set(store, key, setupStore[key]);\n });\n }\n else {\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n }\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n set(store, stateKey, toRef(newStore.$state, stateKey));\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n del(store, stateKey);\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const action = newStore[actionName];\n set(store, actionName, wrapAction(actionName, action));\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n set(store, getterName, getterValue);\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n del(store, key);\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n del(store, key);\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if (USE_DEVTOOLS) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n /* istanbul ignore if */\n if (isVue2) {\n // mark the store as ready before plugins\n store._r = true;\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n const extensions = scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\nfunction defineStore(\n// TODO: add proper types from above\nidOrOptions, setup, setupOptions) {\n let id;\n let options;\n const isSetupStore = typeof setup === 'function';\n if (typeof idOrOptions === 'string') {\n id = idOrOptions;\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n }\n else {\n options = idOrOptions;\n id = idOrOptions.id;\n if ((process.env.NODE_ENV !== 'production') && typeof id !== 'string') {\n throw new Error(`[🍍]: \"defineStore()\" must be passed a store id as its first argument.`);\n }\n }\n function useStore(pinia, hot) {\n const currentInstance = getCurrentInstance();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (currentInstance && inject(piniaSymbol, null));\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Did you forget to install pinia?\\n` +\n `\\tconst pinia = createPinia()\\n` +\n `\\tapp.use(pinia)\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n // save stores in instances to access them devtools\n if ((process.env.NODE_ENV !== 'production') &&\n IS_CLIENT &&\n currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n // See https://github.com/vuejs/pinia/issues/852\n // It's easier to just use toRefs() even if it includes more stuff\n if (isVue2) {\n // @ts-expect-error: toRefs include methods and others\n return toRefs(store);\n }\n else {\n store = toRaw(store);\n const refs = {};\n for (const key in store) {\n const value = store[key];\n if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n }\n}\n\n/**\n * Vue 2 Plugin that must be installed for pinia to work. Note **you don't need\n * this plugin if you are using Nuxt.js**. Use the `buildModule` instead:\n * https://pinia.vuejs.org/ssr/nuxt.html.\n *\n * @example\n * ```js\n * import Vue from 'vue'\n * import { PiniaVuePlugin, createPinia } from 'pinia'\n *\n * Vue.use(PiniaVuePlugin)\n * const pinia = createPinia()\n *\n * new Vue({\n * el: '#app',\n * // ...\n * pinia,\n * })\n * ```\n *\n * @param _Vue - `Vue` imported from 'vue'.\n */\nconst PiniaVuePlugin = function (_Vue) {\n // Equivalent of\n // app.config.globalProperties.$pinia = pinia\n _Vue.mixin({\n beforeCreate() {\n const options = this.$options;\n if (options.pinia) {\n const pinia = options.pinia;\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/main/src/apis/inject.ts#L31\n /* istanbul ignore else */\n if (!this._provided) {\n const provideCache = {};\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n });\n }\n this._provided[piniaSymbol] = pinia;\n // propagate the pinia instance in an SSR friendly way\n // avoid adding it to nuxt twice\n /* istanbul ignore else */\n if (!this.$pinia) {\n this.$pinia = pinia;\n }\n pinia._a = this;\n if (IS_CLIENT) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n }\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(pinia._a, pinia);\n }\n }\n else if (!this.$pinia && options.parent && options.parent.$pinia) {\n this.$pinia = options.parent.$pinia;\n }\n },\n destroyed() {\n delete this._pStores;\n },\n });\n};\n\nexport { MutationType, PiniaVuePlugin, acceptHMRUpdate, createPinia, defineStore, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, skipHydrate, storeToRefs };\n","'use strict'\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nvar toString = Object.prototype.toString\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nexport function isArray (val) {\r\n return toString.call(val) === '[object Array]'\r\n}\r\n\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nexport function isObject (val) {\r\n return val !== null && typeof val === 'object'\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nexport function isDate (val) {\r\n return toString.call(val) === '[object Date]'\r\n}\r\n\r\n/**\r\n * Determine if a value is a URLSearchParams object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\r\n */\r\nexport function isURLSearchParams (val) {\r\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams\r\n}\r\n\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nexport function forEach (obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object') {\r\n /*eslint no-param-reassign:0*/\r\n obj = [obj]\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (var i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj)\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n fn.call(null, obj[key], key, obj)\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 是否为boolean 值\r\n * @param val\r\n * @returns {boolean}\r\n */\r\nexport function isBoolean(val) {\r\n return typeof val === 'boolean'\r\n}\r\n\r\n/**\r\n * 是否为真正的对象{} new Object\r\n * @param {any} obj - 检测的对象\r\n * @returns {boolean}\r\n */\r\nexport function isPlainObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]'\r\n}\r\n\r\n\r\n\r\n/**\r\n * Function equal to merge with the difference being that no reference\r\n * to original objects is kept.\r\n *\r\n * @see merge\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nexport function deepMerge(/* obj1, obj2, obj3, ... */) {\r\n let result = {}\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = deepMerge(result[key], val)\r\n } else if (typeof val === 'object') {\r\n result[key] = deepMerge({}, val)\r\n } else {\r\n result[key] = val\r\n }\r\n }\r\n for (let i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue)\r\n }\r\n return result\r\n}\r\n\r\nexport function isUndefined (val) {\r\n return typeof val === 'undefined'\r\n}\r\n","'use strict'\r\n\r\nimport * as utils from './../utils'\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']')\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nexport default function buildURL(url, params, paramsSerializer) {\r\n /*eslint no-param-reassign:0*/\r\n if (!params) {\r\n return url\r\n }\r\n\r\n var serializedParams\r\n if (paramsSerializer) {\r\n serializedParams = paramsSerializer(params)\r\n } else if (utils.isURLSearchParams(params)) {\r\n serializedParams = params.toString()\r\n } else {\r\n var parts = []\r\n\r\n utils.forEach(params, function serialize(val, key) {\r\n if (val === null || typeof val === 'undefined') {\r\n return\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = key + '[]'\r\n } else {\r\n val = [val]\r\n }\r\n\r\n utils.forEach(val, function parseValue(v) {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString()\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v)\r\n }\r\n parts.push(encode(key) + '=' + encode(v))\r\n })\r\n })\r\n\r\n serializedParams = parts.join('&')\r\n }\r\n\r\n if (serializedParams) {\r\n var hashmarkIndex = url.indexOf('#')\r\n if (hashmarkIndex !== -1) {\r\n url = url.slice(0, hashmarkIndex)\r\n }\r\n\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams\r\n }\r\n\r\n return url\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nexport default function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url)\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nexport default function combineURLs(baseURL, relativeURL) {\r\n return relativeURL\r\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\r\n : baseURL\r\n}\r\n","'use strict'\r\n\r\nimport isAbsoluteURL from '../helpers/isAbsoluteURL'\r\nimport combineURLs from '../helpers/combineURLs'\r\n\r\n/**\r\n * Creates a new URL by combining the baseURL with the requestedURL,\r\n * only when the requestedURL is not already an absolute URL.\r\n * If the requestURL is absolute, this function returns the requestedURL untouched.\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} requestedURL Absolute or relative URL to combine\r\n * @returns {string} The combined full path\r\n */\r\nexport default function buildFullPath(baseURL, requestedURL) {\r\n if (baseURL && !isAbsoluteURL(requestedURL)) {\r\n return combineURLs(baseURL, requestedURL)\r\n }\r\n return requestedURL\r\n}\r\n","/**\r\n * Resolve or reject a Promise based on response status.\r\n *\r\n * @param {Function} resolve A function that resolves the promise.\r\n * @param {Function} reject A function that rejects the promise.\r\n * @param {object} response The response.\r\n */\r\nexport default function settle(resolve, reject, response) {\r\n const validateStatus = response.config.validateStatus\r\n const status = response.statusCode\r\n if (status && (!validateStatus || validateStatus(status))) {\r\n resolve(response)\r\n } else {\r\n reject(response)\r\n }\r\n}\r\n","import buildURL from '../helpers/buildURL'\r\nimport buildFullPath from '../core/buildFullPath'\r\nimport settle from '../core/settle'\r\nimport {isUndefined} from \"../utils\"\r\n\r\n/**\r\n * 返回可选值存在的配置\r\n * @param {Array} keys - 可选值数组\r\n * @param {Object} config2 - 配置\r\n * @return {{}} - 存在的配置项\r\n */\r\nconst mergeKeys = (keys, config2) => {\r\n let config = {}\r\n keys.forEach(prop => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n }\r\n })\r\n return config\r\n}\r\nexport default (config) => {\r\n return new Promise((resolve, reject) => {\r\n let fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params, config.paramsSerializer)\r\n const _config = {\r\n url: fullPath,\r\n header: config.header,\r\n complete: (response) => {\r\n config.fullPath = fullPath\r\n response.config = config\r\n response.rawData = response.data\r\n try {\r\n // 对可能字符串不是json 的情况容错\r\n if (typeof response.data === 'string') {\r\n response.data = JSON.parse(response.data)\r\n }\r\n // eslint-disable-next-line no-empty\r\n } catch (e) {\r\n }\r\n settle(resolve, reject, response)\r\n }\r\n }\r\n let requestTask\r\n if (config.method === 'UPLOAD') {\r\n delete _config.header['content-type']\r\n delete _config.header['Content-Type']\r\n let otherConfig = {\r\n // #ifdef MP-ALIPAY\r\n fileType: config.fileType,\r\n // #endif\r\n filePath: config.filePath,\r\n name: config.name\r\n }\r\n const optionalKeys = [\r\n // #ifdef APP-PLUS || H5\r\n 'files',\r\n // #endif\r\n // #ifdef H5\r\n 'file',\r\n // #endif\r\n // #ifdef H5 || APP-PLUS\r\n 'timeout',\r\n // #endif\r\n 'formData'\r\n ]\r\n requestTask = uni.uploadFile({..._config, ...otherConfig, ...mergeKeys(optionalKeys, config)})\r\n } else if (config.method === 'DOWNLOAD') {\r\n // #ifdef H5 || APP-PLUS\r\n if (!isUndefined(config['timeout'])) {\r\n _config['timeout'] = config['timeout']\r\n }\r\n // #endif\r\n requestTask = uni.downloadFile(_config)\r\n } else {\r\n const optionalKeys = [\r\n 'data',\r\n 'method',\r\n // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN\r\n 'timeout',\r\n // #endif\r\n 'dataType',\r\n // #ifndef MP-ALIPAY\r\n 'responseType',\r\n // #endif\r\n // #ifdef APP-PLUS\r\n 'sslVerify',\r\n // #endif\r\n // #ifdef H5\r\n 'withCredentials',\r\n // #endif\r\n // #ifdef APP-PLUS\r\n 'firstIpv4',\r\n // #endif\r\n ]\r\n requestTask = uni.request({..._config, ...mergeKeys(optionalKeys, config)})\r\n }\r\n if (config.getTask) {\r\n config.getTask(requestTask, config)\r\n }\r\n })\r\n}\r\n","import adapter from '../adapters/index'\r\n\r\n\r\nexport default (config) => {\r\n return adapter(config)\r\n}\r\n","'use strict'\r\n\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = []\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled: fulfilled,\r\n rejected: rejected\r\n })\r\n return this.handlers.length - 1\r\n}\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null\r\n }\r\n}\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n this.handlers.forEach(h => {\r\n if (h !== null) {\r\n fn(h)\r\n }\r\n })\r\n}\r\n\r\nexport default InterceptorManager\r\n","import {deepMerge, isUndefined} from '../utils'\r\n\r\n/**\r\n * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局\r\n * @param {Array} keys - 配置项\r\n * @param {Object} globalsConfig - 当前的全局配置\r\n * @param {Object} config2 - 局部配置\r\n * @return {{}}\r\n */\r\nconst mergeKeys = (keys, globalsConfig, config2) => {\r\n let config = {}\r\n keys.forEach(prop => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n } else if (!isUndefined(globalsConfig[prop])) {\r\n config[prop] = globalsConfig[prop]\r\n }\r\n })\r\n return config\r\n}\r\n/**\r\n *\r\n * @param globalsConfig - 当前实例的全局配置\r\n * @param config2 - 当前的局部配置\r\n * @return - 合并后的配置\r\n */\r\nexport default (globalsConfig, config2 = {}) => {\r\n const method = config2.method || globalsConfig.method || 'GET'\r\n let config = {\r\n baseURL: config2.baseURL || globalsConfig.baseURL || '',\r\n method: method,\r\n url: config2.url || '',\r\n params: config2.params || {},\r\n custom: {...(globalsConfig.custom || {}), ...(config2.custom || {})},\r\n header: deepMerge(globalsConfig.header || {}, config2.header || {})\r\n }\r\n const defaultToConfig2Keys = ['getTask', 'validateStatus', 'paramsSerializer']\r\n config = {...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2)}\r\n\r\n // eslint-disable-next-line no-empty\r\n if (method === 'DOWNLOAD') {\r\n // #ifdef H5 || APP-PLUS\r\n if (!isUndefined(config2.timeout)) {\r\n config['timeout'] = config2['timeout']\r\n } else if (!isUndefined(globalsConfig.timeout)) {\r\n config['timeout'] = globalsConfig['timeout']\r\n }\r\n // #endif\r\n } else if (method === 'UPLOAD') {\r\n delete config.header['content-type']\r\n delete config.header['Content-Type']\r\n const uploadKeys = [\r\n // #ifdef APP-PLUS || H5\r\n 'files',\r\n // #endif\r\n // #ifdef MP-ALIPAY\r\n 'fileType',\r\n // #endif\r\n // #ifdef H5\r\n 'file',\r\n // #endif\r\n 'filePath',\r\n 'name',\r\n // #ifdef H5 || APP-PLUS\r\n 'timeout',\r\n // #endif\r\n 'formData',\r\n ]\r\n uploadKeys.forEach(prop => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n }\r\n })\r\n // #ifdef H5 || APP-PLUS\r\n if (isUndefined(config.timeout) && !isUndefined(globalsConfig.timeout)) {\r\n config['timeout'] = globalsConfig['timeout']\r\n }\r\n // #endif\r\n } else {\r\n const defaultsKeys = [\r\n 'data',\r\n // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN\r\n 'timeout',\r\n // #endif\r\n 'dataType',\r\n // #ifndef MP-ALIPAY\r\n 'responseType',\r\n // #endif\r\n // #ifdef APP-PLUS\r\n 'sslVerify',\r\n // #endif\r\n // #ifdef H5\r\n 'withCredentials',\r\n // #endif\r\n // #ifdef APP-PLUS\r\n 'firstIpv4',\r\n // #endif\r\n ]\r\n config = {...config, ...mergeKeys(defaultsKeys, globalsConfig, config2)}\r\n }\r\n\r\n return config\r\n}\r\n","/**\r\n * 默认的全局配置\r\n */\r\n\r\n\r\nexport default {\r\n baseURL: '',\r\n header: {},\r\n method: 'GET',\r\n dataType: 'json',\r\n paramsSerializer: null,\r\n // #ifndef MP-ALIPAY\r\n responseType: 'text',\r\n // #endif\r\n custom: {},\r\n // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN\r\n timeout: 60000,\r\n // #endif\r\n // #ifdef APP-PLUS\r\n sslVerify: true,\r\n // #endif\r\n // #ifdef H5\r\n withCredentials: false,\r\n // #endif\r\n // #ifdef APP-PLUS\r\n firstIpv4: false,\r\n // #endif\r\n validateStatus: function validateStatus(status) {\r\n return status >= 200 && status < 300\r\n }\r\n}\r\n","/* eslint-disable */\r\nvar clone = (function() {\r\n 'use strict';\r\n\r\n function _instanceof(obj, type) {\r\n return type != null && obj instanceof type;\r\n }\r\n\r\n var nativeMap;\r\n try {\r\n nativeMap = Map;\r\n } catch(_) {\r\n // maybe a reference error because no `Map`. Give it a dummy value that no\r\n // value will ever be an instanceof.\r\n nativeMap = function() {};\r\n }\r\n\r\n var nativeSet;\r\n try {\r\n nativeSet = Set;\r\n } catch(_) {\r\n nativeSet = function() {};\r\n }\r\n\r\n var nativePromise;\r\n try {\r\n nativePromise = Promise;\r\n } catch(_) {\r\n nativePromise = function() {};\r\n }\r\n\r\n /**\r\n * Clones (copies) an Object using deep copying.\r\n *\r\n * This function supports circular references by default, but if you are certain\r\n * there are no circular references in your object, you can save some CPU time\r\n * by calling clone(obj, false).\r\n *\r\n * Caution: if `circular` is false and `parent` contains circular references,\r\n * your program may enter an infinite loop and crash.\r\n *\r\n * @param `parent` - the object to be cloned\r\n * @param `circular` - set to true if the object to be cloned may contain\r\n * circular references. (optional - true by default)\r\n * @param `depth` - set to a number if the object is only to be cloned to\r\n * a particular depth. (optional - defaults to Infinity)\r\n * @param `prototype` - sets the prototype to be used when cloning an object.\r\n * (optional - defaults to parent prototype).\r\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\r\n * should be cloned as well. Non-enumerable properties on the prototype\r\n * chain will be ignored. (optional - false by default)\r\n */\r\n function clone(parent, circular, depth, prototype, includeNonEnumerable) {\r\n if (typeof circular === 'object') {\r\n depth = circular.depth;\r\n prototype = circular.prototype;\r\n includeNonEnumerable = circular.includeNonEnumerable;\r\n circular = circular.circular;\r\n }\r\n // maintain two arrays for circular references, where corresponding parents\r\n // and children have the same index\r\n var allParents = [];\r\n var allChildren = [];\r\n\r\n var useBuffer = typeof Buffer != 'undefined';\r\n\r\n if (typeof circular == 'undefined')\r\n circular = true;\r\n\r\n if (typeof depth == 'undefined')\r\n depth = Infinity;\r\n\r\n // recurse this function so we don't reset allParents and allChildren\r\n function _clone(parent, depth) {\r\n // cloning null always returns null\r\n if (parent === null)\r\n return null;\r\n\r\n if (depth === 0)\r\n return parent;\r\n\r\n var child;\r\n var proto;\r\n if (typeof parent != 'object') {\r\n return parent;\r\n }\r\n\r\n if (_instanceof(parent, nativeMap)) {\r\n child = new nativeMap();\r\n } else if (_instanceof(parent, nativeSet)) {\r\n child = new nativeSet();\r\n } else if (_instanceof(parent, nativePromise)) {\r\n child = new nativePromise(function (resolve, reject) {\r\n parent.then(function(value) {\r\n resolve(_clone(value, depth - 1));\r\n }, function(err) {\r\n reject(_clone(err, depth - 1));\r\n });\r\n });\r\n } else if (clone.__isArray(parent)) {\r\n child = [];\r\n } else if (clone.__isRegExp(parent)) {\r\n child = new RegExp(parent.source, __getRegExpFlags(parent));\r\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\r\n } else if (clone.__isDate(parent)) {\r\n child = new Date(parent.getTime());\r\n } else if (useBuffer && Buffer.isBuffer(parent)) {\r\n if (Buffer.from) {\r\n // Node.js >= 5.10.0\r\n child = Buffer.from(parent);\r\n } else {\r\n // Older Node.js versions\r\n child = new Buffer(parent.length);\r\n parent.copy(child);\r\n }\r\n return child;\r\n } else if (_instanceof(parent, Error)) {\r\n child = Object.create(parent);\r\n } else {\r\n if (typeof prototype == 'undefined') {\r\n proto = Object.getPrototypeOf(parent);\r\n child = Object.create(proto);\r\n }\r\n else {\r\n child = Object.create(prototype);\r\n proto = prototype;\r\n }\r\n }\r\n\r\n if (circular) {\r\n var index = allParents.indexOf(parent);\r\n\r\n if (index != -1) {\r\n return allChildren[index];\r\n }\r\n allParents.push(parent);\r\n allChildren.push(child);\r\n }\r\n\r\n if (_instanceof(parent, nativeMap)) {\r\n parent.forEach(function(value, key) {\r\n var keyChild = _clone(key, depth - 1);\r\n var valueChild = _clone(value, depth - 1);\r\n child.set(keyChild, valueChild);\r\n });\r\n }\r\n if (_instanceof(parent, nativeSet)) {\r\n parent.forEach(function(value) {\r\n var entryChild = _clone(value, depth - 1);\r\n child.add(entryChild);\r\n });\r\n }\r\n\r\n for (var i in parent) {\r\n var attrs = Object.getOwnPropertyDescriptor(parent, i);\r\n if (attrs) {\r\n child[i] = _clone(parent[i], depth - 1);\r\n }\r\n\r\n try {\r\n var objProperty = Object.getOwnPropertyDescriptor(parent, i);\r\n if (objProperty.set === 'undefined') {\r\n // no setter defined. Skip cloning this property\r\n continue;\r\n }\r\n child[i] = _clone(parent[i], depth - 1);\r\n } catch(e){\r\n if (e instanceof TypeError) {\r\n // when in strict mode, TypeError will be thrown if child[i] property only has a getter\r\n // we can't do anything about this, other than inform the user that this property cannot be set.\r\n continue\r\n } else if (e instanceof ReferenceError) {\r\n //this may happen in non strict mode\r\n continue\r\n }\r\n }\r\n\r\n }\r\n\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(parent);\r\n for (var i = 0; i < symbols.length; i++) {\r\n // Don't need to worry about cloning a symbol because it is a primitive,\r\n // like a number or string.\r\n var symbol = symbols[i];\r\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\r\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\r\n continue;\r\n }\r\n child[symbol] = _clone(parent[symbol], depth - 1);\r\n Object.defineProperty(child, symbol, descriptor);\r\n }\r\n }\r\n\r\n if (includeNonEnumerable) {\r\n var allPropertyNames = Object.getOwnPropertyNames(parent);\r\n for (var i = 0; i < allPropertyNames.length; i++) {\r\n var propertyName = allPropertyNames[i];\r\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\r\n if (descriptor && descriptor.enumerable) {\r\n continue;\r\n }\r\n child[propertyName] = _clone(parent[propertyName], depth - 1);\r\n Object.defineProperty(child, propertyName, descriptor);\r\n }\r\n }\r\n\r\n return child;\r\n }\r\n\r\n return _clone(parent, depth);\r\n }\r\n\r\n /**\r\n * Simple flat clone using prototype, accepts only objects, usefull for property\r\n * override on FLAT configuration object (no nested props).\r\n *\r\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\r\n * works.\r\n */\r\n clone.clonePrototype = function clonePrototype(parent) {\r\n if (parent === null)\r\n return null;\r\n\r\n var c = function () {};\r\n c.prototype = parent;\r\n return new c();\r\n };\r\n\r\n// private utility functions\r\n\r\n function __objToStr(o) {\r\n return Object.prototype.toString.call(o);\r\n }\r\n clone.__objToStr = __objToStr;\r\n\r\n function __isDate(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\r\n }\r\n clone.__isDate = __isDate;\r\n\r\n function __isArray(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\r\n }\r\n clone.__isArray = __isArray;\r\n\r\n function __isRegExp(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\r\n }\r\n clone.__isRegExp = __isRegExp;\r\n\r\n function __getRegExpFlags(re) {\r\n var flags = '';\r\n if (re.global) flags += 'g';\r\n if (re.ignoreCase) flags += 'i';\r\n if (re.multiline) flags += 'm';\r\n return flags;\r\n }\r\n clone.__getRegExpFlags = __getRegExpFlags;\r\n\r\n return clone;\r\n})();\r\n\r\nexport default clone\r\n","/**\r\n * @Class Request\r\n * @description luch-request http请求插件\r\n * @Author lu-ch\r\n * @Email webwork.s@qq.com\r\n * 文档: https://www.quanzhan.co/luch-request/\r\n * github: https://github.com/lei-mu/luch-request\r\n * DCloud: http://ext.dcloud.net.cn/plugin?id=392\r\n */\r\n\r\n\r\nimport dispatchRequest from './dispatchRequest'\r\nimport InterceptorManager from './InterceptorManager'\r\nimport mergeConfig from './mergeConfig'\r\nimport defaults from './defaults'\r\nimport { isPlainObject } from '../utils'\r\nimport clone from '../utils/clone'\r\n\r\nexport default class Request {\r\n /**\r\n * @param {Object} arg - 全局配置\r\n * @param {String} arg.baseURL - 全局根路径\r\n * @param {Object} arg.header - 全局header\r\n * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式\r\n * @param {String} arg.dataType = [json] - 全局默认的dataType\r\n * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持\r\n * @param {Object} arg.custom - 全局默认的自定义参数\r\n * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序\r\n * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+)\r\n * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+)\r\n * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+)\r\n * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300\r\n */\r\n constructor(arg = {}) {\r\n if (!isPlainObject(arg)) {\r\n arg = {}\r\n console.warn('设置全局参数必须接收一个Object')\r\n }\r\n this.config = clone({...defaults, ...arg})\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n }\r\n }\r\n\r\n /**\r\n * @Function\r\n * @param {Request~setConfigCallback} f - 设置全局默认配置\r\n */\r\n setConfig(f) {\r\n this.config = f(this.config)\r\n }\r\n\r\n middleware(config) {\r\n config = mergeConfig(this.config, config)\r\n let chain = [dispatchRequest, undefined]\r\n let promise = Promise.resolve(config)\r\n\r\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected)\r\n })\r\n\r\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\r\n chain.push(interceptor.fulfilled, interceptor.rejected)\r\n })\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift())\r\n }\r\n\r\n return promise\r\n }\r\n\r\n /**\r\n * @Function\r\n * @param {Object} config - 请求配置项\r\n * @prop {String} options.url - 请求路径\r\n * @prop {Object} options.data - 请求参数\r\n * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型\r\n * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse\r\n * @prop {Object} [options.header = config.header] - 请求header\r\n * @prop {Object} [options.method = config.method] - 请求方法\r\n * @returns {Promise<unknown>}\r\n */\r\n request(config = {}) {\r\n return this.middleware(config)\r\n }\r\n\r\n get(url, options = {}) {\r\n return this.middleware({\r\n url,\r\n method: 'GET',\r\n ...options\r\n })\r\n }\r\n\r\n post(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'POST',\r\n ...options\r\n })\r\n }\r\n\r\n // #ifndef MP-ALIPAY || MP-KUAISHOU || MP-JD\r\n put(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'PUT',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU\r\n delete(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'DELETE',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef H5 || MP-WEIXIN\r\n connect(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'CONNECT',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef H5 || MP-WEIXIN || MP-BAIDU\r\n head(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'HEAD',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU\r\n options(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'OPTIONS',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n // #ifdef H5 || MP-WEIXIN\r\n trace(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'TRACE',\r\n ...options\r\n })\r\n }\r\n\r\n // #endif\r\n\r\n upload(url, config = {}) {\r\n config.url = url\r\n config.method = 'UPLOAD'\r\n return this.middleware(config)\r\n }\r\n\r\n download(url, config = {}) {\r\n config.url = url\r\n config.method = 'DOWNLOAD'\r\n return this.middleware(config)\r\n }\r\n}\r\n\r\n\r\n/**\r\n * setConfig回调\r\n * @return {Object} - 返回操作后的config\r\n * @callback Request~setConfigCallback\r\n * @param {Object} config - 全局默认config\r\n */\r\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\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 * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isSymbol;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\nfunction baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n}\n\nexport default baseToNumber;\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\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` 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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\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\nexport default baseToString;\n","import baseToNumber from './_baseToNumber.js';\nimport baseToString from './_baseToString.js';\n\n/**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\nfunction createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n}\n\nexport default createMathOperation;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\nvar add = createMathOperation(function(augend, addend) {\n return augend + addend;\n}, 0);\n\nexport default add;\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\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\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\nexport default baseTrim;\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\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\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\nexport default toNumber;\n","import toNumber from './toNumber.js';\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\nexport default toFinite;\n","import toFinite from './toFinite.js';\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\nexport default toInteger;\n","import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\nfunction after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\nexport default after;\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\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\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\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\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\nexport default isMasked;\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\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\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\nexport default baseIsNative;\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\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\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\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import WeakMap from './_WeakMap.js';\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nexport default metaMap;\n","import identity from './identity.js';\nimport metaMap from './_metaMap.js';\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nexport default baseSetData;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nexport default createCtor;\n","import createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nexport default createBind;\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\nexport default apply;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nexport default composeArgs;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nexport default composeArgsRight;\n","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nexport default countHolders;\n","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nexport default baseLodash;\n","import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nexport default LazyWrapper;\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\nexport default noop;\n","import metaMap from './_metaMap.js';\nimport noop from './noop.js';\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nexport default getData;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nexport default realNames;\n","import realNames from './_realNames.js';\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 name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nexport default getFuncName;\n","import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nexport default LodashWrapper;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport copyArray from './_copyArray.js';\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nexport default wrapperClone;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport baseLodash from './_baseLodash.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\nimport wrapperClone from './_wrapperClone.js';\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 a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nexport default lodash;\n","import LazyWrapper from './_LazyWrapper.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport lodash from './wrapperLodash.js';\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nexport default isLaziable;\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\nexport default shortOut;\n","import baseSetData from './_baseSetData.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nexport default setData;\n","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nexport default getWrapDetails;\n","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nexport default insertWrapDetails;\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\nexport default constant;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\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\nexport default baseSetToString;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\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\nexport default setToString;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee 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 `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\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\nexport default baseFindIndex;\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\nexport default baseIsNaN;\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\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\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\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\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\nexport default arrayIncludes;\n","import arrayEach from './_arrayEach.js';\nimport arrayIncludes from './_arrayIncludes.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nexport default updateWrapDetails;\n","import getWrapDetails from './_getWrapDetails.js';\nimport insertWrapDetails from './_insertWrapDetails.js';\nimport setToString from './_setToString.js';\nimport updateWrapDetails from './_updateWrapDetails.js';\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nexport default setWrapToString;\n","import isLaziable from './_isLaziable.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nexport default createRecurry;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nexport default getHolder;\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\nexport default isIndex;\n","import copyArray from './_copyArray.js';\nimport isIndex from './_isIndex.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nexport default reorder;\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nexport default replaceHolders;\n","import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport countHolders from './_countHolders.js';\nimport createCtor from './_createCtor.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport reorder from './_reorder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nexport default createHybrid;\n","import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport createHybrid from './_createHybrid.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nexport default createCurry;\n","import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nexport default createPartial;\n","import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nexport default mergeData;\n","import baseSetData from './_baseSetData.js';\nimport createBind from './_createBind.js';\nimport createCurry from './_createCurry.js';\nimport createHybrid from './_createHybrid.js';\nimport createPartial from './_createPartial.js';\nimport getData from './_getData.js';\nimport mergeData from './_mergeData.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nexport default createWrap;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_ARY_FLAG = 128;\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\nfunction ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n}\n\nexport default ary;\n","import defineProperty from './_defineProperty.js';\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\nexport default baseAssignValue;\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\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\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 * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\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 assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\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\nexport default overRest;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\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\nexport default baseRest;\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\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\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\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\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\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\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\nexport default isPrototype;\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\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\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\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default baseIsTypedArray;\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\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** 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\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\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\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\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\nexport default arrayLikeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\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\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\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\nexport default keys;\n","import assignValue from './_assignValue.js';\nimport copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport isArrayLike from './isArrayLike.js';\nimport isPrototype from './_isPrototype.js';\nimport keys from './keys.js';\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 * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nexport default assign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\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 `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n});\n\nexport default assignIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n});\n\nexport default assignInWith;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n/**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n});\n\nexport default assignWith;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\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\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default 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\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\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\nexport default Hash;\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\nexport default listCacheClear;\n","import eq from './eq.js';\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\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\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\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\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\nexport default mapCacheClear;\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\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\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\nexport default getMapData;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\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\nexport default MapCache;\n","import MapCache from './_MapCache.js';\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\nexport default memoize;\n","import memoize from './memoize.js';\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\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\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\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\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\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\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\nexport default castPath;\n","import isSymbol from './isSymbol.js';\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\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\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\nexport default baseGet;\n","import baseGet from './_baseGet.js';\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\nexport default get;\n","import get from './get.js';\n\n/**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\nfunction baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n}\n\nexport default baseAt;\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\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\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\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\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\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import baseAt from './_baseAt.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\nvar at = flatRest(baseAt);\n\nexport default at;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\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 infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\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 an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nexport default isError;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport isError from './isError.js';\n\n/**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\nvar attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n});\n\nexport default attempt;\n","import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\nexport default before;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\nvar bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n});\n\n// Assign default placeholders.\nbind.placeholder = {};\n\nexport default bind;\n","import arrayEach from './_arrayEach.js';\nimport baseAssignValue from './_baseAssignValue.js';\nimport bind from './bind.js';\nimport flatRest from './_flatRest.js';\nimport toKey from './_toKey.js';\n\n/**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\nvar bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n});\n\nexport default bindAll;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\nvar bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n});\n\n// Assign default placeholders.\nbindKey.placeholder = {};\n\nexport default bindKey;\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\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\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\nexport default castSlice;\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\nexport default hasUnicode;\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\nexport default asciiToArray;\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\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\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\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\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\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\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\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\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 rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\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 rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import isArray from './isArray.js';\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nexport default castArray;\n","import root from './_root.js';\nimport toInteger from './toInteger.js';\nimport toNumber from './toNumber.js';\nimport toString from './toString.js';\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\nexport default createRound;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\nvar ceil = createRound('ceil');\n\nexport default ceil;\n","import lodash from './wrapperLodash.js';\n\n/**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\nfunction chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n}\n\nexport default chain;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\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 * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nexport default baseClamp;\n","import baseClamp from './_baseClamp.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nexport default clamp;\n","import ListCache from './_ListCache.js';\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\nexport default 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\nexport default 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\nexport default 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\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\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\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\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\nexport default Stack;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\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\nexport default arrayFilter;\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\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\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\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\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 and inherited 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 getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\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\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\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\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * 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 getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\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\nexport default getTag;\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 * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\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 * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\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 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/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\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 map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\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 set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 genTag = '[object GeneratorFunction]',\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 symbolTag = '[object Symbol]',\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 supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\nfunction cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneDeepWith;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\nfunction cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneWith;\n","import LodashWrapper from './_LodashWrapper.js';\n\n/**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\nfunction wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n}\n\nexport default wrapperCommit;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\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 (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n","import arrayPush from './_arrayPush.js';\nimport baseFlatten from './_baseFlatten.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nexport default concat;\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\nexport default 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\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\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\nexport default SetCache;\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\nexport default arraySome;\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\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\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\nexport default equalArrays;\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\nexport default mapToArray;\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\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\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\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\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\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\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\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\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\nexport default baseIsMatch;\n","import isObject from './isObject.js';\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\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\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\nexport default getMatchData;\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\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\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\nexport default baseMatches;\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\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\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\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\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\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\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\nexport default baseMatchesProperty;\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\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\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\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\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\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\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\nexport default baseIteratee;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\nfunction cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = baseIteratee;\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n}\n\nexport default cond;\n","/**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\nfunction baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n}\n\nexport default baseConformsTo;\n","import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n}\n\nexport default baseConforms;\n","import baseClone from './_baseClone.js';\nimport baseConforms from './_baseConforms.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\nfunction conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default conforms;\n","import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\nfunction conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n}\n\nexport default conformsTo;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\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\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\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\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\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\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\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\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\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\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\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 object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\nvar countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n});\n\nexport default countBy;\n","import baseAssign from './_baseAssign.js';\nimport baseCreate from './_baseCreate.js';\n\n/**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\nfunction create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n}\n\nexport default create;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nexport default curry;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_RIGHT_FLAG = 16;\n\n/**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\nfunction curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurryRight.placeholder = {};\n\nexport default curryRight;\n","import root from './_root.js';\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\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\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\nexport default debounce;\n","/**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\nfunction defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n}\n\nexport default defaultTo;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\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 * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\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 assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\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 safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport isObject from './isObject.js';\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\nexport default customDefaultsMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport customDefaultsMerge from './_customDefaultsMerge.js';\nimport mergeWith from './mergeWith.js';\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\nexport default defaultsDeep;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nexport default baseDelay;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nexport default defer;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\nvar delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n});\n\nexport default delay;\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\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\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\nexport default last;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default differenceBy;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\nvar differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n});\n\nexport default differenceWith;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\nvar divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n}, 1);\n\nexport default divide;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default dropRight;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n}\n\nexport default baseWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true, true)\n : [];\n}\n\nexport default dropRightWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true)\n : [];\n}\n\nexport default dropWhile;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\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|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","/**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee 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 `array`.\n */\nfunction arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEachRight;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\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 baseForRight = createBaseFor(true);\n\nexport default baseForRight;\n","import baseForRight from './_baseForRight.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwnRight` 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 baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n}\n\nexport default baseForOwnRight;\n","import baseForOwnRight from './_baseForOwnRight.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEachRight` 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 baseEachRight = createBaseEach(baseForOwnRight, true);\n\nexport default baseEachRight;\n","import arrayEachRight from './_arrayEachRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\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|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\nfunction forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEachRight;\n","import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\nfunction endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n}\n\nexport default endsWith;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\nfunction baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n}\n\nexport default baseToPairs;\n","/**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\nfunction setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n}\n\nexport default setToPairs;\n","import baseToPairs from './_baseToPairs.js';\nimport getTag from './_getTag.js';\nimport mapToArray from './_mapToArray.js';\nimport setToPairs from './_setToPairs.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\nfunction createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n}\n\nexport default createToPairs;\n","import createToPairs from './_createToPairs.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\nvar toPairs = createToPairs(keys);\n\nexport default toPairs;\n","import createToPairs from './_createToPairs.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\nvar toPairsIn = createToPairs(keysIn);\n\nexport default toPairsIn;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\nexport default escapeHtmlChar;\n","import escapeHtmlChar from './_escapeHtmlChar.js';\nimport toString from './toString.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n}\n\nexport default escape;\n","import toString from './toString.js';\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 reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\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\nexport default arrayEvery;\n","import baseEach from './_baseEach.js';\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\nexport default baseEvery;\n","import arrayEvery from './_arrayEvery.js';\nimport baseEvery from './_baseEvery.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\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\nexport default every;\n","import baseClamp from './_baseClamp.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is 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 convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\nfunction toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n}\n\nexport default toLength;\n","import toInteger from './toInteger.js';\nimport toLength from './toLength.js';\n\n/**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\nfunction baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n}\n\nexport default baseFill;\n","import baseFill from './_baseFill.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\nfunction fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n}\n\nexport default fill;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` 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 {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\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 * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\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\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\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\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\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\nexport default find;\n","/**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\nfunction baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nexport default baseFindKey;\n","import baseFindKey from './_baseFindKey.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.find` except that it returns the key 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 Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\nfunction findKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwn);\n}\n\nexport default findKey;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\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 * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.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=array.length-1] 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': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nexport default findLastIndex;\n","import createFind from './_createFind.js';\nimport findLastIndex from './findLastIndex.js';\n\n/**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.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=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\nvar findLast = createFind(findLastIndex);\n\nexport default findLast;\n","import baseFindKey from './_baseFindKey.js';\nimport baseForOwnRight from './_baseForOwnRight.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\nfunction findLastKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwnRight);\n}\n\nexport default findLastKey;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\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\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\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\nexport default map;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\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\nexport default flatMap;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.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 * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n}\n\nexport default flatMapDeep;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\nimport toInteger from './toInteger.js';\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.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 * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\nfunction flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n}\n\nexport default flatMapDepth;\n","import baseFlatten from './_baseFlatten.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nexport default flattenDeep;\n","import baseFlatten from './_baseFlatten.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\nfunction flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n}\n\nexport default flattenDepth;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\nfunction flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n}\n\nexport default flip;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\nvar floor = createRound('floor');\n\nexport default floor;\n","import LodashWrapper from './_LodashWrapper.js';\nimport flatRest from './_flatRest.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport isArray from './isArray.js';\nimport isLaziable from './_isLaziable.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\nfunction createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n}\n\nexport default createFlow;\n","import createFlow from './_createFlow.js';\n\n/**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flow = createFlow();\n\nexport default flow;\n","import createFlow from './_createFlow.js';\n\n/**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flowRight = createFlow(true);\n\nexport default flowRight;\n","import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.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 `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n","import baseForRight from './_baseForRight.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.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 `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\nfunction forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, castFunction(iteratee), keysIn);\n}\n\nexport default forInRight;\n","import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.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 `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n","import baseForOwnRight from './_baseForOwnRight.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.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 `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\nfunction forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, castFunction(iteratee));\n}\n\nexport default forOwnRight;\n","/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nexport default fromPairs;\n","import arrayFilter from './_arrayFilter.js';\nimport isFunction from './isFunction.js';\n\n/**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\nfunction baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n}\n\nexport default baseFunctions;\n","import baseFunctions from './_baseFunctions.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\nfunction functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n}\n\nexport default functions;\n","import baseFunctions from './_baseFunctions.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\nfunction functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n}\n\nexport default functionsIn;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\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 object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is 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} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nexport default groupBy;\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\nexport default baseGt;\n","import toNumber from './toNumber.js';\n\n/**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\nfunction createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n}\n\nexport default createRelationalOperation;\n","import baseGt from './_baseGt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\nvar gt = createRelationalOperation(baseGt);\n\nexport default gt;\n","import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\nvar gte = createRelationalOperation(function(value, other) {\n return value >= other;\n});\n\nexport default gte;\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 `_.has` 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 baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\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 = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\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 * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\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 values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n","import baseIndexOf from './_baseIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\nfunction indexOf(array, value, 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 baseIndexOf(array, value, index);\n}\n\nexport default indexOf;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but 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 {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\nfunction initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n}\n\nexport default initial;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays 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 array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first 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} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\nvar intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default intersectionBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\nvar intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n});\n\nexport default intersectionWith;\n","import baseForOwn from './_baseForOwn.js';\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nexport default baseInverter;\n","import baseInverter from './_baseInverter.js';\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nexport default createInverter;\n","import constant from './constant.js';\nimport createInverter from './_createInverter.js';\nimport identity from './identity.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nexport default invert;\n","import baseIteratee from './_baseIteratee.js';\nimport createInverter from './_createInverter.js';\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 * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\nvar invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n}, baseIteratee);\n\nexport default invertBy;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import apply from './_apply.js';\nimport castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\nfunction baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n}\n\nexport default baseInvoke;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Invokes the method at `path` 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 of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\nvar invoke = baseRest(baseInvoke);\n\nexport default invoke;\n","import apply from './_apply.js';\nimport baseEach from './_baseEach.js';\nimport baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `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 {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\nvar invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n});\n\nexport default invokeMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\n\n/**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\nfunction baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n}\n\nexport default baseIsArrayBuffer;\n","import baseIsArrayBuffer from './_baseIsArrayBuffer.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer;\n\n/**\n * Checks if `value` is classified as an `ArrayBuffer` object.\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 an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\nvar isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\nexport default isArrayBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isBoolean;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` 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 date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\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 DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\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 `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\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\nexport default isEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\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 * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nexport default isEqualWith;\n","import root from './_root.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite;\n\n/**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\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 finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\nfunction isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n}\n\nexport default isFinite;\n","import toInteger from './toInteger.js';\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\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 an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\nexport default isInteger;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\nfunction isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n}\n\nexport default isMatch;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\nfunction isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n}\n\nexport default isMatchWith;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isNumber;\n","import isNumber from './isNumber.js';\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\nexport default isNaN;\n","import coreJsData from './_coreJsData.js';\nimport isFunction from './isFunction.js';\nimport stubFalse from './stubFalse.js';\n\n/**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\nvar isMaskable = coreJsData ? isFunction : stubFalse;\n\nexport default isMaskable;\n","import baseIsNative from './_baseIsNative.js';\nimport isMaskable from './_isMaskable.js';\n\n/** Error message constants. */\nvar CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.';\n\n/**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\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 native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n}\n\nexport default isNative;\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\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\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 `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n","import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` 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 regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n","import isInteger from './isInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\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 safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\nfunction isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isSafeInteger;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakMapTag = '[object WeakMap]';\n\n/**\n * Checks if `value` is classified as a `WeakMap` object.\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 weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\nfunction isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n}\n\nexport default isWeakMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakSetTag = '[object WeakSet]';\n\n/**\n * Checks if `value` is classified as a `WeakSet` object.\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 weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\nfunction isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n}\n\nexport default isWeakSet;\n","import baseClone from './_baseClone.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\nfunction iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n}\n\nexport default iteratee;\n","/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeJoin = arrayProto.join;\n\n/**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\nfunction join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n}\n\nexport default join;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\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 iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n});\n\nexport default keyBy;\n","/**\n * A specialized version of `_.lastIndexOf` 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 strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n}\n\nexport default strictLastIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictLastIndexOf from './_strictLastIndexOf.js';\nimport toInteger from './toInteger.js';\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 * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\nfunction lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n}\n\nexport default lastIndexOf;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, to lower 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 lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\nvar lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n});\n\nexport default lowerCase;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to lower 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 * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\nvar lowerFirst = createCaseFirst('toLowerCase');\n\nexport default lowerFirst;\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\nexport default baseLt;\n","import baseLt from './_baseLt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\nvar lt = createRelationalOperation(baseLt);\n\nexport default lt;\n","import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\nvar lte = createRelationalOperation(function(value, other) {\n return value <= other;\n});\n\nexport default lte;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.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 _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\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\nexport default mapValues;\n","import baseClone from './_baseClone.js';\nimport baseMatches from './_baseMatches.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default matches;\n","import baseClone from './_baseClone.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|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 * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n}\n\nexport default matchesProperty;\n","import isSymbol from './isSymbol.js';\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\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\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\nexport default max;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nexport default maxBy;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import baseSum from './_baseSum.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\nfunction baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n}\n\nexport default baseMean;\n","import baseMean from './_baseMean.js';\nimport identity from './identity.js';\n\n/**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\nfunction mean(array) {\n return baseMean(array, identity);\n}\n\nexport default mean;\n","import baseIteratee from './_baseIteratee.js';\nimport baseMean from './_baseMean.js';\n\n/**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\nfunction meanBy(array, iteratee) {\n return baseMean(array, baseIteratee(iteratee, 2));\n}\n\nexport default meanBy;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\nvar method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default method;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\nvar methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default methodOf;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\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\nexport default min;\n","import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n","import arrayEach from './_arrayEach.js';\nimport arrayPush from './_arrayPush.js';\nimport baseFunctions from './_baseFunctions.js';\nimport copyArray from './_copyArray.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport keys from './keys.js';\n\n/**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\nfunction mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n}\n\nexport default mixin;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\nvar multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n}, 1);\n\nexport default multiply;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nexport default negate;\n","/**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n}\n\nexport default iteratorToArray;\n","import Symbol from './_Symbol.js';\nimport copyArray from './_copyArray.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport iteratorToArray from './_iteratorToArray.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\nimport stringToArray from './_stringToArray.js';\nimport values from './values.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Built-in value references. */\nvar symIterator = Symbol ? Symbol.iterator : undefined;\n\n/**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\nfunction toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n}\n\nexport default toArray;\n","import toArray from './toArray.js';\n\n/**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\nfunction wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n}\n\nexport default wrapperNext;\n","import isIndex from './_isIndex.js';\n\n/**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\nfunction baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n}\n\nexport default baseNth;\n","import baseNth from './_baseNth.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\nfunction nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n}\n\nexport default nth;\n","import baseNth from './_baseNth.js';\nimport baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\nfunction nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n}\n\nexport default nthArg;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import baseIteratee from './_baseIteratee.js';\nimport negate from './negate.js';\nimport pickBy from './pickBy.js';\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nexport default omitBy;\n","import before from './before.js';\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\nexport default once;\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\nexport default baseSortBy;\n","import isSymbol from './isSymbol.js';\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\nexport default compareAscending;\n","import compareAscending from './_compareAscending.js';\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\nexport default compareMultiple;\n","import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\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\nexport default baseOrderBy;\n","import baseOrderBy from './_baseOrderBy.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\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 {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nexport default orderBy;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\nfunction createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n}\n\nexport default createOver;\n","import arrayMap from './_arrayMap.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\nvar over = createOver(arrayMap);\n\nexport default over;\n","import baseRest from './_baseRest.js';\n\n/**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nvar castRest = baseRest;\n\nexport default castRest;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport castRest from './_castRest.js';\nimport isArray from './isArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\nvar overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(baseIteratee))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(baseIteratee));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n});\n\nexport default overArgs;\n","import arrayEvery from './_arrayEvery.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\nvar overEvery = createOver(arrayEvery);\n\nexport default overEvery;\n","import arraySome from './_arraySome.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\nvar overSome = createOver(arraySome);\n\nexport default overSome;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\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 * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeFloor = Math.floor;\n\n/**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\nfunction pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n}\n\nexport default pad;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\nfunction padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n}\n\nexport default padEnd;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import root from './_root.js';\nimport toString from './toString.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeParseInt = root.parseInt;\n\n/**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\nfunction parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n}\n\nexport default parseInt;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\nvar partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartial.placeholder = {};\n\nexport default partial;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\nvar partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartialRight.placeholder = {};\n\nexport default partialRight;\n","import createAggregator from './_createAggregator.js';\n\n/**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.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 * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\nvar partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n}, function() { return [[], []]; });\n\nexport default partition;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import baseLodash from './_baseLodash.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\nfunction wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n}\n\nexport default wrapperPlant;\n","import baseGet from './_baseGet.js';\n\n/**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\nfunction propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n}\n\nexport default propertyOf;\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\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 * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseIndexOfWith;\n","import arrayMap from './_arrayMap.js';\nimport baseIndexOf from './_baseIndexOf.js';\nimport baseIndexOfWith from './_baseIndexOfWith.js';\nimport baseUnary from './_baseUnary.js';\nimport copyArray from './_copyArray.js';\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 * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nexport default basePullAll;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nexport default pullAll;\n","import baseRest from './_baseRest.js';\nimport pullAll from './pullAll.js';\n\n/**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\nvar pull = baseRest(pullAll);\n\nexport default pull;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\nfunction pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, baseIteratee(iteratee, 2))\n : array;\n}\n\nexport default pullAllBy;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\nfunction pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n}\n\nexport default pullAllWith;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\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 * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","import arrayMap from './_arrayMap.js';\nimport baseAt from './_baseAt.js';\nimport basePullAt from './_basePullAt.js';\nimport compareAscending from './_compareAscending.js';\nimport flatRest from './_flatRest.js';\nimport isIndex from './_isIndex.js';\n\n/**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\nvar pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n});\n\nexport default pullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nexport default baseRandom;\n","import baseRandom from './_baseRandom.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseFloat = parseFloat;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min,\n nativeRandom = Math.random;\n\n/**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\nfunction random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n}\n\nexport default random;\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\nexport default baseRange;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\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\nexport default createRange;\n","import createRange from './_createRange.js';\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\nexport default range;\n","import createRange from './_createRange.js';\n\n/**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\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, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\nvar rangeRight = createRange(true);\n\nexport default rangeRight;\n","import createWrap from './_createWrap.js';\nimport flatRest from './_flatRest.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\nvar rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n});\n\nexport default rearg;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\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 * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","/**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n}\n\nexport default arrayReduceRight;\n","import arrayReduceRight from './_arrayReduceRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\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 * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\nfunction reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n}\n\nexport default reduceRight;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport negate from './negate.js';\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\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 * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nexport default reject;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseRepeat from './_baseRepeat.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n}\n\nexport default repeat;\n","import toString from './toString.js';\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nexport default replace;\n","import baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\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 * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n}\n\nexport default rest;\n","import castPath from './_castPath.js';\nimport isFunction from './isFunction.js';\nimport toKey from './_toKey.js';\n\n/**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\nfunction result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n}\n\nexport default result;\n","/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeReverse = arrayProto.reverse;\n\n/**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\nfunction reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n}\n\nexport default reverse;\n","import createRound from './_createRound.js';\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\nexport default round;\n","import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\nfunction arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n}\n\nexport default arraySample;\n","import arraySample from './_arraySample.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\nfunction baseSample(collection) {\n return arraySample(values(collection));\n}\n\nexport default baseSample;\n","import arraySample from './_arraySample.js';\nimport baseSample from './_baseSample.js';\nimport isArray from './isArray.js';\n\n/**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\nfunction sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n}\n\nexport default sample;\n","import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\nfunction shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n}\n\nexport default shuffleSelf;\n","import baseClamp from './_baseClamp.js';\nimport copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n}\n\nexport default arraySampleSize;\n","import baseClamp from './_baseClamp.js';\nimport shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n}\n\nexport default baseSampleSize;\n","import arraySampleSize from './_arraySampleSize.js';\nimport baseSampleSize from './_baseSampleSize.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\nfunction sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n}\n\nexport default sampleSize;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSet from './_baseSet.js';\n\n/**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\nfunction setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n}\n\nexport default setWith;\n","import copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n}\n\nexport default arrayShuffle;\n","import shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction baseShuffle(collection) {\n return shuffleSelf(values(collection));\n}\n\nexport default baseShuffle;\n","import arrayShuffle from './_arrayShuffle.js';\nimport baseShuffle from './_baseShuffle.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\nfunction shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n}\n\nexport default shuffle;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport stringSize from './_stringSize.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nexport default size;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\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 slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nexport default slice;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nexport default snakeCase;\n","import baseEach from './_baseEach.js';\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\nexport default baseSome;\n","import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\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\nexport default some;\n","import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\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\nexport default sortBy;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n}\n\nexport default baseSortedIndexBy;\n","import baseSortedIndexBy from './_baseSortedIndexBy.js';\nimport identity from './identity.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n/**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n}\n\nexport default baseSortedIndex;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\nfunction sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n}\n\nexport default sortedIndex;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\nfunction sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2));\n}\n\nexport default sortedIndexBy;\n","import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\nfunction sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedIndexOf;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\nfunction sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n}\n\nexport default sortedLastIndex;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\nfunction sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2), true);\n}\n\nexport default sortedLastIndexBy;\n","import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\nfunction sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedLastIndexOf;\n","import eq from './eq.js';\n\n/**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * 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 * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n}\n\nexport default baseSortedUniq;\n","import baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.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 * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\nfunction sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n}\n\nexport default sortedUniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\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] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\nfunction sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, baseIteratee(iteratee, 2))\n : [];\n}\n\nexport default sortedUniqBy;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport isRegExp from './isRegExp.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\nfunction split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n}\n\nexport default split;\n","import apply from './_apply.js';\nimport arrayPush from './_arrayPush.js';\nimport baseRest from './_baseRest.js';\nimport castSlice from './_castSlice.js';\nimport toInteger from './toInteger.js';\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\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\nfunction spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n}\n\nexport default spread;\n","import createCompounder from './_createCompounder.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\nexport default startCase;\n","import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\nfunction startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n}\n\nexport default startsWith;\n","/**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\nfunction stubObject() {\n return {};\n}\n\nexport default stubObject;\n","/**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\nfunction stubString() {\n return '';\n}\n\nexport default stubString;\n","/**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\nfunction stubTrue() {\n return true;\n}\n\nexport default stubTrue;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\nvar subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n}, 0);\n\nexport default subtract;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSum from './_baseSum.js';\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nexport default sumBy;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\nfunction tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n}\n\nexport default tail;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\nfunction take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default take;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\nfunction takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default takeRight;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\nfunction takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), false, true)\n : [];\n}\n\nexport default takeRightWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\nfunction takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3))\n : [];\n}\n\nexport default takeWhile;\n","/**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\nfunction tap(value, interceptor) {\n interceptor(value);\n return value;\n}\n\nexport default tap;\n","import eq from './eq.js';\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 * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n}\n\nexport default customDefaultsAssignIn;\n","/** Used to escape characters for inclusion in compiled string literals. */\nvar stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\n/**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nfunction escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n}\n\nexport default escapeStringChar;\n","/** Used to match template delimiters. */\nvar reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\nexport default reInterpolate;\n","/** Used to match template delimiters. */\nvar reEscape = /<%-([\\s\\S]+?)%>/g;\n\nexport default reEscape;\n","/** Used to match template delimiters. */\nvar reEvaluate = /<%([\\s\\S]+?)%>/g;\n\nexport default reEvaluate;\n","import escape from './escape.js';\nimport reEscape from './_reEscape.js';\nimport reEvaluate from './_reEvaluate.js';\nimport reInterpolate from './_reInterpolate.js';\n\n/**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\nvar templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': { 'escape': escape }\n }\n};\n\nexport default templateSettings;\n","import assignInWith from './assignInWith.js';\nimport attempt from './attempt.js';\nimport baseValues from './_baseValues.js';\nimport customDefaultsAssignIn from './_customDefaultsAssignIn.js';\nimport escapeStringChar from './_escapeStringChar.js';\nimport isError from './isError.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keys from './keys.js';\nimport reInterpolate from './_reInterpolate.js';\nimport templateSettings from './templateSettings.js';\nimport toString from './toString.js';\n\n/** Error message constants. */\nvar INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n/** Used to match empty string literals in compiled template source. */\nvar reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n/**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\nvar reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n/**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\nvar reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n/** Used to ensure capturing order of template delimiters. */\nvar reNoMatch = /($^)/;\n\n/** Used to match unescaped characters in compiled string literals. */\nvar reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\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 a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b><script></b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\nfunction template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = templateSettings.imports._.templateSettings || templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = hasOwnProperty.call(options, 'sourceURL')\n ? ('//# sourceURL=' +\n (options.sourceURL + '').replace(/\\s/g, ' ') +\n '\\n')\n : '';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n}\n\nexport default template;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\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\nexport default throttle;\n","/**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\nfunction thru(value, interceptor) {\n return interceptor(value);\n}\n\nexport default thru;\n","import baseTimes from './_baseTimes.js';\nimport castFunction from './_castFunction.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\nfunction times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n iteratee = castFunction(iteratee);\n n -= MAX_ARRAY_LENGTH;\n\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n}\n\nexport default times;\n","/**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\nfunction wrapperToIterator() {\n return this;\n}\n\nexport default wrapperToIterator;\n","import LazyWrapper from './_LazyWrapper.js';\nimport arrayPush from './_arrayPush.js';\nimport arrayReduce from './_arrayReduce.js';\n\n/**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\nfunction baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n}\n\nexport default baseWrapperValue;\n","import baseWrapperValue from './_baseWrapperValue.js';\n\n/**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\nfunction wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n}\n\nexport default wrapperValue;\n","import toString from './toString.js';\n\n/**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\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 lower cased string.\n * @example\n *\n * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\nfunction toLower(value) {\n return toString(value).toLowerCase();\n}\n\nexport default toLower;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","import baseClamp from './_baseClamp.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\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 * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\nfunction toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n}\n\nexport default toSafeInteger;\n","import toString from './toString.js';\n\n/**\n * Converts `string`, as a whole, to upper case just like\n * [String#toUpperCase](https://mdn.io/toUpperCase).\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 upper cased string.\n * @example\n *\n * _.toUpper('--foo-bar--');\n * // => '--FOO-BAR--'\n *\n * _.toUpper('fooBar');\n * // => 'FOOBAR'\n *\n * _.toUpper('__foo_bar__');\n * // => '__FOO_BAR__'\n */\nfunction toUpper(value) {\n return toString(value).toUpperCase();\n}\n\nexport default toUpper;\n","import arrayEach from './_arrayEach.js';\nimport baseCreate from './_baseCreate.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\nimport getPrototype from './_getPrototype.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isTypedArray from './isTypedArray.js';\n\n/**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\nfunction transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = baseIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n}\n\nexport default transform;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nexport default charsEndIndex;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nexport default charsStartIndex;\n","import baseToString from './_baseToString.js';\nimport baseTrim from './_baseTrim.js';\nimport castSlice from './_castSlice.js';\nimport charsEndIndex from './_charsEndIndex.js';\nimport charsStartIndex from './_charsStartIndex.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nexport default trim;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport charsEndIndex from './_charsEndIndex.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\nimport trimmedEndIndex from './_trimmedEndIndex.js';\n\n/**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd(' abc ');\n * // => ' abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\nfunction trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n return castSlice(strSymbols, 0, end).join('');\n}\n\nexport default trimEnd;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport charsStartIndex from './_charsStartIndex.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\nfunction trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n\n return castSlice(strSymbols, start).join('');\n}\n\nexport default trimStart;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isObject from './isObject.js';\nimport isRegExp from './isRegExp.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nexport default truncate;\n","import ary from './ary.js';\n\n/**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\nfunction unary(func) {\n return ary(func, 1);\n}\n\nexport default unary;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map HTML entities to characters. */\nvar htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n};\n\n/**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\nvar unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\nexport default unescapeHtmlChar;\n","import toString from './toString.js';\nimport unescapeHtmlChar from './_unescapeHtmlChar.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source);\n\n/**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n}\n\nexport default unescape;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\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\nexport default createSet;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\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\nexport default baseUniq;\n","import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. 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} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nvar unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2));\n});\n\nexport default unionBy;\n","import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n});\n\nexport default unionWith;\n","import baseUniq from './_baseUniq.js';\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\nexport default uniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseUniq from './_baseUniq.js';\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\nexport default uniqBy;\n","import baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nexport default uniqWith;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import baseUnset from './_baseUnset.js';\n\n/**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\nfunction unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n}\n\nexport default unset;\n","import arrayFilter from './_arrayFilter.js';\nimport arrayMap from './_arrayMap.js';\nimport baseProperty from './_baseProperty.js';\nimport baseTimes from './_baseTimes.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\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 `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\nfunction unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n}\n\nexport default unzip;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport unzip from './unzip.js';\n\n/**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\nfunction unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n}\n\nexport default unzipWith;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\n\n/**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n}\n\nexport default baseUpdate;\n","import baseUpdate from './_baseUpdate.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\nfunction update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n}\n\nexport default update;\n","import baseUpdate from './_baseUpdate.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\nfunction updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n}\n\nexport default updateWith;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, 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 upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\nvar upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n});\n\nexport default upperCase;\n","import baseValues from './_baseValues.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\nfunction valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n}\n\nexport default valuesIn;\n","import baseDifference from './_baseDifference.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nexport default without;\n","import castFunction from './_castFunction.js';\nimport partial from './partial.js';\n\n/**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '<p>' + func(text) + '</p>';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '<p>fred, barney, & pebbles</p>'\n */\nfunction wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n}\n\nexport default wrap;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport baseAt from './_baseAt.js';\nimport flatRest from './_flatRest.js';\nimport isIndex from './_isIndex.js';\nimport thru from './thru.js';\n\n/**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\nvar wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n});\n\nexport default wrapperAt;\n","import chain from './chain.js';\n\n/**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\nfunction wrapperChain() {\n return chain(this);\n}\n\nexport default wrapperChain;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport reverse from './reverse.js';\nimport thru from './thru.js';\n\n/**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\nfunction wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n}\n\nexport default wrapperReverse;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays 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 array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\nvar xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n});\n\nexport default xor;\n","import arrayFilter from './_arrayFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), baseIteratee(iteratee, 2));\n});\n\nexport default xorBy;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseRest from './_baseRest.js';\nimport unzip from './unzip.js';\n\n/**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\nvar zip = baseRest(unzip);\n\nexport default zip;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nexport default baseZipObject;\n","import assignValue from './_assignValue.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nexport default zipObject;\n","import baseSet from './_baseSet.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\nfunction zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n}\n\nexport default zipObjectDeep;\n","import baseRest from './_baseRest.js';\nimport unzipWith from './unzipWith.js';\n\n/**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\nvar zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n});\n\nexport default zipWith;\n","import chunk from './chunk.js';\nimport compact from './compact.js';\nimport concat from './concat.js';\nimport difference from './difference.js';\nimport differenceBy from './differenceBy.js';\nimport differenceWith from './differenceWith.js';\nimport drop from './drop.js';\nimport dropRight from './dropRight.js';\nimport dropRightWhile from './dropRightWhile.js';\nimport dropWhile from './dropWhile.js';\nimport fill from './fill.js';\nimport findIndex from './findIndex.js';\nimport findLastIndex from './findLastIndex.js';\nimport first from './first.js';\nimport flatten from './flatten.js';\nimport flattenDeep from './flattenDeep.js';\nimport flattenDepth from './flattenDepth.js';\nimport fromPairs from './fromPairs.js';\nimport head from './head.js';\nimport indexOf from './indexOf.js';\nimport initial from './initial.js';\nimport intersection from './intersection.js';\nimport intersectionBy from './intersectionBy.js';\nimport intersectionWith from './intersectionWith.js';\nimport join from './join.js';\nimport last from './last.js';\nimport lastIndexOf from './lastIndexOf.js';\nimport nth from './nth.js';\nimport pull from './pull.js';\nimport pullAll from './pullAll.js';\nimport pullAllBy from './pullAllBy.js';\nimport pullAllWith from './pullAllWith.js';\nimport pullAt from './pullAt.js';\nimport remove from './remove.js';\nimport reverse from './reverse.js';\nimport slice from './slice.js';\nimport sortedIndex from './sortedIndex.js';\nimport sortedIndexBy from './sortedIndexBy.js';\nimport sortedIndexOf from './sortedIndexOf.js';\nimport sortedLastIndex from './sortedLastIndex.js';\nimport sortedLastIndexBy from './sortedLastIndexBy.js';\nimport sortedLastIndexOf from './sortedLastIndexOf.js';\nimport sortedUniq from './sortedUniq.js';\nimport sortedUniqBy from './sortedUniqBy.js';\nimport tail from './tail.js';\nimport take from './take.js';\nimport takeRight from './takeRight.js';\nimport takeRightWhile from './takeRightWhile.js';\nimport takeWhile from './takeWhile.js';\nimport union from './union.js';\nimport unionBy from './unionBy.js';\nimport unionWith from './unionWith.js';\nimport uniq from './uniq.js';\nimport uniqBy from './uniqBy.js';\nimport uniqWith from './uniqWith.js';\nimport unzip from './unzip.js';\nimport unzipWith from './unzipWith.js';\nimport without from './without.js';\nimport xor from './xor.js';\nimport xorBy from './xorBy.js';\nimport xorWith from './xorWith.js';\nimport zip from './zip.js';\nimport zipObject from './zipObject.js';\nimport zipObjectDeep from './zipObjectDeep.js';\nimport zipWith from './zipWith.js';\n\nexport default {\n chunk, compact, concat, difference, differenceBy,\n differenceWith, drop, dropRight, dropRightWhile, dropWhile,\n fill, findIndex, findLastIndex, first, flatten,\n flattenDeep, flattenDepth, fromPairs, head, indexOf,\n initial, intersection, intersectionBy, intersectionWith, join,\n last, lastIndexOf, nth, pull, pullAll,\n pullAllBy, pullAllWith, pullAt, remove, reverse,\n slice, sortedIndex, sortedIndexBy, sortedIndexOf, sortedLastIndex,\n sortedLastIndexBy, sortedLastIndexOf, sortedUniq, sortedUniqBy, tail,\n take, takeRight, takeRightWhile, takeWhile, union,\n unionBy, unionWith, uniq, uniqBy, uniqWith,\n unzip, unzipWith, without, xor, xorBy,\n xorWith, zip, zipObject, zipObjectDeep, zipWith\n};\n","import countBy from './countBy.js';\nimport each from './each.js';\nimport eachRight from './eachRight.js';\nimport every from './every.js';\nimport filter from './filter.js';\nimport find from './find.js';\nimport findLast from './findLast.js';\nimport flatMap from './flatMap.js';\nimport flatMapDeep from './flatMapDeep.js';\nimport flatMapDepth from './flatMapDepth.js';\nimport forEach from './forEach.js';\nimport forEachRight from './forEachRight.js';\nimport groupBy from './groupBy.js';\nimport includes from './includes.js';\nimport invokeMap from './invokeMap.js';\nimport keyBy from './keyBy.js';\nimport map from './map.js';\nimport orderBy from './orderBy.js';\nimport partition from './partition.js';\nimport reduce from './reduce.js';\nimport reduceRight from './reduceRight.js';\nimport reject from './reject.js';\nimport sample from './sample.js';\nimport sampleSize from './sampleSize.js';\nimport shuffle from './shuffle.js';\nimport size from './size.js';\nimport some from './some.js';\nimport sortBy from './sortBy.js';\n\nexport default {\n countBy, each, eachRight, every, filter,\n find, findLast, flatMap, flatMapDeep, flatMapDepth,\n forEach, forEachRight, groupBy, includes, invokeMap,\n keyBy, map, orderBy, partition, reduce,\n reduceRight, reject, sample, sampleSize, shuffle,\n size, some, sortBy\n};\n","import now from './now.js';\n\nexport default {\n now\n};\n","import after from './after.js';\nimport ary from './ary.js';\nimport before from './before.js';\nimport bind from './bind.js';\nimport bindKey from './bindKey.js';\nimport curry from './curry.js';\nimport curryRight from './curryRight.js';\nimport debounce from './debounce.js';\nimport defer from './defer.js';\nimport delay from './delay.js';\nimport flip from './flip.js';\nimport memoize from './memoize.js';\nimport negate from './negate.js';\nimport once from './once.js';\nimport overArgs from './overArgs.js';\nimport partial from './partial.js';\nimport partialRight from './partialRight.js';\nimport rearg from './rearg.js';\nimport rest from './rest.js';\nimport spread from './spread.js';\nimport throttle from './throttle.js';\nimport unary from './unary.js';\nimport wrap from './wrap.js';\n\nexport default {\n after, ary, before, bind, bindKey,\n curry, curryRight, debounce, defer, delay,\n flip, memoize, negate, once, overArgs,\n partial, partialRight, rearg, rest, spread,\n throttle, unary, wrap\n};\n","import castArray from './castArray.js';\nimport clone from './clone.js';\nimport cloneDeep from './cloneDeep.js';\nimport cloneDeepWith from './cloneDeepWith.js';\nimport cloneWith from './cloneWith.js';\nimport conformsTo from './conformsTo.js';\nimport eq from './eq.js';\nimport gt from './gt.js';\nimport gte from './gte.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport isArrayLike from './isArrayLike.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBoolean from './isBoolean.js';\nimport isBuffer from './isBuffer.js';\nimport isDate from './isDate.js';\nimport isElement from './isElement.js';\nimport isEmpty from './isEmpty.js';\nimport isEqual from './isEqual.js';\nimport isEqualWith from './isEqualWith.js';\nimport isError from './isError.js';\nimport isFinite from './isFinite.js';\nimport isFunction from './isFunction.js';\nimport isInteger from './isInteger.js';\nimport isLength from './isLength.js';\nimport isMap from './isMap.js';\nimport isMatch from './isMatch.js';\nimport isMatchWith from './isMatchWith.js';\nimport isNaN from './isNaN.js';\nimport isNative from './isNative.js';\nimport isNil from './isNil.js';\nimport isNull from './isNull.js';\nimport isNumber from './isNumber.js';\nimport isObject from './isObject.js';\nimport isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\nimport isRegExp from './isRegExp.js';\nimport isSafeInteger from './isSafeInteger.js';\nimport isSet from './isSet.js';\nimport isString from './isString.js';\nimport isSymbol from './isSymbol.js';\nimport isTypedArray from './isTypedArray.js';\nimport isUndefined from './isUndefined.js';\nimport isWeakMap from './isWeakMap.js';\nimport isWeakSet from './isWeakSet.js';\nimport lt from './lt.js';\nimport lte from './lte.js';\nimport toArray from './toArray.js';\nimport toFinite from './toFinite.js';\nimport toInteger from './toInteger.js';\nimport toLength from './toLength.js';\nimport toNumber from './toNumber.js';\nimport toPlainObject from './toPlainObject.js';\nimport toSafeInteger from './toSafeInteger.js';\nimport toString from './toString.js';\n\nexport default {\n castArray, clone, cloneDeep, cloneDeepWith, cloneWith,\n conformsTo, eq, gt, gte, isArguments,\n isArray, isArrayBuffer, isArrayLike, isArrayLikeObject, isBoolean,\n isBuffer, isDate, isElement, isEmpty, isEqual,\n isEqualWith, isError, isFinite, isFunction, isInteger,\n isLength, isMap, isMatch, isMatchWith, isNaN,\n isNative, isNil, isNull, isNumber, isObject,\n isObjectLike, isPlainObject, isRegExp, isSafeInteger, isSet,\n isString, isSymbol, isTypedArray, isUndefined, isWeakMap,\n isWeakSet, lt, lte, toArray, toFinite,\n toInteger, toLength, toNumber, toPlainObject, toSafeInteger,\n toString\n};\n","import add from './add.js';\nimport ceil from './ceil.js';\nimport divide from './divide.js';\nimport floor from './floor.js';\nimport max from './max.js';\nimport maxBy from './maxBy.js';\nimport mean from './mean.js';\nimport meanBy from './meanBy.js';\nimport min from './min.js';\nimport minBy from './minBy.js';\nimport multiply from './multiply.js';\nimport round from './round.js';\nimport subtract from './subtract.js';\nimport sum from './sum.js';\nimport sumBy from './sumBy.js';\n\nexport default {\n add, ceil, divide, floor, max,\n maxBy, mean, meanBy, min, minBy,\n multiply, round, subtract, sum, sumBy\n};\n","import clamp from './clamp.js';\nimport inRange from './inRange.js';\nimport random from './random.js';\n\nexport default {\n clamp, inRange, random\n};\n","import assign from './assign.js';\nimport assignIn from './assignIn.js';\nimport assignInWith from './assignInWith.js';\nimport assignWith from './assignWith.js';\nimport at from './at.js';\nimport create from './create.js';\nimport defaults from './defaults.js';\nimport defaultsDeep from './defaultsDeep.js';\nimport entries from './entries.js';\nimport entriesIn from './entriesIn.js';\nimport extend from './extend.js';\nimport extendWith from './extendWith.js';\nimport findKey from './findKey.js';\nimport findLastKey from './findLastKey.js';\nimport forIn from './forIn.js';\nimport forInRight from './forInRight.js';\nimport forOwn from './forOwn.js';\nimport forOwnRight from './forOwnRight.js';\nimport functions from './functions.js';\nimport functionsIn from './functionsIn.js';\nimport get from './get.js';\nimport has from './has.js';\nimport hasIn from './hasIn.js';\nimport invert from './invert.js';\nimport invertBy from './invertBy.js';\nimport invoke from './invoke.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\nimport mapKeys from './mapKeys.js';\nimport mapValues from './mapValues.js';\nimport merge from './merge.js';\nimport mergeWith from './mergeWith.js';\nimport omit from './omit.js';\nimport omitBy from './omitBy.js';\nimport pick from './pick.js';\nimport pickBy from './pickBy.js';\nimport result from './result.js';\nimport set from './set.js';\nimport setWith from './setWith.js';\nimport toPairs from './toPairs.js';\nimport toPairsIn from './toPairsIn.js';\nimport transform from './transform.js';\nimport unset from './unset.js';\nimport update from './update.js';\nimport updateWith from './updateWith.js';\nimport values from './values.js';\nimport valuesIn from './valuesIn.js';\n\nexport default {\n assign, assignIn, assignInWith, assignWith, at,\n create, defaults, defaultsDeep, entries, entriesIn,\n extend, extendWith, findKey, findLastKey, forIn,\n forInRight, forOwn, forOwnRight, functions, functionsIn,\n get, has, hasIn, invert, invertBy,\n invoke, keys, keysIn, mapKeys, mapValues,\n merge, mergeWith, omit, omitBy, pick,\n pickBy, result, set, setWith, toPairs,\n toPairsIn, transform, unset, update, updateWith,\n values, valuesIn\n};\n","import at from './wrapperAt.js';\nimport chain from './chain.js';\nimport commit from './commit.js';\nimport lodash from './wrapperLodash.js';\nimport next from './next.js';\nimport plant from './plant.js';\nimport reverse from './wrapperReverse.js';\nimport tap from './tap.js';\nimport thru from './thru.js';\nimport toIterator from './toIterator.js';\nimport toJSON from './toJSON.js';\nimport value from './wrapperValue.js';\nimport valueOf from './valueOf.js';\nimport wrapperChain from './wrapperChain.js';\n\nexport default {\n at, chain, commit, lodash, next,\n plant, reverse, tap, thru, toIterator,\n toJSON, value, valueOf, wrapperChain\n};\n","import camelCase from './camelCase.js';\nimport capitalize from './capitalize.js';\nimport deburr from './deburr.js';\nimport endsWith from './endsWith.js';\nimport escape from './escape.js';\nimport escapeRegExp from './escapeRegExp.js';\nimport kebabCase from './kebabCase.js';\nimport lowerCase from './lowerCase.js';\nimport lowerFirst from './lowerFirst.js';\nimport pad from './pad.js';\nimport padEnd from './padEnd.js';\nimport padStart from './padStart.js';\nimport parseInt from './parseInt.js';\nimport repeat from './repeat.js';\nimport replace from './replace.js';\nimport snakeCase from './snakeCase.js';\nimport split from './split.js';\nimport startCase from './startCase.js';\nimport startsWith from './startsWith.js';\nimport template from './template.js';\nimport templateSettings from './templateSettings.js';\nimport toLower from './toLower.js';\nimport toUpper from './toUpper.js';\nimport trim from './trim.js';\nimport trimEnd from './trimEnd.js';\nimport trimStart from './trimStart.js';\nimport truncate from './truncate.js';\nimport unescape from './unescape.js';\nimport upperCase from './upperCase.js';\nimport upperFirst from './upperFirst.js';\nimport words from './words.js';\n\nexport default {\n camelCase, capitalize, deburr, endsWith, escape,\n escapeRegExp, kebabCase, lowerCase, lowerFirst, pad,\n padEnd, padStart, parseInt, repeat, replace,\n snakeCase, split, startCase, startsWith, template,\n templateSettings, toLower, toUpper, trim, trimEnd,\n trimStart, truncate, unescape, upperCase, upperFirst,\n words\n};\n","import attempt from './attempt.js';\nimport bindAll from './bindAll.js';\nimport cond from './cond.js';\nimport conforms from './conforms.js';\nimport constant from './constant.js';\nimport defaultTo from './defaultTo.js';\nimport flow from './flow.js';\nimport flowRight from './flowRight.js';\nimport identity from './identity.js';\nimport iteratee from './iteratee.js';\nimport matches from './matches.js';\nimport matchesProperty from './matchesProperty.js';\nimport method from './method.js';\nimport methodOf from './methodOf.js';\nimport mixin from './mixin.js';\nimport noop from './noop.js';\nimport nthArg from './nthArg.js';\nimport over from './over.js';\nimport overEvery from './overEvery.js';\nimport overSome from './overSome.js';\nimport property from './property.js';\nimport propertyOf from './propertyOf.js';\nimport range from './range.js';\nimport rangeRight from './rangeRight.js';\nimport stubArray from './stubArray.js';\nimport stubFalse from './stubFalse.js';\nimport stubObject from './stubObject.js';\nimport stubString from './stubString.js';\nimport stubTrue from './stubTrue.js';\nimport times from './times.js';\nimport toPath from './toPath.js';\nimport uniqueId from './uniqueId.js';\n\nexport default {\n attempt, bindAll, cond, conforms, constant,\n defaultTo, flow, flowRight, identity, iteratee,\n matches, matchesProperty, method, methodOf, mixin,\n noop, nthArg, over, overEvery, overSome,\n property, propertyOf, range, rangeRight, stubArray,\n stubFalse, stubObject, stubString, stubTrue, times,\n toPath, uniqueId\n};\n","import LazyWrapper from './_LazyWrapper.js';\nimport copyArray from './_copyArray.js';\n\n/**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\nfunction lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n}\n\nexport default lazyClone;\n","import LazyWrapper from './_LazyWrapper.js';\n\n/**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\nfunction lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n}\n\nexport default lazyReverse;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\nfunction getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n}\n\nexport default getView;\n","import baseWrapperValue from './_baseWrapperValue.js';\nimport getView from './_getView.js';\nimport isArray from './isArray.js';\n\n/** Used to indicate the type of lazy iteratees. */\nvar LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\nfunction lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n}\n\nexport default lazyValue;\n","/**\n * @license\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"es\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nimport array from './array.js';\nimport collection from './collection.js';\nimport date from './date.js';\nimport func from './function.js';\nimport lang from './lang.js';\nimport math from './math.js';\nimport number from './number.js';\nimport object from './object.js';\nimport seq from './seq.js';\nimport string from './string.js';\nimport util from './util.js';\nimport LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport Symbol from './_Symbol.js';\nimport arrayEach from './_arrayEach.js';\nimport arrayPush from './_arrayPush.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseFunctions from './_baseFunctions.js';\nimport baseInvoke from './_baseInvoke.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport createHybrid from './_createHybrid.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport isObject from './isObject.js';\nimport keys from './keys.js';\nimport last from './last.js';\nimport lazyClone from './_lazyClone.js';\nimport lazyReverse from './_lazyReverse.js';\nimport lazyValue from './_lazyValue.js';\nimport _mixin from './mixin.js';\nimport negate from './negate.js';\nimport realNames from './_realNames.js';\nimport thru from './thru.js';\nimport toInteger from './toInteger.js';\nimport lodash from './wrapperLodash.js';\n\n/** Used as the semantic version number. */\nvar VERSION = '4.17.21';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_KEY_FLAG = 2;\n\n/** Used to indicate the type of lazy iteratees. */\nvar LAZY_FILTER_FLAG = 1,\n LAZY_WHILE_FLAG = 3;\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar symIterator = Symbol ? Symbol.iterator : undefined;\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// wrap `_.mixin` so it works when provided only one argument\nvar mixin = (function(func) {\n return function(object, source, options) {\n if (options == null) {\n var isObj = isObject(source),\n props = isObj && keys(source),\n methodNames = props && props.length && baseFunctions(source, props);\n\n if (!(methodNames ? methodNames.length : isObj)) {\n options = source;\n source = object;\n object = this;\n }\n }\n return func(object, source, options);\n };\n}(_mixin));\n\n// Add methods that return wrapped values in chain sequences.\nlodash.after = func.after;\nlodash.ary = func.ary;\nlodash.assign = object.assign;\nlodash.assignIn = object.assignIn;\nlodash.assignInWith = object.assignInWith;\nlodash.assignWith = object.assignWith;\nlodash.at = object.at;\nlodash.before = func.before;\nlodash.bind = func.bind;\nlodash.bindAll = util.bindAll;\nlodash.bindKey = func.bindKey;\nlodash.castArray = lang.castArray;\nlodash.chain = seq.chain;\nlodash.chunk = array.chunk;\nlodash.compact = array.compact;\nlodash.concat = array.concat;\nlodash.cond = util.cond;\nlodash.conforms = util.conforms;\nlodash.constant = util.constant;\nlodash.countBy = collection.countBy;\nlodash.create = object.create;\nlodash.curry = func.curry;\nlodash.curryRight = func.curryRight;\nlodash.debounce = func.debounce;\nlodash.defaults = object.defaults;\nlodash.defaultsDeep = object.defaultsDeep;\nlodash.defer = func.defer;\nlodash.delay = func.delay;\nlodash.difference = array.difference;\nlodash.differenceBy = array.differenceBy;\nlodash.differenceWith = array.differenceWith;\nlodash.drop = array.drop;\nlodash.dropRight = array.dropRight;\nlodash.dropRightWhile = array.dropRightWhile;\nlodash.dropWhile = array.dropWhile;\nlodash.fill = array.fill;\nlodash.filter = collection.filter;\nlodash.flatMap = collection.flatMap;\nlodash.flatMapDeep = collection.flatMapDeep;\nlodash.flatMapDepth = collection.flatMapDepth;\nlodash.flatten = array.flatten;\nlodash.flattenDeep = array.flattenDeep;\nlodash.flattenDepth = array.flattenDepth;\nlodash.flip = func.flip;\nlodash.flow = util.flow;\nlodash.flowRight = util.flowRight;\nlodash.fromPairs = array.fromPairs;\nlodash.functions = object.functions;\nlodash.functionsIn = object.functionsIn;\nlodash.groupBy = collection.groupBy;\nlodash.initial = array.initial;\nlodash.intersection = array.intersection;\nlodash.intersectionBy = array.intersectionBy;\nlodash.intersectionWith = array.intersectionWith;\nlodash.invert = object.invert;\nlodash.invertBy = object.invertBy;\nlodash.invokeMap = collection.invokeMap;\nlodash.iteratee = util.iteratee;\nlodash.keyBy = collection.keyBy;\nlodash.keys = keys;\nlodash.keysIn = object.keysIn;\nlodash.map = collection.map;\nlodash.mapKeys = object.mapKeys;\nlodash.mapValues = object.mapValues;\nlodash.matches = util.matches;\nlodash.matchesProperty = util.matchesProperty;\nlodash.memoize = func.memoize;\nlodash.merge = object.merge;\nlodash.mergeWith = object.mergeWith;\nlodash.method = util.method;\nlodash.methodOf = util.methodOf;\nlodash.mixin = mixin;\nlodash.negate = negate;\nlodash.nthArg = util.nthArg;\nlodash.omit = object.omit;\nlodash.omitBy = object.omitBy;\nlodash.once = func.once;\nlodash.orderBy = collection.orderBy;\nlodash.over = util.over;\nlodash.overArgs = func.overArgs;\nlodash.overEvery = util.overEvery;\nlodash.overSome = util.overSome;\nlodash.partial = func.partial;\nlodash.partialRight = func.partialRight;\nlodash.partition = collection.partition;\nlodash.pick = object.pick;\nlodash.pickBy = object.pickBy;\nlodash.property = util.property;\nlodash.propertyOf = util.propertyOf;\nlodash.pull = array.pull;\nlodash.pullAll = array.pullAll;\nlodash.pullAllBy = array.pullAllBy;\nlodash.pullAllWith = array.pullAllWith;\nlodash.pullAt = array.pullAt;\nlodash.range = util.range;\nlodash.rangeRight = util.rangeRight;\nlodash.rearg = func.rearg;\nlodash.reject = collection.reject;\nlodash.remove = array.remove;\nlodash.rest = func.rest;\nlodash.reverse = array.reverse;\nlodash.sampleSize = collection.sampleSize;\nlodash.set = object.set;\nlodash.setWith = object.setWith;\nlodash.shuffle = collection.shuffle;\nlodash.slice = array.slice;\nlodash.sortBy = collection.sortBy;\nlodash.sortedUniq = array.sortedUniq;\nlodash.sortedUniqBy = array.sortedUniqBy;\nlodash.split = string.split;\nlodash.spread = func.spread;\nlodash.tail = array.tail;\nlodash.take = array.take;\nlodash.takeRight = array.takeRight;\nlodash.takeRightWhile = array.takeRightWhile;\nlodash.takeWhile = array.takeWhile;\nlodash.tap = seq.tap;\nlodash.throttle = func.throttle;\nlodash.thru = thru;\nlodash.toArray = lang.toArray;\nlodash.toPairs = object.toPairs;\nlodash.toPairsIn = object.toPairsIn;\nlodash.toPath = util.toPath;\nlodash.toPlainObject = lang.toPlainObject;\nlodash.transform = object.transform;\nlodash.unary = func.unary;\nlodash.union = array.union;\nlodash.unionBy = array.unionBy;\nlodash.unionWith = array.unionWith;\nlodash.uniq = array.uniq;\nlodash.uniqBy = array.uniqBy;\nlodash.uniqWith = array.uniqWith;\nlodash.unset = object.unset;\nlodash.unzip = array.unzip;\nlodash.unzipWith = array.unzipWith;\nlodash.update = object.update;\nlodash.updateWith = object.updateWith;\nlodash.values = object.values;\nlodash.valuesIn = object.valuesIn;\nlodash.without = array.without;\nlodash.words = string.words;\nlodash.wrap = func.wrap;\nlodash.xor = array.xor;\nlodash.xorBy = array.xorBy;\nlodash.xorWith = array.xorWith;\nlodash.zip = array.zip;\nlodash.zipObject = array.zipObject;\nlodash.zipObjectDeep = array.zipObjectDeep;\nlodash.zipWith = array.zipWith;\n\n// Add aliases.\nlodash.entries = object.toPairs;\nlodash.entriesIn = object.toPairsIn;\nlodash.extend = object.assignIn;\nlodash.extendWith = object.assignInWith;\n\n// Add methods to `lodash.prototype`.\nmixin(lodash, lodash);\n\n// Add methods that return unwrapped values in chain sequences.\nlodash.add = math.add;\nlodash.attempt = util.attempt;\nlodash.camelCase = string.camelCase;\nlodash.capitalize = string.capitalize;\nlodash.ceil = math.ceil;\nlodash.clamp = number.clamp;\nlodash.clone = lang.clone;\nlodash.cloneDeep = lang.cloneDeep;\nlodash.cloneDeepWith = lang.cloneDeepWith;\nlodash.cloneWith = lang.cloneWith;\nlodash.conformsTo = lang.conformsTo;\nlodash.deburr = string.deburr;\nlodash.defaultTo = util.defaultTo;\nlodash.divide = math.divide;\nlodash.endsWith = string.endsWith;\nlodash.eq = lang.eq;\nlodash.escape = string.escape;\nlodash.escapeRegExp = string.escapeRegExp;\nlodash.every = collection.every;\nlodash.find = collection.find;\nlodash.findIndex = array.findIndex;\nlodash.findKey = object.findKey;\nlodash.findLast = collection.findLast;\nlodash.findLastIndex = array.findLastIndex;\nlodash.findLastKey = object.findLastKey;\nlodash.floor = math.floor;\nlodash.forEach = collection.forEach;\nlodash.forEachRight = collection.forEachRight;\nlodash.forIn = object.forIn;\nlodash.forInRight = object.forInRight;\nlodash.forOwn = object.forOwn;\nlodash.forOwnRight = object.forOwnRight;\nlodash.get = object.get;\nlodash.gt = lang.gt;\nlodash.gte = lang.gte;\nlodash.has = object.has;\nlodash.hasIn = object.hasIn;\nlodash.head = array.head;\nlodash.identity = identity;\nlodash.includes = collection.includes;\nlodash.indexOf = array.indexOf;\nlodash.inRange = number.inRange;\nlodash.invoke = object.invoke;\nlodash.isArguments = lang.isArguments;\nlodash.isArray = isArray;\nlodash.isArrayBuffer = lang.isArrayBuffer;\nlodash.isArrayLike = lang.isArrayLike;\nlodash.isArrayLikeObject = lang.isArrayLikeObject;\nlodash.isBoolean = lang.isBoolean;\nlodash.isBuffer = lang.isBuffer;\nlodash.isDate = lang.isDate;\nlodash.isElement = lang.isElement;\nlodash.isEmpty = lang.isEmpty;\nlodash.isEqual = lang.isEqual;\nlodash.isEqualWith = lang.isEqualWith;\nlodash.isError = lang.isError;\nlodash.isFinite = lang.isFinite;\nlodash.isFunction = lang.isFunction;\nlodash.isInteger = lang.isInteger;\nlodash.isLength = lang.isLength;\nlodash.isMap = lang.isMap;\nlodash.isMatch = lang.isMatch;\nlodash.isMatchWith = lang.isMatchWith;\nlodash.isNaN = lang.isNaN;\nlodash.isNative = lang.isNative;\nlodash.isNil = lang.isNil;\nlodash.isNull = lang.isNull;\nlodash.isNumber = lang.isNumber;\nlodash.isObject = isObject;\nlodash.isObjectLike = lang.isObjectLike;\nlodash.isPlainObject = lang.isPlainObject;\nlodash.isRegExp = lang.isRegExp;\nlodash.isSafeInteger = lang.isSafeInteger;\nlodash.isSet = lang.isSet;\nlodash.isString = lang.isString;\nlodash.isSymbol = lang.isSymbol;\nlodash.isTypedArray = lang.isTypedArray;\nlodash.isUndefined = lang.isUndefined;\nlodash.isWeakMap = lang.isWeakMap;\nlodash.isWeakSet = lang.isWeakSet;\nlodash.join = array.join;\nlodash.kebabCase = string.kebabCase;\nlodash.last = last;\nlodash.lastIndexOf = array.lastIndexOf;\nlodash.lowerCase = string.lowerCase;\nlodash.lowerFirst = string.lowerFirst;\nlodash.lt = lang.lt;\nlodash.lte = lang.lte;\nlodash.max = math.max;\nlodash.maxBy = math.maxBy;\nlodash.mean = math.mean;\nlodash.meanBy = math.meanBy;\nlodash.min = math.min;\nlodash.minBy = math.minBy;\nlodash.stubArray = util.stubArray;\nlodash.stubFalse = util.stubFalse;\nlodash.stubObject = util.stubObject;\nlodash.stubString = util.stubString;\nlodash.stubTrue = util.stubTrue;\nlodash.multiply = math.multiply;\nlodash.nth = array.nth;\nlodash.noop = util.noop;\nlodash.now = date.now;\nlodash.pad = string.pad;\nlodash.padEnd = string.padEnd;\nlodash.padStart = string.padStart;\nlodash.parseInt = string.parseInt;\nlodash.random = number.random;\nlodash.reduce = collection.reduce;\nlodash.reduceRight = collection.reduceRight;\nlodash.repeat = string.repeat;\nlodash.replace = string.replace;\nlodash.result = object.result;\nlodash.round = math.round;\nlodash.sample = collection.sample;\nlodash.size = collection.size;\nlodash.snakeCase = string.snakeCase;\nlodash.some = collection.some;\nlodash.sortedIndex = array.sortedIndex;\nlodash.sortedIndexBy = array.sortedIndexBy;\nlodash.sortedIndexOf = array.sortedIndexOf;\nlodash.sortedLastIndex = array.sortedLastIndex;\nlodash.sortedLastIndexBy = array.sortedLastIndexBy;\nlodash.sortedLastIndexOf = array.sortedLastIndexOf;\nlodash.startCase = string.startCase;\nlodash.startsWith = string.startsWith;\nlodash.subtract = math.subtract;\nlodash.sum = math.sum;\nlodash.sumBy = math.sumBy;\nlodash.template = string.template;\nlodash.times = util.times;\nlodash.toFinite = lang.toFinite;\nlodash.toInteger = toInteger;\nlodash.toLength = lang.toLength;\nlodash.toLower = string.toLower;\nlodash.toNumber = lang.toNumber;\nlodash.toSafeInteger = lang.toSafeInteger;\nlodash.toString = lang.toString;\nlodash.toUpper = string.toUpper;\nlodash.trim = string.trim;\nlodash.trimEnd = string.trimEnd;\nlodash.trimStart = string.trimStart;\nlodash.truncate = string.truncate;\nlodash.unescape = string.unescape;\nlodash.uniqueId = util.uniqueId;\nlodash.upperCase = string.upperCase;\nlodash.upperFirst = string.upperFirst;\n\n// Add aliases.\nlodash.each = collection.forEach;\nlodash.eachRight = collection.forEachRight;\nlodash.first = array.head;\n\nmixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n}()), { 'chain': false });\n\n/**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\nlodash.VERSION = VERSION;\n(lodash.templateSettings = string.templateSettings).imports._ = lodash;\n\n// Assign default placeholders.\narrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n lodash[methodName].placeholder = lodash;\n});\n\n// Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\narrayEach(['drop', 'take'], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n var result = (this.__filtered__ && !index)\n ? new LazyWrapper(this)\n : this.clone();\n\n if (result.__filtered__) {\n result.__takeCount__ = nativeMin(n, result.__takeCount__);\n } else {\n result.__views__.push({\n 'size': nativeMin(n, MAX_ARRAY_LENGTH),\n 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n });\n }\n return result;\n };\n\n LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n});\n\n// Add `LazyWrapper` methods that accept an `iteratee` value.\narrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n var type = index + 1,\n isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n LazyWrapper.prototype[methodName] = function(iteratee) {\n var result = this.clone();\n result.__iteratees__.push({\n 'iteratee': baseIteratee(iteratee, 3),\n 'type': type\n });\n result.__filtered__ = result.__filtered__ || isFilter;\n return result;\n };\n});\n\n// Add `LazyWrapper` methods for `_.head` and `_.last`.\narrayEach(['head', 'last'], function(methodName, index) {\n var takeName = 'take' + (index ? 'Right' : '');\n\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n});\n\n// Add `LazyWrapper` methods for `_.initial` and `_.tail`.\narrayEach(['initial', 'tail'], function(methodName, index) {\n var dropName = 'drop' + (index ? '' : 'Right');\n\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n});\n\nLazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n};\n\nLazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n};\n\nLazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n};\n\nLazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == 'function') {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n});\n\nLazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(baseIteratee(predicate)));\n};\n\nLazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n\n var result = this;\n if (result.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result);\n }\n if (start < 0) {\n result = result.takeRight(-start);\n } else if (start) {\n result = result.drop(start);\n }\n if (end !== undefined) {\n end = toInteger(end);\n result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n }\n return result;\n};\n\nLazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n};\n\nLazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n};\n\n// Add `LazyWrapper` methods to `lodash.prototype`.\nbaseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n isTaker = /^(?:head|last)$/.test(methodName),\n lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n retUnwrapped = isTaker || /^find/.test(methodName);\n\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__,\n args = isTaker ? [1] : arguments,\n isLazy = value instanceof LazyWrapper,\n iteratee = args[0],\n useLazy = isLazy || isArray(value);\n\n var interceptor = function(value) {\n var result = lodashFunc.apply(lodash, arrayPush([value], args));\n return (isTaker && chainAll) ? result[0] : result;\n };\n\n if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__,\n isHybrid = !!this.__actions__.length,\n isUnwrapped = retUnwrapped && !chainAll,\n onlyLazy = isLazy && !isHybrid;\n\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result = func.apply(value, args);\n result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n return new LodashWrapper(result, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result = this.thru(interceptor);\n return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n };\n});\n\n// Add `Array` methods to `lodash.prototype`.\narrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = arrayProto[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n});\n\n// Map minified method names to their real names.\nbaseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + '';\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ 'name': methodName, 'func': lodashFunc });\n }\n});\n\nrealNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n 'name': 'wrapper',\n 'func': undefined\n}];\n\n// Add methods to `LazyWrapper`.\nLazyWrapper.prototype.clone = lazyClone;\nLazyWrapper.prototype.reverse = lazyReverse;\nLazyWrapper.prototype.value = lazyValue;\n\n// Add chain sequence methods to the `lodash` wrapper.\nlodash.prototype.at = seq.at;\nlodash.prototype.chain = seq.wrapperChain;\nlodash.prototype.commit = seq.commit;\nlodash.prototype.next = seq.next;\nlodash.prototype.plant = seq.plant;\nlodash.prototype.reverse = seq.reverse;\nlodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = seq.value;\n\n// Add lazy aliases.\nlodash.prototype.first = lodash.prototype.head;\n\nif (symIterator) {\n lodash.prototype[symIterator] = seq.toIterator;\n}\n\nexport default lodash;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","const isH5 = typeof alert === \"function\";\nconst updateStorage = (strategy, store, options) => {\n const storage = strategy.storage;\n const storeKey = strategy.key || store.$id;\n const isCustomStorage = isH5 || (options == null ? void 0 : options.enforceCustomStorage);\n if (strategy.paths) {\n const partialState = strategy.paths.reduce((finalObj, key) => {\n finalObj[key] = store.$state[key];\n return finalObj;\n }, {});\n if (isCustomStorage && storage) {\n storage.setItem(storeKey, JSON.stringify(partialState));\n } else {\n uni.setStorage({ key: storeKey, data: JSON.stringify(partialState) });\n }\n } else if (isCustomStorage && storage) {\n storage.setItem(storeKey, JSON.stringify(store.$state));\n } else {\n uni.setStorage({ key: storeKey, data: JSON.stringify(store.$state) });\n }\n};\nvar index = ({ options, store }) => {\n var _a, _b, _c, _d, _e, _f;\n if ((_a = options.persist) == null ? void 0 : _a.enabled) {\n const defaultStrat = [\n {\n key: store.$id,\n storage: ((_b = options.persist) == null ? void 0 : _b.H5Storage) || (window == null ? void 0 : window.sessionStorage)\n }\n ];\n const strategies = ((_d = (_c = options.persist) == null ? void 0 : _c.strategies) == null ? void 0 : _d.length) ? (_e = options.persist) == null ? void 0 : _e.strategies : defaultStrat;\n strategies.forEach((strategy) => {\n var _a2, _b2;\n const storage = strategy.storage || ((_a2 = options.persist) == null ? void 0 : _a2.H5Storage) || (window == null ? void 0 : window.sessionStorage);\n const storeKey = strategy.key || store.$id;\n let storageResult;\n if (isH5 || ((_b2 = options.persist) == null ? void 0 : _b2.enforceCustomStorage)) {\n storageResult = storage.getItem(storeKey);\n } else {\n storageResult = uni.getStorageSync(storeKey);\n }\n if (storageResult) {\n store.$patch(JSON.parse(storageResult));\n updateStorage(strategy, store, options.persist);\n }\n });\n store.$subscribe(() => {\n strategies.forEach((strategy) => {\n updateStorage(strategy, store, options.persist);\n });\n }, { detached: ((_f = options.persist) == null ? void 0 : _f.detached) ? true : false });\n }\n};\nexport { index as default };\n","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=31536e6,d=2628e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:u,months:d,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/d),t%=d,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,\"Y\"),s=v(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,\"D\"),e=v(this.$d.hours,\"H\"),r=v(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,\"S\"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",h=(d?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===h||\"-P\"===h?\"P0D\":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}(),p=function(t,s,n){return t.add(s.years()*n,\"y\").add(s.months()*n,\"M\").add(s.days()*n,\"d\").add(s.hours()*n,\"h\").add(s.minutes()*n,\"m\").add(s.seconds()*n,\"s\").add(s.milliseconds()*n,\"ms\")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","// src/normalize.ts\nfunction isObject(v) {\n return typeof v === \"object\" && v !== null;\n}\nfunction normalizeOptions(options, factoryOptions) {\n options = isObject(options) ? options : /* @__PURE__ */ Object.create(null);\n return new Proxy(options, {\n get(target, key, receiver) {\n if (key === \"key\")\n return Reflect.get(target, key, receiver);\n return Reflect.get(target, key, receiver) || Reflect.get(factoryOptions, key, receiver);\n }\n });\n}\n\n// src/pick.ts\nfunction get(state, path) {\n return path.reduce((obj, p) => {\n return obj == null ? void 0 : obj[p];\n }, state);\n}\nfunction set(state, path, val) {\n return path.slice(0, -1).reduce((obj, p) => {\n if (/^(__proto__)$/.test(p))\n return {};\n else\n return obj[p] = obj[p] || {};\n }, state)[path[path.length - 1]] = val, state;\n}\nfunction pick(baseState, paths) {\n return paths.reduce((substate, path) => {\n const pathArray = path.split(\".\");\n return set(substate, pathArray, get(baseState, pathArray));\n }, {});\n}\n\n// src/plugin.ts\nfunction parsePersistence(factoryOptions, store) {\n return (o) => {\n var _a;\n try {\n const {\n storage = localStorage,\n beforeRestore = void 0,\n afterRestore = void 0,\n serializer = {\n serialize: JSON.stringify,\n deserialize: JSON.parse\n },\n key = store.$id,\n paths = null,\n debug = false\n } = o;\n return {\n storage,\n beforeRestore,\n afterRestore,\n serializer,\n key: ((_a = factoryOptions.key) != null ? _a : (k) => k)(typeof key == \"string\" ? key : key(store.$id)),\n paths,\n debug\n };\n } catch (e) {\n if (o.debug)\n console.error(\"[pinia-plugin-persistedstate]\", e);\n return null;\n }\n };\n}\nfunction hydrateStore(store, { storage, serializer, key, debug }) {\n try {\n const fromStorage = storage == null ? void 0 : storage.getItem(key);\n if (fromStorage)\n store.$patch(serializer == null ? void 0 : serializer.deserialize(fromStorage));\n } catch (e) {\n if (debug)\n console.error(\"[pinia-plugin-persistedstate]\", e);\n }\n}\nfunction persistState(state, { storage, serializer, key, paths, debug }) {\n try {\n const toStore = Array.isArray(paths) ? pick(state, paths) : state;\n storage.setItem(key, serializer.serialize(toStore));\n } catch (e) {\n if (debug)\n console.error(\"[pinia-plugin-persistedstate]\", e);\n }\n}\nfunction createPersistedState(factoryOptions = {}) {\n return (context) => {\n const { auto = false } = factoryOptions;\n const {\n options: { persist = auto },\n store,\n pinia\n } = context;\n if (!persist)\n return;\n if (!(store.$id in pinia.state.value)) {\n const original_store = pinia._s.get(store.$id.replace(\"__hot:\", \"\"));\n if (original_store)\n Promise.resolve().then(() => original_store.$persist());\n return;\n }\n const persistences = (Array.isArray(persist) ? persist.map((p) => normalizeOptions(p, factoryOptions)) : [normalizeOptions(persist, factoryOptions)]).map(parsePersistence(factoryOptions, store)).filter(Boolean);\n store.$persist = () => {\n persistences.forEach((persistence) => {\n persistState(store.$state, persistence);\n });\n };\n store.$hydrate = ({ runHooks = true } = {}) => {\n persistences.forEach((persistence) => {\n const { beforeRestore, afterRestore } = persistence;\n if (runHooks)\n beforeRestore == null ? void 0 : beforeRestore(context);\n hydrateStore(store, persistence);\n if (runHooks)\n afterRestore == null ? void 0 : afterRestore(context);\n });\n };\n persistences.forEach((persistence) => {\n const { beforeRestore, afterRestore } = persistence;\n beforeRestore == null ? void 0 : beforeRestore(context);\n hydrateStore(store, persistence);\n afterRestore == null ? void 0 : afterRestore(context);\n store.$subscribe(\n (_mutation, state) => {\n persistState(state, persistence);\n },\n {\n detached: true\n }\n );\n });\n };\n}\n\n// src/index.ts\nvar src_default = createPersistedState();\nexport {\n createPersistedState,\n src_default as default\n};\n","/*!\n * @intlify/shared v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * @intlify/message-resolver v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nif ((process.env.NODE_ENV !== 'production')) ;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes(\".\" /* DOT */)) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split(\".\" /* DOT */);\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\n\nexport { handleFlatJson, parse, resolveValue };\n","/*!\n * @intlify/shared v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * @intlify/runtime v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isNumber, isObject, isString, isFunction, isPlainObject, toDisplayString } from '@intlify/shared';\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n // TODO: need to design resolve message function?\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: (key, modifier) => {\r\n // TODO: should check `key`\r\n const msg = message(key)(ctx);\r\n return isString(modifier) ? _modifier(modifier)(msg) : msg;\r\n },\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nexport { DEFAULT_MESSAGE_DATA_TYPE, createMessageContext };\n","/*!\n * @intlify/message-compiler v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [0 /* EXPECTED_TOKEN */]: `Expected token: '{0}'`,\r\n [1 /* INVALID_TOKEN_IN_PLACEHOLDER */]: `Invalid token in placeholder: '{0}'`,\r\n [2 /* UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER */]: `Unterminated single quote in placeholder`,\r\n [3 /* UNKNOWN_ESCAPE_SEQUENCE */]: `Unknown escape sequence: \\\\{0}`,\r\n [4 /* INVALID_UNICODE_ESCAPE_SEQUENCE */]: `Invalid unicode escape sequence: {0}`,\r\n [5 /* UNBALANCED_CLOSING_BRACE */]: `Unbalanced closing brace`,\r\n [6 /* UNTERMINATED_CLOSING_BRACE */]: `Unterminated closing brace`,\r\n [7 /* EMPTY_PLACEHOLDER */]: `Empty placeholder`,\r\n [8 /* NOT_ALLOW_NEST_PLACEHOLDER */]: `Not allowed nest placeholder`,\r\n [9 /* INVALID_LINKED_FORMAT */]: `Invalid linked format`,\r\n // parser error messages\r\n [10 /* MUST_HAVE_MESSAGES_IN_PLURAL */]: `Plural must have messages`,\r\n [11 /* UNEXPECTED_EMPTY_LINKED_MODIFIER */]: `Unexpected empty linked modifier`,\r\n [12 /* UNEXPECTED_EMPTY_LINKED_KEY */]: `Unexpected empty linked key`,\r\n [13 /* UNEXPECTED_LEXICAL_ANALYSIS */]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(0 /* EXPECTED_TOKEN */, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(2 /* UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER */, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(3 /* UNKNOWN_ESCAPE_SEQUENCE */, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(4 /* INVALID_UNICODE_ESCAPE_SEQUENCE */, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(8 /* NOT_ALLOW_NEST_PLACEHOLDER */, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(7 /* EMPTY_PLACEHOLDER */, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(1 /* INVALID_TOKEN_IN_PLACEHOLDER */, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(9 /* INVALID_LINKED_FORMAT */, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(9 /* INVALID_LINKED_FORMAT */, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(5 /* UNBALANCED_CLOSING_BRACE */, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n if (ch === \"%\" /* Modulo */) {\r\n scnr.next();\r\n return getToken(context, 4 /* Modulo */, \"%\" /* Modulo */);\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '<27>';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, 11 /* UNEXPECTED_EMPTY_LINKED_MODIFIER */, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, 12 /* UNEXPECTED_EMPTY_LINKED_KEY */, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, 10 /* MUST_HAVE_MESSAGES_IN_PLURAL */, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * @intlify/devtools-if v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * @intlify/core-base v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, isString, isArray, isPlainObject, assign, isFunction, isBoolean, isRegExp, warn, isObject, escapeHtml, inBrowser, mark, measure, generateCodeFrame, generateFormatCacheKey, isNumber, isEmptyObject, isDate, getGlobalThis } from '@intlify/shared';\nimport { resolveValue } from '@intlify/message-resolver';\nexport * from '@intlify/message-resolver';\nimport { createMessageContext } from '@intlify/runtime';\nexport * from '@intlify/runtime';\nimport { defaultOnError, baseCompile, createCompileError } from '@intlify/message-compiler';\nexport { createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\n/** @internal */\r\nconst warnMessages = {\r\n [0 /* NOT_FOUND_KEY */]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [1 /* FALLBACK_TO_TRANSLATE */]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [2 /* CANNOT_FORMAT_NUMBER */]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [3 /* FALLBACK_TO_NUMBER_FORMAT */]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [4 /* CANNOT_FORMAT_DATE */]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [5 /* FALLBACK_TO_DATE_FORMAT */]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.1.9';\r\nconst NOT_REOSLVED = -1;\r\nconst MISSING_RESOLVE_VALUE = '';\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val) => (isString(val) ? val.toUpperCase() : val),\r\n lower: (val) => (isString(val) ? val.toLowerCase() : val),\r\n // prettier-ignore\r\n capitalize: (val) => (isString(val)\r\n ? `${val.charAt(0).toLocaleUpperCase()}${val.substr(1)}`\r\n : val)\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = /* #__PURE__*/ (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = /* #__PURE__*/ () => _additionalMeta;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : 'en-US';\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} };\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} };\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map();\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map();\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n onWarn,\r\n __datetimeFormatters,\r\n __numberFormatters,\r\n __meta\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(0 /* NOT_FOUND_KEY */, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction getLocaleChain(ctx, fallback, start) {\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(start);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback)\r\n ? fallback\r\n : isPlainObject(fallback)\r\n ? fallback['default']\r\n ? fallback['default']\r\n : null\r\n : fallback;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(start, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n getLocaleChain(ctx, fallback, locale);\r\n}\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [14 /* INVALID_ARGUMENT */]: 'Invalid arguments',\r\n [15 /* INVALID_DATE_ARGUMENT */]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [16 /* INVALID_ISO_DATE_ARGUMENT */]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : key\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? key\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [format, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation ? postTranslation(messaged) : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn } = context;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(1 /* FALLBACK_TO_TRANSLATE */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context\r\n .__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules } = context;\r\n const resolveMessage = (key) => {\r\n const val = resolveValue(message, key);\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(4 /* CANNOT_FORMAT_DATE */));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(5 /* FALLBACK_TO_DATE_FORMAT */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type);\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n let options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n if (!/\\d{4}-\\d{2}-\\d{2}(T.*)?/.test(arg1)) {\r\n throw createCoreError(16 /* INVALID_ISO_DATE_ARGUMENT */);\r\n }\r\n value = new Date(arg1);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(16 /* INVALID_ISO_DATE_ARGUMENT */);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(15 /* INVALID_DATE_ARGUMENT */);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n options = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(2 /* CANNOT_FORMAT_NUMBER */));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(3 /* FALLBACK_TO_NUMBER_FORMAT */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type);\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n let options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n options = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { MISSING_RESOLVE_VALUE, NOT_REOSLVED, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, datetime, getAdditionalMeta, getDevToolsHook, getLocaleChain, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerMessageCompiler, setAdditionalMeta, setDevToolsHook, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * @intlify/vue-devtools v9.1.9\n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst VueDevToolsLabels = {\r\n [\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */]: 'Vue I18n devtools',\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'I18n Resources',\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 'Vue I18n'\r\n};\r\nconst VueDevToolsPlaceholders = {\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'Search for scopes ...'\r\n};\r\nconst VueDevToolsTimelineColors = {\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 0xffcd19\r\n};\n\nexport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors };\n","/*!\n * vue-i18n v9.1.9\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, hasOwn, isObject, isBoolean, isString, isRegExp, isFunction, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { createCompileError, handleFlatJson, createCoreContext, updateFallbackLocale, resolveValue, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, getLocaleChain, setDevToolsHook } from '@intlify/core-base';\nimport { ref, getCurrentInstance, computed, watch, createVNode, Text, h, Fragment, inject, onMounted, onUnmounted, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.1.9';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __VUE_I18N_PROD_DEVTOOLS__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_PROD_DEVTOOLS__ = false;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && typeof true === 'boolean') {\r\n needWarn = true;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nconst warnMessages = {\r\n [6 /* FALLBACK_TO_ROOT */]: `Fall back to {type} '{key}' with root locale.`,\r\n [7 /* NOT_SUPPORTED_PRESERVE */]: `Not supported 'preserve'.`,\r\n [8 /* NOT_SUPPORTED_FORMATTER */]: `Not supported 'formatter'.`,\r\n [9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */]: `Not supported 'preserveDirectiveContent'.`,\r\n [10 /* NOT_SUPPORTED_GET_CHOICE_INDEX */]: `Not supported 'getChoiceIndex'.`,\r\n [11 /* COMPONENT_NAME_LEGACY_COMPATIBLE */]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [12 /* NOT_FOUND_PARENT_SCOPE */]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [14 /* UNEXPECTED_RETURN_TYPE */]: 'Unexpected return type in composer',\r\n [15 /* INVALID_ARGUMENT */]: 'Invalid argument',\r\n [16 /* MUST_BE_CALL_SETUP_TOP */]: 'Must be called at the top of a `setup` function',\r\n [17 /* NOT_INSLALLED */]: 'Need to install with `app.use` function',\r\n [22 /* UNEXPECTED_ERROR */]: 'Unexpected error',\r\n [18 /* NOT_AVAILABLE_IN_LEGACY_MODE */]: 'Not available in legacy mode',\r\n [19 /* REQUIRED_VALUE */]: `Required in value: {0}`,\r\n [20 /* INVALID_VALUE */]: `Invalid value`,\r\n [21 /* CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN */]: `Cannot setup vue-devtools plugin`\r\n};\n\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nconst TransrateVNodeSymbol = makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = makeSymbol('__numberParts');\r\nconst EnableEmitter = makeSymbol('__enableEmitter');\r\nconst DisableEmitter = makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = makeSymbol('__injectWithOption');\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(({ locale, resource }) => {\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (options.flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(20 /* INVALID_VALUE */);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = /* #__PURE__*/ () => {\r\n const instance = getCurrentInstance();\r\n return instance && instance.type[DEVTOOLS_META] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ? { [DEVTOOLS_META]: instance.type[DEVTOOLS_META] } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\nfunction createComposer(options = {}) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : 'en-US');\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n let _warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n function getCoreContext() {\r\n return createCoreContext({\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n messageCompiler: function compileToFunction(source) {\r\n return (ctx) => {\r\n return ctx.normalize([source]);\r\n };\r\n }\r\n ,\r\n datetimeFormats: _datetimeFormats.value,\r\n numberFormats: _numberFormats.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n __datetimeFormatters: isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined,\r\n __numberFormatters: isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined,\r\n __v_emitter: isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined,\r\n __meta: { framework: 'vue' }\r\n });\r\n }\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !!arg.resolvedMessage === false;\r\n }\r\n function wrapWithDeps(fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(6 /* FALLBACK_TO_ROOT */, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(14 /* UNEXPECTED_RETURN_TYPE */);\r\n }\r\n }\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => translate(context, ...args), () => parseTranslateArgs(...args), 'translate', root => root.t(...args), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => datetime(context, ...args), () => parseDateTimeArgs(...args), 'datetime format', root => root.d(...args), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => number(context, ...args), () => parseNumberArgs(...args), 'number format', root => root.n(...args), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) ? createVNode(Text, null, val, 0) : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = translate(_context, ...args);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createVNode(Text, null, key, 0)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => number(context, ...args), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => datetime(context, ...args), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return resolveValue(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = getLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = resolveValue(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n rt,\r\n d,\r\n n,\r\n te,\r\n tm,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [TransrateVNodeSymbol]: transrateVNode,\r\n [NumberPartsSymbol]: numberParts,\r\n [DatetimePartsSymbol]: datetimeParts,\r\n [SetPluralRulesSymbol]: setPluralRules,\r\n [InejctWithOption]: options.__injectWithOption // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\n\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : 'en-US';\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\nfunction createVueI18n(options = {}) {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n return composer.t(key, list || named || {}, options);\r\n },\r\n rt(...args) {\r\n return composer.rt(...args);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n return composer.t(key, list || named || {}, options);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return composer.d(...args);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return composer.n(...args);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(10 /* NOT_SUPPORTED_GET_CHOICE_INDEX */));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n}\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n validator: (val) => val === 'parent' || val === 'global',\r\n default: 'parent'\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n * <div id=\"app\">\r\n * <!-- ... -->\r\n * <i18n path=\"term\" tag=\"label\" for=\"tos\">\r\n * <a :href=\"url\" target=\"_blank\">{{ $t('tos') }}</a>\r\n * </i18n>\r\n * <!-- ... -->\r\n * </div>\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n return () => {\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n // prettier-ignore\r\n return isString(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : isObject(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : h(Fragment, assignedAttrs, children);\r\n };\r\n }\r\n};\r\nfunction getInterpolateArg({ slots }, keys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot only\r\n return slots.default ? slots.default() : [];\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\n\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n return slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n // prettier-ignore\r\n return isString(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : isObject(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : h(Fragment, assignedAttrs, children);\r\n };\r\n}\n\nconst NUMBER_FORMAT_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'unit',\r\n 'unitDisplay',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'useGrouping',\r\n 'numberingSystem',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'notation',\r\n 'formatMatcher'\r\n];\r\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\nconst DATETIME_FORMAT_KEYS = [\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'fractionalSecondDigits',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'localeMatcher',\r\n 'timeZone',\r\n 'hour12',\r\n 'hourCycle',\r\n 'formatMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName'\r\n];\r\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const bind = (el, { instance, value, modifiers }) => {\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(7 /* NOT_SUPPORTED_PRESERVE */));\r\n }\r\n const parsedValue = parseValue(value);\r\n el.textContent = composer.t(...makeParams(parsedValue));\r\n };\r\n return {\r\n beforeMount: bind,\r\n beforeUpdate: bind\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(19 /* REQUIRED_VALUE */, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(20 /* INVALID_VALUE */);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(11 /* COMPONENT_NAME_LEGACY_COMPATIBLE */, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n app.directive('t', vTDirective(i18n));\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el.__VUE_I18N__ && instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n inspectScope(payload, i18n);\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const label = instance.type.name || instance.type.displayName || instance.type.__file;\r\n const tag = {\r\n label: `i18n (${label} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '&': '&'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `<span>ƒ</span> ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n const label = keyInstance.type.name ||\r\n keyInstance.type.displayName ||\r\n keyInstance.type.__file;\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${label} Scope`\r\n });\r\n }\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n// supports compatibility for legacy vue-i18n APIs\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) && !false) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter = createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n beforeUnmount() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) && !false) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Vue I18n factory\r\n *\r\n * @param options - An options, see the {@link I18nOptions}\r\n *\r\n * @returns {@link I18n} instance\r\n *\r\n * @remarks\r\n * If you use Legacy API mode, you need toto specify {@link VueI18nOptions} and `legacy: true` option.\r\n *\r\n * If you use composition API mode, you need to specify {@link ComposerOptions}.\r\n *\r\n * @VueI18nSee [Getting Started](../guide/)\r\n * @VueI18nSee [Composition API](../guide/advanced/composition)\r\n *\r\n * @example\r\n * case: for Legacy API\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * // call with I18n option\r\n * const i18n = createI18n({\r\n * locale: 'ja',\r\n * messages: {\r\n * en: { ... },\r\n * ja: { ... }\r\n * }\r\n * })\r\n *\r\n * const App = {\r\n * // ...\r\n * }\r\n *\r\n * const app = createApp(App)\r\n *\r\n * // install!\r\n * app.use(i18n)\r\n * app.mount('#app')\r\n * ```\r\n *\r\n * @example\r\n * case: for composition API\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n, useI18n } from 'vue-i18n'\r\n *\r\n * // call with I18n option\r\n * const i18n = createI18n({\r\n * legacy: false, // you must specify 'legacy: false' option\r\n * locale: 'ja',\r\n * messages: {\r\n * en: { ... },\r\n * ja: { ... }\r\n * }\r\n * })\r\n *\r\n * const App = {\r\n * setup() {\r\n * // ...\r\n * const { t } = useI18n({ ... })\r\n * return { ... , t }\r\n * }\r\n * }\r\n *\r\n * const app = createApp(App)\r\n *\r\n * // install!\r\n * app.use(i18n)\r\n * app.mount('#app')\r\n * ```\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction createI18n(options = {}) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n const __globalInjection = !!options.globalInjection;\r\n const __instances = new Map();\r\n // prettier-ignore\r\n const __global = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? createVueI18n(options)\r\n : createComposer(options);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n // prettier-ignore\r\n return __VUE_I18N_LEGACY_API__\r\n ? __legacyMode\r\n ? 'legacy'\r\n : 'composition'\r\n : 'composition';\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) && !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(21 /* CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN */);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance(component) {\r\n return __instances.get(component) || null;\r\n },\r\n // @internal\r\n __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n },\r\n // @internal\r\n __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n };\r\n return i18n;\r\n}\r\n/**\r\n * Use Composition API for Vue I18n\r\n *\r\n * @param options - An options, see {@link UseI18nOptions}\r\n *\r\n * @returns {@link Composer} instance\r\n *\r\n * @remarks\r\n * This function is mainly used by `setup`.\r\n *\r\n * If options are specified, Composer instance is created for each component and you can be localized on the component.\r\n *\r\n * If options are not specified, you can be localized using the global Composer.\r\n *\r\n * @example\r\n * case: Component resource base localization\r\n * ```html\r\n * <template>\r\n * <form>\r\n * <label>{{ t('language') }}</label>\r\n * <select v-model=\"locale\">\r\n * <option value=\"en\">en</option>\r\n * <option value=\"ja\">ja</option>\r\n * </select>\r\n * </form>\r\n * <p>message: {{ t('hello') }}</p>\r\n * </template>\r\n *\r\n * <script>\r\n * import { useI18n } from 'vue-i18n'\r\n *\r\n * export default {\r\n * setup() {\r\n * const { t, locale } = useI18n({\r\n * locale: 'ja',\r\n * messages: {\r\n * en: { ... },\r\n * ja: { ... }\r\n * }\r\n * })\r\n * // Something to do ...\r\n *\r\n * return { ..., t, locale }\r\n * }\r\n * }\r\n * </script>\r\n * ```\r\n *\r\n * @VueI18nComposition\r\n */\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(16 /* MUST_BE_CALL_SETUP_TOP */);\r\n }\r\n if (!instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(17 /* NOT_INSLALLED */);\r\n }\r\n const i18n = inject(instance.appContext.app.__VUE_I18N_SYMBOL__);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n // prettier-ignore\r\n const scope = isEmptyObject(options)\r\n ? ('__i18n' in instance.type)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n if (scope === 'global') {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in instance.type) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: instance.type.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(12 /* NOT_FOUND_PARENT_SCOPE */));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n // scope 'local' case\r\n if (i18n.mode === 'legacy') {\r\n throw createI18nError(18 /* NOT_AVAILABLE_IN_LEGACY_MODE */);\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const type = instance.type;\r\n const composerOptions = assign({}, options);\r\n if (type.__i18n) {\r\n composerOptions.__i18n = type.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (useComponent && composer && !composer[InejctWithOption]) {\r\n composer = null;\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_I18N_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'];\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, NumberFormat, Translation, VERSION, createI18n, useI18n, vTDirective };\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (isArray(obj)) {\n pushToArray(values, stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n pushToArray(values, stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && typeof options.encoder !== 'undefined' && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","export class AbortablePromise<T> {\n promise: Promise<T>\n private _reject: ((res?: any) => void) | null = null\n\n constructor(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {\n this.promise = new Promise<T>((resolve, reject) => {\n executor(resolve, reject)\n this._reject = reject // 保存reject方法的引用,以便在abort时调用\n })\n }\n // 提供abort方法来中止Promise\n abort(error?: any) {\n if (this._reject) {\n this._reject(error) // 调用reject方法来中止Promise\n }\n }\n\n then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null\n ): Promise<TResult1 | TResult2> {\n return this.promise.then(onfulfilled, onrejected)\n }\n\n catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult> {\n return this.promise.catch(onrejected)\n }\n}\n","import { AbortablePromise } from './AbortablePromise'\n\n/**\n * 生成uuid\n * @returns string\n */\nexport function uuid() {\n return s4() + s4() + s4() + s4() + s4() + s4() + s4() + s4()\n}\n\nfunction s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1)\n}\n\n/**\n * @description 对num自动填充px\n * @param {Number} num\n * @return {string} num+px\n */\nexport function addUnit(num: number | string) {\n return Number.isNaN(Number(num)) ? num : `${num}px`\n}\n\n/**\n * @description 判断target是否对象\n * @param value\n * @return {boolean}\n */\nexport function isObj(value: any): value is object {\n return Object.prototype.toString.call(value) === '[object Object]' || typeof value === 'object'\n}\n\n/**\n * 获取目标原始类型\n * @param target 任意类型\n * @returns {string} type 数据类型\n */\nexport function getType(target: unknown): string {\n // 得到原生类型\n const typeStr = Object.prototype.toString.call(target)\n // 拿到类型值\n const match = typeStr.match(/\\[object (\\w+)\\]/)\n const type = match && match.length ? match[1].toLowerCase() : ''\n // 类型值转小写并返回\n return type\n}\n\n/**\n * @description 默认的外部格式化函数 - picker 组件\n * @param items - 要格式化的数据项数组或单个数据项\n * @param kv - 配置对象,包含 labelKey 作为键值\n * @returns 格式化后的字符串\n */\nexport const defaultDisplayFormat = function (items: any[] | Record<string, any>, kv?: { labelKey?: string }): string {\n const labelKey: string = kv?.labelKey || 'value'\n\n if (Array.isArray(items)) {\n return items.map((item) => item[labelKey]).join(', ')\n } else {\n return items[labelKey]\n }\n}\n\n/**\n * @description 默认函数占位符 - pickerView组件\n * @param value 值\n * @return value\n */\nexport const defaultFunction = <T>(value: T): T => value\n\n/**\n * @description 检查值是否不为空\n * @param value 值\n * @return {Boolean} 是否不为空\n */\nexport const isDef = <T>(value: T): value is NonNullable<T> => value !== undefined && value !== null\n\n/**\n * @description 防止数字小于零\n * @param {number} num\n * @param {string} label 标签\n */\nexport const checkNumRange = (num: number, label: string = 'value'): void => {\n if (num < 0) {\n throw new Error(`${label} shouldn't be less than zero`)\n }\n}\n\n/**\n * @description 防止 pixel 无意义\n * @param {number} num\n * @param {string} label 标签\n */\nexport const checkPixelRange = (num: number, label: string = 'value'): void => {\n if (num <= 0) {\n throw new Error(`${label} should be greater than zero`)\n }\n}\n\n/**\n * 将 RGB 值转换为十六进制颜色代码。\n * @param {number} r - 红色分量 (0-255)。\n * @param {number} g - 绿色分量 (0-255)。\n * @param {number} b - 蓝色分量 (0-255)。\n * @returns {string} 十六进制颜色代码 (#RRGGBB)。\n */\nexport function rgbToHex(r: number, g: number, b: number): string {\n // 将 RGB 分量组合成一个十六进制数。\n const hex = ((r << 16) | (g << 8) | b).toString(16)\n\n // 使用零填充十六进制数,确保它有 6 位数字(RGB 范围)。\n const paddedHex = '#' + '0'.repeat(Math.max(0, 6 - hex.length)) + hex\n\n return paddedHex\n}\n\n/**\n * 将十六进制颜色代码转换为 RGB 颜色数组。\n * @param hex 十六进制颜色代码(例如:'#RRGGBB')\n * @returns 包含红、绿、蓝三个颜色分量的数组\n */\nfunction hexToRgb(hex: string): number[] {\n const rgb: number[] = []\n\n // 从第一个字符开始,每两个字符代表一个颜色分量\n for (let i = 1; i < 7; i += 2) {\n // 将两个字符的十六进制转换为十进制,并添加到 rgb 数组中\n rgb.push(parseInt('0x' + hex.slice(i, i + 2), 16))\n }\n\n return rgb\n}\n\n/**\n * 计算渐变色的中间变量数组。\n * @param {string} startColor 开始颜色\n * @param {string} endColor 结束颜色\n * @param {number} step 获取渲染位置,默认为中间位置\n * @returns {string[]} 渐变色中间颜色变量数组\n */\nexport const gradient = (startColor: string, endColor: string, step: number = 2): string[] => {\n // 将hex转换为rgb\n const sColor: number[] = hexToRgb(startColor)\n const eColor: number[] = hexToRgb(endColor)\n\n // 计算R\\G\\B每一步的差值\n const rStep: number = (eColor[0] - sColor[0]) / step\n const gStep: number = (eColor[1] - sColor[1]) / step\n const bStep: number = (eColor[2] - sColor[2]) / step\n\n const gradientColorArr: string[] = []\n for (let i = 0; i < step; i++) {\n // 计算每一步的hex值\n gradientColorArr.push(\n rgbToHex(parseInt(String(rStep * i + sColor[0])), parseInt(String(gStep * i + sColor[1])), parseInt(String(bStep * i + sColor[2])))\n )\n }\n return gradientColorArr\n}\n\n/**\n * 确保数值不超出指定范围。\n * @param {number} num 要限制范围的数值\n * @param {number} min 最小范围\n * @param {number} max 最大范围\n * @returns {number} 在指定范围内的数值\n */\nexport const range = (num: number, min: number, max: number): number => {\n // 使用 Math.min 和 Math.max 保证 num 不会超出指定范围\n return Math.min(Math.max(num, min), max)\n}\n\n/**\n * 比较两个值是否相等。\n * @param {any} value1 第一个值\n * @param {any} value2 第二个值\n * @returns {boolean} 如果值相等则为 true,否则为 false\n */\nexport const isEqual = (value1: any, value2: any): boolean => {\n // 使用严格相等运算符比较值是否相等\n if (value1 === value2) {\n return true\n }\n\n // 如果其中一个值不是数组,则认为值不相等\n if (!Array.isArray(value1) || !Array.isArray(value2)) {\n return false\n }\n\n // 如果数组长度不相等,则认为值不相等\n if (value1.length !== value2.length) {\n return false\n }\n\n // 逐个比较数组元素是否相等\n for (let i = 0; i < value1.length; ++i) {\n if (value1[i] !== value2[i]) {\n return false\n }\n }\n\n // 所有比较均通过,则认为值相等\n return true\n}\n\n/**\n * 在数字前补零,使其达到指定长度。\n * @param {number | string} number 要补零的数字\n * @param {number} length 目标长度,默认为 2\n * @returns {string} 补零后的结果\n */\nexport const padZero = (number: number | string, length: number = 2): string => {\n // 将输入转换为字符串\n let numStr: string = number.toString()\n\n // 在数字前补零,直到达到指定长度\n while (numStr.length < length) {\n numStr = '0' + numStr\n }\n\n return numStr\n}\n\n/** @description 全局变量id */\nexport const context = {\n id: 1000\n}\n\nexport type RectResultType<T extends boolean> = T extends true ? UniApp.NodeInfo[] : UniApp.NodeInfo\n\n/**\n * 获取节点信息\n * @param selector 节点选择器 #id,.class\n * @param all 是否返回所有 selector 对应的节点\n * @param scope 作用域(支付宝小程序无效)\n * @returns 节点信息或节点信息数组\n */\nexport function getRect<T extends boolean>(selector: string, all: T, scope?: any): Promise<RectResultType<T>> {\n return new Promise<RectResultType<T>>((resolve, reject) => {\n let query: UniNamespace.SelectorQuery | null = null\n if (scope) {\n query = uni.createSelectorQuery().in(scope)\n } else {\n query = uni.createSelectorQuery()\n }\n query[all ? 'selectAll' : 'select'](selector)\n .boundingClientRect((rect) => {\n if (all && isArray(rect) && rect.length > 0) {\n resolve(rect as RectResultType<T>)\n } else if (!all && rect) {\n resolve(rect as RectResultType<T>)\n } else {\n reject(new Error('No nodes found'))\n }\n })\n .exec()\n })\n}\n\n/**\n * 将驼峰命名转换为短横线命名。\n * @param {string} word 待转换的词条\n * @returns {string} 转换后的结果\n */\nexport function kebabCase(word: string): string {\n // 使用正则表达式匹配所有大写字母,并在前面加上短横线,然后转换为小写\n const newWord: string = word\n .replace(/[A-Z]/g, function (match) {\n return '-' + match\n })\n .toLowerCase()\n\n return newWord\n}\n\n/**\n * 将短横线链接转换为驼峰命名\n * @param word 需要转换的短横线链接\n * @returns 转换后的驼峰命名字符串\n */\nexport function camelCase(word: string): string {\n return word.replace(/-(\\w)/g, (_, c) => c.toUpperCase())\n}\n\n/**\n * 检查给定值是否为数组。\n * @param {any} value 要检查的值\n * @returns {boolean} 如果是数组则返回 true,否则返回 false\n */\nexport function isArray(value: any): value is Array<any> {\n // 如果 Array.isArray 函数可用,直接使用该函数检查\n if (typeof Array.isArray === 'function') {\n return Array.isArray(value)\n }\n // 否则,使用对象原型的 toString 方法进行检查\n return Object.prototype.toString.call(value) === '[object Array]'\n}\n\n/**\n * 检查给定值是否为函数。\n * @param {any} value 要检查的值\n * @returns {boolean} 如果是函数则返回 true,否则返回 false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction<T extends Function>(value: any): value is T {\n return getType(value) === 'function'\n}\n\n/**\n * 检查给定值是否为字符串。\n * @param {unknown} value 要检查的值\n * @returns {value is string} 如果是字符串则返回 true,否则返回 false\n */\nexport function isString(value: unknown): value is string {\n return getType(value) === 'string'\n}\n\n/**\n * 否是数值\n * @param {*} value\n */\nexport function isNumber(value: any): value is number {\n return getType(value) === 'number'\n}\n\n/**\n * 检查给定值是否为 Promise 对象。\n * @param {unknown} value 要检查的值\n * @returns {value is Promise<any>} 如果是 Promise 对象则返回 true,否则返回 false\n */\nexport function isPromise(value: unknown): value is Promise<any> {\n // 先将 value 断言为 object 类型\n if (isObj(value) && isDef(value)) {\n // 然后进一步检查 value 是否具有 then 和 catch 方法,并且它们是函数类型\n return isFunction((value as Promise<any>).then) && isFunction((value as Promise<any>).catch)\n }\n return false // 如果 value 不是对象类型,则肯定不是 Promise\n}\n\n/**\n * 检查给定的值是否为布尔类型\n * @param value 要检查的值\n * @returns 如果值为布尔类型,则返回true,否则返回false\n */\nexport function isBoolean(value: any): value is boolean {\n return typeof value === 'boolean'\n}\n\n/**\n * 检查给定的值是否为奇数\n * @param value 要检查的值\n * @returns\n */\nexport function isOdd(value: number): boolean {\n if (typeof value !== 'number') {\n throw new Error('输入必须为数字')\n }\n\n // 使用取模运算符来判断是否为奇数\n // 如果 number 除以 2 的余数为 1,就是奇数\n // 否则是偶数\n return value % 2 === 1\n}\n\n/**\n * 是否为base64图片\n * @param {string} url\n * @return\n */\nexport function isBase64Image(url: string) {\n // 使用正则表达式检查URL是否以\"data:image\"开头,这是Base64图片的常见前缀\n return /^data:image\\/(png|jpg|jpeg|gif|bmp);base64,/.test(url)\n}\n\n/**\n * 将外部传入的样式格式化为可读的 CSS 样式。\n * @param {object | object[]} styles 外部传入的样式对象或数组\n * @returns {string} 格式化后的 CSS 样式字符串\n */\nexport function objToStyle(styles: Record<string, any> | Record<string, any>[]): string {\n // 如果 styles 是数组类型\n if (isArray(styles)) {\n // 使用过滤函数去除空值和 null 值的元素\n // 对每个非空元素递归调用 objToStyle,然后通过分号连接\n return styles\n .filter(function (item) {\n return item != null && item !== ''\n })\n .map(function (item) {\n return objToStyle(item)\n })\n .join(';')\n }\n\n if (isString(styles)) {\n return styles\n }\n\n // 如果 styles 是对象类型\n if (isObj(styles)) {\n // 使用 Object.keys 获取所有属性名\n // 使用过滤函数去除值为 null 或空字符串的属性\n // 对每个属性名和属性值进行格式化,通过分号连接\n return Object.keys(styles)\n .filter(function (key) {\n return styles[key] != null && styles[key] !== ''\n })\n .map(function (key) {\n // 使用 kebabCase 函数将属性名转换为 kebab-case 格式\n // 将属性名和属性值格式化为 CSS 样式的键值对\n return [kebabCase(key), styles[key]].join(':')\n })\n .join(';')\n }\n // 如果 styles 不是对象也不是数组,则直接返回\n return ''\n}\n\nexport const requestAnimationFrame = (cb = () => {}) => {\n return new AbortablePromise((resolve) => {\n const timer = setInterval(() => {\n clearInterval(timer)\n resolve(true)\n cb()\n }, 1000 / 30)\n })\n}\n\n/**\n * 深拷贝函数,用于将对象进行完整复制。\n * @param obj 要深拷贝的对象\n * @param cache 用于缓存已复制的对象,防止循环引用\n * @returns 深拷贝后的对象副本\n */\nexport function deepClone<T>(obj: T, cache: Map<any, any> = new Map()): T {\n // 如果对象为 null 或者不是对象类型,则直接返回该对象\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // 处理特殊对象类型:日期、正则表达式、错误对象\n if (isDate(obj)) {\n return new Date(obj.getTime()) as any\n }\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as any\n }\n if (obj instanceof Error) {\n const errorCopy = new Error(obj.message) as any\n errorCopy.stack = obj.stack\n return errorCopy\n }\n\n // 检查缓存中是否已存在该对象的复制\n if (cache.has(obj)) {\n return cache.get(obj)\n }\n\n // 根据原始对象的类型创建对应的空对象或数组\n const copy: any = Array.isArray(obj) ? [] : {}\n\n // 将当前对象添加到缓存中\n cache.set(obj, copy)\n\n // 递归地深拷贝对象的每个属性\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n copy[key] = deepClone(obj[key], cache)\n }\n }\n\n return copy as T\n}\n\n/**\n * 深度合并两个对象。\n * @param target 目标对象,将合并的结果存放在此对象中\n * @param source 源对象,要合并到目标对象的对象\n * @returns 合并后的目标对象\n */\nexport function deepMerge<T extends Record<string, any>>(target: T, source: Record<string, any>): T {\n // 深拷贝目标对象,避免修改原始对象\n target = deepClone(target)\n\n // 检查目标和源是否都是对象类型\n if (typeof target !== 'object' || typeof source !== 'object') {\n throw new Error('Both target and source must be objects.')\n }\n\n // 遍历源对象的属性\n for (const prop in source) {\n // eslint-disable-next-line no-prototype-builtins\n if (!source.hasOwnProperty(prop))\n continue\n // 使用类型断言,告诉 TypeScript 这是有效的属性\n ;(target as Record<string, any>)[prop] = source[prop]\n }\n\n return target\n}\n\n/**\n * 深度合并两个对象。\n * @param target\n * @param source\n * @returns\n */\nexport function deepAssign(target: Record<string, any>, source: Record<string, any>): Record<string, any> {\n Object.keys(source).forEach((key) => {\n const targetValue = target[key]\n const newObjValue = source[key]\n if (isObj(targetValue) && isObj(newObjValue)) {\n deepAssign(targetValue, newObjValue)\n } else {\n target[key] = newObjValue\n }\n })\n return target\n}\n\n/**\n * 构建带参数的URL\n * @param baseUrl 基础URL\n * @param params 参数对象,键值对表示要添加到URL的参数\n * @returns 返回带有参数的URL\n */\nexport function buildUrlWithParams(baseUrl: string, params: Record<string, string>) {\n // 将参数对象转换为查询字符串\n const queryString = Object.entries(params)\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&')\n\n // 检查基础URL是否已包含查询字符串,并选择适当的分隔符\n const separator = baseUrl.includes('?') ? '&' : '?'\n\n // 返回带有参数的URL\n return `${baseUrl}${separator}${queryString}`\n}\n\ntype DebounceOptions = {\n leading?: boolean // 是否在延迟时间开始时调用函数\n trailing?: boolean // 是否在延迟时间结束时调用函数\n}\n\nexport function debounce<T extends (...args: any[]) => any>(func: T, wait: number, options: DebounceOptions = {}): T {\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n let lastArgs: any[] | undefined\n let lastThis: any\n let result: ReturnType<T> | undefined\n const leading = isDef(options.leading) ? options.leading : false\n const trailing = isDef(options.trailing) ? options.trailing : true\n\n function invokeFunc() {\n if (lastArgs !== undefined) {\n result = func.apply(lastThis, lastArgs)\n lastArgs = undefined\n }\n }\n\n function startTimer() {\n timeoutId = setTimeout(() => {\n timeoutId = null\n if (trailing) {\n invokeFunc()\n }\n }, wait)\n }\n\n function cancelTimer() {\n if (timeoutId !== null) {\n clearTimeout(timeoutId)\n timeoutId = null\n }\n }\n\n function debounced(this: any, ...args: Parameters<T>): ReturnType<T> | undefined {\n lastArgs = args\n lastThis = this\n\n if (timeoutId === null) {\n if (leading) {\n invokeFunc()\n }\n startTimer()\n } else if (trailing) {\n cancelTimer()\n startTimer()\n }\n\n return result\n }\n\n return debounced as T\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function throttle(func: Function, wait: number): Function {\n let timeout: ReturnType<typeof setTimeout> | null = null\n let previous: number = 0\n\n const throttled = function (this: any, ...args: any[]) {\n const now = Date.now()\n const remaining = wait - (now - previous)\n\n if (remaining <= 0) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n previous = now\n func.apply(this, args)\n } else if (!timeout) {\n timeout = setTimeout(() => {\n previous = Date.now()\n timeout = null\n func.apply(this, args)\n }, remaining)\n }\n }\n\n return throttled\n}\n\n/**\n * 根据属性路径获取对象中的属性值\n * @param obj 目标对象\n * @param path 属性路径,可以是字符串或字符串数组\n * @returns 属性值,如果属性不存在或中间的属性为 null 或 undefined,则返回 undefined\n */\nexport const getPropByPath = (obj: any, path: string): any => {\n const keys: string[] = path.split('.')\n\n try {\n return keys.reduce((acc: any, key: string) => (acc !== undefined && acc !== null ? acc[key] : undefined), obj)\n } catch (error) {\n return undefined\n }\n}\n\n/**\n * 检查一个值是否为Date类型\n * @param val 要检查的值\n * @returns 如果值是Date类型,则返回true,否则返回false\n */\nexport const isDate = (val: unknown): val is Date => Object.prototype.toString.call(val) === '[object Date]' && !Number.isNaN((val as Date).getTime())\n\n/**\n * 判断环境是否是H5\n */\nexport const isH5 = process.env.UNI_PLATFORM === 'h5'\n","import type { PropType } from 'vue'\n\nexport const unknownProp = null as unknown as PropType<unknown>\n\nexport const numericProp = [Number, String]\n\nexport const truthProp = {\n type: Boolean,\n default: true as const\n}\n\nexport const makeRequiredProp = <T>(type: T) => ({\n type,\n required: true as const\n})\n\nexport const makeArrayProp = <T>() => ({\n type: Array as PropType<T[]>,\n default: () => []\n})\n\nexport const makeBooleanProp = <T>(defaultVal: T) => ({\n type: Boolean,\n default: defaultVal\n})\n\nexport const makeNumberProp = <T>(defaultVal: T) => ({\n type: Number,\n default: defaultVal\n})\n\nexport const makeNumericProp = <T>(defaultVal: T) => ({\n type: numericProp,\n default: defaultVal\n})\n\nexport const makeStringProp = <T>(defaultVal: T) => ({\n type: String as unknown as PropType<T>,\n default: defaultVal\n})\n\nexport const baseProps = {\n /**\n * 自定义根节点样式\n */\n customStyle: makeStringProp(''),\n /**\n * 自定义根节点样式类\n */\n customClass: makeStringProp('')\n}\n","import { baseProps, makeRequiredProp, makeStringProp } from '../common/props'\n\nexport const iconProps = {\n ...baseProps,\n /**\n * 使用的图标名字,可以使用链接图片\n */\n name: makeRequiredProp(String),\n /**\n * 图标的颜色\n */\n color: String,\n /**\n * 图标的字体大小\n */\n size: String,\n /**\n * 类名前缀,用于使用自定义图标\n */\n classPrefix: makeStringProp('wd-icon')\n}\n","/*\n * @Author: weisheng\n * @Date: 2024-03-15 13:49:00\n * @LastEditTime: 2024-04-07 13:32:22\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-status-tip\\types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\nimport type { ImageMode } from '../wd-img/types'\n\nexport type ImageSize = {\n /**\n * 宽度\n */\n width: number | string\n /**\n * 高度\n */\n height: number | string\n}\n\nexport const statusTipProps = {\n ...baseProps,\n\n /**\n * 缺省图片类型,支持传入图片 URL。\n * 类型: string\n * 可选值: search, network, content, collect, comment, halo, message\n * 默认值: network\n */\n image: makeStringProp('network'),\n\n /**\n * 图片大小,默认单位为 `px`。\n * 类型: string 或 number 或 ImageSize\n * 默认值: 空字符串\n */\n imageSize: {\n type: [String, Number, Object] as PropType<string | number | ImageSize>,\n default: ''\n },\n /**\n * 提示文案。\n * 类型: string\n * 默认值: 空字符串\n */\n tip: makeStringProp(''),\n /**\n * 图片裁剪、缩放的模式\n * 类型:string\n * 默认值:'aspectFill'\n */\n imageMode: makeStringProp<ImageMode>('aspectFill')\n}\n\nexport type StatusTipProps = ExtractPropTypes<typeof statusTipProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-18 11:22:03\n * @LastEditTime: 2024-03-18 15:29:43\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-popup\\types.ts\n * 记得注释\n */\nimport { baseProps, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\n\nexport type PopupType = 'center' | 'top' | 'right' | 'bottom' | 'left'\n\nexport const popupProps = {\n ...baseProps,\n transition: String,\n /**\n * 关闭按钮\n */\n closable: makeBooleanProp(false),\n /**\n * 弹出框的位置\n */\n position: makeStringProp<PopupType>('center'),\n /**\n * 点击遮罩是否关闭\n */\n closeOnClickModal: makeBooleanProp(true),\n /**\n * 动画持续时间\n */\n duration: {\n type: [Number, Boolean],\n default: 300\n },\n /**\n * 是否显示遮罩\n */\n modal: makeBooleanProp(true),\n /**\n * 设置层级\n */\n zIndex: makeNumberProp(10),\n /**\n * 是否当关闭时将弹出层隐藏(display: none)\n */\n hideWhenClose: makeBooleanProp(true),\n /**\n * 遮罩样式\n */\n modalStyle: makeStringProp(''),\n /**\n * 弹出面板是否设置底部安全距离(iphone X 类型的机型)\n */\n safeAreaInsetBottom: makeBooleanProp(false),\n /**\n * 弹出层是否显示\n */\n modelValue: makeBooleanProp(false),\n /**\n * 弹层内容懒渲染,触发展示时才渲染内容\n */\n lazyRender: makeBooleanProp(true),\n /**\n * 是否锁定滚动\n */\n lockScroll: makeBooleanProp(true)\n}\n","// src/index.ts\nvar areaList = {\n province_list: {\n 11e4: \"北京市\",\n 12e4: \"天津市\",\n 13e4: \"河北省\",\n 14e4: \"山西省\",\n 15e4: \"内蒙古自治区\",\n 21e4: \"辽宁省\",\n 22e4: \"吉林省\",\n 23e4: \"黑龙江省\",\n 31e4: \"上海市\",\n 32e4: \"江苏省\",\n 33e4: \"浙江省\",\n 34e4: \"安徽省\",\n 35e4: \"福建省\",\n 36e4: \"江西省\",\n 37e4: \"山东省\",\n 41e4: \"河南省\",\n 42e4: \"湖北省\",\n 43e4: \"湖南省\",\n 44e4: \"广东省\",\n 45e4: \"广西壮族自治区\",\n 46e4: \"海南省\",\n 5e5: \"重庆市\",\n 51e4: \"四川省\",\n 52e4: \"贵州省\",\n 53e4: \"云南省\",\n 54e4: \"西藏自治区\",\n 61e4: \"陕西省\",\n 62e4: \"甘肃省\",\n 63e4: \"青海省\",\n 64e4: \"宁夏回族自治区\",\n 65e4: \"新疆维吾尔自治区\",\n 71e4: \"台湾省\",\n 81e4: \"香港特别行政区\",\n 82e4: \"澳门特别行政区\"\n },\n city_list: {\n 110100: \"北京市\",\n 120100: \"天津市\",\n 130100: \"石家庄市\",\n 130200: \"唐山市\",\n 130300: \"秦皇岛市\",\n 130400: \"邯郸市\",\n 130500: \"邢台市\",\n 130600: \"保定市\",\n 130700: \"张家口市\",\n 130800: \"承德市\",\n 130900: \"沧州市\",\n 131e3: \"廊坊市\",\n 131100: \"衡水市\",\n 140100: \"太原市\",\n 140200: \"大同市\",\n 140300: \"阳泉市\",\n 140400: \"长治市\",\n 140500: \"晋城市\",\n 140600: \"朔州市\",\n 140700: \"晋中市\",\n 140800: \"运城市\",\n 140900: \"忻州市\",\n 141e3: \"临汾市\",\n 141100: \"吕梁市\",\n 150100: \"呼和浩特市\",\n 150200: \"包头市\",\n 150300: \"乌海市\",\n 150400: \"赤峰市\",\n 150500: \"通辽市\",\n 150600: \"鄂尔多斯市\",\n 150700: \"呼伦贝尔市\",\n 150800: \"巴彦淖尔市\",\n 150900: \"乌兰察布市\",\n 152200: \"兴安盟\",\n 152500: \"锡林郭勒盟\",\n 152900: \"阿拉善盟\",\n 210100: \"沈阳市\",\n 210200: \"大连市\",\n 210300: \"鞍山市\",\n 210400: \"抚顺市\",\n 210500: \"本溪市\",\n 210600: \"丹东市\",\n 210700: \"锦州市\",\n 210800: \"营口市\",\n 210900: \"阜新市\",\n 211e3: \"辽阳市\",\n 211100: \"盘锦市\",\n 211200: \"铁岭市\",\n 211300: \"朝阳市\",\n 211400: \"葫芦岛市\",\n 220100: \"长春市\",\n 220200: \"吉林市\",\n 220300: \"四平市\",\n 220400: \"辽源市\",\n 220500: \"通化市\",\n 220600: \"白山市\",\n 220700: \"松原市\",\n 220800: \"白城市\",\n 222400: \"延边朝鲜族自治州\",\n 230100: \"哈尔滨市\",\n 230200: \"齐齐哈尔市\",\n 230300: \"鸡西市\",\n 230400: \"鹤岗市\",\n 230500: \"双鸭山市\",\n 230600: \"大庆市\",\n 230700: \"伊春市\",\n 230800: \"佳木斯市\",\n 230900: \"七台河市\",\n 231e3: \"牡丹江市\",\n 231100: \"黑河市\",\n 231200: \"绥化市\",\n 232700: \"大兴安岭地区\",\n 310100: \"上海市\",\n 320100: \"南京市\",\n 320200: \"无锡市\",\n 320300: \"徐州市\",\n 320400: \"常州市\",\n 320500: \"苏州市\",\n 320600: \"南通市\",\n 320700: \"连云港市\",\n 320800: \"淮安市\",\n 320900: \"盐城市\",\n 321e3: \"扬州市\",\n 321100: \"镇江市\",\n 321200: \"泰州市\",\n 321300: \"宿迁市\",\n 330100: \"杭州市\",\n 330200: \"宁波市\",\n 330300: \"温州市\",\n 330400: \"嘉兴市\",\n 330500: \"湖州市\",\n 330600: \"绍兴市\",\n 330700: \"金华市\",\n 330800: \"衢州市\",\n 330900: \"舟山市\",\n 331e3: \"台州市\",\n 331100: \"丽水市\",\n 340100: \"合肥市\",\n 340200: \"芜湖市\",\n 340300: \"蚌埠市\",\n 340400: \"淮南市\",\n 340500: \"马鞍山市\",\n 340600: \"淮北市\",\n 340700: \"铜陵市\",\n 340800: \"安庆市\",\n 341e3: \"黄山市\",\n 341100: \"滁州市\",\n 341200: \"阜阳市\",\n 341300: \"宿州市\",\n 341500: \"六安市\",\n 341600: \"亳州市\",\n 341700: \"池州市\",\n 341800: \"宣城市\",\n 350100: \"福州市\",\n 350200: \"厦门市\",\n 350300: \"莆田市\",\n 350400: \"三明市\",\n 350500: \"泉州市\",\n 350600: \"漳州市\",\n 350700: \"南平市\",\n 350800: \"龙岩市\",\n 350900: \"宁德市\",\n 360100: \"南昌市\",\n 360200: \"景德镇市\",\n 360300: \"萍乡市\",\n 360400: \"九江市\",\n 360500: \"新余市\",\n 360600: \"鹰潭市\",\n 360700: \"赣州市\",\n 360800: \"吉安市\",\n 360900: \"宜春市\",\n 361e3: \"抚州市\",\n 361100: \"上饶市\",\n 370100: \"济南市\",\n 370200: \"青岛市\",\n 370300: \"淄博市\",\n 370400: \"枣庄市\",\n 370500: \"东营市\",\n 370600: \"烟台市\",\n 370700: \"潍坊市\",\n 370800: \"济宁市\",\n 370900: \"泰安市\",\n 371e3: \"威海市\",\n 371100: \"日照市\",\n 371300: \"临沂市\",\n 371400: \"德州市\",\n 371500: \"聊城市\",\n 371600: \"滨州市\",\n 371700: \"菏泽市\",\n 410100: \"郑州市\",\n 410200: \"开封市\",\n 410300: \"洛阳市\",\n 410400: \"平顶山市\",\n 410500: \"安阳市\",\n 410600: \"鹤壁市\",\n 410700: \"新乡市\",\n 410800: \"焦作市\",\n 410900: \"濮阳市\",\n 411e3: \"许昌市\",\n 411100: \"漯河市\",\n 411200: \"三门峡市\",\n 411300: \"南阳市\",\n 411400: \"商丘市\",\n 411500: \"信阳市\",\n 411600: \"周口市\",\n 411700: \"驻马店市\",\n 419e3: \"省直辖县\",\n 420100: \"武汉市\",\n 420200: \"黄石市\",\n 420300: \"十堰市\",\n 420500: \"宜昌市\",\n 420600: \"襄阳市\",\n 420700: \"鄂州市\",\n 420800: \"荆门市\",\n 420900: \"孝感市\",\n 421e3: \"荆州市\",\n 421100: \"黄冈市\",\n 421200: \"咸宁市\",\n 421300: \"随州市\",\n 422800: \"恩施土家族苗族自治州\",\n 429e3: \"省直辖县\",\n 430100: \"长沙市\",\n 430200: \"株洲市\",\n 430300: \"湘潭市\",\n 430400: \"衡阳市\",\n 430500: \"邵阳市\",\n 430600: \"岳阳市\",\n 430700: \"常德市\",\n 430800: \"张家界市\",\n 430900: \"益阳市\",\n 431e3: \"郴州市\",\n 431100: \"永州市\",\n 431200: \"怀化市\",\n 431300: \"娄底市\",\n 433100: \"湘西土家族苗族自治州\",\n 440100: \"广州市\",\n 440200: \"韶关市\",\n 440300: \"深圳市\",\n 440400: \"珠海市\",\n 440500: \"汕头市\",\n 440600: \"佛山市\",\n 440700: \"江门市\",\n 440800: \"湛江市\",\n 440900: \"茂名市\",\n 441200: \"肇庆市\",\n 441300: \"惠州市\",\n 441400: \"梅州市\",\n 441500: \"汕尾市\",\n 441600: \"河源市\",\n 441700: \"阳江市\",\n 441800: \"清远市\",\n 441900: \"东莞市\",\n 442e3: \"中山市\",\n 445100: \"潮州市\",\n 445200: \"揭阳市\",\n 445300: \"云浮市\",\n 450100: \"南宁市\",\n 450200: \"柳州市\",\n 450300: \"桂林市\",\n 450400: \"梧州市\",\n 450500: \"北海市\",\n 450600: \"防城港市\",\n 450700: \"钦州市\",\n 450800: \"贵港市\",\n 450900: \"玉林市\",\n 451e3: \"百色市\",\n 451100: \"贺州市\",\n 451200: \"河池市\",\n 451300: \"来宾市\",\n 451400: \"崇左市\",\n 460100: \"海口市\",\n 460200: \"三亚市\",\n 460300: \"三沙市\",\n 460400: \"儋州市\",\n 469e3: \"省直辖县\",\n 500100: \"重庆市\",\n 500200: \"县\",\n 510100: \"成都市\",\n 510300: \"自贡市\",\n 510400: \"攀枝花市\",\n 510500: \"泸州市\",\n 510600: \"德阳市\",\n 510700: \"绵阳市\",\n 510800: \"广元市\",\n 510900: \"遂宁市\",\n 511e3: \"内江市\",\n 511100: \"乐山市\",\n 511300: \"南充市\",\n 511400: \"眉山市\",\n 511500: \"宜宾市\",\n 511600: \"广安市\",\n 511700: \"达州市\",\n 511800: \"雅安市\",\n 511900: \"巴中市\",\n 512e3: \"资阳市\",\n 513200: \"阿坝藏族羌族自治州\",\n 513300: \"甘孜藏族自治州\",\n 513400: \"凉山彝族自治州\",\n 520100: \"贵阳市\",\n 520200: \"六盘水市\",\n 520300: \"遵义市\",\n 520400: \"安顺市\",\n 520500: \"毕节市\",\n 520600: \"铜仁市\",\n 522300: \"黔西南布依族苗族自治州\",\n 522600: \"黔东南苗族侗族自治州\",\n 522700: \"黔南布依族苗族自治州\",\n 530100: \"昆明市\",\n 530300: \"曲靖市\",\n 530400: \"玉溪市\",\n 530500: \"保山市\",\n 530600: \"昭通市\",\n 530700: \"丽江市\",\n 530800: \"普洱市\",\n 530900: \"临沧市\",\n 532300: \"楚雄彝族自治州\",\n 532500: \"红河哈尼族彝族自治州\",\n 532600: \"文山壮族苗族自治州\",\n 532800: \"西双版纳傣族自治州\",\n 532900: \"大理白族自治州\",\n 533100: \"德宏傣族景颇族自治州\",\n 533300: \"怒江傈僳族自治州\",\n 533400: \"迪庆藏族自治州\",\n 540100: \"拉萨市\",\n 540200: \"日喀则市\",\n 540300: \"昌都市\",\n 540400: \"林芝市\",\n 540500: \"山南市\",\n 540600: \"那曲市\",\n 542500: \"阿里地区\",\n 610100: \"西安市\",\n 610200: \"铜川市\",\n 610300: \"宝鸡市\",\n 610400: \"咸阳市\",\n 610500: \"渭南市\",\n 610600: \"延安市\",\n 610700: \"汉中市\",\n 610800: \"榆林市\",\n 610900: \"安康市\",\n 611e3: \"商洛市\",\n 620100: \"兰州市\",\n 620200: \"嘉峪关市\",\n 620300: \"金昌市\",\n 620400: \"白银市\",\n 620500: \"天水市\",\n 620600: \"武威市\",\n 620700: \"张掖市\",\n 620800: \"平凉市\",\n 620900: \"酒泉市\",\n 621e3: \"庆阳市\",\n 621100: \"定西市\",\n 621200: \"陇南市\",\n 622900: \"临夏回族自治州\",\n 623e3: \"甘南藏族自治州\",\n 630100: \"西宁市\",\n 630200: \"海东市\",\n 632200: \"海北藏族自治州\",\n 632300: \"黄南藏族自治州\",\n 632500: \"海南藏族自治州\",\n 632600: \"果洛藏族自治州\",\n 632700: \"玉树藏族自治州\",\n 632800: \"海西蒙古族藏族自治州\",\n 640100: \"银川市\",\n 640200: \"石嘴山市\",\n 640300: \"吴忠市\",\n 640400: \"固原市\",\n 640500: \"中卫市\",\n 650100: \"乌鲁木齐市\",\n 650200: \"克拉玛依市\",\n 650400: \"吐鲁番市\",\n 650500: \"哈密市\",\n 652300: \"昌吉回族自治州\",\n 652700: \"博尔塔拉蒙古自治州\",\n 652800: \"巴音郭楞蒙古自治州\",\n 652900: \"阿克苏地区\",\n 653e3: \"克孜勒苏柯尔克孜自治州\",\n 653100: \"喀什地区\",\n 653200: \"和田地区\",\n 654e3: \"伊犁哈萨克自治州\",\n 654200: \"塔城地区\",\n 654300: \"阿勒泰地区\",\n 659e3: \"自治区直辖县级行政区划\",\n 710100: \"台北市\",\n 710200: \"高雄市\",\n 710300: \"台南市\",\n 710400: \"台中市\",\n 710500: \"金门县\",\n 710600: \"南投县\",\n 710700: \"基隆市\",\n 710800: \"新竹市\",\n 710900: \"嘉义市\",\n 711100: \"新北市\",\n 711200: \"宜兰县\",\n 711300: \"新竹县\",\n 711400: \"桃园市\",\n 711500: \"苗栗县\",\n 711700: \"彰化县\",\n 711900: \"嘉义县\",\n 712100: \"云林县\",\n 712400: \"屏东县\",\n 712500: \"台东县\",\n 712600: \"花莲县\",\n 712700: \"澎湖县\",\n 712800: \"连江县\",\n 810100: \"香港岛\",\n 810200: \"九龙\",\n 810300: \"新界\",\n 820100: \"澳门半岛\",\n 820200: \"离岛\"\n },\n county_list: {\n 110101: \"东城区\",\n 110102: \"西城区\",\n 110105: \"朝阳区\",\n 110106: \"丰台区\",\n 110107: \"石景山区\",\n 110108: \"海淀区\",\n 110109: \"门头沟区\",\n 110111: \"房山区\",\n 110112: \"通州区\",\n 110113: \"顺义区\",\n 110114: \"昌平区\",\n 110115: \"大兴区\",\n 110116: \"怀柔区\",\n 110117: \"平谷区\",\n 110118: \"密云区\",\n 110119: \"延庆区\",\n 120101: \"和平区\",\n 120102: \"河东区\",\n 120103: \"河西区\",\n 120104: \"南开区\",\n 120105: \"河北区\",\n 120106: \"红桥区\",\n 120110: \"东丽区\",\n 120111: \"西青区\",\n 120112: \"津南区\",\n 120113: \"北辰区\",\n 120114: \"武清区\",\n 120115: \"宝坻区\",\n 120116: \"滨海新区\",\n 120117: \"宁河区\",\n 120118: \"静海区\",\n 120119: \"蓟州区\",\n 130102: \"长安区\",\n 130104: \"桥西区\",\n 130105: \"新华区\",\n 130107: \"井陉矿区\",\n 130108: \"裕华区\",\n 130109: \"藁城区\",\n 130110: \"鹿泉区\",\n 130111: \"栾城区\",\n 130121: \"井陉县\",\n 130123: \"正定县\",\n 130125: \"行唐县\",\n 130126: \"灵寿县\",\n 130127: \"高邑县\",\n 130128: \"深泽县\",\n 130129: \"赞皇县\",\n 130130: \"无极县\",\n 130131: \"平山县\",\n 130132: \"元氏县\",\n 130133: \"赵县\",\n 130171: \"石家庄高新技术产业开发区\",\n 130172: \"石家庄循环化工园区\",\n 130181: \"辛集市\",\n 130183: \"晋州市\",\n 130184: \"新乐市\",\n 130202: \"路南区\",\n 130203: \"路北区\",\n 130204: \"古冶区\",\n 130205: \"开平区\",\n 130207: \"丰南区\",\n 130208: \"丰润区\",\n 130209: \"曹妃甸区\",\n 130224: \"滦南县\",\n 130225: \"乐亭县\",\n 130227: \"迁西县\",\n 130229: \"玉田县\",\n 130273: \"唐山高新技术产业开发区\",\n 130274: \"河北唐山海港经济开发区\",\n 130281: \"遵化市\",\n 130283: \"迁安市\",\n 130284: \"滦州市\",\n 130302: \"海港区\",\n 130303: \"山海关区\",\n 130304: \"北戴河区\",\n 130306: \"抚宁区\",\n 130321: \"青龙满族自治县\",\n 130322: \"昌黎县\",\n 130324: \"卢龙县\",\n 130371: \"秦皇岛市经济技术开发区\",\n 130372: \"北戴河新区\",\n 130390: \"经济技术开发区\",\n 130402: \"邯山区\",\n 130403: \"丛台区\",\n 130404: \"复兴区\",\n 130406: \"峰峰矿区\",\n 130407: \"肥乡区\",\n 130408: \"永年区\",\n 130423: \"临漳县\",\n 130424: \"成安县\",\n 130425: \"大名县\",\n 130426: \"涉县\",\n 130427: \"磁县\",\n 130430: \"邱县\",\n 130431: \"鸡泽县\",\n 130432: \"广平县\",\n 130433: \"馆陶县\",\n 130434: \"魏县\",\n 130435: \"曲周县\",\n 130471: \"邯郸经济技术开发区\",\n 130473: \"邯郸冀南新区\",\n 130481: \"武安市\",\n 130502: \"襄都区\",\n 130503: \"信都区\",\n 130505: \"任泽区\",\n 130506: \"南和区\",\n 130522: \"临城县\",\n 130523: \"内丘县\",\n 130524: \"柏乡县\",\n 130525: \"隆尧县\",\n 130528: \"宁晋县\",\n 130529: \"巨鹿县\",\n 130530: \"新河县\",\n 130531: \"广宗县\",\n 130532: \"平乡县\",\n 130533: \"威县\",\n 130534: \"清河县\",\n 130535: \"临西县\",\n 130571: \"河北邢台经济开发区\",\n 130581: \"南宫市\",\n 130582: \"沙河市\",\n 130602: \"竞秀区\",\n 130606: \"莲池区\",\n 130607: \"满城区\",\n 130608: \"清苑区\",\n 130609: \"徐水区\",\n 130623: \"涞水县\",\n 130624: \"阜平县\",\n 130626: \"定兴县\",\n 130627: \"唐县\",\n 130628: \"高阳县\",\n 130629: \"容城县\",\n 130630: \"涞源县\",\n 130631: \"望都县\",\n 130632: \"安新县\",\n 130633: \"易县\",\n 130634: \"曲阳县\",\n 130635: \"蠡县\",\n 130636: \"顺平县\",\n 130637: \"博野县\",\n 130638: \"雄县\",\n 130671: \"保定高新技术产业开发区\",\n 130672: \"保定白沟新城\",\n 130681: \"涿州市\",\n 130682: \"定州市\",\n 130683: \"安国市\",\n 130684: \"高碑店市\",\n 130702: \"桥东区\",\n 130703: \"桥西区\",\n 130705: \"宣化区\",\n 130706: \"下花园区\",\n 130708: \"万全区\",\n 130709: \"崇礼区\",\n 130722: \"张北县\",\n 130723: \"康保县\",\n 130724: \"沽源县\",\n 130725: \"尚义县\",\n 130726: \"蔚县\",\n 130727: \"阳原县\",\n 130728: \"怀安县\",\n 130730: \"怀来县\",\n 130731: \"涿鹿县\",\n 130732: \"赤城县\",\n 130772: \"张家口市察北管理区\",\n 130802: \"双桥区\",\n 130803: \"双滦区\",\n 130804: \"鹰手营子矿区\",\n 130821: \"承德县\",\n 130822: \"兴隆县\",\n 130824: \"滦平县\",\n 130825: \"隆化县\",\n 130826: \"丰宁满族自治县\",\n 130827: \"宽城满族自治县\",\n 130828: \"围场满族蒙古族自治县\",\n 130871: \"承德高新技术产业开发区\",\n 130881: \"平泉市\",\n 130902: \"新华区\",\n 130903: \"运河区\",\n 130921: \"沧县\",\n 130922: \"青县\",\n 130923: \"东光县\",\n 130924: \"海兴县\",\n 130925: \"盐山县\",\n 130926: \"肃宁县\",\n 130927: \"南皮县\",\n 130928: \"吴桥县\",\n 130929: \"献县\",\n 130930: \"孟村回族自治县\",\n 130971: \"河北沧州经济开发区\",\n 130972: \"沧州高新技术产业开发区\",\n 130973: \"沧州渤海新区\",\n 130981: \"泊头市\",\n 130982: \"任丘市\",\n 130983: \"黄骅市\",\n 130984: \"河间市\",\n 131002: \"安次区\",\n 131003: \"广阳区\",\n 131022: \"固安县\",\n 131023: \"永清县\",\n 131024: \"香河县\",\n 131025: \"大城县\",\n 131026: \"文安县\",\n 131028: \"大厂回族自治县\",\n 131071: \"廊坊经济技术开发区\",\n 131081: \"霸州市\",\n 131082: \"三河市\",\n 131090: \"开发区\",\n 131102: \"桃城区\",\n 131103: \"冀州区\",\n 131121: \"枣强县\",\n 131122: \"武邑县\",\n 131123: \"武强县\",\n 131124: \"饶阳县\",\n 131125: \"安平县\",\n 131126: \"故城县\",\n 131127: \"景县\",\n 131128: \"阜城县\",\n 131171: \"河北衡水经济开发区\",\n 131172: \"衡水滨湖新区\",\n 131182: \"深州市\",\n 140105: \"小店区\",\n 140106: \"迎泽区\",\n 140107: \"杏花岭区\",\n 140108: \"尖草坪区\",\n 140109: \"万柏林区\",\n 140110: \"晋源区\",\n 140121: \"清徐县\",\n 140122: \"阳曲县\",\n 140123: \"娄烦县\",\n 140181: \"古交市\",\n 140212: \"新荣区\",\n 140213: \"平城区\",\n 140214: \"云冈区\",\n 140215: \"云州区\",\n 140221: \"阳高县\",\n 140222: \"天镇县\",\n 140223: \"广灵县\",\n 140224: \"灵丘县\",\n 140225: \"浑源县\",\n 140226: \"左云县\",\n 140271: \"山西大同经济开发区\",\n 140302: \"城区\",\n 140303: \"矿区\",\n 140311: \"郊区\",\n 140321: \"平定县\",\n 140322: \"盂县\",\n 140403: \"潞州区\",\n 140404: \"上党区\",\n 140405: \"屯留区\",\n 140406: \"潞城区\",\n 140423: \"襄垣县\",\n 140425: \"平顺县\",\n 140426: \"黎城县\",\n 140427: \"壶关县\",\n 140428: \"长子县\",\n 140429: \"武乡县\",\n 140430: \"沁县\",\n 140431: \"沁源县\",\n 140471: \"山西长治高新技术产业园区\",\n 140502: \"城区\",\n 140521: \"沁水县\",\n 140522: \"阳城县\",\n 140524: \"陵川县\",\n 140525: \"泽州县\",\n 140581: \"高平市\",\n 140602: \"朔城区\",\n 140603: \"平鲁区\",\n 140621: \"山阴县\",\n 140622: \"应县\",\n 140623: \"右玉县\",\n 140671: \"山西朔州经济开发区\",\n 140681: \"怀仁市\",\n 140702: \"榆次区\",\n 140703: \"太谷区\",\n 140721: \"榆社县\",\n 140722: \"左权县\",\n 140723: \"和顺县\",\n 140724: \"昔阳县\",\n 140725: \"寿阳县\",\n 140727: \"祁县\",\n 140728: \"平遥县\",\n 140729: \"灵石县\",\n 140781: \"介休市\",\n 140802: \"盐湖区\",\n 140821: \"临猗县\",\n 140822: \"万荣县\",\n 140823: \"闻喜县\",\n 140824: \"稷山县\",\n 140825: \"新绛县\",\n 140826: \"绛县\",\n 140827: \"垣曲县\",\n 140828: \"夏县\",\n 140829: \"平陆县\",\n 140830: \"芮城县\",\n 140881: \"永济市\",\n 140882: \"河津市\",\n 140902: \"忻府区\",\n 140921: \"定襄县\",\n 140922: \"五台县\",\n 140923: \"代县\",\n 140924: \"繁峙县\",\n 140925: \"宁武县\",\n 140926: \"静乐县\",\n 140927: \"神池县\",\n 140928: \"五寨县\",\n 140929: \"岢岚县\",\n 140930: \"河曲县\",\n 140931: \"保德县\",\n 140932: \"偏关县\",\n 140971: \"五台山风景名胜区\",\n 140981: \"原平市\",\n 141002: \"尧都区\",\n 141021: \"曲沃县\",\n 141022: \"翼城县\",\n 141023: \"襄汾县\",\n 141024: \"洪洞县\",\n 141025: \"古县\",\n 141026: \"安泽县\",\n 141027: \"浮山县\",\n 141028: \"吉县\",\n 141029: \"乡宁县\",\n 141030: \"大宁县\",\n 141031: \"隰县\",\n 141032: \"永和县\",\n 141033: \"蒲县\",\n 141034: \"汾西县\",\n 141081: \"侯马市\",\n 141082: \"霍州市\",\n 141102: \"离石区\",\n 141121: \"文水县\",\n 141122: \"交城县\",\n 141123: \"兴县\",\n 141124: \"临县\",\n 141125: \"柳林县\",\n 141126: \"石楼县\",\n 141127: \"岚县\",\n 141128: \"方山县\",\n 141129: \"中阳县\",\n 141130: \"交口县\",\n 141181: \"孝义市\",\n 141182: \"汾阳市\",\n 150102: \"新城区\",\n 150103: \"回民区\",\n 150104: \"玉泉区\",\n 150105: \"赛罕区\",\n 150121: \"土默特左旗\",\n 150122: \"托克托县\",\n 150123: \"和林格尔县\",\n 150124: \"清水河县\",\n 150125: \"武川县\",\n 150172: \"呼和浩特经济技术开发区\",\n 150202: \"东河区\",\n 150203: \"昆都仑区\",\n 150204: \"青山区\",\n 150205: \"石拐区\",\n 150206: \"白云鄂博矿区\",\n 150207: \"九原区\",\n 150221: \"土默特右旗\",\n 150222: \"固阳县\",\n 150223: \"达尔罕茂明安联合旗\",\n 150271: \"包头稀土高新技术产业开发区\",\n 150302: \"海勃湾区\",\n 150303: \"海南区\",\n 150304: \"乌达区\",\n 150402: \"红山区\",\n 150403: \"元宝山区\",\n 150404: \"松山区\",\n 150421: \"阿鲁科尔沁旗\",\n 150422: \"巴林左旗\",\n 150423: \"巴林右旗\",\n 150424: \"林西县\",\n 150425: \"克什克腾旗\",\n 150426: \"翁牛特旗\",\n 150428: \"喀喇沁旗\",\n 150429: \"宁城县\",\n 150430: \"敖汉旗\",\n 150502: \"科尔沁区\",\n 150521: \"科尔沁左翼中旗\",\n 150522: \"科尔沁左翼后旗\",\n 150523: \"开鲁县\",\n 150524: \"库伦旗\",\n 150525: \"奈曼旗\",\n 150526: \"扎鲁特旗\",\n 150571: \"通辽经济技术开发区\",\n 150581: \"霍林郭勒市\",\n 150602: \"东胜区\",\n 150603: \"康巴什区\",\n 150621: \"达拉特旗\",\n 150622: \"准格尔旗\",\n 150623: \"鄂托克前旗\",\n 150624: \"鄂托克旗\",\n 150625: \"杭锦旗\",\n 150626: \"乌审旗\",\n 150627: \"伊金霍洛旗\",\n 150702: \"海拉尔区\",\n 150703: \"扎赉诺尔区\",\n 150721: \"阿荣旗\",\n 150722: \"莫力达瓦达斡尔族自治旗\",\n 150723: \"鄂伦春自治旗\",\n 150724: \"鄂温克族自治旗\",\n 150725: \"陈巴尔虎旗\",\n 150726: \"新巴尔虎左旗\",\n 150727: \"新巴尔虎右旗\",\n 150781: \"满洲里市\",\n 150782: \"牙克石市\",\n 150783: \"扎兰屯市\",\n 150784: \"额尔古纳市\",\n 150785: \"根河市\",\n 150802: \"临河区\",\n 150821: \"五原县\",\n 150822: \"磴口县\",\n 150823: \"乌拉特前旗\",\n 150824: \"乌拉特中旗\",\n 150825: \"乌拉特后旗\",\n 150826: \"杭锦后旗\",\n 150902: \"集宁区\",\n 150921: \"卓资县\",\n 150922: \"化德县\",\n 150923: \"商都县\",\n 150924: \"兴和县\",\n 150925: \"凉城县\",\n 150926: \"察哈尔右翼前旗\",\n 150927: \"察哈尔右翼中旗\",\n 150928: \"察哈尔右翼后旗\",\n 150929: \"四子王旗\",\n 150981: \"丰镇市\",\n 152201: \"乌兰浩特市\",\n 152202: \"阿尔山市\",\n 152221: \"科尔沁右翼前旗\",\n 152222: \"科尔沁右翼中旗\",\n 152223: \"扎赉特旗\",\n 152224: \"突泉县\",\n 152501: \"二连浩特市\",\n 152502: \"锡林浩特市\",\n 152522: \"阿巴嘎旗\",\n 152523: \"苏尼特左旗\",\n 152524: \"苏尼特右旗\",\n 152525: \"东乌珠穆沁旗\",\n 152526: \"西乌珠穆沁旗\",\n 152527: \"太仆寺旗\",\n 152528: \"镶黄旗\",\n 152529: \"正镶白旗\",\n 152530: \"正蓝旗\",\n 152531: \"多伦县\",\n 152571: \"乌拉盖管委会\",\n 152921: \"阿拉善左旗\",\n 152922: \"阿拉善右旗\",\n 152923: \"额济纳旗\",\n 152971: \"内蒙古阿拉善经济开发区\",\n 210102: \"和平区\",\n 210103: \"沈河区\",\n 210104: \"大东区\",\n 210105: \"皇姑区\",\n 210106: \"铁西区\",\n 210111: \"苏家屯区\",\n 210112: \"浑南区\",\n 210113: \"沈北新区\",\n 210114: \"于洪区\",\n 210115: \"辽中区\",\n 210123: \"康平县\",\n 210124: \"法库县\",\n 210181: \"新民市\",\n 210190: \"经济技术开发区\",\n 210202: \"中山区\",\n 210203: \"西岗区\",\n 210204: \"沙河口区\",\n 210211: \"甘井子区\",\n 210212: \"旅顺口区\",\n 210213: \"金州区\",\n 210214: \"普兰店区\",\n 210224: \"长海县\",\n 210281: \"瓦房店市\",\n 210283: \"庄河市\",\n 210302: \"铁东区\",\n 210303: \"铁西区\",\n 210304: \"立山区\",\n 210311: \"千山区\",\n 210321: \"台安县\",\n 210323: \"岫岩满族自治县\",\n 210381: \"海城市\",\n 210390: \"高新区\",\n 210402: \"新抚区\",\n 210403: \"东洲区\",\n 210404: \"望花区\",\n 210411: \"顺城区\",\n 210421: \"抚顺县\",\n 210422: \"新宾满族自治县\",\n 210423: \"清原满族自治县\",\n 210502: \"平山区\",\n 210503: \"溪湖区\",\n 210504: \"明山区\",\n 210505: \"南芬区\",\n 210521: \"本溪满族自治县\",\n 210522: \"桓仁满族自治县\",\n 210602: \"元宝区\",\n 210603: \"振兴区\",\n 210604: \"振安区\",\n 210624: \"宽甸满族自治县\",\n 210681: \"东港市\",\n 210682: \"凤城市\",\n 210702: \"古塔区\",\n 210703: \"凌河区\",\n 210711: \"太和区\",\n 210726: \"黑山县\",\n 210727: \"义县\",\n 210781: \"凌海市\",\n 210782: \"北镇市\",\n 210793: \"经济技术开发区\",\n 210802: \"站前区\",\n 210803: \"西市区\",\n 210804: \"鲅鱼圈区\",\n 210811: \"老边区\",\n 210881: \"盖州市\",\n 210882: \"大石桥市\",\n 210902: \"海州区\",\n 210903: \"新邱区\",\n 210904: \"太平区\",\n 210905: \"清河门区\",\n 210911: \"细河区\",\n 210921: \"阜新蒙古族自治县\",\n 210922: \"彰武县\",\n 211002: \"白塔区\",\n 211003: \"文圣区\",\n 211004: \"宏伟区\",\n 211005: \"弓长岭区\",\n 211011: \"太子河区\",\n 211021: \"辽阳县\",\n 211081: \"灯塔市\",\n 211102: \"双台子区\",\n 211103: \"兴隆台区\",\n 211104: \"大洼区\",\n 211122: \"盘山县\",\n 211202: \"银州区\",\n 211204: \"清河区\",\n 211221: \"铁岭县\",\n 211223: \"西丰县\",\n 211224: \"昌图县\",\n 211281: \"调兵山市\",\n 211282: \"开原市\",\n 211302: \"双塔区\",\n 211303: \"龙城区\",\n 211321: \"朝阳县\",\n 211322: \"建平县\",\n 211324: \"喀喇沁左翼蒙古族自治县\",\n 211381: \"北票市\",\n 211382: \"凌源市\",\n 211402: \"连山区\",\n 211403: \"龙港区\",\n 211404: \"南票区\",\n 211421: \"绥中县\",\n 211422: \"建昌县\",\n 211481: \"兴城市\",\n 220102: \"南关区\",\n 220103: \"宽城区\",\n 220104: \"朝阳区\",\n 220105: \"二道区\",\n 220106: \"绿园区\",\n 220112: \"双阳区\",\n 220113: \"九台区\",\n 220122: \"农安县\",\n 220171: \"长春经济技术开发区\",\n 220172: \"长春净月高新技术产业开发区\",\n 220173: \"长春高新技术产业开发区\",\n 220174: \"长春汽车经济技术开发区\",\n 220182: \"榆树市\",\n 220183: \"德惠市\",\n 220192: \"经济技术开发区\",\n 220202: \"昌邑区\",\n 220203: \"龙潭区\",\n 220204: \"船营区\",\n 220211: \"丰满区\",\n 220221: \"永吉县\",\n 220271: \"吉林经济开发区\",\n 220272: \"吉林高新技术产业开发区\",\n 220281: \"蛟河市\",\n 220282: \"桦甸市\",\n 220283: \"舒兰市\",\n 220284: \"磐石市\",\n 220302: \"铁西区\",\n 220303: \"铁东区\",\n 220322: \"梨树县\",\n 220323: \"伊通满族自治县\",\n 220381: \"公主岭市\",\n 220382: \"双辽市\",\n 220402: \"龙山区\",\n 220403: \"西安区\",\n 220421: \"东丰县\",\n 220422: \"东辽县\",\n 220502: \"东昌区\",\n 220503: \"二道江区\",\n 220521: \"通化县\",\n 220523: \"辉南县\",\n 220524: \"柳河县\",\n 220581: \"梅河口市\",\n 220582: \"集安市\",\n 220602: \"浑江区\",\n 220605: \"江源区\",\n 220621: \"抚松县\",\n 220622: \"靖宇县\",\n 220623: \"长白朝鲜族自治县\",\n 220681: \"临江市\",\n 220702: \"宁江区\",\n 220721: \"前郭尔罗斯蒙古族自治县\",\n 220722: \"长岭县\",\n 220723: \"乾安县\",\n 220771: \"吉林松原经济开发区\",\n 220781: \"扶余市\",\n 220802: \"洮北区\",\n 220821: \"镇赉县\",\n 220822: \"通榆县\",\n 220871: \"吉林白城经济开发区\",\n 220881: \"洮南市\",\n 220882: \"大安市\",\n 222401: \"延吉市\",\n 222402: \"图们市\",\n 222403: \"敦化市\",\n 222404: \"珲春市\",\n 222405: \"龙井市\",\n 222406: \"和龙市\",\n 222424: \"汪清县\",\n 222426: \"安图县\",\n 230102: \"道里区\",\n 230103: \"南岗区\",\n 230104: \"道外区\",\n 230108: \"平房区\",\n 230109: \"松北区\",\n 230110: \"香坊区\",\n 230111: \"呼兰区\",\n 230112: \"阿城区\",\n 230113: \"双城区\",\n 230123: \"依兰县\",\n 230124: \"方正县\",\n 230125: \"宾县\",\n 230126: \"巴彦县\",\n 230127: \"木兰县\",\n 230128: \"通河县\",\n 230129: \"延寿县\",\n 230183: \"尚志市\",\n 230184: \"五常市\",\n 230202: \"龙沙区\",\n 230203: \"建华区\",\n 230204: \"铁锋区\",\n 230205: \"昂昂溪区\",\n 230206: \"富拉尔基区\",\n 230207: \"碾子山区\",\n 230208: \"梅里斯达斡尔族区\",\n 230221: \"龙江县\",\n 230223: \"依安县\",\n 230224: \"泰来县\",\n 230225: \"甘南县\",\n 230227: \"富裕县\",\n 230229: \"克山县\",\n 230230: \"克东县\",\n 230231: \"拜泉县\",\n 230281: \"讷河市\",\n 230302: \"鸡冠区\",\n 230303: \"恒山区\",\n 230304: \"滴道区\",\n 230305: \"梨树区\",\n 230306: \"城子河区\",\n 230307: \"麻山区\",\n 230321: \"鸡东县\",\n 230381: \"虎林市\",\n 230382: \"密山市\",\n 230402: \"向阳区\",\n 230403: \"工农区\",\n 230404: \"南山区\",\n 230405: \"兴安区\",\n 230406: \"东山区\",\n 230407: \"兴山区\",\n 230421: \"萝北县\",\n 230422: \"绥滨县\",\n 230502: \"尖山区\",\n 230503: \"岭东区\",\n 230505: \"四方台区\",\n 230506: \"宝山区\",\n 230521: \"集贤县\",\n 230522: \"友谊县\",\n 230523: \"宝清县\",\n 230524: \"饶河县\",\n 230602: \"萨尔图区\",\n 230603: \"龙凤区\",\n 230604: \"让胡路区\",\n 230605: \"红岗区\",\n 230606: \"大同区\",\n 230621: \"肇州县\",\n 230622: \"肇源县\",\n 230623: \"林甸县\",\n 230624: \"杜尔伯特蒙古族自治县\",\n 230671: \"大庆高新技术产业开发区\",\n 230717: \"伊美区\",\n 230718: \"乌翠区\",\n 230719: \"友好区\",\n 230722: \"嘉荫县\",\n 230723: \"汤旺县\",\n 230724: \"丰林县\",\n 230725: \"大箐山县\",\n 230726: \"南岔县\",\n 230751: \"金林区\",\n 230781: \"铁力市\",\n 230803: \"向阳区\",\n 230804: \"前进区\",\n 230805: \"东风区\",\n 230811: \"郊区\",\n 230822: \"桦南县\",\n 230826: \"桦川县\",\n 230828: \"汤原县\",\n 230881: \"同江市\",\n 230882: \"富锦市\",\n 230883: \"抚远市\",\n 230902: \"新兴区\",\n 230903: \"桃山区\",\n 230904: \"茄子河区\",\n 230921: \"勃利县\",\n 231002: \"东安区\",\n 231003: \"阳明区\",\n 231004: \"爱民区\",\n 231005: \"西安区\",\n 231025: \"林口县\",\n 231081: \"绥芬河市\",\n 231083: \"海林市\",\n 231084: \"宁安市\",\n 231085: \"穆棱市\",\n 231086: \"东宁市\",\n 231102: \"爱辉区\",\n 231123: \"逊克县\",\n 231124: \"孙吴县\",\n 231181: \"北安市\",\n 231182: \"五大连池市\",\n 231183: \"嫩江市\",\n 231202: \"北林区\",\n 231221: \"望奎县\",\n 231222: \"兰西县\",\n 231223: \"青冈县\",\n 231224: \"庆安县\",\n 231225: \"明水县\",\n 231226: \"绥棱县\",\n 231281: \"安达市\",\n 231282: \"肇东市\",\n 231283: \"海伦市\",\n 232701: \"漠河市\",\n 232721: \"呼玛县\",\n 232722: \"塔河县\",\n 232761: \"加格达奇区\",\n 232762: \"松岭区\",\n 232763: \"新林区\",\n 232764: \"呼中区\",\n 310101: \"黄浦区\",\n 310104: \"徐汇区\",\n 310105: \"长宁区\",\n 310106: \"静安区\",\n 310107: \"普陀区\",\n 310109: \"虹口区\",\n 310110: \"杨浦区\",\n 310112: \"闵行区\",\n 310113: \"宝山区\",\n 310114: \"嘉定区\",\n 310115: \"浦东新区\",\n 310116: \"金山区\",\n 310117: \"松江区\",\n 310118: \"青浦区\",\n 310120: \"奉贤区\",\n 310151: \"崇明区\",\n 320102: \"玄武区\",\n 320104: \"秦淮区\",\n 320105: \"建邺区\",\n 320106: \"鼓楼区\",\n 320111: \"浦口区\",\n 320112: \"江北新区\",\n 320113: \"栖霞区\",\n 320114: \"雨花台区\",\n 320115: \"江宁区\",\n 320116: \"六合区\",\n 320117: \"溧水区\",\n 320118: \"高淳区\",\n 320205: \"锡山区\",\n 320206: \"惠山区\",\n 320211: \"滨湖区\",\n 320213: \"梁溪区\",\n 320214: \"新吴区\",\n 320281: \"江阴市\",\n 320282: \"宜兴市\",\n 320302: \"鼓楼区\",\n 320303: \"云龙区\",\n 320305: \"贾汪区\",\n 320311: \"泉山区\",\n 320312: \"铜山区\",\n 320321: \"丰县\",\n 320322: \"沛县\",\n 320324: \"睢宁县\",\n 320371: \"徐州经济技术开发区\",\n 320381: \"新沂市\",\n 320382: \"邳州市\",\n 320391: \"工业园区\",\n 320402: \"天宁区\",\n 320404: \"钟楼区\",\n 320411: \"新北区\",\n 320412: \"武进区\",\n 320413: \"金坛区\",\n 320481: \"溧阳市\",\n 320505: \"虎丘区\",\n 320506: \"吴中区\",\n 320507: \"相城区\",\n 320508: \"姑苏区\",\n 320509: \"吴江区\",\n 320571: \"苏州工业园区\",\n 320581: \"常熟市\",\n 320582: \"张家港市\",\n 320583: \"昆山市\",\n 320585: \"太仓市\",\n 320590: \"工业园区\",\n 320591: \"高新区\",\n 320602: \"崇川区\",\n 320611: \"港闸区\",\n 320612: \"通州区\",\n 320623: \"如东县\",\n 320681: \"启东市\",\n 320682: \"如皋市\",\n 320684: \"海门市\",\n 320685: \"海安市\",\n 320691: \"高新区\",\n 320703: \"连云区\",\n 320706: \"海州区\",\n 320707: \"赣榆区\",\n 320722: \"东海县\",\n 320723: \"灌云县\",\n 320724: \"灌南县\",\n 320771: \"连云港经济技术开发区\",\n 320803: \"淮安区\",\n 320804: \"淮阴区\",\n 320812: \"清江浦区\",\n 320813: \"洪泽区\",\n 320826: \"涟水县\",\n 320830: \"盱眙县\",\n 320831: \"金湖县\",\n 320871: \"淮安经济技术开发区\",\n 320890: \"经济开发区\",\n 320902: \"亭湖区\",\n 320903: \"盐都区\",\n 320904: \"大丰区\",\n 320921: \"响水县\",\n 320922: \"滨海县\",\n 320923: \"阜宁县\",\n 320924: \"射阳县\",\n 320925: \"建湖县\",\n 320971: \"盐城经济技术开发区\",\n 320981: \"东台市\",\n 321002: \"广陵区\",\n 321003: \"邗江区\",\n 321012: \"江都区\",\n 321023: \"宝应县\",\n 321071: \"扬州经济技术开发区\",\n 321081: \"仪征市\",\n 321084: \"高邮市\",\n 321090: \"经济开发区\",\n 321102: \"京口区\",\n 321111: \"润州区\",\n 321112: \"丹徒区\",\n 321150: \"镇江新区\",\n 321181: \"丹阳市\",\n 321182: \"扬中市\",\n 321183: \"句容市\",\n 321202: \"海陵区\",\n 321203: \"高港区\",\n 321204: \"姜堰区\",\n 321271: \"泰州医药高新技术产业开发区\",\n 321281: \"兴化市\",\n 321282: \"靖江市\",\n 321283: \"泰兴市\",\n 321302: \"宿城区\",\n 321311: \"宿豫区\",\n 321322: \"沭阳县\",\n 321323: \"泗阳县\",\n 321324: \"泗洪县\",\n 321371: \"宿迁经济技术开发区\",\n 330102: \"上城区\",\n 330105: \"拱墅区\",\n 330106: \"西湖区\",\n 330108: \"滨江区\",\n 330109: \"萧山区\",\n 330110: \"余杭区\",\n 330111: \"富阳区\",\n 330112: \"临安区\",\n 330113: \"临平区\",\n 330114: \"钱塘区\",\n 330122: \"桐庐县\",\n 330127: \"淳安县\",\n 330182: \"建德市\",\n 330203: \"海曙区\",\n 330205: \"江北区\",\n 330206: \"北仑区\",\n 330211: \"镇海区\",\n 330212: \"鄞州区\",\n 330213: \"奉化区\",\n 330225: \"象山县\",\n 330226: \"宁海县\",\n 330281: \"余姚市\",\n 330282: \"慈溪市\",\n 330302: \"鹿城区\",\n 330303: \"龙湾区\",\n 330304: \"瓯海区\",\n 330305: \"洞头区\",\n 330324: \"永嘉县\",\n 330326: \"平阳县\",\n 330327: \"苍南县\",\n 330328: \"文成县\",\n 330329: \"泰顺县\",\n 330381: \"瑞安市\",\n 330382: \"乐清市\",\n 330383: \"龙港市\",\n 330402: \"南湖区\",\n 330411: \"秀洲区\",\n 330421: \"嘉善县\",\n 330424: \"海盐县\",\n 330481: \"海宁市\",\n 330482: \"平湖市\",\n 330483: \"桐乡市\",\n 330502: \"吴兴区\",\n 330503: \"南浔区\",\n 330521: \"德清县\",\n 330522: \"长兴县\",\n 330523: \"安吉县\",\n 330602: \"越城区\",\n 330603: \"柯桥区\",\n 330604: \"上虞区\",\n 330624: \"新昌县\",\n 330681: \"诸暨市\",\n 330683: \"嵊州市\",\n 330702: \"婺城区\",\n 330703: \"金东区\",\n 330723: \"武义县\",\n 330726: \"浦江县\",\n 330727: \"磐安县\",\n 330781: \"兰溪市\",\n 330782: \"义乌市\",\n 330783: \"东阳市\",\n 330784: \"永康市\",\n 330802: \"柯城区\",\n 330803: \"衢江区\",\n 330822: \"常山县\",\n 330824: \"开化县\",\n 330825: \"龙游县\",\n 330881: \"江山市\",\n 330902: \"定海区\",\n 330903: \"普陀区\",\n 330921: \"岱山县\",\n 330922: \"嵊泗县\",\n 331002: \"椒江区\",\n 331003: \"黄岩区\",\n 331004: \"路桥区\",\n 331022: \"三门县\",\n 331023: \"天台县\",\n 331024: \"仙居县\",\n 331081: \"温岭市\",\n 331082: \"临海市\",\n 331083: \"玉环市\",\n 331102: \"莲都区\",\n 331121: \"青田县\",\n 331122: \"缙云县\",\n 331123: \"遂昌县\",\n 331124: \"松阳县\",\n 331125: \"云和县\",\n 331126: \"庆元县\",\n 331127: \"景宁畲族自治县\",\n 331181: \"龙泉市\",\n 340102: \"瑶海区\",\n 340103: \"庐阳区\",\n 340104: \"蜀山区\",\n 340111: \"包河区\",\n 340121: \"长丰县\",\n 340122: \"肥东县\",\n 340123: \"肥西县\",\n 340124: \"庐江县\",\n 340171: \"合肥高新技术产业开发区\",\n 340172: \"合肥经济技术开发区\",\n 340173: \"合肥新站高新技术产业开发区\",\n 340181: \"巢湖市\",\n 340190: \"高新技术开发区\",\n 340191: \"经济技术开发区\",\n 340202: \"镜湖区\",\n 340207: \"鸠江区\",\n 340209: \"弋江区\",\n 340210: \"湾沚区\",\n 340212: \"繁昌区\",\n 340223: \"南陵县\",\n 340281: \"无为市\",\n 340302: \"龙子湖区\",\n 340303: \"蚌山区\",\n 340304: \"禹会区\",\n 340311: \"淮上区\",\n 340321: \"怀远县\",\n 340322: \"五河县\",\n 340323: \"固镇县\",\n 340371: \"蚌埠市高新技术开发区\",\n 340372: \"蚌埠市经济开发区\",\n 340402: \"大通区\",\n 340403: \"田家庵区\",\n 340404: \"谢家集区\",\n 340405: \"八公山区\",\n 340406: \"潘集区\",\n 340421: \"凤台县\",\n 340422: \"寿县\",\n 340503: \"花山区\",\n 340504: \"雨山区\",\n 340506: \"博望区\",\n 340521: \"当涂县\",\n 340522: \"含山县\",\n 340523: \"和县\",\n 340602: \"杜集区\",\n 340603: \"相山区\",\n 340604: \"烈山区\",\n 340621: \"濉溪县\",\n 340705: \"铜官区\",\n 340706: \"义安区\",\n 340711: \"郊区\",\n 340722: \"枞阳县\",\n 340802: \"迎江区\",\n 340803: \"大观区\",\n 340811: \"宜秀区\",\n 340822: \"怀宁县\",\n 340825: \"太湖县\",\n 340826: \"宿松县\",\n 340827: \"望江县\",\n 340828: \"岳西县\",\n 340881: \"桐城市\",\n 340882: \"潜山市\",\n 341002: \"屯溪区\",\n 341003: \"黄山区\",\n 341004: \"徽州区\",\n 341021: \"歙县\",\n 341022: \"休宁县\",\n 341023: \"黟县\",\n 341024: \"祁门县\",\n 341102: \"琅琊区\",\n 341103: \"南谯区\",\n 341122: \"来安县\",\n 341124: \"全椒县\",\n 341125: \"定远县\",\n 341126: \"凤阳县\",\n 341181: \"天长市\",\n 341182: \"明光市\",\n 341202: \"颍州区\",\n 341203: \"颍东区\",\n 341204: \"颍泉区\",\n 341221: \"临泉县\",\n 341222: \"太和县\",\n 341225: \"阜南县\",\n 341226: \"颍上县\",\n 341271: \"阜阳合肥现代产业园区\",\n 341282: \"界首市\",\n 341302: \"埇桥区\",\n 341321: \"砀山县\",\n 341322: \"萧县\",\n 341323: \"灵璧县\",\n 341324: \"泗县\",\n 341371: \"宿州马鞍山现代产业园区\",\n 341372: \"宿州经济技术开发区\",\n 341390: \"经济开发区\",\n 341502: \"金安区\",\n 341503: \"裕安区\",\n 341504: \"叶集区\",\n 341522: \"霍邱县\",\n 341523: \"舒城县\",\n 341524: \"金寨县\",\n 341525: \"霍山县\",\n 341602: \"谯城区\",\n 341621: \"涡阳县\",\n 341622: \"蒙城县\",\n 341623: \"利辛县\",\n 341702: \"贵池区\",\n 341721: \"东至县\",\n 341722: \"石台县\",\n 341723: \"青阳县\",\n 341802: \"宣州区\",\n 341821: \"郎溪县\",\n 341823: \"泾县\",\n 341824: \"绩溪县\",\n 341825: \"旌德县\",\n 341871: \"宣城市经济开发区\",\n 341881: \"宁国市\",\n 341882: \"广德市\",\n 350102: \"鼓楼区\",\n 350103: \"台江区\",\n 350104: \"仓山区\",\n 350105: \"马尾区\",\n 350111: \"晋安区\",\n 350112: \"长乐区\",\n 350121: \"闽侯县\",\n 350122: \"连江县\",\n 350123: \"罗源县\",\n 350124: \"闽清县\",\n 350125: \"永泰县\",\n 350128: \"平潭县\",\n 350181: \"福清市\",\n 350203: \"思明区\",\n 350205: \"海沧区\",\n 350206: \"湖里区\",\n 350211: \"集美区\",\n 350212: \"同安区\",\n 350213: \"翔安区\",\n 350302: \"城厢区\",\n 350303: \"涵江区\",\n 350304: \"荔城区\",\n 350305: \"秀屿区\",\n 350322: \"仙游县\",\n 350402: \"梅列区\",\n 350403: \"三元区\",\n 350421: \"明溪县\",\n 350423: \"清流县\",\n 350424: \"宁化县\",\n 350425: \"大田县\",\n 350426: \"尤溪县\",\n 350427: \"沙县\",\n 350428: \"将乐县\",\n 350429: \"泰宁县\",\n 350430: \"建宁县\",\n 350481: \"永安市\",\n 350502: \"鲤城区\",\n 350503: \"丰泽区\",\n 350504: \"洛江区\",\n 350505: \"泉港区\",\n 350521: \"惠安县\",\n 350524: \"安溪县\",\n 350525: \"永春县\",\n 350526: \"德化县\",\n 350527: \"金门县\",\n 350581: \"石狮市\",\n 350582: \"晋江市\",\n 350583: \"南安市\",\n 350602: \"芗城区\",\n 350603: \"龙文区\",\n 350622: \"云霄县\",\n 350623: \"漳浦县\",\n 350624: \"诏安县\",\n 350625: \"长泰县\",\n 350626: \"东山县\",\n 350627: \"南靖县\",\n 350628: \"平和县\",\n 350629: \"华安县\",\n 350681: \"龙海市\",\n 350702: \"延平区\",\n 350703: \"建阳区\",\n 350721: \"顺昌县\",\n 350722: \"浦城县\",\n 350723: \"光泽县\",\n 350724: \"松溪县\",\n 350725: \"政和县\",\n 350781: \"邵武市\",\n 350782: \"武夷山市\",\n 350783: \"建瓯市\",\n 350802: \"新罗区\",\n 350803: \"永定区\",\n 350821: \"长汀县\",\n 350823: \"上杭县\",\n 350824: \"武平县\",\n 350825: \"连城县\",\n 350881: \"漳平市\",\n 350902: \"蕉城区\",\n 350921: \"霞浦县\",\n 350922: \"古田县\",\n 350923: \"屏南县\",\n 350924: \"寿宁县\",\n 350925: \"周宁县\",\n 350926: \"柘荣县\",\n 350981: \"福安市\",\n 350982: \"福鼎市\",\n 360102: \"东湖区\",\n 360103: \"西湖区\",\n 360104: \"青云谱区\",\n 360111: \"青山湖区\",\n 360112: \"新建区\",\n 360113: \"红谷滩区\",\n 360121: \"南昌县\",\n 360123: \"安义县\",\n 360124: \"进贤县\",\n 360190: \"经济技术开发区\",\n 360192: \"高新区\",\n 360202: \"昌江区\",\n 360203: \"珠山区\",\n 360222: \"浮梁县\",\n 360281: \"乐平市\",\n 360302: \"安源区\",\n 360313: \"湘东区\",\n 360321: \"莲花县\",\n 360322: \"上栗县\",\n 360323: \"芦溪县\",\n 360402: \"濂溪区\",\n 360403: \"浔阳区\",\n 360404: \"柴桑区\",\n 360423: \"武宁县\",\n 360424: \"修水县\",\n 360425: \"永修县\",\n 360426: \"德安县\",\n 360428: \"都昌县\",\n 360429: \"湖口县\",\n 360430: \"彭泽县\",\n 360481: \"瑞昌市\",\n 360482: \"共青城市\",\n 360483: \"庐山市\",\n 360490: \"经济技术开发区\",\n 360502: \"渝水区\",\n 360521: \"分宜县\",\n 360602: \"月湖区\",\n 360603: \"余江区\",\n 360681: \"贵溪市\",\n 360702: \"章贡区\",\n 360703: \"南康区\",\n 360704: \"赣县区\",\n 360722: \"信丰县\",\n 360723: \"大余县\",\n 360724: \"上犹县\",\n 360725: \"崇义县\",\n 360726: \"安远县\",\n 360728: \"定南县\",\n 360729: \"全南县\",\n 360730: \"宁都县\",\n 360731: \"于都县\",\n 360732: \"兴国县\",\n 360733: \"会昌县\",\n 360734: \"寻乌县\",\n 360735: \"石城县\",\n 360781: \"瑞金市\",\n 360783: \"龙南市\",\n 360802: \"吉州区\",\n 360803: \"青原区\",\n 360821: \"吉安县\",\n 360822: \"吉水县\",\n 360823: \"峡江县\",\n 360824: \"新干县\",\n 360825: \"永丰县\",\n 360826: \"泰和县\",\n 360827: \"遂川县\",\n 360828: \"万安县\",\n 360829: \"安福县\",\n 360830: \"永新县\",\n 360881: \"井冈山市\",\n 360902: \"袁州区\",\n 360921: \"奉新县\",\n 360922: \"万载县\",\n 360923: \"上高县\",\n 360924: \"宜丰县\",\n 360925: \"靖安县\",\n 360926: \"铜鼓县\",\n 360981: \"丰城市\",\n 360982: \"樟树市\",\n 360983: \"高安市\",\n 361002: \"临川区\",\n 361003: \"东乡区\",\n 361021: \"南城县\",\n 361022: \"黎川县\",\n 361023: \"南丰县\",\n 361024: \"崇仁县\",\n 361025: \"乐安县\",\n 361026: \"宜黄县\",\n 361027: \"金溪县\",\n 361028: \"资溪县\",\n 361030: \"广昌县\",\n 361102: \"信州区\",\n 361103: \"广丰区\",\n 361104: \"广信区\",\n 361123: \"玉山县\",\n 361124: \"铅山县\",\n 361125: \"横峰县\",\n 361126: \"弋阳县\",\n 361127: \"余干县\",\n 361128: \"鄱阳县\",\n 361129: \"万年县\",\n 361130: \"婺源县\",\n 361181: \"德兴市\",\n 370102: \"历下区\",\n 370103: \"市中区\",\n 370104: \"槐荫区\",\n 370105: \"天桥区\",\n 370112: \"历城区\",\n 370113: \"长清区\",\n 370114: \"章丘区\",\n 370115: \"济阳区\",\n 370116: \"莱芜区\",\n 370117: \"钢城区\",\n 370124: \"平阴县\",\n 370126: \"商河县\",\n 370171: \"济南高新技术产业开发区\",\n 370190: \"高新区\",\n 370202: \"市南区\",\n 370203: \"市北区\",\n 370211: \"黄岛区\",\n 370212: \"崂山区\",\n 370213: \"李沧区\",\n 370214: \"城阳区\",\n 370215: \"即墨区\",\n 370271: \"青岛高新技术产业开发区\",\n 370281: \"胶州市\",\n 370283: \"平度市\",\n 370285: \"莱西市\",\n 370290: \"开发区\",\n 370302: \"淄川区\",\n 370303: \"张店区\",\n 370304: \"博山区\",\n 370305: \"临淄区\",\n 370306: \"周村区\",\n 370321: \"桓台县\",\n 370322: \"高青县\",\n 370323: \"沂源县\",\n 370402: \"市中区\",\n 370403: \"薛城区\",\n 370404: \"峄城区\",\n 370405: \"台儿庄区\",\n 370406: \"山亭区\",\n 370481: \"滕州市\",\n 370502: \"东营区\",\n 370503: \"河口区\",\n 370505: \"垦利区\",\n 370522: \"利津县\",\n 370523: \"广饶县\",\n 370571: \"东营经济技术开发区\",\n 370572: \"东营港经济开发区\",\n 370602: \"芝罘区\",\n 370611: \"福山区\",\n 370612: \"牟平区\",\n 370613: \"莱山区\",\n 370634: \"长岛县\",\n 370671: \"烟台高新技术产业开发区\",\n 370672: \"烟台经济技术开发区\",\n 370681: \"龙口市\",\n 370682: \"莱阳市\",\n 370683: \"莱州市\",\n 370684: \"蓬莱市\",\n 370685: \"招远市\",\n 370686: \"栖霞市\",\n 370687: \"海阳市\",\n 370690: \"开发区\",\n 370702: \"潍城区\",\n 370703: \"寒亭区\",\n 370704: \"坊子区\",\n 370705: \"奎文区\",\n 370724: \"临朐县\",\n 370725: \"昌乐县\",\n 370772: \"潍坊滨海经济技术开发区\",\n 370781: \"青州市\",\n 370782: \"诸城市\",\n 370783: \"寿光市\",\n 370784: \"安丘市\",\n 370785: \"高密市\",\n 370786: \"昌邑市\",\n 370790: \"开发区\",\n 370791: \"高新区\",\n 370811: \"任城区\",\n 370812: \"兖州区\",\n 370826: \"微山县\",\n 370827: \"鱼台县\",\n 370828: \"金乡县\",\n 370829: \"嘉祥县\",\n 370830: \"汶上县\",\n 370831: \"泗水县\",\n 370832: \"梁山县\",\n 370871: \"济宁高新技术产业开发区\",\n 370881: \"曲阜市\",\n 370883: \"邹城市\",\n 370890: \"高新区\",\n 370902: \"泰山区\",\n 370911: \"岱岳区\",\n 370921: \"宁阳县\",\n 370923: \"东平县\",\n 370982: \"新泰市\",\n 370983: \"肥城市\",\n 371002: \"环翠区\",\n 371003: \"文登区\",\n 371071: \"威海火炬高技术产业开发区\",\n 371072: \"威海经济技术开发区\",\n 371082: \"荣成市\",\n 371083: \"乳山市\",\n 371091: \"经济技术开发区\",\n 371102: \"东港区\",\n 371103: \"岚山区\",\n 371121: \"五莲县\",\n 371122: \"莒县\",\n 371171: \"日照经济技术开发区\",\n 371302: \"兰山区\",\n 371311: \"罗庄区\",\n 371312: \"河东区\",\n 371321: \"沂南县\",\n 371322: \"郯城县\",\n 371323: \"沂水县\",\n 371324: \"兰陵县\",\n 371325: \"费县\",\n 371326: \"平邑县\",\n 371327: \"莒南县\",\n 371328: \"蒙阴县\",\n 371329: \"临沭县\",\n 371371: \"临沂高新技术产业开发区\",\n 371402: \"德城区\",\n 371403: \"陵城区\",\n 371422: \"宁津县\",\n 371423: \"庆云县\",\n 371424: \"临邑县\",\n 371425: \"齐河县\",\n 371426: \"平原县\",\n 371427: \"夏津县\",\n 371428: \"武城县\",\n 371472: \"德州运河经济开发区\",\n 371481: \"乐陵市\",\n 371482: \"禹城市\",\n 371502: \"东昌府区\",\n 371503: \"茌平区\",\n 371521: \"阳谷县\",\n 371522: \"莘县\",\n 371524: \"东阿县\",\n 371525: \"冠县\",\n 371526: \"高唐县\",\n 371581: \"临清市\",\n 371602: \"滨城区\",\n 371603: \"沾化区\",\n 371621: \"惠民县\",\n 371622: \"阳信县\",\n 371623: \"无棣县\",\n 371625: \"博兴县\",\n 371681: \"邹平市\",\n 371702: \"牡丹区\",\n 371703: \"定陶区\",\n 371721: \"曹县\",\n 371722: \"单县\",\n 371723: \"成武县\",\n 371724: \"巨野县\",\n 371725: \"郓城县\",\n 371726: \"鄄城县\",\n 371728: \"东明县\",\n 371771: \"菏泽经济技术开发区\",\n 371772: \"菏泽高新技术开发区\",\n 410102: \"中原区\",\n 410103: \"二七区\",\n 410104: \"管城回族区\",\n 410105: \"金水区\",\n 410106: \"上街区\",\n 410108: \"惠济区\",\n 410122: \"中牟县\",\n 410171: \"郑州经济技术开发区\",\n 410172: \"郑州高新技术产业开发区\",\n 410173: \"郑州航空港经济综合实验区\",\n 410181: \"巩义市\",\n 410182: \"荥阳市\",\n 410183: \"新密市\",\n 410184: \"新郑市\",\n 410185: \"登封市\",\n 410190: \"高新技术开发区\",\n 410191: \"经济技术开发区\",\n 410202: \"龙亭区\",\n 410203: \"顺河回族区\",\n 410204: \"鼓楼区\",\n 410205: \"禹王台区\",\n 410212: \"祥符区\",\n 410221: \"杞县\",\n 410222: \"通许县\",\n 410223: \"尉氏县\",\n 410225: \"兰考县\",\n 410302: \"老城区\",\n 410303: \"西工区\",\n 410304: \"瀍河回族区\",\n 410305: \"涧西区\",\n 410306: \"吉利区\",\n 410311: \"洛龙区\",\n 410322: \"孟津县\",\n 410323: \"新安县\",\n 410324: \"栾川县\",\n 410325: \"嵩县\",\n 410326: \"汝阳县\",\n 410327: \"宜阳县\",\n 410328: \"洛宁县\",\n 410329: \"伊川县\",\n 410381: \"偃师市\",\n 410402: \"新华区\",\n 410403: \"卫东区\",\n 410404: \"石龙区\",\n 410411: \"湛河区\",\n 410421: \"宝丰县\",\n 410422: \"叶县\",\n 410423: \"鲁山县\",\n 410425: \"郏县\",\n 410471: \"平顶山高新技术产业开发区\",\n 410481: \"舞钢市\",\n 410482: \"汝州市\",\n 410502: \"文峰区\",\n 410503: \"北关区\",\n 410505: \"殷都区\",\n 410506: \"龙安区\",\n 410522: \"安阳县\",\n 410523: \"汤阴县\",\n 410526: \"滑县\",\n 410527: \"内黄县\",\n 410581: \"林州市\",\n 410590: \"开发区\",\n 410602: \"鹤山区\",\n 410603: \"山城区\",\n 410611: \"淇滨区\",\n 410621: \"浚县\",\n 410622: \"淇县\",\n 410702: \"红旗区\",\n 410703: \"卫滨区\",\n 410704: \"凤泉区\",\n 410711: \"牧野区\",\n 410721: \"新乡县\",\n 410724: \"获嘉县\",\n 410725: \"原阳县\",\n 410726: \"延津县\",\n 410727: \"封丘县\",\n 410771: \"新乡高新技术产业开发区\",\n 410772: \"新乡经济技术开发区\",\n 410781: \"卫辉市\",\n 410782: \"辉县市\",\n 410783: \"长垣市\",\n 410802: \"解放区\",\n 410803: \"中站区\",\n 410804: \"马村区\",\n 410811: \"山阳区\",\n 410821: \"修武县\",\n 410822: \"博爱县\",\n 410823: \"武陟县\",\n 410825: \"温县\",\n 410871: \"焦作城乡一体化示范区\",\n 410882: \"沁阳市\",\n 410883: \"孟州市\",\n 410902: \"华龙区\",\n 410922: \"清丰县\",\n 410923: \"南乐县\",\n 410926: \"范县\",\n 410927: \"台前县\",\n 410928: \"濮阳县\",\n 410971: \"河南濮阳工业园区\",\n 411002: \"魏都区\",\n 411003: \"建安区\",\n 411024: \"鄢陵县\",\n 411025: \"襄城县\",\n 411071: \"许昌经济技术开发区\",\n 411081: \"禹州市\",\n 411082: \"长葛市\",\n 411102: \"源汇区\",\n 411103: \"郾城区\",\n 411104: \"召陵区\",\n 411121: \"舞阳县\",\n 411122: \"临颍县\",\n 411171: \"漯河经济技术开发区\",\n 411202: \"湖滨区\",\n 411203: \"陕州区\",\n 411221: \"渑池县\",\n 411224: \"卢氏县\",\n 411271: \"河南三门峡经济开发区\",\n 411281: \"义马市\",\n 411282: \"灵宝市\",\n 411302: \"宛城区\",\n 411303: \"卧龙区\",\n 411321: \"南召县\",\n 411322: \"方城县\",\n 411323: \"西峡县\",\n 411324: \"镇平县\",\n 411325: \"内乡县\",\n 411326: \"淅川县\",\n 411327: \"社旗县\",\n 411328: \"唐河县\",\n 411329: \"新野县\",\n 411330: \"桐柏县\",\n 411372: \"南阳市城乡一体化示范区\",\n 411381: \"邓州市\",\n 411402: \"梁园区\",\n 411403: \"睢阳区\",\n 411421: \"民权县\",\n 411422: \"睢县\",\n 411423: \"宁陵县\",\n 411424: \"柘城县\",\n 411425: \"虞城县\",\n 411426: \"夏邑县\",\n 411481: \"永城市\",\n 411502: \"浉河区\",\n 411503: \"平桥区\",\n 411521: \"罗山县\",\n 411522: \"光山县\",\n 411523: \"新县\",\n 411524: \"商城县\",\n 411525: \"固始县\",\n 411526: \"潢川县\",\n 411527: \"淮滨县\",\n 411528: \"息县\",\n 411602: \"川汇区\",\n 411603: \"淮阳区\",\n 411621: \"扶沟县\",\n 411622: \"西华县\",\n 411623: \"商水县\",\n 411624: \"沈丘县\",\n 411625: \"郸城县\",\n 411627: \"太康县\",\n 411628: \"鹿邑县\",\n 411671: \"河南周口经济开发区\",\n 411681: \"项城市\",\n 411690: \"经济开发区\",\n 411702: \"驿城区\",\n 411721: \"西平县\",\n 411722: \"上蔡县\",\n 411723: \"平舆县\",\n 411724: \"正阳县\",\n 411725: \"确山县\",\n 411726: \"泌阳县\",\n 411727: \"汝南县\",\n 411728: \"遂平县\",\n 411729: \"新蔡县\",\n 419001: \"济源市\",\n 420102: \"江岸区\",\n 420103: \"江汉区\",\n 420104: \"硚口区\",\n 420105: \"汉阳区\",\n 420106: \"武昌区\",\n 420107: \"青山区\",\n 420111: \"洪山区\",\n 420112: \"东西湖区\",\n 420113: \"汉南区\",\n 420114: \"蔡甸区\",\n 420115: \"江夏区\",\n 420116: \"黄陂区\",\n 420117: \"新洲区\",\n 420202: \"黄石港区\",\n 420203: \"西塞山区\",\n 420204: \"下陆区\",\n 420205: \"铁山区\",\n 420222: \"阳新县\",\n 420281: \"大冶市\",\n 420302: \"茅箭区\",\n 420303: \"张湾区\",\n 420304: \"郧阳区\",\n 420322: \"郧西县\",\n 420323: \"竹山县\",\n 420324: \"竹溪县\",\n 420325: \"房县\",\n 420381: \"丹江口市\",\n 420502: \"西陵区\",\n 420503: \"伍家岗区\",\n 420504: \"点军区\",\n 420505: \"猇亭区\",\n 420506: \"夷陵区\",\n 420525: \"远安县\",\n 420526: \"兴山县\",\n 420527: \"秭归县\",\n 420528: \"长阳土家族自治县\",\n 420529: \"五峰土家族自治县\",\n 420581: \"宜都市\",\n 420582: \"当阳市\",\n 420583: \"枝江市\",\n 420590: \"经济开发区\",\n 420602: \"襄城区\",\n 420606: \"樊城区\",\n 420607: \"襄州区\",\n 420624: \"南漳县\",\n 420625: \"谷城县\",\n 420626: \"保康县\",\n 420682: \"老河口市\",\n 420683: \"枣阳市\",\n 420684: \"宜城市\",\n 420702: \"梁子湖区\",\n 420703: \"华容区\",\n 420704: \"鄂城区\",\n 420802: \"东宝区\",\n 420804: \"掇刀区\",\n 420822: \"沙洋县\",\n 420881: \"钟祥市\",\n 420882: \"京山市\",\n 420902: \"孝南区\",\n 420921: \"孝昌县\",\n 420922: \"大悟县\",\n 420923: \"云梦县\",\n 420981: \"应城市\",\n 420982: \"安陆市\",\n 420984: \"汉川市\",\n 421002: \"沙市区\",\n 421003: \"荆州区\",\n 421022: \"公安县\",\n 421023: \"监利县\",\n 421024: \"江陵县\",\n 421081: \"石首市\",\n 421083: \"洪湖市\",\n 421087: \"松滋市\",\n 421102: \"黄州区\",\n 421121: \"团风县\",\n 421122: \"红安县\",\n 421123: \"罗田县\",\n 421124: \"英山县\",\n 421125: \"浠水县\",\n 421126: \"蕲春县\",\n 421127: \"黄梅县\",\n 421171: \"龙感湖管理区\",\n 421181: \"麻城市\",\n 421182: \"武穴市\",\n 421202: \"咸安区\",\n 421221: \"嘉鱼县\",\n 421222: \"通城县\",\n 421223: \"崇阳县\",\n 421224: \"通山县\",\n 421281: \"赤壁市\",\n 421303: \"曾都区\",\n 421321: \"随县\",\n 421381: \"广水市\",\n 422801: \"恩施市\",\n 422802: \"利川市\",\n 422822: \"建始县\",\n 422823: \"巴东县\",\n 422825: \"宣恩县\",\n 422826: \"咸丰县\",\n 422827: \"来凤县\",\n 422828: \"鹤峰县\",\n 429004: \"仙桃市\",\n 429005: \"潜江市\",\n 429006: \"天门市\",\n 429021: \"神农架林区\",\n 430102: \"芙蓉区\",\n 430103: \"天心区\",\n 430104: \"岳麓区\",\n 430105: \"开福区\",\n 430111: \"雨花区\",\n 430112: \"望城区\",\n 430121: \"长沙县\",\n 430181: \"浏阳市\",\n 430182: \"宁乡市\",\n 430202: \"荷塘区\",\n 430203: \"芦淞区\",\n 430204: \"石峰区\",\n 430211: \"天元区\",\n 430212: \"渌口区\",\n 430223: \"攸县\",\n 430224: \"茶陵县\",\n 430225: \"炎陵县\",\n 430271: \"云龙示范区\",\n 430281: \"醴陵市\",\n 430302: \"雨湖区\",\n 430304: \"岳塘区\",\n 430321: \"湘潭县\",\n 430373: \"湘潭九华示范区\",\n 430381: \"湘乡市\",\n 430382: \"韶山市\",\n 430405: \"珠晖区\",\n 430406: \"雁峰区\",\n 430407: \"石鼓区\",\n 430408: \"蒸湘区\",\n 430412: \"南岳区\",\n 430421: \"衡阳县\",\n 430422: \"衡南县\",\n 430423: \"衡山县\",\n 430424: \"衡东县\",\n 430426: \"祁东县\",\n 430481: \"耒阳市\",\n 430482: \"常宁市\",\n 430502: \"双清区\",\n 430503: \"大祥区\",\n 430511: \"北塔区\",\n 430522: \"新邵县\",\n 430523: \"邵阳县\",\n 430524: \"隆回县\",\n 430525: \"洞口县\",\n 430527: \"绥宁县\",\n 430528: \"新宁县\",\n 430529: \"城步苗族自治县\",\n 430581: \"武冈市\",\n 430582: \"邵东市\",\n 430602: \"岳阳楼区\",\n 430603: \"云溪区\",\n 430611: \"君山区\",\n 430621: \"岳阳县\",\n 430623: \"华容县\",\n 430624: \"湘阴县\",\n 430626: \"平江县\",\n 430681: \"汨罗市\",\n 430682: \"临湘市\",\n 430702: \"武陵区\",\n 430703: \"鼎城区\",\n 430721: \"安乡县\",\n 430722: \"汉寿县\",\n 430723: \"澧县\",\n 430724: \"临澧县\",\n 430725: \"桃源县\",\n 430726: \"石门县\",\n 430781: \"津市市\",\n 430802: \"永定区\",\n 430811: \"武陵源区\",\n 430821: \"慈利县\",\n 430822: \"桑植县\",\n 430902: \"资阳区\",\n 430903: \"赫山区\",\n 430921: \"南县\",\n 430922: \"桃江县\",\n 430923: \"安化县\",\n 430971: \"益阳市大通湖管理区\",\n 430981: \"沅江市\",\n 431002: \"北湖区\",\n 431003: \"苏仙区\",\n 431021: \"桂阳县\",\n 431022: \"宜章县\",\n 431023: \"永兴县\",\n 431024: \"嘉禾县\",\n 431025: \"临武县\",\n 431026: \"汝城县\",\n 431027: \"桂东县\",\n 431028: \"安仁县\",\n 431081: \"资兴市\",\n 431102: \"零陵区\",\n 431103: \"冷水滩区\",\n 431121: \"祁阳县\",\n 431122: \"东安县\",\n 431123: \"双牌县\",\n 431124: \"道县\",\n 431125: \"江永县\",\n 431126: \"宁远县\",\n 431127: \"蓝山县\",\n 431128: \"新田县\",\n 431129: \"江华瑶族自治县\",\n 431202: \"鹤城区\",\n 431221: \"中方县\",\n 431222: \"沅陵县\",\n 431223: \"辰溪县\",\n 431224: \"溆浦县\",\n 431225: \"会同县\",\n 431226: \"麻阳苗族自治县\",\n 431227: \"新晃侗族自治县\",\n 431228: \"芷江侗族自治县\",\n 431229: \"靖州苗族侗族自治县\",\n 431230: \"通道侗族自治县\",\n 431271: \"怀化市洪江管理区\",\n 431281: \"洪江市\",\n 431302: \"娄星区\",\n 431321: \"双峰县\",\n 431322: \"新化县\",\n 431381: \"冷水江市\",\n 431382: \"涟源市\",\n 433101: \"吉首市\",\n 433122: \"泸溪县\",\n 433123: \"凤凰县\",\n 433124: \"花垣县\",\n 433125: \"保靖县\",\n 433126: \"古丈县\",\n 433127: \"永顺县\",\n 433130: \"龙山县\",\n 440103: \"荔湾区\",\n 440104: \"越秀区\",\n 440105: \"海珠区\",\n 440106: \"天河区\",\n 440111: \"白云区\",\n 440112: \"黄埔区\",\n 440113: \"番禺区\",\n 440114: \"花都区\",\n 440115: \"南沙区\",\n 440117: \"从化区\",\n 440118: \"增城区\",\n 440203: \"武江区\",\n 440204: \"浈江区\",\n 440205: \"曲江区\",\n 440222: \"始兴县\",\n 440224: \"仁化县\",\n 440229: \"翁源县\",\n 440232: \"乳源瑶族自治县\",\n 440233: \"新丰县\",\n 440281: \"乐昌市\",\n 440282: \"南雄市\",\n 440303: \"罗湖区\",\n 440304: \"福田区\",\n 440305: \"南山区\",\n 440306: \"宝安区\",\n 440307: \"龙岗区\",\n 440308: \"盐田区\",\n 440309: \"龙华区\",\n 440310: \"坪山区\",\n 440311: \"光明区\",\n 440402: \"香洲区\",\n 440403: \"斗门区\",\n 440404: \"金湾区\",\n 440507: \"龙湖区\",\n 440511: \"金平区\",\n 440512: \"濠江区\",\n 440513: \"潮阳区\",\n 440514: \"潮南区\",\n 440515: \"澄海区\",\n 440523: \"南澳县\",\n 440604: \"禅城区\",\n 440605: \"南海区\",\n 440606: \"顺德区\",\n 440607: \"三水区\",\n 440608: \"高明区\",\n 440703: \"蓬江区\",\n 440704: \"江海区\",\n 440705: \"新会区\",\n 440781: \"台山市\",\n 440783: \"开平市\",\n 440784: \"鹤山市\",\n 440785: \"恩平市\",\n 440802: \"赤坎区\",\n 440803: \"霞山区\",\n 440804: \"坡头区\",\n 440811: \"麻章区\",\n 440823: \"遂溪县\",\n 440825: \"徐闻县\",\n 440881: \"廉江市\",\n 440882: \"雷州市\",\n 440883: \"吴川市\",\n 440890: \"经济技术开发区\",\n 440902: \"茂南区\",\n 440904: \"电白区\",\n 440981: \"高州市\",\n 440982: \"化州市\",\n 440983: \"信宜市\",\n 441202: \"端州区\",\n 441203: \"鼎湖区\",\n 441204: \"高要区\",\n 441223: \"广宁县\",\n 441224: \"怀集县\",\n 441225: \"封开县\",\n 441226: \"德庆县\",\n 441284: \"四会市\",\n 441302: \"惠城区\",\n 441303: \"惠阳区\",\n 441322: \"博罗县\",\n 441323: \"惠东县\",\n 441324: \"龙门县\",\n 441402: \"梅江区\",\n 441403: \"梅县区\",\n 441422: \"大埔县\",\n 441423: \"丰顺县\",\n 441424: \"五华县\",\n 441426: \"平远县\",\n 441427: \"蕉岭县\",\n 441481: \"兴宁市\",\n 441502: \"城区\",\n 441521: \"海丰县\",\n 441523: \"陆河县\",\n 441581: \"陆丰市\",\n 441602: \"源城区\",\n 441621: \"紫金县\",\n 441622: \"龙川县\",\n 441623: \"连平县\",\n 441624: \"和平县\",\n 441625: \"东源县\",\n 441702: \"江城区\",\n 441704: \"阳东区\",\n 441721: \"阳西县\",\n 441781: \"阳春市\",\n 441802: \"清城区\",\n 441803: \"清新区\",\n 441821: \"佛冈县\",\n 441823: \"阳山县\",\n 441825: \"连山壮族瑶族自治县\",\n 441826: \"连南瑶族自治县\",\n 441881: \"英德市\",\n 441882: \"连州市\",\n 441901: \"中堂镇\",\n 441903: \"南城街道\",\n 441904: \"长安镇\",\n 441905: \"东坑镇\",\n 441906: \"樟木头镇\",\n 441907: \"莞城街道\",\n 441908: \"石龙镇\",\n 441909: \"桥头镇\",\n 441910: \"万江街道\",\n 441911: \"麻涌镇\",\n 441912: \"虎门镇\",\n 441913: \"谢岗镇\",\n 441914: \"石碣镇\",\n 441915: \"茶山镇\",\n 441916: \"东城街道\",\n 441917: \"洪梅镇\",\n 441918: \"道滘镇\",\n 441919: \"高埗镇\",\n 441920: \"企石镇\",\n 441921: \"凤岗镇\",\n 441922: \"大岭山镇\",\n 441923: \"松山湖\",\n 441924: \"清溪镇\",\n 441925: \"望牛墩镇\",\n 441926: \"厚街镇\",\n 441927: \"常平镇\",\n 441928: \"寮步镇\",\n 441929: \"石排镇\",\n 441930: \"横沥镇\",\n 441931: \"塘厦镇\",\n 441932: \"黄江镇\",\n 441933: \"大朗镇\",\n 441934: \"东莞港\",\n 441935: \"东莞生态园\",\n 441990: \"沙田镇\",\n 442001: \"南头镇\",\n 442002: \"神湾镇\",\n 442003: \"东凤镇\",\n 442004: \"五桂山街道\",\n 442005: \"黄圃镇\",\n 442006: \"小榄镇\",\n 442007: \"石岐街道\",\n 442008: \"横栏镇\",\n 442009: \"三角镇\",\n 442010: \"三乡镇\",\n 442011: \"港口镇\",\n 442012: \"沙溪镇\",\n 442013: \"板芙镇\",\n 442015: \"东升镇\",\n 442016: \"阜沙镇\",\n 442017: \"民众镇\",\n 442018: \"东区街道\",\n 442019: \"火炬开发区街道办事处\",\n 442020: \"西区街道\",\n 442021: \"南区街道\",\n 442022: \"古镇镇\",\n 442023: \"坦洲镇\",\n 442024: \"大涌镇\",\n 442025: \"南朗镇\",\n 445102: \"湘桥区\",\n 445103: \"潮安区\",\n 445122: \"饶平县\",\n 445202: \"榕城区\",\n 445203: \"揭东区\",\n 445222: \"揭西县\",\n 445224: \"惠来县\",\n 445281: \"普宁市\",\n 445302: \"云城区\",\n 445303: \"云安区\",\n 445321: \"新兴县\",\n 445322: \"郁南县\",\n 445381: \"罗定市\",\n 450102: \"兴宁区\",\n 450103: \"青秀区\",\n 450105: \"江南区\",\n 450107: \"西乡塘区\",\n 450108: \"良庆区\",\n 450109: \"邕宁区\",\n 450110: \"武鸣区\",\n 450123: \"隆安县\",\n 450124: \"马山县\",\n 450125: \"上林县\",\n 450126: \"宾阳县\",\n 450127: \"横县\",\n 450202: \"城中区\",\n 450203: \"鱼峰区\",\n 450204: \"柳南区\",\n 450205: \"柳北区\",\n 450206: \"柳江区\",\n 450222: \"柳城县\",\n 450223: \"鹿寨县\",\n 450224: \"融安县\",\n 450225: \"融水苗族自治县\",\n 450226: \"三江侗族自治县\",\n 450302: \"秀峰区\",\n 450303: \"叠彩区\",\n 450304: \"象山区\",\n 450305: \"七星区\",\n 450311: \"雁山区\",\n 450312: \"临桂区\",\n 450321: \"阳朔县\",\n 450323: \"灵川县\",\n 450324: \"全州县\",\n 450325: \"兴安县\",\n 450326: \"永福县\",\n 450327: \"灌阳县\",\n 450328: \"龙胜各族自治县\",\n 450329: \"资源县\",\n 450330: \"平乐县\",\n 450332: \"恭城瑶族自治县\",\n 450381: \"荔浦市\",\n 450403: \"万秀区\",\n 450405: \"长洲区\",\n 450406: \"龙圩区\",\n 450421: \"苍梧县\",\n 450422: \"藤县\",\n 450423: \"蒙山县\",\n 450481: \"岑溪市\",\n 450502: \"海城区\",\n 450503: \"银海区\",\n 450512: \"铁山港区\",\n 450521: \"合浦县\",\n 450602: \"港口区\",\n 450603: \"防城区\",\n 450621: \"上思县\",\n 450681: \"东兴市\",\n 450702: \"钦南区\",\n 450703: \"钦北区\",\n 450721: \"灵山县\",\n 450722: \"浦北县\",\n 450802: \"港北区\",\n 450803: \"港南区\",\n 450804: \"覃塘区\",\n 450821: \"平南县\",\n 450881: \"桂平市\",\n 450902: \"玉州区\",\n 450903: \"福绵区\",\n 450921: \"容县\",\n 450922: \"陆川县\",\n 450923: \"博白县\",\n 450924: \"兴业县\",\n 450981: \"北流市\",\n 451002: \"右江区\",\n 451003: \"田阳区\",\n 451022: \"田东县\",\n 451024: \"德保县\",\n 451026: \"那坡县\",\n 451027: \"凌云县\",\n 451028: \"乐业县\",\n 451029: \"田林县\",\n 451030: \"西林县\",\n 451031: \"隆林各族自治县\",\n 451081: \"靖西市\",\n 451082: \"平果市\",\n 451102: \"八步区\",\n 451103: \"平桂区\",\n 451121: \"昭平县\",\n 451122: \"钟山县\",\n 451123: \"富川瑶族自治县\",\n 451202: \"金城江区\",\n 451203: \"宜州区\",\n 451221: \"南丹县\",\n 451222: \"天峨县\",\n 451223: \"凤山县\",\n 451224: \"东兰县\",\n 451225: \"罗城仫佬族自治县\",\n 451226: \"环江毛南族自治县\",\n 451227: \"巴马瑶族自治县\",\n 451228: \"都安瑶族自治县\",\n 451229: \"大化瑶族自治县\",\n 451302: \"兴宾区\",\n 451321: \"忻城县\",\n 451322: \"象州县\",\n 451323: \"武宣县\",\n 451324: \"金秀瑶族自治县\",\n 451381: \"合山市\",\n 451402: \"江州区\",\n 451421: \"扶绥县\",\n 451422: \"宁明县\",\n 451423: \"龙州县\",\n 451424: \"大新县\",\n 451425: \"天等县\",\n 451481: \"凭祥市\",\n 460105: \"秀英区\",\n 460106: \"龙华区\",\n 460107: \"琼山区\",\n 460108: \"美兰区\",\n 460202: \"海棠区\",\n 460203: \"吉阳区\",\n 460204: \"天涯区\",\n 460205: \"崖州区\",\n 460321: \"西沙区\",\n 460322: \"南沙区\",\n 460401: \"那大镇\",\n 460402: \"和庆镇\",\n 460403: \"南丰镇\",\n 460404: \"大成镇\",\n 460405: \"雅星镇\",\n 460406: \"兰洋镇\",\n 460407: \"光村镇\",\n 460408: \"木棠镇\",\n 460409: \"海头镇\",\n 460410: \"峨蔓镇\",\n 460411: \"王五镇\",\n 460412: \"白马井镇\",\n 460413: \"中和镇\",\n 460414: \"排浦镇\",\n 460415: \"东成镇\",\n 460416: \"新州镇\",\n 460417: \"洋浦经济开发区\",\n 460418: \"华南热作学院\",\n 469001: \"五指山市\",\n 469002: \"琼海市\",\n 469005: \"文昌市\",\n 469006: \"万宁市\",\n 469007: \"东方市\",\n 469021: \"定安县\",\n 469022: \"屯昌县\",\n 469023: \"澄迈县\",\n 469024: \"临高县\",\n 469025: \"白沙黎族自治县\",\n 469026: \"昌江黎族自治县\",\n 469027: \"乐东黎族自治县\",\n 469028: \"陵水黎族自治县\",\n 469029: \"保亭黎族苗族自治县\",\n 469030: \"琼中黎族苗族自治县\",\n 500101: \"万州区\",\n 500102: \"涪陵区\",\n 500103: \"渝中区\",\n 500104: \"大渡口区\",\n 500105: \"江北区\",\n 500106: \"沙坪坝区\",\n 500107: \"九龙坡区\",\n 500108: \"南岸区\",\n 500109: \"北碚区\",\n 500110: \"綦江区\",\n 500111: \"大足区\",\n 500112: \"渝北区\",\n 500113: \"巴南区\",\n 500114: \"黔江区\",\n 500115: \"长寿区\",\n 500116: \"江津区\",\n 500117: \"合川区\",\n 500118: \"永川区\",\n 500119: \"南川区\",\n 500120: \"璧山区\",\n 500151: \"铜梁区\",\n 500152: \"潼南区\",\n 500153: \"荣昌区\",\n 500154: \"开州区\",\n 500155: \"梁平区\",\n 500156: \"武隆区\",\n 500229: \"城口县\",\n 500230: \"丰都县\",\n 500231: \"垫江县\",\n 500233: \"忠县\",\n 500235: \"云阳县\",\n 500236: \"奉节县\",\n 500237: \"巫山县\",\n 500238: \"巫溪县\",\n 500240: \"石柱土家族自治县\",\n 500241: \"秀山土家族苗族自治县\",\n 500242: \"酉阳土家族苗族自治县\",\n 500243: \"彭水苗族土家族自治县\",\n 510104: \"锦江区\",\n 510105: \"青羊区\",\n 510106: \"金牛区\",\n 510107: \"武侯区\",\n 510108: \"成华区\",\n 510112: \"龙泉驿区\",\n 510113: \"青白江区\",\n 510114: \"新都区\",\n 510115: \"温江区\",\n 510116: \"双流区\",\n 510117: \"郫都区\",\n 510121: \"金堂县\",\n 510129: \"大邑县\",\n 510131: \"蒲江县\",\n 510132: \"新津县\",\n 510181: \"都江堰市\",\n 510182: \"彭州市\",\n 510183: \"邛崃市\",\n 510184: \"崇州市\",\n 510185: \"简阳市\",\n 510191: \"高新区\",\n 510302: \"自流井区\",\n 510303: \"贡井区\",\n 510304: \"大安区\",\n 510311: \"沿滩区\",\n 510321: \"荣县\",\n 510322: \"富顺县\",\n 510402: \"东区\",\n 510403: \"西区\",\n 510411: \"仁和区\",\n 510421: \"米易县\",\n 510422: \"盐边县\",\n 510502: \"江阳区\",\n 510503: \"纳溪区\",\n 510504: \"龙马潭区\",\n 510521: \"泸县\",\n 510522: \"合江县\",\n 510524: \"叙永县\",\n 510525: \"古蔺县\",\n 510603: \"旌阳区\",\n 510604: \"罗江区\",\n 510623: \"中江县\",\n 510681: \"广汉市\",\n 510682: \"什邡市\",\n 510683: \"绵竹市\",\n 510703: \"涪城区\",\n 510704: \"游仙区\",\n 510705: \"安州区\",\n 510722: \"三台县\",\n 510723: \"盐亭县\",\n 510725: \"梓潼县\",\n 510726: \"北川羌族自治县\",\n 510727: \"平武县\",\n 510781: \"江油市\",\n 510791: \"高新区\",\n 510802: \"利州区\",\n 510811: \"昭化区\",\n 510812: \"朝天区\",\n 510821: \"旺苍县\",\n 510822: \"青川县\",\n 510823: \"剑阁县\",\n 510824: \"苍溪县\",\n 510903: \"船山区\",\n 510904: \"安居区\",\n 510921: \"蓬溪县\",\n 510923: \"大英县\",\n 510981: \"射洪市\",\n 511002: \"市中区\",\n 511011: \"东兴区\",\n 511024: \"威远县\",\n 511025: \"资中县\",\n 511083: \"隆昌市\",\n 511102: \"市中区\",\n 511111: \"沙湾区\",\n 511112: \"五通桥区\",\n 511113: \"金口河区\",\n 511123: \"犍为县\",\n 511124: \"井研县\",\n 511126: \"夹江县\",\n 511129: \"沐川县\",\n 511132: \"峨边彝族自治县\",\n 511133: \"马边彝族自治县\",\n 511181: \"峨眉山市\",\n 511302: \"顺庆区\",\n 511303: \"高坪区\",\n 511304: \"嘉陵区\",\n 511321: \"南部县\",\n 511322: \"营山县\",\n 511323: \"蓬安县\",\n 511324: \"仪陇县\",\n 511325: \"西充县\",\n 511381: \"阆中市\",\n 511402: \"东坡区\",\n 511403: \"彭山区\",\n 511421: \"仁寿县\",\n 511423: \"洪雅县\",\n 511424: \"丹棱县\",\n 511425: \"青神县\",\n 511502: \"翠屏区\",\n 511503: \"南溪区\",\n 511504: \"叙州区\",\n 511523: \"江安县\",\n 511524: \"长宁县\",\n 511525: \"高县\",\n 511526: \"珙县\",\n 511527: \"筠连县\",\n 511528: \"兴文县\",\n 511529: \"屏山县\",\n 511602: \"广安区\",\n 511603: \"前锋区\",\n 511621: \"岳池县\",\n 511622: \"武胜县\",\n 511623: \"邻水县\",\n 511681: \"华蓥市\",\n 511702: \"通川区\",\n 511703: \"达川区\",\n 511722: \"宣汉县\",\n 511723: \"开江县\",\n 511724: \"大竹县\",\n 511725: \"渠县\",\n 511781: \"万源市\",\n 511802: \"雨城区\",\n 511803: \"名山区\",\n 511822: \"荥经县\",\n 511823: \"汉源县\",\n 511824: \"石棉县\",\n 511825: \"天全县\",\n 511826: \"芦山县\",\n 511827: \"宝兴县\",\n 511902: \"巴州区\",\n 511903: \"恩阳区\",\n 511921: \"通江县\",\n 511922: \"南江县\",\n 511923: \"平昌县\",\n 511971: \"巴中经济开发区\",\n 512002: \"雁江区\",\n 512021: \"安岳县\",\n 512022: \"乐至县\",\n 513201: \"马尔康市\",\n 513221: \"汶川县\",\n 513222: \"理县\",\n 513223: \"茂县\",\n 513224: \"松潘县\",\n 513225: \"九寨沟县\",\n 513226: \"金川县\",\n 513227: \"小金县\",\n 513228: \"黑水县\",\n 513230: \"壤塘县\",\n 513231: \"阿坝县\",\n 513232: \"若尔盖县\",\n 513233: \"红原县\",\n 513301: \"康定市\",\n 513322: \"泸定县\",\n 513323: \"丹巴县\",\n 513324: \"九龙县\",\n 513325: \"雅江县\",\n 513326: \"道孚县\",\n 513327: \"炉霍县\",\n 513328: \"甘孜县\",\n 513329: \"新龙县\",\n 513330: \"德格县\",\n 513331: \"白玉县\",\n 513332: \"石渠县\",\n 513333: \"色达县\",\n 513334: \"理塘县\",\n 513335: \"巴塘县\",\n 513336: \"乡城县\",\n 513337: \"稻城县\",\n 513338: \"得荣县\",\n 513401: \"西昌市\",\n 513422: \"木里藏族自治县\",\n 513423: \"盐源县\",\n 513424: \"德昌县\",\n 513425: \"会理县\",\n 513426: \"会东县\",\n 513427: \"宁南县\",\n 513428: \"普格县\",\n 513429: \"布拖县\",\n 513430: \"金阳县\",\n 513431: \"昭觉县\",\n 513432: \"喜德县\",\n 513433: \"冕宁县\",\n 513434: \"越西县\",\n 513435: \"甘洛县\",\n 513436: \"美姑县\",\n 513437: \"雷波县\",\n 520102: \"南明区\",\n 520103: \"云岩区\",\n 520111: \"花溪区\",\n 520112: \"乌当区\",\n 520113: \"白云区\",\n 520115: \"观山湖区\",\n 520121: \"开阳县\",\n 520122: \"息烽县\",\n 520123: \"修文县\",\n 520181: \"清镇市\",\n 520201: \"钟山区\",\n 520203: \"六枝特区\",\n 520221: \"水城县\",\n 520281: \"盘州市\",\n 520302: \"红花岗区\",\n 520303: \"汇川区\",\n 520304: \"播州区\",\n 520322: \"桐梓县\",\n 520323: \"绥阳县\",\n 520324: \"正安县\",\n 520325: \"道真仡佬族苗族自治县\",\n 520326: \"务川仡佬族苗族自治县\",\n 520327: \"凤冈县\",\n 520328: \"湄潭县\",\n 520329: \"余庆县\",\n 520330: \"习水县\",\n 520381: \"赤水市\",\n 520382: \"仁怀市\",\n 520402: \"西秀区\",\n 520403: \"平坝区\",\n 520422: \"普定县\",\n 520423: \"镇宁布依族苗族自治县\",\n 520424: \"关岭布依族苗族自治县\",\n 520425: \"紫云苗族布依族自治县\",\n 520502: \"七星关区\",\n 520521: \"大方县\",\n 520522: \"黔西县\",\n 520523: \"金沙县\",\n 520524: \"织金县\",\n 520525: \"纳雍县\",\n 520526: \"威宁彝族回族苗族自治县\",\n 520527: \"赫章县\",\n 520602: \"碧江区\",\n 520603: \"万山区\",\n 520621: \"江口县\",\n 520622: \"玉屏侗族自治县\",\n 520623: \"石阡县\",\n 520624: \"思南县\",\n 520625: \"印江土家族苗族自治县\",\n 520626: \"德江县\",\n 520627: \"沿河土家族自治县\",\n 520628: \"松桃苗族自治县\",\n 522301: \"兴义市\",\n 522302: \"兴仁市\",\n 522323: \"普安县\",\n 522324: \"晴隆县\",\n 522325: \"贞丰县\",\n 522326: \"望谟县\",\n 522327: \"册亨县\",\n 522328: \"安龙县\",\n 522601: \"凯里市\",\n 522622: \"黄平县\",\n 522623: \"施秉县\",\n 522624: \"三穗县\",\n 522625: \"镇远县\",\n 522626: \"岑巩县\",\n 522627: \"天柱县\",\n 522628: \"锦屏县\",\n 522629: \"剑河县\",\n 522630: \"台江县\",\n 522631: \"黎平县\",\n 522632: \"榕江县\",\n 522633: \"从江县\",\n 522634: \"雷山县\",\n 522635: \"麻江县\",\n 522636: \"丹寨县\",\n 522701: \"都匀市\",\n 522702: \"福泉市\",\n 522722: \"荔波县\",\n 522723: \"贵定县\",\n 522725: \"瓮安县\",\n 522726: \"独山县\",\n 522727: \"平塘县\",\n 522728: \"罗甸县\",\n 522729: \"长顺县\",\n 522730: \"龙里县\",\n 522731: \"惠水县\",\n 522732: \"三都水族自治县\",\n 530102: \"五华区\",\n 530103: \"盘龙区\",\n 530111: \"官渡区\",\n 530112: \"西山区\",\n 530113: \"东川区\",\n 530114: \"呈贡区\",\n 530115: \"晋宁区\",\n 530124: \"富民县\",\n 530125: \"宜良县\",\n 530126: \"石林彝族自治县\",\n 530127: \"嵩明县\",\n 530128: \"禄劝彝族苗族自治县\",\n 530129: \"寻甸回族彝族自治县\",\n 530181: \"安宁市\",\n 530302: \"麒麟区\",\n 530303: \"沾益区\",\n 530304: \"马龙区\",\n 530322: \"陆良县\",\n 530323: \"师宗县\",\n 530324: \"罗平县\",\n 530325: \"富源县\",\n 530326: \"会泽县\",\n 530381: \"宣威市\",\n 530402: \"红塔区\",\n 530403: \"江川区\",\n 530423: \"通海县\",\n 530424: \"华宁县\",\n 530425: \"易门县\",\n 530426: \"峨山彝族自治县\",\n 530427: \"新平彝族傣族自治县\",\n 530428: \"元江哈尼族彝族傣族自治县\",\n 530481: \"澄江市\",\n 530502: \"隆阳区\",\n 530521: \"施甸县\",\n 530523: \"龙陵县\",\n 530524: \"昌宁县\",\n 530581: \"腾冲市\",\n 530602: \"昭阳区\",\n 530621: \"鲁甸县\",\n 530622: \"巧家县\",\n 530623: \"盐津县\",\n 530624: \"大关县\",\n 530625: \"永善县\",\n 530626: \"绥江县\",\n 530627: \"镇雄县\",\n 530628: \"彝良县\",\n 530629: \"威信县\",\n 530681: \"水富市\",\n 530702: \"古城区\",\n 530721: \"玉龙纳西族自治县\",\n 530722: \"永胜县\",\n 530723: \"华坪县\",\n 530724: \"宁蒗彝族自治县\",\n 530802: \"思茅区\",\n 530821: \"宁洱哈尼族彝族自治县\",\n 530822: \"墨江哈尼族自治县\",\n 530823: \"景东彝族自治县\",\n 530824: \"景谷傣族彝族自治县\",\n 530825: \"镇沅彝族哈尼族拉祜族自治县\",\n 530826: \"江城哈尼族彝族自治县\",\n 530827: \"孟连傣族拉祜族佤族自治县\",\n 530828: \"澜沧拉祜族自治县\",\n 530829: \"西盟佤族自治县\",\n 530902: \"临翔区\",\n 530921: \"凤庆县\",\n 530922: \"云县\",\n 530923: \"永德县\",\n 530924: \"镇康县\",\n 530925: \"双江拉祜族佤族布朗族傣族自治县\",\n 530926: \"耿马傣族佤族自治县\",\n 530927: \"沧源佤族自治县\",\n 532301: \"楚雄市\",\n 532322: \"双柏县\",\n 532323: \"牟定县\",\n 532324: \"南华县\",\n 532325: \"姚安县\",\n 532326: \"大姚县\",\n 532327: \"永仁县\",\n 532328: \"元谋县\",\n 532329: \"武定县\",\n 532331: \"禄丰县\",\n 532501: \"个旧市\",\n 532502: \"开远市\",\n 532503: \"蒙自市\",\n 532504: \"弥勒市\",\n 532523: \"屏边苗族自治县\",\n 532524: \"建水县\",\n 532525: \"石屏县\",\n 532527: \"泸西县\",\n 532528: \"元阳县\",\n 532529: \"红河县\",\n 532530: \"金平苗族瑶族傣族自治县\",\n 532531: \"绿春县\",\n 532532: \"河口瑶族自治县\",\n 532601: \"文山市\",\n 532622: \"砚山县\",\n 532623: \"西畴县\",\n 532624: \"麻栗坡县\",\n 532625: \"马关县\",\n 532626: \"丘北县\",\n 532627: \"广南县\",\n 532628: \"富宁县\",\n 532801: \"景洪市\",\n 532822: \"勐海县\",\n 532823: \"勐腊县\",\n 532901: \"大理市\",\n 532922: \"漾濞彝族自治县\",\n 532923: \"祥云县\",\n 532924: \"宾川县\",\n 532925: \"弥渡县\",\n 532926: \"南涧彝族自治县\",\n 532927: \"巍山彝族回族自治县\",\n 532928: \"永平县\",\n 532929: \"云龙县\",\n 532930: \"洱源县\",\n 532931: \"剑川县\",\n 532932: \"鹤庆县\",\n 533102: \"瑞丽市\",\n 533103: \"芒市\",\n 533122: \"梁河县\",\n 533123: \"盈江县\",\n 533124: \"陇川县\",\n 533301: \"泸水市\",\n 533323: \"福贡县\",\n 533324: \"贡山独龙族怒族自治县\",\n 533325: \"兰坪白族普米族自治县\",\n 533401: \"香格里拉市\",\n 533422: \"德钦县\",\n 533423: \"维西傈僳族自治县\",\n 540102: \"城关区\",\n 540103: \"堆龙德庆区\",\n 540104: \"达孜区\",\n 540121: \"林周县\",\n 540122: \"当雄县\",\n 540123: \"尼木县\",\n 540124: \"曲水县\",\n 540127: \"墨竹工卡县\",\n 540202: \"桑珠孜区\",\n 540221: \"南木林县\",\n 540222: \"江孜县\",\n 540223: \"定日县\",\n 540224: \"萨迦县\",\n 540225: \"拉孜县\",\n 540226: \"昂仁县\",\n 540227: \"谢通门县\",\n 540228: \"白朗县\",\n 540229: \"仁布县\",\n 540230: \"康马县\",\n 540231: \"定结县\",\n 540232: \"仲巴县\",\n 540233: \"亚东县\",\n 540234: \"吉隆县\",\n 540235: \"聂拉木县\",\n 540236: \"萨嘎县\",\n 540237: \"岗巴县\",\n 540302: \"卡若区\",\n 540321: \"江达县\",\n 540322: \"贡觉县\",\n 540323: \"类乌齐县\",\n 540324: \"丁青县\",\n 540325: \"察雅县\",\n 540326: \"八宿县\",\n 540327: \"左贡县\",\n 540328: \"芒康县\",\n 540329: \"洛隆县\",\n 540330: \"边坝县\",\n 540402: \"巴宜区\",\n 540421: \"工布江达县\",\n 540422: \"米林县\",\n 540423: \"墨脱县\",\n 540424: \"波密县\",\n 540425: \"察隅县\",\n 540426: \"朗县\",\n 540502: \"乃东区\",\n 540521: \"扎囊县\",\n 540522: \"贡嘎县\",\n 540523: \"桑日县\",\n 540524: \"琼结县\",\n 540525: \"曲松县\",\n 540526: \"措美县\",\n 540527: \"洛扎县\",\n 540528: \"加查县\",\n 540529: \"隆子县\",\n 540530: \"错那县\",\n 540531: \"浪卡子县\",\n 540602: \"色尼区\",\n 540621: \"嘉黎县\",\n 540622: \"比如县\",\n 540623: \"聂荣县\",\n 540624: \"安多县\",\n 540625: \"申扎县\",\n 540626: \"索县\",\n 540627: \"班戈县\",\n 540628: \"巴青县\",\n 540629: \"尼玛县\",\n 540630: \"双湖县\",\n 542521: \"普兰县\",\n 542522: \"札达县\",\n 542523: \"噶尔县\",\n 542524: \"日土县\",\n 542525: \"革吉县\",\n 542526: \"改则县\",\n 542527: \"措勤县\",\n 610102: \"新城区\",\n 610103: \"碑林区\",\n 610104: \"莲湖区\",\n 610111: \"灞桥区\",\n 610112: \"未央区\",\n 610113: \"雁塔区\",\n 610114: \"阎良区\",\n 610115: \"临潼区\",\n 610116: \"长安区\",\n 610117: \"高陵区\",\n 610118: \"鄠邑区\",\n 610122: \"蓝田县\",\n 610124: \"周至县\",\n 610202: \"王益区\",\n 610203: \"印台区\",\n 610204: \"耀州区\",\n 610222: \"宜君县\",\n 610302: \"渭滨区\",\n 610303: \"金台区\",\n 610304: \"陈仓区\",\n 610322: \"凤翔县\",\n 610323: \"岐山县\",\n 610324: \"扶风县\",\n 610326: \"眉县\",\n 610327: \"陇县\",\n 610328: \"千阳县\",\n 610329: \"麟游县\",\n 610330: \"凤县\",\n 610331: \"太白县\",\n 610402: \"秦都区\",\n 610403: \"杨陵区\",\n 610404: \"渭城区\",\n 610422: \"三原县\",\n 610423: \"泾阳县\",\n 610424: \"乾县\",\n 610425: \"礼泉县\",\n 610426: \"永寿县\",\n 610428: \"长武县\",\n 610429: \"旬邑县\",\n 610430: \"淳化县\",\n 610431: \"武功县\",\n 610481: \"兴平市\",\n 610482: \"彬州市\",\n 610502: \"临渭区\",\n 610503: \"华州区\",\n 610522: \"潼关县\",\n 610523: \"大荔县\",\n 610524: \"合阳县\",\n 610525: \"澄城县\",\n 610526: \"蒲城县\",\n 610527: \"白水县\",\n 610528: \"富平县\",\n 610581: \"韩城市\",\n 610582: \"华阴市\",\n 610602: \"宝塔区\",\n 610603: \"安塞区\",\n 610621: \"延长县\",\n 610622: \"延川县\",\n 610625: \"志丹县\",\n 610626: \"吴起县\",\n 610627: \"甘泉县\",\n 610628: \"富县\",\n 610629: \"洛川县\",\n 610630: \"宜川县\",\n 610631: \"黄龙县\",\n 610632: \"黄陵县\",\n 610681: \"子长市\",\n 610702: \"汉台区\",\n 610703: \"南郑区\",\n 610722: \"城固县\",\n 610723: \"洋县\",\n 610724: \"西乡县\",\n 610725: \"勉县\",\n 610726: \"宁强县\",\n 610727: \"略阳县\",\n 610728: \"镇巴县\",\n 610729: \"留坝县\",\n 610730: \"佛坪县\",\n 610802: \"榆阳区\",\n 610803: \"横山区\",\n 610822: \"府谷县\",\n 610824: \"靖边县\",\n 610825: \"定边县\",\n 610826: \"绥德县\",\n 610827: \"米脂县\",\n 610828: \"佳县\",\n 610829: \"吴堡县\",\n 610830: \"清涧县\",\n 610831: \"子洲县\",\n 610881: \"神木市\",\n 610902: \"汉滨区\",\n 610921: \"汉阴县\",\n 610922: \"石泉县\",\n 610923: \"宁陕县\",\n 610924: \"紫阳县\",\n 610925: \"岚皋县\",\n 610926: \"平利县\",\n 610927: \"镇坪县\",\n 610928: \"旬阳县\",\n 610929: \"白河县\",\n 611002: \"商州区\",\n 611021: \"洛南县\",\n 611022: \"丹凤县\",\n 611023: \"商南县\",\n 611024: \"山阳县\",\n 611025: \"镇安县\",\n 611026: \"柞水县\",\n 620102: \"城关区\",\n 620103: \"七里河区\",\n 620104: \"西固区\",\n 620105: \"安宁区\",\n 620111: \"红古区\",\n 620121: \"永登县\",\n 620122: \"皋兰县\",\n 620123: \"榆中县\",\n 620171: \"兰州新区\",\n 620201: \"市辖区\",\n 620290: \"雄关区\",\n 620291: \"长城区\",\n 620292: \"镜铁区\",\n 620293: \"新城镇\",\n 620294: \"峪泉镇\",\n 620295: \"文殊镇\",\n 620302: \"金川区\",\n 620321: \"永昌县\",\n 620402: \"白银区\",\n 620403: \"平川区\",\n 620421: \"靖远县\",\n 620422: \"会宁县\",\n 620423: \"景泰县\",\n 620502: \"秦州区\",\n 620503: \"麦积区\",\n 620521: \"清水县\",\n 620522: \"秦安县\",\n 620523: \"甘谷县\",\n 620524: \"武山县\",\n 620525: \"张家川回族自治县\",\n 620602: \"凉州区\",\n 620621: \"民勤县\",\n 620622: \"古浪县\",\n 620623: \"天祝藏族自治县\",\n 620702: \"甘州区\",\n 620721: \"肃南裕固族自治县\",\n 620722: \"民乐县\",\n 620723: \"临泽县\",\n 620724: \"高台县\",\n 620725: \"山丹县\",\n 620802: \"崆峒区\",\n 620821: \"泾川县\",\n 620822: \"灵台县\",\n 620823: \"崇信县\",\n 620825: \"庄浪县\",\n 620826: \"静宁县\",\n 620881: \"华亭市\",\n 620902: \"肃州区\",\n 620921: \"金塔县\",\n 620922: \"瓜州县\",\n 620923: \"肃北蒙古族自治县\",\n 620924: \"阿克塞哈萨克族自治县\",\n 620981: \"玉门市\",\n 620982: \"敦煌市\",\n 621002: \"西峰区\",\n 621021: \"庆城县\",\n 621022: \"环县\",\n 621023: \"华池县\",\n 621024: \"合水县\",\n 621025: \"正宁县\",\n 621026: \"宁县\",\n 621027: \"镇原县\",\n 621102: \"安定区\",\n 621121: \"通渭县\",\n 621122: \"陇西县\",\n 621123: \"渭源县\",\n 621124: \"临洮县\",\n 621125: \"漳县\",\n 621126: \"岷县\",\n 621202: \"武都区\",\n 621221: \"成县\",\n 621222: \"文县\",\n 621223: \"宕昌县\",\n 621224: \"康县\",\n 621225: \"西和县\",\n 621226: \"礼县\",\n 621227: \"徽县\",\n 621228: \"两当县\",\n 622901: \"临夏市\",\n 622921: \"临夏县\",\n 622922: \"康乐县\",\n 622923: \"永靖县\",\n 622924: \"广河县\",\n 622925: \"和政县\",\n 622926: \"东乡族自治县\",\n 622927: \"积石山保安族东乡族撒拉族自治县\",\n 623001: \"合作市\",\n 623021: \"临潭县\",\n 623022: \"卓尼县\",\n 623023: \"舟曲县\",\n 623024: \"迭部县\",\n 623025: \"玛曲县\",\n 623026: \"碌曲县\",\n 623027: \"夏河县\",\n 630102: \"城东区\",\n 630103: \"城中区\",\n 630104: \"城西区\",\n 630105: \"城北区\",\n 630106: \"湟中区\",\n 630121: \"大通回族土族自治县\",\n 630123: \"湟源县\",\n 630202: \"乐都区\",\n 630203: \"平安区\",\n 630222: \"民和回族土族自治县\",\n 630223: \"互助土族自治县\",\n 630224: \"化隆回族自治县\",\n 630225: \"循化撒拉族自治县\",\n 632221: \"门源回族自治县\",\n 632222: \"祁连县\",\n 632223: \"海晏县\",\n 632224: \"刚察县\",\n 632321: \"同仁县\",\n 632322: \"尖扎县\",\n 632323: \"泽库县\",\n 632324: \"河南蒙古族自治县\",\n 632521: \"共和县\",\n 632522: \"同德县\",\n 632523: \"贵德县\",\n 632524: \"兴海县\",\n 632525: \"贵南县\",\n 632621: \"玛沁县\",\n 632622: \"班玛县\",\n 632623: \"甘德县\",\n 632624: \"达日县\",\n 632625: \"久治县\",\n 632626: \"玛多县\",\n 632701: \"玉树市\",\n 632722: \"杂多县\",\n 632723: \"称多县\",\n 632724: \"治多县\",\n 632725: \"囊谦县\",\n 632726: \"曲麻莱县\",\n 632801: \"格尔木市\",\n 632802: \"德令哈市\",\n 632803: \"茫崖市\",\n 632821: \"乌兰县\",\n 632822: \"都兰县\",\n 632823: \"天峻县\",\n 632857: \"大柴旦行政委员会\",\n 640104: \"兴庆区\",\n 640105: \"西夏区\",\n 640106: \"金凤区\",\n 640121: \"永宁县\",\n 640122: \"贺兰县\",\n 640181: \"灵武市\",\n 640202: \"大武口区\",\n 640205: \"惠农区\",\n 640221: \"平罗县\",\n 640302: \"利通区\",\n 640303: \"红寺堡区\",\n 640323: \"盐池县\",\n 640324: \"同心县\",\n 640381: \"青铜峡市\",\n 640402: \"原州区\",\n 640422: \"西吉县\",\n 640423: \"隆德县\",\n 640424: \"泾源县\",\n 640425: \"彭阳县\",\n 640502: \"沙坡头区\",\n 640521: \"中宁县\",\n 640522: \"海原县\",\n 650102: \"天山区\",\n 650103: \"沙依巴克区\",\n 650104: \"新市区\",\n 650105: \"水磨沟区\",\n 650106: \"头屯河区\",\n 650107: \"达坂城区\",\n 650109: \"米东区\",\n 650121: \"乌鲁木齐县\",\n 650202: \"独山子区\",\n 650203: \"克拉玛依区\",\n 650204: \"白碱滩区\",\n 650205: \"乌尔禾区\",\n 650402: \"高昌区\",\n 650421: \"鄯善县\",\n 650422: \"托克逊县\",\n 650502: \"伊州区\",\n 650521: \"巴里坤哈萨克自治县\",\n 650522: \"伊吾县\",\n 652301: \"昌吉市\",\n 652302: \"阜康市\",\n 652323: \"呼图壁县\",\n 652324: \"玛纳斯县\",\n 652325: \"奇台县\",\n 652327: \"吉木萨尔县\",\n 652328: \"木垒哈萨克自治县\",\n 652701: \"博乐市\",\n 652702: \"阿拉山口市\",\n 652722: \"精河县\",\n 652723: \"温泉县\",\n 652801: \"库尔勒市\",\n 652822: \"轮台县\",\n 652823: \"尉犁县\",\n 652824: \"若羌县\",\n 652825: \"且末县\",\n 652826: \"焉耆回族自治县\",\n 652827: \"和静县\",\n 652828: \"和硕县\",\n 652829: \"博湖县\",\n 652901: \"阿克苏市\",\n 652902: \"库车市\",\n 652922: \"温宿县\",\n 652924: \"沙雅县\",\n 652925: \"新和县\",\n 652926: \"拜城县\",\n 652927: \"乌什县\",\n 652928: \"阿瓦提县\",\n 652929: \"柯坪县\",\n 653001: \"阿图什市\",\n 653022: \"阿克陶县\",\n 653023: \"阿合奇县\",\n 653024: \"乌恰县\",\n 653101: \"喀什市\",\n 653121: \"疏附县\",\n 653122: \"疏勒县\",\n 653123: \"英吉沙县\",\n 653124: \"泽普县\",\n 653125: \"莎车县\",\n 653126: \"叶城县\",\n 653127: \"麦盖提县\",\n 653128: \"岳普湖县\",\n 653129: \"伽师县\",\n 653130: \"巴楚县\",\n 653131: \"塔什库尔干塔吉克自治县\",\n 653201: \"和田市\",\n 653221: \"和田县\",\n 653222: \"墨玉县\",\n 653223: \"皮山县\",\n 653224: \"洛浦县\",\n 653225: \"策勒县\",\n 653226: \"于田县\",\n 653227: \"民丰县\",\n 654002: \"伊宁市\",\n 654003: \"奎屯市\",\n 654004: \"霍尔果斯市\",\n 654021: \"伊宁县\",\n 654022: \"察布查尔锡伯自治县\",\n 654023: \"霍城县\",\n 654024: \"巩留县\",\n 654025: \"新源县\",\n 654026: \"昭苏县\",\n 654027: \"特克斯县\",\n 654028: \"尼勒克县\",\n 654201: \"塔城市\",\n 654202: \"乌苏市\",\n 654221: \"额敏县\",\n 654223: \"沙湾县\",\n 654224: \"托里县\",\n 654225: \"裕民县\",\n 654226: \"和布克赛尔蒙古自治县\",\n 654301: \"阿勒泰市\",\n 654321: \"布尔津县\",\n 654322: \"富蕴县\",\n 654323: \"福海县\",\n 654324: \"哈巴河县\",\n 654325: \"青河县\",\n 654326: \"吉木乃县\",\n 659001: \"石河子市\",\n 659002: \"阿拉尔市\",\n 659003: \"图木舒克市\",\n 659004: \"五家渠市\",\n 659005: \"北屯市\",\n 659006: \"铁门关市\",\n 659007: \"双河市\",\n 659008: \"可克达拉市\",\n 659009: \"昆玉市\",\n 659010: \"胡杨河市\",\n 710101: \"中正区\",\n 710102: \"大同区\",\n 710103: \"中山区\",\n 710104: \"松山区\",\n 710105: \"大安区\",\n 710106: \"万华区\",\n 710107: \"信义区\",\n 710108: \"士林区\",\n 710109: \"北投区\",\n 710110: \"内湖区\",\n 710111: \"南港区\",\n 710112: \"文山区\",\n 710199: \"其它区\",\n 710201: \"新兴区\",\n 710202: \"前金区\",\n 710203: \"芩雅区\",\n 710204: \"盐埕区\",\n 710205: \"鼓山区\",\n 710206: \"旗津区\",\n 710207: \"前镇区\",\n 710208: \"三民区\",\n 710209: \"左营区\",\n 710210: \"楠梓区\",\n 710211: \"小港区\",\n 710241: \"苓雅区\",\n 710242: \"仁武区\",\n 710243: \"大社区\",\n 710244: \"冈山区\",\n 710245: \"路竹区\",\n 710246: \"阿莲区\",\n 710247: \"田寮区\",\n 710248: \"燕巢区\",\n 710249: \"桥头区\",\n 710250: \"梓官区\",\n 710251: \"弥陀区\",\n 710252: \"永安区\",\n 710253: \"湖内区\",\n 710254: \"凤山区\",\n 710255: \"大寮区\",\n 710256: \"林园区\",\n 710257: \"鸟松区\",\n 710258: \"大树区\",\n 710259: \"旗山区\",\n 710260: \"美浓区\",\n 710261: \"六龟区\",\n 710262: \"内门区\",\n 710263: \"杉林区\",\n 710264: \"甲仙区\",\n 710265: \"桃源区\",\n 710266: \"那玛夏区\",\n 710267: \"茂林区\",\n 710268: \"茄萣区\",\n 710299: \"其它区\",\n 710301: \"中西区\",\n 710302: \"东区\",\n 710303: \"南区\",\n 710304: \"北区\",\n 710305: \"安平区\",\n 710306: \"安南区\",\n 710339: \"永康区\",\n 710340: \"归仁区\",\n 710341: \"新化区\",\n 710342: \"左镇区\",\n 710343: \"玉井区\",\n 710344: \"楠西区\",\n 710345: \"南化区\",\n 710346: \"仁德区\",\n 710347: \"关庙区\",\n 710348: \"龙崎区\",\n 710349: \"官田区\",\n 710350: \"麻豆区\",\n 710351: \"佳里区\",\n 710352: \"西港区\",\n 710353: \"七股区\",\n 710354: \"将军区\",\n 710355: \"学甲区\",\n 710356: \"北门区\",\n 710357: \"新营区\",\n 710358: \"后壁区\",\n 710359: \"白河区\",\n 710360: \"东山区\",\n 710361: \"六甲区\",\n 710362: \"下营区\",\n 710363: \"柳营区\",\n 710364: \"盐水区\",\n 710365: \"善化区\",\n 710366: \"大内区\",\n 710367: \"山上区\",\n 710368: \"新市区\",\n 710369: \"安定区\",\n 710399: \"其它区\",\n 710401: \"中区\",\n 710402: \"东区\",\n 710403: \"南区\",\n 710404: \"西区\",\n 710405: \"北区\",\n 710406: \"北屯区\",\n 710407: \"西屯区\",\n 710408: \"南屯区\",\n 710431: \"太平区\",\n 710432: \"大里区\",\n 710433: \"雾峰区\",\n 710434: \"乌日区\",\n 710435: \"丰原区\",\n 710436: \"后里区\",\n 710437: \"石冈区\",\n 710438: \"东势区\",\n 710439: \"和平区\",\n 710440: \"新社区\",\n 710441: \"潭子区\",\n 710442: \"大雅区\",\n 710443: \"神冈区\",\n 710444: \"大肚区\",\n 710445: \"沙鹿区\",\n 710446: \"龙井区\",\n 710447: \"梧栖区\",\n 710448: \"清水区\",\n 710449: \"大甲区\",\n 710450: \"外埔区\",\n 710451: \"大安区\",\n 710499: \"其它区\",\n 710507: \"金沙镇\",\n 710508: \"金湖镇\",\n 710509: \"金宁乡\",\n 710510: \"金城镇\",\n 710511: \"烈屿乡\",\n 710512: \"乌坵乡\",\n 710614: \"南投市\",\n 710615: \"中寮乡\",\n 710616: \"草屯镇\",\n 710617: \"国姓乡\",\n 710618: \"埔里镇\",\n 710619: \"仁爱乡\",\n 710620: \"名间乡\",\n 710621: \"集集镇\",\n 710622: \"水里乡\",\n 710623: \"鱼池乡\",\n 710624: \"信义乡\",\n 710625: \"竹山镇\",\n 710626: \"鹿谷乡\",\n 710701: \"仁爱区\",\n 710702: \"信义区\",\n 710703: \"中正区\",\n 710704: \"中山区\",\n 710705: \"安乐区\",\n 710706: \"暖暖区\",\n 710707: \"七堵区\",\n 710799: \"其它区\",\n 710801: \"东区\",\n 710802: \"北区\",\n 710803: \"香山区\",\n 710899: \"其它区\",\n 710901: \"东区\",\n 710902: \"西区\",\n 710999: \"其它区\",\n 711130: \"万里区\",\n 711132: \"板桥区\",\n 711133: \"汐止区\",\n 711134: \"深坑区\",\n 711135: \"石碇区\",\n 711136: \"瑞芳区\",\n 711137: \"平溪区\",\n 711138: \"双溪区\",\n 711139: \"贡寮区\",\n 711140: \"新店区\",\n 711141: \"坪林区\",\n 711142: \"乌来区\",\n 711143: \"永和区\",\n 711144: \"中和区\",\n 711145: \"土城区\",\n 711146: \"三峡区\",\n 711147: \"树林区\",\n 711148: \"莺歌区\",\n 711149: \"三重区\",\n 711150: \"新庄区\",\n 711151: \"泰山区\",\n 711152: \"林口区\",\n 711153: \"芦洲区\",\n 711154: \"五股区\",\n 711155: \"八里区\",\n 711156: \"淡水区\",\n 711157: \"三芝区\",\n 711158: \"石门区\",\n 711287: \"宜兰市\",\n 711288: \"头城镇\",\n 711289: \"礁溪乡\",\n 711290: \"壮围乡\",\n 711291: \"员山乡\",\n 711292: \"罗东镇\",\n 711293: \"三星乡\",\n 711294: \"大同乡\",\n 711295: \"五结乡\",\n 711296: \"冬山乡\",\n 711297: \"苏澳镇\",\n 711298: \"南澳乡\",\n 711299: \"钓鱼台\",\n 711387: \"竹北市\",\n 711388: \"湖口乡\",\n 711389: \"新丰乡\",\n 711390: \"新埔镇\",\n 711391: \"关西镇\",\n 711392: \"芎林乡\",\n 711393: \"宝山乡\",\n 711394: \"竹东镇\",\n 711395: \"五峰乡\",\n 711396: \"横山乡\",\n 711397: \"尖石乡\",\n 711398: \"北埔乡\",\n 711399: \"峨眉乡\",\n 711414: \"中坜区\",\n 711415: \"平镇区\",\n 711417: \"杨梅区\",\n 711418: \"新屋区\",\n 711419: \"观音区\",\n 711420: \"桃园区\",\n 711421: \"龟山区\",\n 711422: \"八德区\",\n 711423: \"大溪区\",\n 711425: \"大园区\",\n 711426: \"芦竹区\",\n 711487: \"中坜市\",\n 711488: \"平镇市\",\n 711489: \"龙潭乡\",\n 711490: \"杨梅市\",\n 711491: \"新屋乡\",\n 711492: \"观音乡\",\n 711493: \"桃园市\",\n 711494: \"龟山乡\",\n 711495: \"八德市\",\n 711496: \"大溪镇\",\n 711497: \"复兴乡\",\n 711498: \"大园乡\",\n 711499: \"芦竹乡\",\n 711520: \"头份市\",\n 711582: \"竹南镇\",\n 711583: \"头份镇\",\n 711584: \"三湾乡\",\n 711585: \"南庄乡\",\n 711586: \"狮潭乡\",\n 711587: \"后龙镇\",\n 711588: \"通霄镇\",\n 711589: \"苑里镇\",\n 711590: \"苗栗市\",\n 711591: \"造桥乡\",\n 711592: \"头屋乡\",\n 711593: \"公馆乡\",\n 711594: \"大湖乡\",\n 711595: \"泰安乡\",\n 711596: \"铜锣乡\",\n 711597: \"三义乡\",\n 711598: \"西湖乡\",\n 711599: \"卓兰镇\",\n 711736: \"员林市\",\n 711774: \"彰化市\",\n 711775: \"芬园乡\",\n 711776: \"花坛乡\",\n 711777: \"秀水乡\",\n 711778: \"鹿港镇\",\n 711779: \"福兴乡\",\n 711780: \"线西乡\",\n 711781: \"和美镇\",\n 711782: \"伸港乡\",\n 711783: \"员林镇\",\n 711784: \"社头乡\",\n 711785: \"永靖乡\",\n 711786: \"埔心乡\",\n 711787: \"溪湖镇\",\n 711788: \"大村乡\",\n 711789: \"埔盐乡\",\n 711790: \"田中镇\",\n 711791: \"北斗镇\",\n 711792: \"田尾乡\",\n 711793: \"埤头乡\",\n 711794: \"溪州乡\",\n 711795: \"竹塘乡\",\n 711796: \"二林镇\",\n 711797: \"大城乡\",\n 711798: \"芳苑乡\",\n 711799: \"二水乡\",\n 711982: \"番路乡\",\n 711983: \"梅山乡\",\n 711984: \"竹崎乡\",\n 711985: \"阿里山乡\",\n 711986: \"中埔乡\",\n 711987: \"大埔乡\",\n 711988: \"水上乡\",\n 711989: \"鹿草乡\",\n 711990: \"太保市\",\n 711991: \"朴子市\",\n 711992: \"东石乡\",\n 711993: \"六脚乡\",\n 711994: \"新港乡\",\n 711995: \"民雄乡\",\n 711996: \"大林镇\",\n 711997: \"溪口乡\",\n 711998: \"义竹乡\",\n 711999: \"布袋镇\",\n 712180: \"斗南镇\",\n 712181: \"大埤乡\",\n 712182: \"虎尾镇\",\n 712183: \"土库镇\",\n 712184: \"褒忠乡\",\n 712185: \"东势乡\",\n 712186: \"台西乡\",\n 712187: \"仑背乡\",\n 712188: \"麦寮乡\",\n 712189: \"斗六市\",\n 712190: \"林内乡\",\n 712191: \"古坑乡\",\n 712192: \"莿桐乡\",\n 712193: \"西螺镇\",\n 712194: \"二仑乡\",\n 712195: \"北港镇\",\n 712196: \"水林乡\",\n 712197: \"口湖乡\",\n 712198: \"四湖乡\",\n 712199: \"元长乡\",\n 712451: \"崁顶乡\",\n 712467: \"屏东市\",\n 712468: \"三地门乡\",\n 712469: \"雾台乡\",\n 712470: \"玛家乡\",\n 712471: \"九如乡\",\n 712472: \"里港乡\",\n 712473: \"高树乡\",\n 712474: \"盐埔乡\",\n 712475: \"长治乡\",\n 712476: \"麟洛乡\",\n 712477: \"竹田乡\",\n 712478: \"内埔乡\",\n 712479: \"万丹乡\",\n 712480: \"潮州镇\",\n 712481: \"泰武乡\",\n 712482: \"来义乡\",\n 712483: \"万峦乡\",\n 712484: \"莰顶乡\",\n 712485: \"新埤乡\",\n 712486: \"南州乡\",\n 712487: \"林边乡\",\n 712488: \"东港镇\",\n 712489: \"琉球乡\",\n 712490: \"佳冬乡\",\n 712491: \"新园乡\",\n 712492: \"枋寮乡\",\n 712493: \"枋山乡\",\n 712494: \"春日乡\",\n 712495: \"狮子乡\",\n 712496: \"车城乡\",\n 712497: \"牡丹乡\",\n 712498: \"恒春镇\",\n 712499: \"满州乡\",\n 712584: \"台东市\",\n 712585: \"绿岛乡\",\n 712586: \"兰屿乡\",\n 712587: \"延平乡\",\n 712588: \"卑南乡\",\n 712589: \"鹿野乡\",\n 712590: \"关山镇\",\n 712591: \"海端乡\",\n 712592: \"池上乡\",\n 712593: \"东河乡\",\n 712594: \"成功镇\",\n 712595: \"长滨乡\",\n 712596: \"金峰乡\",\n 712597: \"大武乡\",\n 712598: \"达仁乡\",\n 712599: \"太麻里乡\",\n 712686: \"花莲市\",\n 712687: \"新城乡\",\n 712688: \"太鲁阁\",\n 712689: \"秀林乡\",\n 712690: \"吉安乡\",\n 712691: \"寿丰乡\",\n 712692: \"凤林镇\",\n 712693: \"光复乡\",\n 712694: \"丰滨乡\",\n 712695: \"瑞穗乡\",\n 712696: \"万荣乡\",\n 712697: \"玉里镇\",\n 712698: \"卓溪乡\",\n 712699: \"富里乡\",\n 712794: \"马公市\",\n 712795: \"西屿乡\",\n 712796: \"望安乡\",\n 712797: \"七美乡\",\n 712798: \"白沙乡\",\n 712799: \"湖西乡\",\n 712896: \"南竿乡\",\n 712897: \"北竿乡\",\n 712898: \"东引乡\",\n 712899: \"莒光乡\",\n 810101: \"中西区\",\n 810102: \"湾仔区\",\n 810103: \"东区\",\n 810104: \"南区\",\n 810201: \"九龙城区\",\n 810202: \"油尖旺区\",\n 810203: \"深水埗区\",\n 810204: \"黄大仙区\",\n 810205: \"观塘区\",\n 810301: \"北区\",\n 810302: \"大埔区\",\n 810303: \"沙田区\",\n 810304: \"西贡区\",\n 810305: \"元朗区\",\n 810306: \"屯门区\",\n 810307: \"荃湾区\",\n 810308: \"葵青区\",\n 810309: \"离岛区\",\n 820102: \"花地玛堂区\",\n 820103: \"花王堂区\",\n 820104: \"望德堂区\",\n 820105: \"大堂区\",\n 820106: \"风顺堂区\",\n 820202: \"嘉模堂区\",\n 820203: \"路氹填海区\",\n 820204: \"圣方济各堂区\"\n }\n};\nvar makeOption = (text, value, children) => ({\n text,\n value,\n children\n});\nfunction useCascaderAreaData() {\n const {\n city_list: city,\n county_list: county,\n province_list: province\n } = areaList;\n const provinceMap = /* @__PURE__ */ new Map();\n Object.keys(province).forEach((code) => {\n provinceMap.set(code.slice(0, 2), makeOption(province[code], code, []));\n });\n const cityMap = /* @__PURE__ */ new Map();\n Object.keys(city).forEach((code) => {\n const option = makeOption(city[code], code, []);\n cityMap.set(code.slice(0, 4), option);\n const province2 = provinceMap.get(code.slice(0, 2));\n if (province2) {\n province2.children.push(option);\n }\n });\n Object.keys(county).forEach((code) => {\n const city2 = cityMap.get(code.slice(0, 4));\n if (city2) {\n city2.children.push(makeOption(county[code], code));\n }\n });\n return Array.from(provinceMap.values());\n}\nexport {\n areaList,\n useCascaderAreaData\n};\n","import {\n ref,\n inject,\n computed,\n onUnmounted,\n type InjectionKey,\n getCurrentInstance,\n type ComponentPublicInstance,\n type ComponentInternalInstance\n} from 'vue'\n\ntype ParentProvide<T> = T & {\n link(child: ComponentInternalInstance): void\n unlink(child: ComponentInternalInstance): void\n children: ComponentPublicInstance[]\n internalChildren: ComponentInternalInstance[]\n}\n\nexport function useParent<T>(key: InjectionKey<ParentProvide<T>>) {\n const parent = inject(key, null)\n\n if (parent) {\n const instance = getCurrentInstance()!\n const { link, unlink, internalChildren } = parent\n\n link(instance)\n onUnmounted(() => unlink(instance))\n\n const index = computed(() => internalChildren.indexOf(instance))\n\n return {\n parent,\n index\n }\n }\n\n return {\n parent: null,\n index: ref(-1)\n }\n}\n","import { type ExtractPropTypes, type InjectionKey, type PropType } from 'vue'\nimport type { CheckShape } from '../wd-checkbox/types'\nimport { baseProps, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\n\nexport type RequiredModelValue = {\n modelValue: Array<string | number | boolean>\n}\n\nexport type checkboxGroupProvide = {\n props: Partial<Omit<CheckboxGroupProps, 'modelValue'>> & RequiredModelValue\n changeSelectState: (value: string | number | boolean) => void\n}\n\nexport const CHECKBOX_GROUP_KEY: InjectionKey<checkboxGroupProvide> = Symbol('wd-checkbox-group')\n\nexport const checkboxGroupProps = {\n ...baseProps,\n /**\n * 绑定值\n */\n modelValue: {\n type: Array as PropType<Array<string | number | boolean>>,\n default: () => []\n },\n /**\n * 表单模式\n */\n cell: makeBooleanProp(false),\n /**\n * 单选框形状,可选值:circle / square / button\n */\n shape: makeStringProp<CheckShape>('circle'),\n /**\n * 选中的颜色\n */\n checkedColor: String,\n /**\n * 禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 最小选中的数量\n */\n min: makeNumberProp(0),\n /**\n * 最大选中的数量,0 为无限数量,默认为 0\n */\n max: makeNumberProp(0),\n /**\n * 同行展示\n */\n inline: makeBooleanProp(false),\n /**\n * 设置大小,可选值:large\n */\n size: String\n}\n\nexport type CheckboxGroupProps = ExtractPropTypes<typeof checkboxGroupProps>\n","import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\n\nexport type CheckShape = 'circle' | 'square' | 'button'\n\nexport const checkboxProps = {\n ...baseProps,\n customLabelClass: makeStringProp(''),\n customShapeClass: makeStringProp(''),\n /**\n * 单选框选中时的值\n */\n modelValue: {\n type: [String, Number, Boolean],\n required: true,\n default: false\n },\n /**\n * 单选框形状,可选值:circle / square / button\n */\n shape: makeStringProp<CheckShape>('circle'),\n /**\n * 选中的颜色\n */\n checkedColor: String,\n /**\n * 禁用\n */\n disabled: {\n type: [Boolean, null] as PropType<boolean | null>,\n default: null\n },\n /**\n * 选中值,在 checkbox-group 中使用无效,需同 false-value 一块使用\n */\n trueValue: {\n type: [String, Number, Boolean],\n default: true\n },\n /**\n * 非选中时的值,在 checkbox-group 中使用无效,需同 true-value 一块使用\n */\n falseValue: {\n type: [String, Number, Boolean],\n default: false\n },\n /**\n * 设置大小,可选值:large\n */\n size: String,\n /**\n * 文字位置最大宽度\n */\n maxWidth: String\n}\n\nexport type CheckboxProps = ExtractPropTypes<typeof checkboxProps>\n\nexport type CheckboxExpose = {\n /**\n * 切换当前选中状态\n */\n toggle: () => void\n}\n\nexport type CheckboxInstance = ComponentPublicInstance<CheckboxProps, CheckboxExpose>\n","import { baseProps, makeBooleanProp, makeStringProp, numericProp } from '../common/props'\nexport type ImageMode =\n | 'scaleToFill'\n | 'aspectFit'\n | 'aspectFill'\n | 'widthFix'\n | 'heightFix'\n | 'top'\n | 'bottom'\n | 'center'\n | 'left'\n | 'right'\n | 'top left'\n | 'top right'\n | 'bottom left'\n | 'bottom right'\n\nexport const imgProps = {\n ...baseProps,\n customImage: makeStringProp(''),\n /**\n * 图片链接\n */\n src: String,\n /**\n * 是否显示为圆形\n */\n round: makeBooleanProp(false),\n /**\n * 填充模式:'top left' / 'top right' / 'bottom left' / 'bottom right' / 'right' / 'left' / 'center' / 'bottom' / 'top' / 'heightFix' / 'widthFix' / 'aspectFill' / 'aspectFit' / 'scaleToFill'\n */\n mode: makeStringProp<ImageMode>('scaleToFill'),\n /**\n * 是否懒加载\n */\n lazyLoad: makeBooleanProp(false),\n /**\n * 宽度,默认单位为px\n */\n width: numericProp,\n /**\n * 高度,默认单位为px\n */\n height: numericProp,\n /**\n * 圆角大小,默认单位为px\n */\n radius: numericProp,\n /**\n * 是否允许预览\n */\n enablePreview: makeBooleanProp(false)\n}\n","/*\n * @Author: weisheng\n * @Date: 2023-12-14 11:21:58\n * @LastEditTime: 2024-03-18 13:57:14\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-cell-group\\types.ts\n * 记得注释\n */\nimport { type ExtractPropTypes, type InjectionKey } from 'vue'\nimport { baseProps, makeBooleanProp } from '../common/props'\n\nexport type CelllGroupProvide = {\n props: {\n border?: boolean\n }\n}\n\nexport const CELL_GROUP_KEY: InjectionKey<CelllGroupProvide> = Symbol('wd-cell-group')\n\nexport const cellGroupProps = {\n ...baseProps,\n /**\n * 分组标题\n */\n title: String,\n /**\n * 分组右侧内容\n */\n value: String,\n /**\n * 分组启用插槽\n */\n useSlot: makeBooleanProp(false),\n /**\n * 是否展示边框线\n */\n border: makeBooleanProp(false)\n}\n\nexport type CellGroupProps = ExtractPropTypes<typeof cellGroupProps>\n","import { computed } from 'vue'\nimport { useParent } from './useParent'\nimport { CELL_GROUP_KEY } from '../wd-cell-group/types'\n\nexport function useCell() {\n const { parent: cellGroup, index } = useParent(CELL_GROUP_KEY)\n\n const border = computed(() => {\n return cellGroup && cellGroup.props.border && index.value\n })\n\n return { border }\n}\n","import type { ComponentPublicInstance, ExtractPropTypes, PropType, Ref } from 'vue'\nimport { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\nimport { getType, isArray, isObj } from '../common/util'\n\nexport type ColumnItem = {\n [key: string]: any\n value?: string | number | boolean\n label?: string\n disabled?: boolean\n}\n\nexport type PickerViewColumnChange = (\n pickerView: PickerViewInstance,\n selects: Record<string, any> | Record<string, any>[],\n index: number,\n reslove: () => void\n) => void\n\nexport const pickerViewProps = {\n ...baseProps,\n /**\n * 加载状态\n */\n loading: makeBooleanProp(false),\n /**\n * 加载的颜色,只能使用十六进制的色值写法,且不能使用缩写\n */\n loadingColor: makeStringProp('#4D80F0'),\n /**\n * picker内部滚筒高\n */\n columnsHeight: makeNumberProp(217),\n /**\n * 选项对象中,value对应的 key\n */\n valueKey: makeStringProp('value'),\n /**\n * 选项对象中,展示的文本对应的 key\n */\n labelKey: makeStringProp('label'),\n /**\n * 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。\n */\n immediateChange: makeBooleanProp(false),\n /**\n * 选中项,如果为多列选择器,则其类型应为数组\n */\n modelValue: {\n type: [String, Number, Boolean, Array<number>, Array<string>, Array<boolean>] as PropType<\n string | number | boolean | Array<number> | Array<string> | Array<boolean>\n >,\n default: '',\n required: true\n },\n /**\n * 选择器数据,可以为字符串数组,也可以为对象数组,如果为二维数组,则为多列选择器\n */\n columns: makeArrayProp<string | number | ColumnItem | Array<number> | Array<string> | Array<ColumnItem>>(),\n /**\n * 接收 pickerView 实例、选中项、当前修改列的下标、resolve 作为入参,根据选中项和列下标进行判断,通过 pickerView 实例暴露出来的 setColumnData 方法修改其他列的数据源。\n */\n columnChange: Function as PropType<PickerViewColumnChange>\n}\n\nexport type PickerViewExpose = {\n getSelects: () => Record<string, any> | Record<string, any>[]\n getValues: () => string | string[]\n setColumnData: (columnIndex: number, data: Array<string | number | ColumnItem | Array<string | number | ColumnItem>>, rowIndex?: number) => void\n getColumnsData: () => Record<string, string>[][]\n getColumnData: (columnIndex: number) => Record<string, string>[]\n getColumnIndex: (columnIndex: number) => number\n getLabels: () => string[]\n getSelectedIndex: () => number[]\n}\n\nexport type PickerViewProps = ExtractPropTypes<typeof pickerViewProps>\n\nexport type PickerViewInstance = ComponentPublicInstance<PickerViewProps, PickerViewExpose>\n\n/**\n * 格式化传入的列数据\n * 列数据统一格式化为二维数组\n * @param array 列数据\n * @param valueKey\n * @param labelKey\n * @returns\n */\nexport function formatArray(\n array: Array<string | number | ColumnItem | Array<string | number | ColumnItem>>,\n valueKey: string,\n labelKey: string\n): ColumnItem[][] {\n let tempArray: Array<string | number | ColumnItem | Array<string | number | ColumnItem>> = isArray(array) ? array : [array]\n // 判断数组第一层的数据类型,如果存在多种类型,则抛错\n const firstLevelTypeList = new Set(array.map(getType))\n /**\n * 存在三种类型的合法数据\n * 1.数组是一维元素,所有元素都是原始值\n * 2.数组是一维元素,所有元素都是object\n * 3.数组是二维元素,二维元素可以是任意内容\n */\n if (firstLevelTypeList.size !== 1 && firstLevelTypeList.has('object')) {\n // 原始值和引用类型不用混用\n throw Error('The columns are correct')\n }\n /**\n * 简单处理,如果数组第一项不是数组则认为它是一个一维数组\n * 所以需要把一维的转成二维,这样方便统一处理\n */\n if (!isArray(array[0])) {\n tempArray = [tempArray as Array<string | number | ColumnItem>]\n }\n // 转化为二维数组后需要将每一项包装成ColumnItem\n const result: Array<Array<ColumnItem>> = (tempArray as Array<Array<string | number | ColumnItem>>).map((col) => {\n return col.map((row) => {\n // 非对象类型直接将值作为label和value\n if (!isObj(row)) {\n return {\n [valueKey]: row,\n [labelKey]: row\n }\n }\n /**\n * 针对已经是object的,修补成{valueKey,labelKey}\n * 如果没有labelKey,用valueKey代替\n * 如果没有valueKey,用labelKey代替\n * valueKey,labelKey都没有,直接抛错\n */\n // eslint-disable-next-line no-prototype-builtins\n if (!row.hasOwnProperty(valueKey) && !row.hasOwnProperty(labelKey)) {\n // eslint-disable-next-line prettier/prettier\n throw Error('Can\\'t find valueKey and labelKey in columns')\n }\n // eslint-disable-next-line no-prototype-builtins\n if (!row.hasOwnProperty(labelKey)) {\n row[labelKey] = row[valueKey]\n }\n // eslint-disable-next-line no-prototype-builtins\n if (!row.hasOwnProperty(valueKey)) {\n row[valueKey] = row[labelKey]\n }\n return row\n })\n })\n\n return result\n}\n","/*\n * @Author: weisheng\n * @Date: 2023-12-14 11:21:58\n * @LastEditTime: 2024-03-18 12:50:41\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-form\\types.ts\n * 记得注释\n */\nimport { type ComponentPublicInstance, type ExtractPropTypes, type InjectionKey, type PropType } from 'vue'\nimport { baseProps, makeBooleanProp, makeRequiredProp } from '../common/props'\n\nexport type FormProvide = {\n props: {\n model: Record<string, any>\n rules?: FormRules\n border?: boolean\n }\n errorMessages?: Record<string, string>\n}\n\nexport const FORM_KEY: InjectionKey<FormProvide> = Symbol('wd-form')\n\nexport type FormRules = {\n [key: string]: FormItemRule[]\n}\n\nexport type ErrorMessage = {\n prop: string\n message: string\n}\n\nexport interface FormItemRule {\n [key: string]: any\n required: boolean\n message: string\n pattern?: RegExp\n validator?: (value: any, rule: FormItemRuleWithoutValidator) => boolean | Promise<string> | Promise<boolean> | Promise<void> | Promise<unknown>\n}\n\nexport type FormItemRuleWithoutValidator = Omit<FormItemRule, 'validator'>\n\nexport const formProps = {\n ...baseProps,\n /**\n * 表单数据对象\n */\n model: makeRequiredProp(Object as PropType<Record<string, any>>),\n /**\n * 表单验证规则\n */\n rules: {\n type: Object as PropType<FormRules>,\n default: () => ({})\n },\n /**\n * 是否在输入时重置表单校验信息\n */\n resetOnChange: makeBooleanProp(true)\n}\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\nexport type FormExpose = {\n /**\n * 表单校验\n * @param prop 指定校验字段\n */\n validate: (prop?: string) => Promise<{\n valid: boolean\n errors: ErrorMessage[]\n }>\n /**\n * 重置表单项的验证提示\n */\n reset: () => void\n}\n\nexport type FormInstance = ComponentPublicInstance<FormProps, FormExpose>\n","export default {\n calendar: {\n placeholder: '请选择',\n title: '选择日期',\n day: '日',\n week: '周',\n month: '月',\n confirm: '确定',\n startTime: '开始时间',\n endTime: '结束时间',\n to: '至',\n timeFormat: 'YY年MM月DD日 HH:mm:ss',\n dateFormat: 'YYYY年MM月DD日',\n weekFormat: (year: number, week: number) => `${year} 第 ${week} 周`,\n startWeek: '开始周',\n endWeek: '结束周',\n startMonth: '开始月',\n endMonth: '结束月',\n monthFormat: 'YYYY年MM月'\n },\n calendarView: {\n startTime: '开始',\n endTime: '结束',\n weeks: {\n sun: '日',\n mon: '一',\n tue: '二',\n wed: '三',\n thu: '四',\n fri: '五',\n sat: '六'\n },\n rangePrompt: (maxRange: number) => `选择天数不能超过${maxRange}天`,\n rangePromptWeek: (maxRange: number) => `选择周数不能超过${maxRange}周`,\n rangePromptMonth: (maxRange: number) => `选择月份不能超过${maxRange}个月`,\n monthTitle: 'YYYY年M月',\n yearTitle: 'YYYY年',\n month: 'M月',\n hour: (value: number) => `${value}时`,\n minute: (value: number) => `${value}分`,\n second: (value: number) => `${value}秒`\n },\n collapse: {\n expand: '展开',\n retract: '收起'\n },\n colPicker: {\n title: '请选择',\n placeholder: '请选择',\n select: '请选择'\n },\n datetimePicker: {\n start: '开始时间',\n end: '结束时间',\n to: '至',\n placeholder: '请选择',\n confirm: '完成',\n cancel: '取消'\n },\n loadmore: {\n loading: '正在努力加载中...',\n finished: '已加载完毕',\n error: '加载失败',\n retry: '点击重试'\n },\n messageBox: {\n inputPlaceholder: '请输入',\n confirm: '确定',\n cancel: '取消',\n inputNoValidate: '输入的数据不合法'\n },\n numberKeyboard: {\n confirm: '完成'\n },\n pagination: {\n prev: '上一页',\n next: '下一页',\n page: (value: number) => `当前页:${value}`,\n total: (total: number) => `当前数据:${total}条`,\n size: (size: number) => `分页大小:${size}`\n },\n picker: {\n cancel: '取消',\n done: '完成',\n placeholder: '请选择'\n },\n imgCropper: {\n confirm: '完成',\n cancel: '取消'\n },\n search: {\n search: '搜索',\n cancel: '取消'\n },\n steps: {\n wait: '未开始',\n finished: '已完成',\n process: '进行中',\n failed: '失败'\n },\n tabs: {\n all: '全部'\n },\n upload: {\n error: '上传失败'\n },\n input: {\n placeholder: '请输入...'\n },\n selectPicker: {\n title: '请选择',\n placeholder: '请选择',\n select: '请选择',\n confirm: '确认',\n filterPlaceholder: '搜索'\n },\n tag: {\n placeholder: '请输入',\n add: '新增标签'\n },\n textarea: {\n placeholder: '请输入...'\n },\n tableCol: {\n indexLabel: '序号'\n }\n}\n","/*\n * @Author: weisheng\n * @Date: 2024-01-25 23:06:48\n * @LastEditTime: 2024-03-30 11:30:55\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/locale/index.ts\n * 记得注释\n */\nimport { reactive, ref } from 'vue'\nimport zhCN from './lang/zh-CN'\nimport { deepAssign } from '../components/common/util'\n\ntype Message = Record<string, any>\ntype Messages = Record<string, Message>\n\nconst lang = ref<string>('zh-CN')\nconst messages = reactive<Messages>({\n 'zh-CN': zhCN\n})\n\nexport const Locale = {\n messages(): Message {\n return messages[lang.value]\n },\n\n use(newLang: string, newMessage?: Message) {\n lang.value = newLang\n if (newMessage) {\n this.add({ [newLang]: newMessage })\n }\n },\n\n add(newMessages: Messages = {}) {\n deepAssign(messages, newMessages)\n }\n}\n\nexport const useCurrentLang = () => lang\n\nexport default Locale\n","/*\n * @Author: weisheng\n * @Date: 2024-01-25 23:06:48\n * @LastEditTime: 2024-01-26 14:00:48\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\composables\\useTranslate.ts\n * 记得注释\n */\nimport { camelCase, getPropByPath, isFunction } from '../common/util'\nimport Locale from '../../locale'\n\nexport const useTranslate = (name?: string) => {\n const prefix = name ? camelCase(name) + '.' : ''\n const translate = (key: string, ...args: unknown[]) => {\n const currentMessages = Locale.messages()\n const message = getPropByPath(currentMessages, prefix + key)\n return isFunction(message) ? message(...args) : message\n }\n\n return { translate }\n}\n","import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\nimport type { ColumnItem, PickerViewColumnChange } from '../wd-picker-view/types'\nimport type { FormItemRule } from '../wd-form/types'\n\nexport const pickerProps = {\n ...baseProps,\n /**\n * label 外部自定义样式\n */\n customLabelClass: makeStringProp(''),\n /**\n * value 外部自定义样式\n */\n customValueClass: makeStringProp(''),\n /**\n * pickerView 外部自定义样式\n */\n customViewClass: makeStringProp(''),\n /**\n * 选择器左侧文案\n */\n label: String,\n /**\n * 选择器占位符\n */\n placeholder: String,\n /**\n * 是否禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 是否只读\n */\n readonly: makeBooleanProp(false),\n /**\n * 加载中\n */\n loading: makeBooleanProp(false),\n /**\n * 加载中颜色\n */\n loadingColor: makeStringProp('#4D80F0'),\n /* popup */\n /**\n * 弹出层标题\n */\n title: String,\n /**\n * 取消按钮文案\n */\n cancelButtonText: String,\n /**\n * 确认按钮文案\n */\n confirmButtonText: String,\n /**\n * 是否必填\n */\n required: makeBooleanProp(false),\n /**\n * 尺寸\n */\n size: String,\n /**\n * 标签宽度\n */\n labelWidth: String,\n /**\n * 使用默认插槽\n */\n useDefaultSlot: makeBooleanProp(false),\n /**\n * 使用标签插槽\n */\n useLabelSlot: makeBooleanProp(false),\n /**\n * 错误状态\n */\n error: makeBooleanProp(false),\n /**\n * 右对齐\n */\n alignRight: makeBooleanProp(false),\n /**\n * 确定前校验函数,接收 (value, resolve, picker) 参数,通过 resolve 继续执行 picker,resolve 接收1个boolean参数\n */\n beforeConfirm: Function as PropType<PickerBeforeConfirm>,\n /**\n * 点击蒙层关闭\n */\n closeOnClickModal: makeBooleanProp(true),\n /**\n * 底部安全区域内\n */\n safeAreaInsetBottom: makeBooleanProp(true),\n /**\n * 文本溢出显示省略号\n */\n ellipsis: makeBooleanProp(false),\n /**\n * 选项总高度\n */\n columnsHeight: makeNumberProp(217),\n /**\n * 选项值对应的键名\n */\n valueKey: makeStringProp('value'),\n /**\n * 选项文本对应的键名\n */\n labelKey: makeStringProp('label'),\n /**\n * 选中项,如果为多列选择器,则其类型应为数组\n */\n modelValue: {\n type: [String, Number, Array] as PropType<string | number | Array<string> | Array<number>>,\n default: ''\n },\n /**\n * 选择器数据,可以为字符串数组,也可以为对象数组,如果为二维数组,则为多列选择器\n */\n columns: {\n type: Array as PropType<Array<string | number | ColumnItem | Array<string | number | ColumnItem>>>,\n default: () => []\n },\n /**\n * 接收 pickerView 实例、选中项、当前修改列的下标、resolve 作为入参,根据选中项和列下标进行判断,通过 pickerView 实例暴露出来的 setColumnData 方法修改其他列的数据源。\n */\n columnChange: Function as PropType<PickerViewColumnChange>,\n /**\n * 自定义展示文案的格式化函数,返回一个字符串\n */\n displayFormat: Function as PropType<PickerDisplayFormat>,\n /**\n * 自定义层级\n */\n zIndex: makeNumberProp(15),\n /**\n * 表单域 model 字段名,在使用表单校验功能的情况下,该属性是必填的\n */\n prop: String,\n /**\n * 表单验证规则,结合wd-form组件使用\n */\n rules: makeArrayProp<FormItemRule>(),\n /**\n * 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。\n */\n immediateChange: makeBooleanProp(false)\n}\n\nexport type PickerProps = ExtractPropTypes<typeof pickerProps>\n\nexport type PickerDisplayFormat = (item: ColumnItem | ColumnItem[], vl: { valueKey: string; labelKey: string }) => string\n\nexport type PickerBeforeConfirm = (\n value: string | number | boolean | string[] | number[] | boolean[],\n resolve: (isPass: boolean) => void,\n picker: any\n) => void\n\nexport type PickerExpose = {\n // 打开picker弹框\n open: () => void\n // 关闭picker弹框\n close: () => void\n /**\n * 设置加载状态\n * @param loading 加载状态\n */\n setLoading: (loading: boolean) => void\n}\n\nexport type PickerInstance = ComponentPublicInstance<PickerExpose, PickerProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-15 20:40:34\n * @LastEditTime: 2024-03-18 14:58:47\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-input-number\\types.ts\n * 记得注释\n */\nimport { baseProps, makeBooleanProp, makeNumberProp, makeNumericProp, makeRequiredProp, makeStringProp, numericProp } from '../common/props'\n\nexport const inputNumberProps = {\n ...baseProps,\n /**\n * 绑定值\n */\n modelValue: makeRequiredProp(numericProp),\n /**\n * 最小值\n */\n min: makeNumberProp(1),\n /**\n * 最大值\n */\n max: makeNumberProp(Number.MAX_SAFE_INTEGER),\n /**\n * 步进值\n */\n step: makeNumberProp(1),\n /**\n * 是否严格按照步进值递增或递减\n */\n stepStrictly: makeBooleanProp(false),\n /**\n * 数值精度\n */\n precision: makeNumberProp(0),\n /**\n * 是否禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 是否禁用输入框\n */\n disableInput: makeBooleanProp(false),\n /**\n * 是否禁用减号按钮\n */\n disableMinus: makeBooleanProp(false),\n /**\n * 是否禁用加号按钮\n */\n disablePlus: makeBooleanProp(false),\n /**\n * 是否不显示输入框\n */\n withoutInput: makeBooleanProp(false),\n /**\n * 输入框宽度\n */\n inputWidth: makeNumericProp(36),\n /**\n * 是否允许为空\n */\n allowNull: makeBooleanProp(false),\n /**\n * 输入框占位符\n */\n placeholder: makeStringProp('')\n}\n","import type { PropType } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\n\nexport type LoadMoreState = 'loading' | 'error' | 'finished'\n\nexport const loadmoreProps = {\n ...baseProps,\n /**\n * 加载状态,可选值:'loading' | 'error' | 'finished'\n */\n state: String as PropType<LoadMoreState>,\n /**\n * 加载提示文案\n */\n loadingText: String,\n /**\n * 全部加载完的提示文案\n */\n finishedText: String,\n /**\n * 加载失败的提示文案\n */\n errorText: makeStringProp('加载失败,点击重试')\n}\n","import e from\"@/pages.json\";\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function n(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==t&&n.path)}},n.exports),n.exports}var s=n((function(e,t){var n;e.exports=(n=n||function(e,t){var n=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s={},r=s.lib={},i=r.Base={extend:function(e){var t=n(this);return e&&t.mixIn(e),t.hasOwnProperty(\"init\")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},o=r.WordArray=i.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,s=this.sigBytes,r=e.sigBytes;if(this.clamp(),s%4)for(var i=0;i<r;i++){var o=n[i>>>2]>>>24-i%4*8&255;t[s+i>>>2]|=o<<24-(s+i)%4*8}else for(i=0;i<r;i+=4)t[s+i>>>2]=n[i>>>2];return this.sigBytes+=r,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=i.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n,s=[],r=function(t){t=t;var n=987654321,s=4294967295;return function(){var r=((n=36969*(65535&n)+(n>>16)&s)<<16)+(t=18e3*(65535&t)+(t>>16)&s)&s;return r/=4294967296,(r+=.5)*(e.random()>.5?1:-1)}},i=0;i<t;i+=4){var a=r(4294967296*(n||e.random()));n=987654071*a(),s.push(4294967296*a()|0)}return new o.init(s,t)}}),a=s.enc={},c=a.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,s=[],r=0;r<n;r++){var i=t[r>>>2]>>>24-r%4*8&255;s.push((i>>>4).toString(16)),s.push((15&i).toString(16))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s<t;s+=2)n[s>>>3]|=parseInt(e.substr(s,2),16)<<24-s%8*4;return new o.init(n,t/2)}},u=a.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,s=[],r=0;r<n;r++){var i=t[r>>>2]>>>24-r%4*8&255;s.push(String.fromCharCode(i))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s<t;s++)n[s>>>2]|=(255&e.charCodeAt(s))<<24-s%4*8;return new o.init(n,t)}},h=a.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error(\"Malformed UTF-8 data\")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},l=r.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){\"string\"==typeof e&&(e=h.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,s=n.words,r=n.sigBytes,i=this.blockSize,a=r/(4*i),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*i,u=e.min(4*c,r);if(c){for(var h=0;h<c;h+=i)this._doProcessBlock(s,h);var l=s.splice(0,c);n.sigBytes-=u}return new o.init(l,u)},clone:function(){var e=i.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});r.Hasher=l.extend({cfg:i.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new d.HMAC.init(e,n).finalize(t)}}});var d=s.algo={};return s}(Math),n)})),r=s,i=(n((function(e,t){var n;e.exports=(n=r,function(e){var t=n,s=t.lib,r=s.WordArray,i=s.Hasher,o=t.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var c=o.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var s=t+n,r=e[s];e[s]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var i=this._hash.words,o=e[t+0],c=e[t+1],p=e[t+2],f=e[t+3],g=e[t+4],m=e[t+5],y=e[t+6],_=e[t+7],w=e[t+8],v=e[t+9],I=e[t+10],S=e[t+11],b=e[t+12],k=e[t+13],A=e[t+14],P=e[t+15],T=i[0],C=i[1],x=i[2],O=i[3];T=u(T,C,x,O,o,7,a[0]),O=u(O,T,C,x,c,12,a[1]),x=u(x,O,T,C,p,17,a[2]),C=u(C,x,O,T,f,22,a[3]),T=u(T,C,x,O,g,7,a[4]),O=u(O,T,C,x,m,12,a[5]),x=u(x,O,T,C,y,17,a[6]),C=u(C,x,O,T,_,22,a[7]),T=u(T,C,x,O,w,7,a[8]),O=u(O,T,C,x,v,12,a[9]),x=u(x,O,T,C,I,17,a[10]),C=u(C,x,O,T,S,22,a[11]),T=u(T,C,x,O,b,7,a[12]),O=u(O,T,C,x,k,12,a[13]),x=u(x,O,T,C,A,17,a[14]),T=h(T,C=u(C,x,O,T,P,22,a[15]),x,O,c,5,a[16]),O=h(O,T,C,x,y,9,a[17]),x=h(x,O,T,C,S,14,a[18]),C=h(C,x,O,T,o,20,a[19]),T=h(T,C,x,O,m,5,a[20]),O=h(O,T,C,x,I,9,a[21]),x=h(x,O,T,C,P,14,a[22]),C=h(C,x,O,T,g,20,a[23]),T=h(T,C,x,O,v,5,a[24]),O=h(O,T,C,x,A,9,a[25]),x=h(x,O,T,C,f,14,a[26]),C=h(C,x,O,T,w,20,a[27]),T=h(T,C,x,O,k,5,a[28]),O=h(O,T,C,x,p,9,a[29]),x=h(x,O,T,C,_,14,a[30]),T=l(T,C=h(C,x,O,T,b,20,a[31]),x,O,m,4,a[32]),O=l(O,T,C,x,w,11,a[33]),x=l(x,O,T,C,S,16,a[34]),C=l(C,x,O,T,A,23,a[35]),T=l(T,C,x,O,c,4,a[36]),O=l(O,T,C,x,g,11,a[37]),x=l(x,O,T,C,_,16,a[38]),C=l(C,x,O,T,I,23,a[39]),T=l(T,C,x,O,k,4,a[40]),O=l(O,T,C,x,o,11,a[41]),x=l(x,O,T,C,f,16,a[42]),C=l(C,x,O,T,y,23,a[43]),T=l(T,C,x,O,v,4,a[44]),O=l(O,T,C,x,b,11,a[45]),x=l(x,O,T,C,P,16,a[46]),T=d(T,C=l(C,x,O,T,p,23,a[47]),x,O,o,6,a[48]),O=d(O,T,C,x,_,10,a[49]),x=d(x,O,T,C,A,15,a[50]),C=d(C,x,O,T,m,21,a[51]),T=d(T,C,x,O,b,6,a[52]),O=d(O,T,C,x,f,10,a[53]),x=d(x,O,T,C,I,15,a[54]),C=d(C,x,O,T,c,21,a[55]),T=d(T,C,x,O,w,6,a[56]),O=d(O,T,C,x,P,10,a[57]),x=d(x,O,T,C,y,15,a[58]),C=d(C,x,O,T,k,21,a[59]),T=d(T,C,x,O,g,6,a[60]),O=d(O,T,C,x,S,10,a[61]),x=d(x,O,T,C,p,15,a[62]),C=d(C,x,O,T,v,21,a[63]),i[0]=i[0]+T|0,i[1]=i[1]+C|0,i[2]=i[2]+x|0,i[3]=i[3]+O|0},_doFinalize:function(){var t=this._data,n=t.words,s=8*this._nDataBytes,r=8*t.sigBytes;n[r>>>5]|=128<<24-r%32;var i=e.floor(s/4294967296),o=s;n[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),n[14+(r+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(n.length+1),this._process();for(var a=this._hash,c=a.words,u=0;u<4;u++){var h=c[u];c[u]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}return a},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,n,s,r,i,o){var a=e+(t&n|~t&s)+r+o;return(a<<i|a>>>32-i)+t}function h(e,t,n,s,r,i,o){var a=e+(t&s|n&~s)+r+o;return(a<<i|a>>>32-i)+t}function l(e,t,n,s,r,i,o){var a=e+(t^n^s)+r+o;return(a<<i|a>>>32-i)+t}function d(e,t,n,s,r,i,o){var a=e+(n^(t|~s))+r+o;return(a<<i|a>>>32-i)+t}t.MD5=i._createHelper(c),t.HmacMD5=i._createHmacHelper(c)}(Math),n.MD5)})),n((function(e,t){var n;e.exports=(n=r,void function(){var e=n,t=e.lib.Base,s=e.enc.Utf8;e.algo.HMAC=t.extend({init:function(e,t){e=this._hasher=new e.init,\"string\"==typeof t&&(t=s.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),a=i.words,c=o.words,u=0;u<n;u++)a[u]^=1549556828,c[u]^=909522486;i.sigBytes=o.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})}())})),n((function(e,t){e.exports=r.HmacMD5}))),o=n((function(e,t){e.exports=r.enc.Utf8})),a=n((function(e,t){var n;e.exports=(n=r,function(){var e=n,t=e.lib.WordArray;function s(e,n,s){for(var r=[],i=0,o=0;o<n;o++)if(o%4){var a=s[e.charCodeAt(o-1)]<<o%4*2,c=s[e.charCodeAt(o)]>>>6-o%4*2;r[i>>>2]|=(a|c)<<24-i%4*8,i++}return t.create(r,i)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,s=this._map;e.clamp();for(var r=[],i=0;i<n;i+=3)for(var o=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,a=0;a<4&&i+.75*a<n;a++)r.push(s.charAt(o>>>6*(3-a)&63));var c=s.charAt(64);if(c)for(;r.length%4;)r.push(c);return r.join(\"\")},parse:function(e){var t=e.length,n=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var i=0;i<n.length;i++)r[n.charCodeAt(i)]=i}var o=n.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return s(e,t,r)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}}(),n.enc.Base64)}));const c=\"FUNCTION\",u=\"OBJECT\",h=\"CLIENT_DB\",l=\"pending\",d=\"fulfilled\",p=\"rejected\";function f(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function g(e){return\"object\"===f(e)}function m(e){return\"function\"==typeof e}function y(e){return function(){try{return e.apply(e,arguments)}catch(e){console.error(e)}}}const _=\"REJECTED\",w=\"NOT_PENDING\";class v{constructor({createPromise:e,retryRule:t=_}={}){this.createPromise=e,this.status=null,this.promise=null,this.retryRule=t}get needRetry(){if(!this.status)return!0;switch(this.retryRule){case _:return this.status===p;case w:return this.status!==l}}exec(){return this.needRetry?(this.status=l,this.promise=this.createPromise().then((e=>(this.status=d,Promise.resolve(e))),(e=>(this.status=p,Promise.reject(e)))),this.promise):this.promise}}function I(e){return e&&\"string\"==typeof e?JSON.parse(e):e}const S=\"development\"===process.env.NODE_ENV,b=process.env.UNI_PLATFORM,k=\"true\"===process.env.UNI_SECURE_NETWORK_ENABLE||!0===process.env.UNI_SECURE_NETWORK_ENABLE,A=I(process.env.UNI_SECURE_NETWORK_CONFIG),P=\"h5\"===b?\"web\":\"app-plus\"===b?\"app\":b,T=I(process.env.UNICLOUD_DEBUG),C=I(process.env.UNI_CLOUD_PROVIDER)||[],x=process.env.RUN_BY_HBUILDERX;let O=\"\";try{O=process.env.UNI_APP_ID||\"\"}catch(e){}let E={};function L(e,t={}){var n,s;return n=E,s=e,Object.prototype.hasOwnProperty.call(n,s)||(E[e]=t),E[e]}\"app\"===P&&(E=uni._globalUniCloudObj?uni._globalUniCloudObj:uni._globalUniCloudObj={});const R=[\"invoke\",\"success\",\"fail\",\"complete\"],U=L(\"_globalUniCloudInterceptor\");function N(e,t){U[e]||(U[e]={}),g(t)&&Object.keys(t).forEach((n=>{R.indexOf(n)>-1&&function(e,t,n){let s=U[e][t];s||(s=U[e][t]=[]),-1===s.indexOf(n)&&m(n)&&s.push(n)}(e,n,t[n])}))}function D(e,t){U[e]||(U[e]={}),g(t)?Object.keys(t).forEach((n=>{R.indexOf(n)>-1&&function(e,t,n){const s=U[e][t];if(!s)return;const r=s.indexOf(n);r>-1&&s.splice(r,1)}(e,n,t[n])})):delete U[e]}function M(e,t){return e&&0!==e.length?e.reduce(((e,n)=>e.then((()=>n(t)))),Promise.resolve()):Promise.resolve()}function q(e,t){return U[e]&&U[e][t]||[]}function F(e){N(\"callObject\",e)}const K=L(\"_globalUniCloudListener\"),j=\"response\",$=\"needLogin\",B=\"refreshToken\",W=\"clientdb\",H=\"cloudfunction\",z=\"cloudobject\";function J(e){return K[e]||(K[e]=[]),K[e]}function G(e,t){const n=J(e);n.includes(t)||n.push(t)}function V(e,t){const n=J(e),s=n.indexOf(t);-1!==s&&n.splice(s,1)}function Y(e,t){const n=J(e);for(let e=0;e<n.length;e++){(0,n[e])(t)}}let Q,X=!1;function Z(){return Q||(Q=new Promise((e=>{X&&e(),function t(){if(\"function\"==typeof getCurrentPages){const t=getCurrentPages();t&&t[0]&&(X=!0,e())}X||setTimeout((()=>{t()}),30)}()})),Q)}function ee(e){const t={};for(const n in e){const s=e[n];m(s)&&(t[n]=y(s))}return t}class te extends Error{constructor(e){super(e.message),this.errMsg=e.message||e.errMsg||\"unknown system error\",this.code=this.errCode=e.code||e.errCode||\"SYSTEM_ERROR\",this.errSubject=this.subject=e.subject||e.errSubject,this.cause=e.cause,this.requestId=e.requestId}toJson(e=0){if(!(e>=10))return e++,{errCode:this.errCode,errMsg:this.errMsg,errSubject:this.errSubject,cause:this.cause&&this.cause.toJson?this.cause.toJson(e):this.cause}}}var ne={request:e=>uni.request(e),uploadFile:e=>uni.uploadFile(e),setStorageSync:(e,t)=>uni.setStorageSync(e,t),getStorageSync:e=>uni.getStorageSync(e),removeStorageSync:e=>uni.removeStorageSync(e),clearStorageSync:()=>uni.clearStorageSync()};function se(e){return e&&se(e.__v_raw)||e}function re(){return{token:ne.getStorageSync(\"uni_id_token\")||ne.getStorageSync(\"uniIdToken\"),tokenExpired:ne.getStorageSync(\"uni_id_token_expired\")}}function ie({token:e,tokenExpired:t}={}){e&&ne.setStorageSync(\"uni_id_token\",e),t&&ne.setStorageSync(\"uni_id_token_expired\",t)}let oe,ae;function ce(){return oe||(oe=uni.getSystemInfoSync()),oe}function ue(){let e,t;try{if(uni.getLaunchOptionsSync){if(uni.getLaunchOptionsSync.toString().indexOf(\"not yet implemented\")>-1)return;const{scene:n,channel:s}=uni.getLaunchOptionsSync();e=s,t=n}}catch(e){}return{channel:e,scene:t}}function he(){const e=uni.getLocale&&uni.getLocale()||\"en\";if(ae)return{...ae,locale:e,LOCALE:e};const t=ce(),{deviceId:n,osName:s,uniPlatform:r,appId:i}=t,o=[\"pixelRatio\",\"brand\",\"model\",\"system\",\"language\",\"version\",\"platform\",\"host\",\"SDKVersion\",\"swanNativeVersion\",\"app\",\"AppPlatform\",\"fontSizeSetting\"];for(let e=0;e<o.length;e++){delete t[o[e]]}return ae={PLATFORM:r,OS:s,APPID:i,DEVICEID:n,...ue(),...t},{...ae,locale:e,LOCALE:e}}var le={sign:function(e,t){let n=\"\";return Object.keys(e).sort().forEach((function(t){e[t]&&(n=n+\"&\"+t+\"=\"+e[t])})),n=n.slice(1),i(n,t).toString()},wrappedRequest:function(e,t){return new Promise(((n,s)=>{t(Object.assign(e,{complete(e){e||(e={}),S&&\"web\"===P&&e.errMsg&&0===e.errMsg.indexOf(\"request:fail\")&&console.warn(\"发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5\");const t=e.data&&e.data.header&&e.data.header[\"x-serverless-request-id\"]||e.header&&e.header[\"request-id\"];if(!e.statusCode||e.statusCode>=400){const n=e.data&&e.data.error&&e.data.error.code||\"SYS_ERR\",r=e.data&&e.data.error&&e.data.error.message||e.errMsg||\"request:fail\";return s(new te({code:n,message:r,requestId:t}))}const r=e.data;if(r.error)return s(new te({code:r.error.code,message:r.error.message,requestId:t}));r.result=r.data,r.requestId=t,delete r.data,n(r)}}))}))},toBase64:function(e){return a.stringify(o.parse(e))}};var de=class{constructor(e){[\"spaceId\",\"clientSecret\"].forEach((t=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw new Error(`${t} required`)})),this.config=Object.assign({},{endpoint:0===e.spaceId.indexOf(\"mp-\")?\"https://api.next.bspapp.com\":\"https://api.bspapp.com\"},e),this.config.provider=\"aliyun\",this.config.requestUrl=this.config.endpoint+\"/client\",this.config.envType=this.config.envType||\"public\",this.config.accessTokenKey=\"access_token_\"+this.config.spaceId,this.adapter=ne,this._getAccessTokenPromiseHub=new v({createPromise:()=>this.requestAuth(this.setupRequest({method:\"serverless.auth.user.anonymousAuthorize\",params:\"{}\"},\"auth\")).then((e=>{if(!e.result||!e.result.accessToken)throw new te({code:\"AUTH_FAILED\",message:\"获取accessToken失败\"});this.setAccessToken(e.result.accessToken)})),retryRule:w})}get hasAccessToken(){return!!this.accessToken}setAccessToken(e){this.accessToken=e}requestWrapped(e){return le.wrappedRequest(e,this.adapter.request)}requestAuth(e){return this.requestWrapped(e)}request(e,t){return Promise.resolve().then((()=>this.hasAccessToken?t?this.requestWrapped(e):this.requestWrapped(e).catch((t=>new Promise(((e,n)=>{!t||\"GATEWAY_INVALID_TOKEN\"!==t.code&&\"InvalidParameter.InvalidToken\"!==t.code?n(t):e()})).then((()=>this.getAccessToken())).then((()=>{const t=this.rebuildRequest(e);return this.request(t,!0)})))):this.getAccessToken().then((()=>{const t=this.rebuildRequest(e);return this.request(t,!0)}))))}rebuildRequest(e){const t=Object.assign({},e);return t.data.token=this.accessToken,t.header[\"x-basement-token\"]=this.accessToken,t.header[\"x-serverless-sign\"]=le.sign(t.data,this.config.clientSecret),t}setupRequest(e,t){const n=Object.assign({},e,{spaceId:this.config.spaceId,timestamp:Date.now()}),s={\"Content-Type\":\"application/json\"};return\"auth\"!==t&&(n.token=this.accessToken,s[\"x-basement-token\"]=this.accessToken),s[\"x-serverless-sign\"]=le.sign(n,this.config.clientSecret),{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:s}}getAccessToken(){return this._getAccessTokenPromiseHub.exec()}async authorize(){await this.getAccessToken()}callFunction(e){const t={method:\"serverless.function.runtime.invoke\",params:JSON.stringify({functionTarget:e.name,functionArgs:e.data||{}})};return this.request(this.setupRequest(t))}getOSSUploadOptionsFromPath(e){const t={method:\"serverless.file.resource.generateProximalSign\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:r,onUploadProgress:i}){return new Promise(((o,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:r,header:{\"X-OSS-server-side-encrpytion\":\"AES256\"},success(e){e&&e.statusCode<400?o(e):a(new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new te({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof i&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{i({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}reportOSSUpload(e){const t={method:\"serverless.file.resource.report\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}async uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",cloudPathAsRealPath:s=!1,onUploadProgress:r,config:i}){if(\"string\"!==f(t))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath必须为字符串类型\"});if(!(t=t.trim()))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath不可为空\"});if(/:\\/\\//.test(t))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath不合法\"});const o=i&&i.envType||this.config.envType;if(s&&(\"/\"!==t[0]&&(t=\"/\"+t),t.indexOf(\"\\\\\")>-1))throw new te({code:\"INVALID_PARAM\",message:\"使用cloudPath作为路径时,cloudPath不可包含“\\\\”\"});const a=(await this.getOSSUploadOptionsFromPath({env:o,filename:s?t.split(\"/\").pop():t,fileId:s?t:void 0})).result,c=\"https://\"+a.cdnDomain+\"/\"+a.ossPath,{securityToken:u,accessKeyId:h,signature:l,host:d,ossPath:p,id:g,policy:m,ossCallbackUrl:y}=a,_={\"Cache-Control\":\"max-age=2592000\",\"Content-Disposition\":\"attachment\",OSSAccessKeyId:h,Signature:l,host:d,id:g,key:p,policy:m,success_action_status:200};if(u&&(_[\"x-oss-security-token\"]=u),y){const e=JSON.stringify({callbackUrl:y,callbackBody:JSON.stringify({fileId:g,spaceId:this.config.spaceId}),callbackBodyType:\"application/json\"});_.callback=le.toBase64(e)}const w={url:\"https://\"+a.host,formData:_,fileName:\"file\",name:\"file\",filePath:e,fileType:n};if(await this.uploadFileToOSS(Object.assign({},w,{onUploadProgress:r})),y)return{success:!0,filePath:e,fileID:c};if((await this.reportOSSUpload({id:g})).success)return{success:!0,filePath:e,fileID:c};throw new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"})}getTempFileURL({fileList:e}={}){return new Promise(((t,n)=>{Array.isArray(e)&&0!==e.length||n(new te({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"})),t({fileList:e.map((e=>({fileID:e,tempFileURL:e})))})}))}async getFileInfo({fileList:e}={}){if(!Array.isArray(e)||0===e.length)throw new te({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"});const t={method:\"serverless.file.resource.info\",params:JSON.stringify({id:e.map((e=>e.split(\"?\")[0])).join(\",\")})};return{fileList:(await this.request(this.setupRequest(t))).result}}};var pe={init(e){const t=new de(e),n={signInAnonymously:function(){return t.authorize()},getLoginState:function(){return Promise.resolve(!1)}};return t.auth=function(){return n},t.customAuth=t.auth,t}};const fe=\"undefined\"!=typeof location&&\"http:\"===location.protocol?\"http:\":\"https:\";var ge;!function(e){e.local=\"local\",e.none=\"none\",e.session=\"session\"}(ge||(ge={}));var me=function(){},ye=n((function(e,t){var n;e.exports=(n=r,function(e){var t=n,s=t.lib,r=s.WordArray,i=s.Hasher,o=t.algo,a=[],c=[];!function(){function t(t){for(var n=e.sqrt(t),s=2;s<=n;s++)if(!(t%s))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var s=2,r=0;r<64;)t(s)&&(r<8&&(a[r]=n(e.pow(s,.5))),c[r]=n(e.pow(s,1/3)),r++),s++}();var u=[],h=o.SHA256=i.extend({_doReset:function(){this._hash=new r.init(a.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,s=n[0],r=n[1],i=n[2],o=n[3],a=n[4],h=n[5],l=n[6],d=n[7],p=0;p<64;p++){if(p<16)u[p]=0|e[t+p];else{var f=u[p-15],g=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,m=u[p-2],y=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;u[p]=g+u[p-7]+y+u[p-16]}var _=s&r^s&i^r&i,w=(s<<30|s>>>2)^(s<<19|s>>>13)^(s<<10|s>>>22),v=d+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&h^~a&l)+c[p]+u[p];d=l,l=h,h=a,a=o+v|0,o=i,i=r,r=s,s=v+(w+_)|0}n[0]=n[0]+s|0,n[1]=n[1]+r|0,n[2]=n[2]+i|0,n[3]=n[3]+o|0,n[4]=n[4]+a|0,n[5]=n[5]+h|0,n[6]=n[6]+l|0,n[7]=n[7]+d|0},_doFinalize:function(){var t=this._data,n=t.words,s=8*this._nDataBytes,r=8*t.sigBytes;return n[r>>>5]|=128<<24-r%32,n[14+(r+64>>>9<<4)]=e.floor(s/4294967296),n[15+(r+64>>>9<<4)]=s,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=i._createHelper(h),t.HmacSHA256=i._createHmacHelper(h)}(Math),n.SHA256)})),_e=ye,we=n((function(e,t){e.exports=r.HmacSHA256}));const ve=()=>{let e;if(!Promise){e=()=>{},e.promise={};const t=()=>{throw new te({message:'Your Node runtime does support ES6 Promises. Set \"global.Promise\" to your preferred implementation of promises.'})};return Object.defineProperty(e.promise,\"then\",{get:t}),Object.defineProperty(e.promise,\"catch\",{get:t}),e}const t=new Promise(((t,n)=>{e=(e,s)=>e?n(e):t(s)}));return e.promise=t,e};function Ie(e){return void 0===e}function Se(e){return\"[object Null]\"===Object.prototype.toString.call(e)}var be;function ke(e){const t=(n=e,\"[object Array]\"===Object.prototype.toString.call(n)?e:[e]);var n;for(const e of t){const{isMatch:t,genAdapter:n,runtime:s}=e;if(t())return{adapter:n(),runtime:s}}}!function(e){e.WEB=\"web\",e.WX_MP=\"wx_mp\"}(be||(be={}));const Ae={adapter:null,runtime:void 0},Pe=[\"anonymousUuidKey\"];class Te extends me{constructor(){super(),Ae.adapter.root.tcbObject||(Ae.adapter.root.tcbObject={})}setItem(e,t){Ae.adapter.root.tcbObject[e]=t}getItem(e){return Ae.adapter.root.tcbObject[e]}removeItem(e){delete Ae.adapter.root.tcbObject[e]}clear(){delete Ae.adapter.root.tcbObject}}function Ce(e,t){switch(e){case\"local\":return t.localStorage||new Te;case\"none\":return new Te;default:return t.sessionStorage||new Te}}class xe{constructor(e){if(!this._storage){this._persistence=Ae.adapter.primaryStorage||e.persistence,this._storage=Ce(this._persistence,Ae.adapter);const t=`access_token_${e.env}`,n=`access_token_expire_${e.env}`,s=`refresh_token_${e.env}`,r=`anonymous_uuid_${e.env}`,i=`login_type_${e.env}`,o=`user_info_${e.env}`;this.keys={accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s,anonymousUuidKey:r,loginTypeKey:i,userInfoKey:o}}}updatePersistence(e){if(e===this._persistence)return;const t=\"local\"===this._persistence;this._persistence=e;const n=Ce(e,Ae.adapter);for(const e in this.keys){const s=this.keys[e];if(t&&Pe.includes(e))continue;const r=this._storage.getItem(s);Ie(r)||Se(r)||(n.setItem(s,r),this._storage.removeItem(s))}this._storage=n}setStore(e,t,n){if(!this._storage)return;const s={version:n||\"localCachev1\",content:t},r=JSON.stringify(s);try{this._storage.setItem(e,r)}catch(e){throw e}}getStore(e,t){try{if(!this._storage)return}catch(e){return\"\"}t=t||\"localCachev1\";const n=this._storage.getItem(e);if(!n)return\"\";if(n.indexOf(t)>=0){return JSON.parse(n).content}return\"\"}removeStore(e){this._storage.removeItem(e)}}const Oe={},Ee={};function Le(e){return Oe[e]}class Re{constructor(e,t){this.data=t||null,this.name=e}}class Ue extends Re{constructor(e,t){super(\"error\",{error:e,data:t}),this.error=e}}const Ne=new class{constructor(){this._listeners={}}on(e,t){return function(e,t,n){n[e]=n[e]||[],n[e].push(t)}(e,t,this._listeners),this}off(e,t){return function(e,t,n){if(n&&n[e]){const s=n[e].indexOf(t);-1!==s&&n[e].splice(s,1)}}(e,t,this._listeners),this}fire(e,t){if(e instanceof Ue)return console.error(e.error),this;const n=\"string\"==typeof e?new Re(e,t||{}):e;const s=n.name;if(this._listens(s)){n.target=this;const e=this._listeners[s]?[...this._listeners[s]]:[];for(const t of e)t.call(this,n)}return this}_listens(e){return this._listeners[e]&&this._listeners[e].length>0}};function De(e,t){Ne.on(e,t)}function Me(e,t={}){Ne.fire(e,t)}function qe(e,t){Ne.off(e,t)}const Fe=\"loginStateChanged\",Ke=\"loginStateExpire\",je=\"loginTypeChanged\",$e=\"anonymousConverted\",Be=\"refreshAccessToken\";var We;!function(e){e.ANONYMOUS=\"ANONYMOUS\",e.WECHAT=\"WECHAT\",e.WECHAT_PUBLIC=\"WECHAT-PUBLIC\",e.WECHAT_OPEN=\"WECHAT-OPEN\",e.CUSTOM=\"CUSTOM\",e.EMAIL=\"EMAIL\",e.USERNAME=\"USERNAME\",e.NULL=\"NULL\"}(We||(We={}));const He=[\"auth.getJwt\",\"auth.logout\",\"auth.signInWithTicket\",\"auth.signInAnonymously\",\"auth.signIn\",\"auth.fetchAccessTokenWithRefreshToken\",\"auth.signUpWithEmailAndPassword\",\"auth.activateEndUserMail\",\"auth.sendPasswordResetEmail\",\"auth.resetPasswordWithToken\",\"auth.isUsernameRegistered\"],ze={\"X-SDK-Version\":\"1.3.5\"};function Je(e,t,n){const s=e[t];e[t]=function(t){const r={},i={};n.forEach((n=>{const{data:s,headers:o}=n.call(e,t);Object.assign(r,s),Object.assign(i,o)}));const o=t.data;return o&&(()=>{var e;if(e=o,\"[object FormData]\"!==Object.prototype.toString.call(e))t.data={...o,...r};else for(const e in r)o.append(e,r[e])})(),t.headers={...t.headers||{},...i},s.call(e,t)}}function Ge(){const e=Math.random().toString(16).slice(2);return{data:{seqId:e},headers:{...ze,\"x-seqid\":e}}}class Ve{constructor(e={}){var t;this.config=e,this._reqClass=new Ae.adapter.reqClass({timeout:this.config.timeout,timeoutMsg:`请求在${this.config.timeout/1e3}s内未完成,已中断`,restrictedMethods:[\"post\"]}),this._cache=Le(this.config.env),this._localCache=(t=this.config.env,Ee[t]),Je(this._reqClass,\"post\",[Ge]),Je(this._reqClass,\"upload\",[Ge]),Je(this._reqClass,\"download\",[Ge])}async post(e){return await this._reqClass.post(e)}async upload(e){return await this._reqClass.upload(e)}async download(e){return await this._reqClass.download(e)}async refreshAccessToken(){let e,t;this._refreshAccessTokenPromise||(this._refreshAccessTokenPromise=this._refreshAccessToken());try{e=await this._refreshAccessTokenPromise}catch(e){t=e}if(this._refreshAccessTokenPromise=null,this._shouldRefreshAccessTokenHook=null,t)throw t;return e}async _refreshAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n,loginTypeKey:s,anonymousUuidKey:r}=this._cache.keys;this._cache.removeStore(e),this._cache.removeStore(t);let i=this._cache.getStore(n);if(!i)throw new te({message:\"未登录CloudBase\"});const o={refresh_token:i},a=await this.request(\"auth.fetchAccessTokenWithRefreshToken\",o);if(a.data.code){const{code:e}=a.data;if(\"SIGN_PARAM_INVALID\"===e||\"REFRESH_TOKEN_EXPIRED\"===e||\"INVALID_REFRESH_TOKEN\"===e){if(this._cache.getStore(s)===We.ANONYMOUS&&\"INVALID_REFRESH_TOKEN\"===e){const e=this._cache.getStore(r),t=this._cache.getStore(n),s=await this.send(\"auth.signInAnonymously\",{anonymous_uuid:e,refresh_token:t});return this.setRefreshToken(s.refresh_token),this._refreshAccessToken()}Me(Ke),this._cache.removeStore(n)}throw new te({code:a.data.code,message:`刷新access token失败:${a.data.code}`})}if(a.data.access_token)return Me(Be),this._cache.setStore(e,a.data.access_token),this._cache.setStore(t,a.data.access_token_expire+Date.now()),{accessToken:a.data.access_token,accessTokenExpire:a.data.access_token_expire};a.data.refresh_token&&(this._cache.removeStore(n),this._cache.setStore(n,a.data.refresh_token),this._refreshAccessToken())}async getAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n}=this._cache.keys;if(!this._cache.getStore(n))throw new te({message:\"refresh token不存在,登录状态异常\"});let s=this._cache.getStore(e),r=this._cache.getStore(t),i=!0;return this._shouldRefreshAccessTokenHook&&!await this._shouldRefreshAccessTokenHook(s,r)&&(i=!1),(!s||!r||r<Date.now())&&i?this.refreshAccessToken():{accessToken:s,accessTokenExpire:r}}async request(e,t,n){const s=`x-tcb-trace_${this.config.env}`;let r=\"application/x-www-form-urlencoded\";const i={action:e,env:this.config.env,dataVersion:\"2019-08-16\",...t};if(-1===He.indexOf(e)){const{refreshTokenKey:e}=this._cache.keys;this._cache.getStore(e)&&(i.access_token=(await this.getAccessToken()).accessToken)}let o;if(\"storage.uploadFile\"===e){o=new FormData;for(let e in o)o.hasOwnProperty(e)&&void 0!==o[e]&&o.append(e,i[e]);r=\"multipart/form-data\"}else{r=\"application/json\",o={};for(let e in i)void 0!==i[e]&&(o[e]=i[e])}let a={headers:{\"content-type\":r}};n&&n.onUploadProgress&&(a.onUploadProgress=n.onUploadProgress);const c=this._localCache.getStore(s);c&&(a.headers[\"X-TCB-Trace\"]=c);const{parse:u,inQuery:h,search:l}=t;let d={env:this.config.env};u&&(d.parse=!0),h&&(d={...h,...d});let p=function(e,t,n={}){const s=/\\?/.test(t);let r=\"\";for(let e in n)\"\"===r?!s&&(t+=\"?\"):r+=\"&\",r+=`${e}=${encodeURIComponent(n[e])}`;return/^http(s)?\\:\\/\\//.test(t+=r)?t:`${e}${t}`}(fe,\"//tcb-api.tencentcloudapi.com/web\",d);l&&(p+=l);const f=await this.post({url:p,data:o,...a}),g=f.header&&f.header[\"x-tcb-trace\"];if(g&&this._localCache.setStore(s,g),200!==Number(f.status)&&200!==Number(f.statusCode)||!f.data)throw new te({code:\"NETWORK_ERROR\",message:\"network request error\"});return f}async send(e,t={}){const n=await this.request(e,t,{onUploadProgress:t.onUploadProgress});if(\"ACCESS_TOKEN_EXPIRED\"===n.data.code&&-1===He.indexOf(e)){await this.refreshAccessToken();const n=await this.request(e,t,{onUploadProgress:t.onUploadProgress});if(n.data.code)throw new te({code:n.data.code,message:n.data.message});return n.data}if(n.data.code)throw new te({code:n.data.code,message:n.data.message});return n.data}setRefreshToken(e){const{accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s}=this._cache.keys;this._cache.removeStore(t),this._cache.removeStore(n),this._cache.setStore(s,e)}}const Ye={};function Qe(e){return Ye[e]}class Xe{constructor(e){this.config=e,this._cache=Le(e.env),this._request=Qe(e.env)}setRefreshToken(e){const{accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s}=this._cache.keys;this._cache.removeStore(t),this._cache.removeStore(n),this._cache.setStore(s,e)}setAccessToken(e,t){const{accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys;this._cache.setStore(n,e),this._cache.setStore(s,t)}async refreshUserInfo(){const{data:e}=await this._request.send(\"auth.getUserInfo\",{});return this.setLocalUserInfo(e),e}setLocalUserInfo(e){const{userInfoKey:t}=this._cache.keys;this._cache.setStore(t,e)}}class Ze{constructor(e){if(!e)throw new te({code:\"PARAM_ERROR\",message:\"envId is not defined\"});this._envId=e,this._cache=Le(this._envId),this._request=Qe(this._envId),this.setUserInfo()}linkWithTicket(e){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"ticket must be string\"});return this._request.send(\"auth.linkWithTicket\",{ticket:e})}linkWithRedirect(e){e.signInWithRedirect()}updatePassword(e,t){return this._request.send(\"auth.updatePassword\",{oldPassword:t,newPassword:e})}updateEmail(e){return this._request.send(\"auth.updateEmail\",{newEmail:e})}updateUsername(e){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"username must be a string\"});return this._request.send(\"auth.updateUsername\",{username:e})}async getLinkedUidList(){const{data:e}=await this._request.send(\"auth.getLinkedUidList\",{});let t=!1;const{users:n}=e;return n.forEach((e=>{e.wxOpenId&&e.wxPublicId&&(t=!0)})),{users:n,hasPrimaryUid:t}}setPrimaryUid(e){return this._request.send(\"auth.setPrimaryUid\",{uid:e})}unlink(e){return this._request.send(\"auth.unlink\",{platform:e})}async update(e){const{nickName:t,gender:n,avatarUrl:s,province:r,country:i,city:o}=e,{data:a}=await this._request.send(\"auth.updateUserInfo\",{nickName:t,gender:n,avatarUrl:s,province:r,country:i,city:o});this.setLocalUserInfo(a)}async refresh(){const{data:e}=await this._request.send(\"auth.getUserInfo\",{});return this.setLocalUserInfo(e),e}setUserInfo(){const{userInfoKey:e}=this._cache.keys,t=this._cache.getStore(e);[\"uid\",\"loginType\",\"openid\",\"wxOpenId\",\"wxPublicId\",\"unionId\",\"qqMiniOpenId\",\"email\",\"hasPassword\",\"customUserId\",\"nickName\",\"gender\",\"avatarUrl\"].forEach((e=>{this[e]=t[e]})),this.location={country:t.country,province:t.province,city:t.city}}setLocalUserInfo(e){const{userInfoKey:t}=this._cache.keys;this._cache.setStore(t,e),this.setUserInfo()}}class et{constructor(e){if(!e)throw new te({code:\"PARAM_ERROR\",message:\"envId is not defined\"});this._cache=Le(e);const{refreshTokenKey:t,accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys,r=this._cache.getStore(t),i=this._cache.getStore(n),o=this._cache.getStore(s);this.credential={refreshToken:r,accessToken:i,accessTokenExpire:o},this.user=new Ze(e)}get isAnonymousAuth(){return this.loginType===We.ANONYMOUS}get isCustomAuth(){return this.loginType===We.CUSTOM}get isWeixinAuth(){return this.loginType===We.WECHAT||this.loginType===We.WECHAT_OPEN||this.loginType===We.WECHAT_PUBLIC}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}}class tt extends Xe{async signIn(){this._cache.updatePersistence(\"local\");const{anonymousUuidKey:e,refreshTokenKey:t}=this._cache.keys,n=this._cache.getStore(e)||void 0,s=this._cache.getStore(t)||void 0,r=await this._request.send(\"auth.signInAnonymously\",{anonymous_uuid:n,refresh_token:s});if(r.uuid&&r.refresh_token){this._setAnonymousUUID(r.uuid),this.setRefreshToken(r.refresh_token),await this._request.refreshAccessToken(),Me(Fe),Me(je,{env:this.config.env,loginType:We.ANONYMOUS,persistence:\"local\"});const e=new et(this.config.env);return await e.user.refresh(),e}throw new te({message:\"匿名登录失败\"})}async linkAndRetrieveDataWithTicket(e){const{anonymousUuidKey:t,refreshTokenKey:n}=this._cache.keys,s=this._cache.getStore(t),r=this._cache.getStore(n),i=await this._request.send(\"auth.linkAndRetrieveDataWithTicket\",{anonymous_uuid:s,refresh_token:r,ticket:e});if(i.refresh_token)return this._clearAnonymousUUID(),this.setRefreshToken(i.refresh_token),await this._request.refreshAccessToken(),Me($e,{env:this.config.env}),Me(je,{loginType:We.CUSTOM,persistence:\"local\"}),{credential:{refreshToken:i.refresh_token}};throw new te({message:\"匿名转化失败\"})}_setAnonymousUUID(e){const{anonymousUuidKey:t,loginTypeKey:n}=this._cache.keys;this._cache.removeStore(t),this._cache.setStore(t,e),this._cache.setStore(n,We.ANONYMOUS)}_clearAnonymousUUID(){this._cache.removeStore(this._cache.keys.anonymousUuidKey)}}class nt extends Xe{async signIn(e){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"ticket must be a string\"});const{refreshTokenKey:t}=this._cache.keys,n=await this._request.send(\"auth.signInWithTicket\",{ticket:e,refresh_token:this._cache.getStore(t)||\"\"});if(n.refresh_token)return this.setRefreshToken(n.refresh_token),await this._request.refreshAccessToken(),Me(Fe),Me(je,{env:this.config.env,loginType:We.CUSTOM,persistence:this.config.persistence}),await this.refreshUserInfo(),new et(this.config.env);throw new te({message:\"自定义登录失败\"})}}class st extends Xe{async signIn(e,t){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"email must be a string\"});const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:\"EMAIL\",email:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:r,access_token:i,access_token_expire:o}=s;if(r)return this.setRefreshToken(r),i&&o?this.setAccessToken(i,o):await this._request.refreshAccessToken(),await this.refreshUserInfo(),Me(Fe),Me(je,{env:this.config.env,loginType:We.EMAIL,persistence:this.config.persistence}),new et(this.config.env);throw s.code?new te({code:s.code,message:`邮箱登录失败: ${s.message}`}):new te({message:\"邮箱登录失败\"})}async activate(e){return this._request.send(\"auth.activateEndUserMail\",{token:e})}async resetPasswordWithToken(e,t){return this._request.send(\"auth.resetPasswordWithToken\",{token:e,newPassword:t})}}class rt extends Xe{async signIn(e,t){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"username must be a string\"});\"string\"!=typeof t&&(t=\"\",console.warn(\"password is empty\"));const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:We.USERNAME,username:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:r,access_token_expire:i,access_token:o}=s;if(r)return this.setRefreshToken(r),o&&i?this.setAccessToken(o,i):await this._request.refreshAccessToken(),await this.refreshUserInfo(),Me(Fe),Me(je,{env:this.config.env,loginType:We.USERNAME,persistence:this.config.persistence}),new et(this.config.env);throw s.code?new te({code:s.code,message:`用户名密码登录失败: ${s.message}`}):new te({message:\"用户名密码登录失败\"})}}class it{constructor(e){this.config=e,this._cache=Le(e.env),this._request=Qe(e.env),this._onAnonymousConverted=this._onAnonymousConverted.bind(this),this._onLoginTypeChanged=this._onLoginTypeChanged.bind(this),De(je,this._onLoginTypeChanged)}get currentUser(){const e=this.hasLoginState();return e&&e.user||null}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}anonymousAuthProvider(){return new tt(this.config)}customAuthProvider(){return new nt(this.config)}emailAuthProvider(){return new st(this.config)}usernameAuthProvider(){return new rt(this.config)}async signInAnonymously(){return new tt(this.config).signIn()}async signInWithEmailAndPassword(e,t){return new st(this.config).signIn(e,t)}signInWithUsernameAndPassword(e,t){return new rt(this.config).signIn(e,t)}async linkAndRetrieveDataWithTicket(e){this._anonymousAuthProvider||(this._anonymousAuthProvider=new tt(this.config)),De($e,this._onAnonymousConverted);return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e)}async signOut(){if(this.loginType===We.ANONYMOUS)throw new te({message:\"匿名用户不支持登出操作\"});const{refreshTokenKey:e,accessTokenKey:t,accessTokenExpireKey:n}=this._cache.keys,s=this._cache.getStore(e);if(!s)return;const r=await this._request.send(\"auth.logout\",{refresh_token:s});return this._cache.removeStore(e),this._cache.removeStore(t),this._cache.removeStore(n),Me(Fe),Me(je,{env:this.config.env,loginType:We.NULL,persistence:this.config.persistence}),r}async signUpWithEmailAndPassword(e,t){return this._request.send(\"auth.signUpWithEmailAndPassword\",{email:e,password:t})}async sendPasswordResetEmail(e){return this._request.send(\"auth.sendPasswordResetEmail\",{email:e})}onLoginStateChanged(e){De(Fe,(()=>{const t=this.hasLoginState();e.call(this,t)}));const t=this.hasLoginState();e.call(this,t)}onLoginStateExpired(e){De(Ke,e.bind(this))}onAccessTokenRefreshed(e){De(Be,e.bind(this))}onAnonymousConverted(e){De($e,e.bind(this))}onLoginTypeChanged(e){De(je,(()=>{const t=this.hasLoginState();e.call(this,t)}))}async getAccessToken(){return{accessToken:(await this._request.getAccessToken()).accessToken,env:this.config.env}}hasLoginState(){const{refreshTokenKey:e}=this._cache.keys;return this._cache.getStore(e)?new et(this.config.env):null}async isUsernameRegistered(e){if(\"string\"!=typeof e)throw new te({code:\"PARAM_ERROR\",message:\"username must be a string\"});const{data:t}=await this._request.send(\"auth.isUsernameRegistered\",{username:e});return t&&t.isRegistered}getLoginState(){return Promise.resolve(this.hasLoginState())}async signInWithTicket(e){return new nt(this.config).signIn(e)}shouldRefreshAccessToken(e){this._request._shouldRefreshAccessTokenHook=e.bind(this)}getUserInfo(){return this._request.send(\"auth.getUserInfo\",{}).then((e=>e.code?e:{...e.data,requestId:e.seqId}))}getAuthHeader(){const{refreshTokenKey:e,accessTokenKey:t}=this._cache.keys,n=this._cache.getStore(e);return{\"x-cloudbase-credentials\":this._cache.getStore(t)+\"/@@/\"+n}}_onAnonymousConverted(e){const{env:t}=e.data;t===this.config.env&&this._cache.updatePersistence(this.config.persistence)}_onLoginTypeChanged(e){const{loginType:t,persistence:n,env:s}=e.data;s===this.config.env&&(this._cache.updatePersistence(n),this._cache.setStore(this._cache.keys.loginTypeKey,t))}}const ot=function(e,t){t=t||ve();const n=Qe(this.config.env),{cloudPath:s,filePath:r,onUploadProgress:i,fileType:o=\"image\"}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{const{data:{url:a,authorization:c,token:u,fileId:h,cosFileId:l},requestId:d}=e,p={key:s,signature:c,\"x-cos-meta-fileid\":l,success_action_status:\"201\",\"x-cos-security-token\":u};n.upload({url:a,data:p,file:r,name:s,fileType:o,onUploadProgress:i}).then((e=>{201===e.statusCode?t(null,{fileID:h,requestId:d}):t(new te({code:\"STORAGE_REQUEST_FAIL\",message:`STORAGE_REQUEST_FAIL: ${e.data}`}))})).catch((e=>{t(e)}))})).catch((e=>{t(e)})),t.promise},at=function(e,t){t=t||ve();const n=Qe(this.config.env),{cloudPath:s}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{t(null,e)})).catch((e=>{t(e)})),t.promise},ct=function({fileList:e},t){if(t=t||ve(),!e||!Array.isArray(e))return{code:\"INVALID_PARAM\",message:\"fileList必须是非空的数组\"};for(let t of e)if(!t||\"string\"!=typeof t)return{code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"};const n={fileid_list:e};return Qe(this.config.env).send(\"storage.batchDeleteFile\",n).then((e=>{e.code?t(null,e):t(null,{fileList:e.data.delete_list,requestId:e.requestId})})).catch((e=>{t(e)})),t.promise},ut=function({fileList:e},t){t=t||ve(),e&&Array.isArray(e)||t(null,{code:\"INVALID_PARAM\",message:\"fileList必须是非空的数组\"});let n=[];for(let s of e)\"object\"==typeof s?(s.hasOwnProperty(\"fileID\")&&s.hasOwnProperty(\"maxAge\")||t(null,{code:\"INVALID_PARAM\",message:\"fileList的元素必须是包含fileID和maxAge的对象\"}),n.push({fileid:s.fileID,max_age:s.maxAge})):\"string\"==typeof s?n.push({fileid:s}):t(null,{code:\"INVALID_PARAM\",message:\"fileList的元素必须是字符串\"});const s={file_list:n};return Qe(this.config.env).send(\"storage.batchGetDownloadUrl\",s).then((e=>{e.code?t(null,e):t(null,{fileList:e.data.download_list,requestId:e.requestId})})).catch((e=>{t(e)})),t.promise},ht=async function({fileID:e},t){const n=(await ut.call(this,{fileList:[{fileID:e,maxAge:600}]})).fileList[0];if(\"SUCCESS\"!==n.code)return t?t(n):new Promise((e=>{e(n)}));const s=Qe(this.config.env);let r=n.download_url;if(r=encodeURI(r),!t)return s.download({url:r});t(await s.download({url:r}))},lt=function({name:e,data:t,query:n,parse:s,search:r},i){const o=i||ve();let a;try{a=t?JSON.stringify(t):\"\"}catch(e){return Promise.reject(e)}if(!e)return Promise.reject(new te({code:\"PARAM_ERROR\",message:\"函数名不能为空\"}));const c={inQuery:n,parse:s,search:r,function_name:e,request_data:a};return Qe(this.config.env).send(\"functions.invokeFunction\",c).then((e=>{if(e.code)o(null,e);else{let t=e.data.response_data;if(s)o(null,{result:t,requestId:e.requestId});else try{t=JSON.parse(e.data.response_data),o(null,{result:t,requestId:e.requestId})}catch(e){o(new te({message:\"response data must be json\"}))}}return o.promise})).catch((e=>{o(e)})),o.promise},dt={timeout:15e3,persistence:\"session\"},pt={};class ft{constructor(e){this.config=e||this.config,this.authObj=void 0}init(e){switch(Ae.adapter||(this.requestClient=new Ae.adapter.reqClass({timeout:e.timeout||5e3,timeoutMsg:`请求在${(e.timeout||5e3)/1e3}s内未完成,已中断`})),this.config={...dt,...e},!0){case this.config.timeout>6e5:console.warn(\"timeout大于可配置上限[10分钟],已重置为上限数值\"),this.config.timeout=6e5;break;case this.config.timeout<100:console.warn(\"timeout小于可配置下限[100ms],已重置为下限数值\"),this.config.timeout=100}return new ft(this.config)}auth({persistence:e}={}){if(this.authObj)return this.authObj;const t=e||Ae.adapter.primaryStorage||dt.persistence;var n;return t!==this.config.persistence&&(this.config.persistence=t),function(e){const{env:t}=e;Oe[t]=new xe(e),Ee[t]=new xe({...e,persistence:\"local\"})}(this.config),n=this.config,Ye[n.env]=new Ve(n),this.authObj=new it(this.config),this.authObj}on(e,t){return De.apply(this,[e,t])}off(e,t){return qe.apply(this,[e,t])}callFunction(e,t){return lt.apply(this,[e,t])}deleteFile(e,t){return ct.apply(this,[e,t])}getTempFileURL(e,t){return ut.apply(this,[e,t])}downloadFile(e,t){return ht.apply(this,[e,t])}uploadFile(e,t){return ot.apply(this,[e,t])}getUploadMetadata(e,t){return at.apply(this,[e,t])}registerExtension(e){pt[e.name]=e}async invokeExtension(e,t){const n=pt[e];if(!n)throw new te({message:`扩展${e} 必须先注册`});return await n.invoke(t,this)}useAdapters(e){const{adapter:t,runtime:n}=ke(e)||{};t&&(Ae.adapter=t),n&&(Ae.runtime=n)}}var gt=new ft;function mt(e,t,n){void 0===n&&(n={});var s=/\\?/.test(t),r=\"\";for(var i in n)\"\"===r?!s&&(t+=\"?\"):r+=\"&\",r+=i+\"=\"+encodeURIComponent(n[i]);return/^http(s)?:\\/\\//.test(t+=r)?t:\"\"+e+t}class yt{post(e){const{url:t,data:n,headers:s}=e;return new Promise(((e,r)=>{ne.request({url:mt(\"https:\",t),data:n,method:\"POST\",header:s,success(t){e(t)},fail(e){r(e)}})}))}upload(e){return new Promise(((t,n)=>{const{url:s,file:r,data:i,headers:o,fileType:a}=e,c=ne.uploadFile({url:mt(\"https:\",s),name:\"file\",formData:Object.assign({},i),filePath:r,fileType:a,header:o,success(e){const n={statusCode:e.statusCode,data:e.data||{}};200===e.statusCode&&i.success_action_status&&(n.statusCode=parseInt(i.success_action_status,10)),t(n)},fail(e){n(new Error(e.errMsg||\"uploadFile:fail\"))}});\"function\"==typeof e.onUploadProgress&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((t=>{e.onUploadProgress({loaded:t.totalBytesSent,total:t.totalBytesExpectedToSend})}))}))}}const _t={setItem(e,t){ne.setStorageSync(e,t)},getItem:e=>ne.getStorageSync(e),removeItem(e){ne.removeStorageSync(e)},clear(){ne.clearStorageSync()}};var wt={genAdapter:function(){return{root:{},reqClass:yt,localStorage:_t,primaryStorage:\"local\"}},isMatch:function(){return!0},runtime:\"uni_app\"};gt.useAdapters(wt);const vt=gt,It=vt.init;vt.init=function(e){e.env=e.spaceId;const t=It.call(this,e);t.config.provider=\"tencent\",t.config.spaceId=e.spaceId;const n=t.auth;return t.auth=function(e){const t=n.call(this,e);return[\"linkAndRetrieveDataWithTicket\",\"signInAnonymously\",\"signOut\",\"getAccessToken\",\"getLoginState\",\"signInWithTicket\",\"getUserInfo\"].forEach((e=>{var n;t[e]=(n=t[e],function(e){e=e||{};const{success:t,fail:s,complete:r}=ee(e);if(!(t||s||r))return n.call(this,e);n.call(this,e).then((e=>{t&&t(e),r&&r(e)}),(e=>{s&&s(e),r&&r(e)}))}).bind(t)})),t},t.customAuth=t.auth,t};var St=vt;var bt=class extends de{getAccessToken(){return new Promise(((e,t)=>{const n=\"Anonymous_Access_token\";this.setAccessToken(n),e(n)}))}setupRequest(e,t){const n=Object.assign({},e,{spaceId:this.config.spaceId,timestamp:Date.now()}),s={\"Content-Type\":\"application/json\"};\"auth\"!==t&&(n.token=this.accessToken,s[\"x-basement-token\"]=this.accessToken),s[\"x-serverless-sign\"]=le.sign(n,this.config.clientSecret);const r=he();s[\"x-client-info\"]=encodeURIComponent(JSON.stringify(r));const{token:i}=re();return s[\"x-client-token\"]=i,{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:JSON.parse(JSON.stringify(s))}}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:r,onUploadProgress:i}){return new Promise(((o,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:r,success(e){e&&e.statusCode<400?o(e):a(new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new te({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof i&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{i({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s}){if(!t)throw new te({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});let r;return this.getOSSUploadOptionsFromPath({cloudPath:t}).then((t=>{const{url:i,formData:o,name:a}=t.result;r=t.result.fileUrl;const c={url:i,formData:o,name:a,filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},c,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({cloudPath:t}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:r}):s(new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))}))))}deleteFile({fileList:e}){const t={method:\"serverless.file.resource.delete\",params:JSON.stringify({fileList:e})};return this.request(this.setupRequest(t)).then((e=>{if(e.success)return e.result;throw new te({code:\"DELETE_FILE_FAILED\",message:\"删除文件失败\"})}))}getTempFileURL({fileList:e,maxAge:t}={}){if(!Array.isArray(e)||0===e.length)throw new te({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"});const n={method:\"serverless.file.resource.getTempFileURL\",params:JSON.stringify({fileList:e,maxAge:t})};return this.request(this.setupRequest(n)).then((e=>{if(e.success)return{fileList:e.result.fileList.map((e=>({fileID:e.fileID,tempFileURL:e.tempFileURL})))};throw new te({code:\"GET_TEMP_FILE_URL_FAILED\",message:\"获取临时文件链接失败\"})}))}};var kt={init(e){const t=new bt(e),n={signInAnonymously:function(){return t.authorize()},getLoginState:function(){return Promise.resolve(!1)}};return t.auth=function(){return n},t.customAuth=t.auth,t}},At=n((function(e,t){e.exports=r.enc.Hex}));function Pt(e=\"\",t={}){const{data:n,functionName:s,method:r,headers:i,signHeaderKeys:o=[],config:a}=t,c=Date.now(),u=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return(\"x\"===e?t:3&t|8).toString(16)})),h=Object.assign({},i,{\"x-from-app-id\":a.spaceAppId,\"x-from-env-id\":a.spaceId,\"x-to-env-id\":a.spaceId,\"x-from-instance-id\":c,\"x-from-function-name\":s,\"x-client-timestamp\":c,\"x-alipay-source\":\"client\",\"x-request-id\":u,\"x-alipay-callid\":u,\"x-trace-id\":u}),l=[\"x-from-app-id\",\"x-from-env-id\",\"x-to-env-id\",\"x-from-instance-id\",\"x-from-function-name\",\"x-client-timestamp\"].concat(o),[d=\"\",p=\"\"]=e.split(\"?\")||[],f=function(e){const t=e.signedHeaders.join(\";\"),n=e.signedHeaders.map((t=>`${t.toLowerCase()}:${e.headers[t]}\\n`)).join(\"\"),s=_e(e.body).toString(At),r=`${e.method.toUpperCase()}\\n${e.path}\\n${e.query}\\n${n}\\n${t}\\n${s}\\n`,i=_e(r).toString(At),o=`HMAC-SHA256\\n${e.timestamp}\\n${i}\\n`,a=we(o,e.secretKey).toString(At);return`HMAC-SHA256 Credential=${e.secretId}, SignedHeaders=${t}, Signature=${a}`}({path:d,query:p,method:r,headers:h,timestamp:c,body:JSON.stringify(n),secretId:a.accessKey,secretKey:a.secretKey,signedHeaders:l.sort()});return{url:`${a.endpoint}${e}`,headers:Object.assign({},h,{Authorization:f})}}function Tt({url:e,data:t,method:n=\"POST\",headers:s={}}){return new Promise(((r,i)=>{ne.request({url:e,method:n,data:t,header:s,dataType:\"json\",complete:(e={})=>{const t=s[\"x-trace-id\"]||\"\";if(!e.statusCode||e.statusCode>=400){const{message:n,errMsg:s,trace_id:r}=e.data||{};return i(new te({code:\"SYS_ERR\",message:n||s||\"request:fail\",requestId:r||t}))}r({status:e.statusCode,data:e.data,headers:e.header,requestId:t})}})}))}function Ct(e,t){const{path:n,data:s,method:r=\"GET\"}=e,{url:i,headers:o}=Pt(n,{functionName:\"\",data:s,method:r,headers:{\"x-alipay-cloud-mode\":\"oss\",\"x-data-api-type\":\"oss\",\"x-expire-timestamp\":Date.now()+6e4},signHeaderKeys:[\"x-data-api-type\",\"x-expire-timestamp\"],config:t});return Tt({url:i,data:s,method:r,headers:o}).then((e=>{const t=e.data||{};if(!t.success)throw new te({code:e.errCode,message:e.errMsg,requestId:e.requestId});return t.data||{}})).catch((e=>{throw new te({code:e.errCode,message:e.errMsg,requestId:e.requestId})}))}function xt(e=\"\"){const t=e.trim().replace(/^cloud:\\/\\//,\"\"),n=t.indexOf(\"/\");if(n<=0)throw new te({code:\"INVALID_PARAM\",message:\"fileID不合法\"});const s=t.substring(0,n),r=t.substring(n+1);return s!==this.config.spaceId&&console.warn(\"file \".concat(e,\" does not belong to env \").concat(this.config.spaceId)),r}function Ot(e=\"\"){return\"cloud://\".concat(this.config.spaceId,\"/\").concat(e.replace(/^\\/+/,\"\"))}var Et=class{constructor(e){if([\"spaceId\",\"spaceAppId\",\"accessKey\",\"secretKey\"].forEach((t=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw new Error(`${t} required`)})),e.endpoint){if(\"string\"!=typeof e.endpoint)throw new Error(\"endpoint must be string\");if(!/^https:\\/\\//.test(e.endpoint))throw new Error(\"endpoint must start with https://\");e.endpoint=e.endpoint.replace(/\\/$/,\"\")}this.config=Object.assign({},e,{endpoint:e.endpoint||`https://${e.spaceId}.api-hz.cloudbasefunction.cn`})}callFunction(e){return function(e,t){const{name:n,data:s}=e,r=\"POST\",{url:i,headers:o}=Pt(\"/functions/invokeFunction\",{functionName:n,data:s,method:r,headers:{\"x-to-function-name\":n},signHeaderKeys:[\"x-to-function-name\"],config:t});return Tt({url:i,data:s,method:r,headers:o}).then((e=>({errCode:0,success:!0,requestId:e.requestId,result:e.data}))).catch((e=>{throw new te({code:e.errCode,message:e.errMsg,requestId:e.requestId})}))}(e,this.config)}uploadFileToOSS({url:e,filePath:t,fileType:n,formData:s,onUploadProgress:r}){return new Promise(((i,o)=>{const a=ne.uploadFile({url:e,filePath:t,fileType:n,formData:s,name:\"file\",success(e){e&&e.statusCode<400?i(e):o(new te({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){o(new te({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof r&&a&&\"function\"==typeof a.onProgressUpdate&&a.onProgressUpdate((e=>{r({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}async uploadFile({filePath:e,cloudPath:t=\"\",fileType:n=\"image\",onUploadProgress:s}){if(\"string\"!==f(t))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath必须为字符串类型\"});if(!(t=t.trim()))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath不可为空\"});if(/:\\/\\//.test(t))throw new te({code:\"INVALID_PARAM\",message:\"cloudPath不合法\"});const r=await Ct({path:\"/\".concat(t.replace(/^\\//,\"\"),\"?post_url\")},this.config),{file_id:i,upload_url:o,form_data:a}=r,c=a&&a.reduce(((e,t)=>(e[t.key]=t.value,e)),{});return this.uploadFileToOSS({url:o,filePath:e,fileType:n,formData:c,onUploadProgress:s}).then((()=>({fileID:i})))}async getTempFileURL({fileList:e}){return new Promise(((t,n)=>{(!e||e.length<0)&&n(new te({errCode:\"INVALID_PARAM\",errMsg:\"fileList不能为空数组\"})),e.length>50&&n(new te({errCode:\"INVALID_PARAM\",errMsg:\"fileList数组长度不能超过50\"}));const s=[];for(const t of e){\"string\"!==f(t)&&n(new te({errCode:\"INVALID_PARAM\",errMsg:\"fileList的元素必须是非空的字符串\"}));const e=xt.call(this,t);s.push({file_id:e,expire:600})}Ct({path:\"/?download_url\",data:{file_list:s},method:\"POST\"},this.config).then((e=>{const{file_list:n=[]}=e;t({fileList:n.map((e=>({fileID:Ot.call(this,e.file_id),tempFileURL:e.download_url})))})})).catch((e=>n(e)))}))}};var Lt={init:e=>{e.provider=\"alipay\";const t=new Et(e);return t.auth=function(){return{signInAnonymously:function(){return Promise.resolve()},getLoginState:function(){return Promise.resolve(!0)}}},t}};function Rt({data:e}){let t;t=he();const n=JSON.parse(JSON.stringify(e||{}));if(Object.assign(n,{clientInfo:t}),!n.uniIdToken){const{token:e}=re();e&&(n.uniIdToken=e)}return n}async function Ut({name:e,data:t}={}){await this.__dev__.initLocalNetwork();const{localAddress:n,localPort:s}=this.__dev__,r={aliyun:\"aliyun\",tencent:\"tcb\",alipay:\"alipay\"}[this.config.provider],i=this.config.spaceId,o=`http://${n}:${s}/system/check-function`,a=`http://${n}:${s}/cloudfunctions/${e}`;return new Promise(((t,n)=>{ne.request({method:\"POST\",url:o,data:{name:e,platform:P,provider:r,spaceId:i},timeout:3e3,success(e){t(e)},fail(){t({data:{code:\"NETWORK_ERROR\",message:\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。\"}})}})})).then((({data:e}={})=>{const{code:t,message:n}=e||{};return{code:0===t?0:t||\"SYS_ERR\",message:n||\"SYS_ERR\"}})).then((({code:n,message:s})=>{if(0!==n){switch(n){case\"MODULE_ENCRYPTED\":console.error(`此云函数(${e})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`);break;case\"FUNCTION_ENCRYPTED\":console.error(`此云函数(${e})已加密不可本地调试,自动切换为云端已部署的云函数`);break;case\"ACTION_ENCRYPTED\":console.error(s||\"需要访问加密的uni-clientDB-action,自动切换为云端环境\");break;case\"NETWORK_ERROR\":{const e=\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下\";throw console.error(e),new Error(e)}case\"SWITCH_TO_CLOUD\":break;default:{const e=`检测本地调试服务出现错误:${s},请检查网络环境或重启客户端再试`;throw console.error(e),new Error(e)}}return this._callCloudFunction({name:e,data:t})}return new Promise(((e,n)=>{const s=Rt.call(this,{data:t});ne.request({method:\"POST\",url:a,data:{provider:r,platform:P,param:s},success:({statusCode:t,data:s}={})=>!t||t>=400?n(new te({code:s.code||\"SYS_ERR\",message:s.message||\"request:fail\"})):e({result:s}),fail(e){n(new te({code:e.code||e.errCode||\"SYS_ERR\",message:e.message||e.errMsg||\"request:fail\"}))}})}))}))}const Nt=[{rule:/fc_function_not_found|FUNCTION_NOT_FOUND/,content:\",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间\",mode:\"append\"}];var Dt=/[\\\\^$.*+?()[\\]{}|]/g,Mt=RegExp(Dt.source);function qt(e,t,n){return e.replace(new RegExp((s=t)&&Mt.test(s)?s.replace(Dt,\"\\\\$&\"):s,\"g\"),n);var s}const Ft=\"none\",Kt=\"request\",jt=\"response\",$t=\"both\";class Bt{constructor({secretType:e,uniCloudIns:t}={}){this.clientType=\"\",this.secretType=e||Ft,this.uniCloudIns=t;const{provider:n,spaceId:s}=this.uniCloudIns.config;var r;this.provider=n,this.spaceId=s,this.scopedGlobalCache=(r=this.uniCloudIns,L(\"_globalUniCloudSecureNetworkCache__{spaceId}\".replace(\"{spaceId}\",r.config.spaceId)))}getSystemInfo(){return this._systemInfo||(this._systemInfo=ce()),this._systemInfo}get appId(){return this.getSystemInfo().appId}get deviceId(){return this.getSystemInfo().deviceId}async encryptData(e){return this.secretType===Ft?e:this.platformEncryptData(e)}async decryptResult(e){if(this.secretType===Ft)return e;const{errCode:t,content:n}=e||{};return t||!n?e:this.secretType===Kt?n:this.platformDecryptResult(e)}wrapVerifyClientCallFunction(e){const t=this;return async function({name:n,data:s={}}={}){await t.prepare(),(s=JSON.parse(JSON.stringify(s)))._uniCloudOptions=await t.platformGetSignOption();let r=await e({name:n,data:s});return t.isClientKeyNotFound(r)&&(await t.prepare({forceUpdate:!0}),s._uniCloudOptions=await t.platformGetSignOption(),r=await e({name:n,data:s})),r}}wrapEncryptDataCallFunction(e){const t=this;return async function({name:n,data:s={}}={}){await t.prepare();const r=await t.encryptData(s);let i=await e({name:n,data:r});if(t.isClientKeyNotFound(i)){await t.prepare({forceUpdate:!0});const r=await t.encryptData(s);s._uniCloudOptions=await t.platformGetSignOption(),i=await e({name:n,data:r})}return i.result=await t.decryptResult(i.result),i}}}\n/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */function Wt(e){return parseInt(e)===e}function Ht(e){if(!Wt(e.length))return!1;for(var t=0;t<e.length;t++)if(!Wt(e[t])||e[t]<0||e[t]>255)return!1;return!0}function zt(e,t){if(e.buffer&&\"Uint8Array\"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!Ht(e))throw new Error(\"Array contains invalid value: \"+e);return new Uint8Array(e)}if(Wt(e.length)&&Ht(e))return new Uint8Array(e);throw new Error(\"unsupported array-like object\")}function Jt(e){return new Uint8Array(e)}function Gt(e,t,n,s,r){null==s&&null==r||(e=e.slice?e.slice(s,r):Array.prototype.slice.call(e,s,r)),t.set(e,n)}var Vt,Yt={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var s=e.charCodeAt(n++);37===s?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(s)}return zt(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var s=e[n];s<128?(t.push(String.fromCharCode(s)),n++):s>191&&s<224?(t.push(String.fromCharCode((31&s)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&s)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join(\"\")}},Qt=(Vt=\"0123456789abcdef\",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var s=e[n];t.push(Vt[(240&s)>>4]+Vt[15&s])}return t.join(\"\")}}),Xt={16:10,24:12,32:14},Zt=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],en=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],tn=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],nn=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],sn=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],rn=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],on=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],an=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],cn=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],un=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],hn=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],ln=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],dn=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],pn=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],fn=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function gn(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}class mn{constructor(e){if(!(this instanceof mn))throw Error(\"AES must be instanitated with `new`\");Object.defineProperty(this,\"key\",{value:zt(e,!0)}),this._prepare()}_prepare(){var e=Xt[this.key.length];if(null==e)throw new Error(\"invalid key size (must be 16, 24 or 32 bytes)\");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,s=4*(e+1),r=this.key.length/4,i=gn(this.key);for(t=0;t<r;t++)n=t>>2,this._Ke[n][t%4]=i[t],this._Kd[e-n][t%4]=i[t];for(var o,a=0,c=r;c<s;){if(o=i[r-1],i[0]^=en[o>>16&255]<<24^en[o>>8&255]<<16^en[255&o]<<8^en[o>>24&255]^Zt[a]<<24,a+=1,8!=r)for(t=1;t<r;t++)i[t]^=i[t-1];else{for(t=1;t<r/2;t++)i[t]^=i[t-1];o=i[r/2-1],i[r/2]^=en[255&o]^en[o>>8&255]<<8^en[o>>16&255]<<16^en[o>>24&255]<<24;for(t=r/2+1;t<r;t++)i[t]^=i[t-1]}for(t=0;t<r&&c<s;)u=c>>2,h=c%4,this._Ke[u][h]=i[t],this._Kd[e-u][h]=i[t++],c++}for(var u=1;u<e;u++)for(var h=0;h<4;h++)o=this._Kd[u][h],this._Kd[u][h]=ln[o>>24&255]^dn[o>>16&255]^pn[o>>8&255]^fn[255&o]}encrypt(e){if(16!=e.length)throw new Error(\"invalid plaintext size (must be 16 bytes)\");for(var t=this._Ke.length-1,n=[0,0,0,0],s=gn(e),r=0;r<4;r++)s[r]^=this._Ke[0][r];for(var i=1;i<t;i++){for(r=0;r<4;r++)n[r]=nn[s[r]>>24&255]^sn[s[(r+1)%4]>>16&255]^rn[s[(r+2)%4]>>8&255]^on[255&s[(r+3)%4]]^this._Ke[i][r];s=n.slice()}var o,a=Jt(16);for(r=0;r<4;r++)o=this._Ke[t][r],a[4*r]=255&(en[s[r]>>24&255]^o>>24),a[4*r+1]=255&(en[s[(r+1)%4]>>16&255]^o>>16),a[4*r+2]=255&(en[s[(r+2)%4]>>8&255]^o>>8),a[4*r+3]=255&(en[255&s[(r+3)%4]]^o);return a}decrypt(e){if(16!=e.length)throw new Error(\"invalid ciphertext size (must be 16 bytes)\");for(var t=this._Kd.length-1,n=[0,0,0,0],s=gn(e),r=0;r<4;r++)s[r]^=this._Kd[0][r];for(var i=1;i<t;i++){for(r=0;r<4;r++)n[r]=an[s[r]>>24&255]^cn[s[(r+3)%4]>>16&255]^un[s[(r+2)%4]>>8&255]^hn[255&s[(r+1)%4]]^this._Kd[i][r];s=n.slice()}var o,a=Jt(16);for(r=0;r<4;r++)o=this._Kd[t][r],a[4*r]=255&(tn[s[r]>>24&255]^o>>24),a[4*r+1]=255&(tn[s[(r+3)%4]>>16&255]^o>>16),a[4*r+2]=255&(tn[s[(r+2)%4]>>8&255]^o>>8),a[4*r+3]=255&(tn[255&s[(r+1)%4]]^o);return a}}class yn{constructor(e){if(!(this instanceof yn))throw Error(\"AES must be instanitated with `new`\");this.description=\"Electronic Code Block\",this.name=\"ecb\",this._aes=new mn(e)}encrypt(e){if((e=zt(e)).length%16!=0)throw new Error(\"invalid plaintext size (must be multiple of 16 bytes)\");for(var t=Jt(e.length),n=Jt(16),s=0;s<e.length;s+=16)Gt(e,n,0,s,s+16),Gt(n=this._aes.encrypt(n),t,s);return t}decrypt(e){if((e=zt(e)).length%16!=0)throw new Error(\"invalid ciphertext size (must be multiple of 16 bytes)\");for(var t=Jt(e.length),n=Jt(16),s=0;s<e.length;s+=16)Gt(e,n,0,s,s+16),Gt(n=this._aes.decrypt(n),t,s);return t}}class _n{constructor(e,t){if(!(this instanceof _n))throw Error(\"AES must be instanitated with `new`\");if(this.description=\"Cipher Block Chaining\",this.name=\"cbc\",t){if(16!=t.length)throw new Error(\"invalid initialation vector size (must be 16 bytes)\")}else t=Jt(16);this._lastCipherblock=zt(t,!0),this._aes=new mn(e)}encrypt(e){if((e=zt(e)).length%16!=0)throw new Error(\"invalid plaintext size (must be multiple of 16 bytes)\");for(var t=Jt(e.length),n=Jt(16),s=0;s<e.length;s+=16){Gt(e,n,0,s,s+16);for(var r=0;r<16;r++)n[r]^=this._lastCipherblock[r];this._lastCipherblock=this._aes.encrypt(n),Gt(this._lastCipherblock,t,s)}return t}decrypt(e){if((e=zt(e)).length%16!=0)throw new Error(\"invalid ciphertext size (must be multiple of 16 bytes)\");for(var t=Jt(e.length),n=Jt(16),s=0;s<e.length;s+=16){Gt(e,n,0,s,s+16),n=this._aes.decrypt(n);for(var r=0;r<16;r++)t[s+r]=n[r]^this._lastCipherblock[r];Gt(e,this._lastCipherblock,0,s,s+16)}return t}}class wn{constructor(e,t,n){if(!(this instanceof wn))throw Error(\"AES must be instanitated with `new`\");if(this.description=\"Cipher Feedback\",this.name=\"cfb\",t){if(16!=t.length)throw new Error(\"invalid initialation vector size (must be 16 size)\")}else t=Jt(16);n||(n=1),this.segmentSize=n,this._shiftRegister=zt(t,!0),this._aes=new mn(e)}encrypt(e){if(e.length%this.segmentSize!=0)throw new Error(\"invalid plaintext size (must be segmentSize bytes)\");for(var t,n=zt(e,!0),s=0;s<n.length;s+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var r=0;r<this.segmentSize;r++)n[s+r]^=t[r];Gt(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Gt(n,this._shiftRegister,16-this.segmentSize,s,s+this.segmentSize)}return n}decrypt(e){if(e.length%this.segmentSize!=0)throw new Error(\"invalid ciphertext size (must be segmentSize bytes)\");for(var t,n=zt(e,!0),s=0;s<n.length;s+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var r=0;r<this.segmentSize;r++)n[s+r]^=t[r];Gt(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Gt(e,this._shiftRegister,16-this.segmentSize,s,s+this.segmentSize)}return n}}class vn{constructor(e,t){if(!(this instanceof vn))throw Error(\"AES must be instanitated with `new`\");if(this.description=\"Output Feedback\",this.name=\"ofb\",t){if(16!=t.length)throw new Error(\"invalid initialation vector size (must be 16 bytes)\")}else t=Jt(16);this._lastPrecipher=zt(t,!0),this._lastPrecipherIndex=16,this._aes=new mn(e)}encrypt(e){for(var t=zt(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t}decrypt(e){return this.encrypt(e)}}class In{constructor(e){if(!(this instanceof In))throw Error(\"Counter must be instanitated with `new`\");0===e||e||(e=1),\"number\"==typeof e?(this._counter=Jt(16),this.setValue(e)):this.setBytes(e)}setValue(e){if(\"number\"!=typeof e||parseInt(e)!=e)throw new Error(\"invalid counter value (must be an integer)\");if(e>Number.MAX_SAFE_INTEGER)throw new Error(\"integer value out of safe range\");for(var t=15;t>=0;--t)this._counter[t]=e%256,e=parseInt(e/256)}setBytes(e){if(16!=(e=zt(e,!0)).length)throw new Error(\"invalid counter bytes size (must be 16 bytes)\");this._counter=e}increment(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}}}class Sn{constructor(e,t){if(!(this instanceof Sn))throw Error(\"AES must be instanitated with `new`\");this.description=\"Counter\",this.name=\"ctr\",t instanceof In||(t=new In(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new mn(e)}encrypt(e){for(var t=zt(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t}decrypt(e){return this.encrypt(e)}}var bn={AES:mn,Counter:In,ModeOfOperation:{ecb:yn,cbc:_n,cfb:wn,ofb:vn,ctr:Sn},utils:{hex:Qt,utf8:Yt},padding:{pkcs7:{pad:function(e){var t=16-(e=zt(e,!0)).length%16,n=Jt(e.length+t);Gt(e,n);for(var s=e.length;s<n.length;s++)n[s]=t;return n},strip:function(e){if((e=zt(e,!0)).length<16)throw new Error(\"PKCS#7 invalid length\");var t=e[e.length-1];if(t>16)throw new Error(\"PKCS#7 padding byte out of range\");for(var n=e.length-t,s=0;s<t;s++)if(e[n+s]!==t)throw new Error(\"PKCS#7 invalid padding byte\");var r=Jt(n);return Gt(e,r,0,0,n),r}}},_arrayTest:{coerceArray:zt,createArray:Jt,copyArray:Gt}};function kn(e,t,n){const s=new Uint8Array(uni.base64ToArrayBuffer(t)),r=bn.utils.utf8.toBytes(n),i=bn.utils.utf8.toBytes(e),o=new bn.ModeOfOperation.cbc(s,r),a=bn.padding.pkcs7.pad(i),c=o.encrypt(a);return uni.arrayBufferToBase64(c)}const An={code:2e4,message:\"System error\"},Pn={code:20101,message:\"Invalid client\"},Tn={code:20102,message:\"Get encrypt key failed\"},Cn={10001:\"Secure network is not supported on current playground or unimpsdk\",10003:\"Config missing in current app. If the problem pesist, please contact DCloud.\",10009:\"Encrypt payload failed\",10010:\"Decrypt response failed\"};function xn(e){const{errSubject:t,subject:n,errCode:s,errMsg:r,code:i,message:o,cause:a}=e||{};return new te({subject:t||n||\"uni-secure-network\",code:s||i||An.code,message:r||o,cause:a})}let On,En,Ln=null;class Rn extends Bt{constructor(e){super(e),this.clientType=\"mp-weixin\",this.userEncryptKey=null}isLogin(){return!!this.scopedGlobalCache.mpWeixinCode||!!this.scopedGlobalCache.mpWeixinOpenid}async prepare(){if(!this.isLogin()){if(!this.scopedGlobalCache.initPromise)throw new Error(\"`uniCloud.initSecureNetworkByWeixin` has not yet been called\");if(await this.scopedGlobalCache.initPromise,!this.isLogin())throw new Error(\"uniCloud.initSecureNetworkByWeixin` has not yet been called or successfully excuted\")}}async getUserEncryptKey(){if(this.userEncryptKey)return this.userEncryptKey;if(Ln&&Ln.expireTime){const e=Date.now();if(Ln.expireTime-e>0)return this.userEncryptKey=Ln,this.userEncryptKey}return new Promise(((e,t)=>{uni.getUserCryptoManager().getLatestUserKey({success:t=>{Ln=t,this.userEncryptKey=t,e(this.userEncryptKey)},fail:e=>{t(xn({...Tn,cause:e}))}})}))}getWxAppId(){return wx.getAccountInfoSync().miniProgram.appId}async platformGetSignOption(){const{encryptKey:e,iv:t,version:n}=await this.getUserEncryptKey();return{verifyClientSign:kn(JSON.stringify({data:JSON.stringify({}),appId:this.appId,deviceId:this.deviceId,wxAppId:this.getWxAppId(),simulator:\"devtools\"===ce().platform,timestamp:Date.now()}),e,t),encryptKeyId:n,mpWeixinCode:this.scopedGlobalCache.mpWeixinCode,mpWeixinOpenid:this.scopedGlobalCache.mpWeixinOpenid}}async platformEncryptData(e){const{encryptKey:t,iv:n,version:s}=await this.getUserEncryptKey(),r={secretType:this.secretType,encryptKeyId:s,mpWeixinCode:this.scopedGlobalCache.mpWeixinCode,mpWeixinOpenid:this.scopedGlobalCache.mpWeixinOpenid};return this.secretType===jt?{content:e,_uniCloudOptions:r}:{content:kn(JSON.stringify({data:JSON.stringify(e),appId:this.appId,deviceId:this.deviceId,wxAppId:this.getWxAppId(),simulator:\"devtools\"===ce().platform,timestamp:Date.now()}),t,n),_uniCloudOptions:r}}async platformDecryptResult(e){const{content:t}=e,{encryptKey:n,iv:s}=await this.getUserEncryptKey();return JSON.parse(function(e,t,n){const s=new Uint8Array(uni.base64ToArrayBuffer(e)),r=new Uint8Array(uni.base64ToArrayBuffer(t)),i=bn.utils.utf8.toBytes(n),o=new bn.ModeOfOperation.cbc(r,i),a=bn.padding.pkcs7.strip(o.decrypt(s));return bn.utils.utf8.fromBytes(a)}(t,n,s))}isClientKeyNotFound(){return!1}}function Un(e){const t=[\"hasClientKey\",\"encryptGetClientKeyPayload\",\"setClientKey\",\"encrypt\",\"decrypt\"],n={};for(let s=0;s<t.length;s++){const r=t[s];n[r]=function(...t){return new Promise(((n,s)=>{\"function\"==typeof e[r]?e[r](...t,(function({type:e,data:t,errCode:r,errMsg:i,errSubject:o,message:a}={}){\"success\"===e?n(t):s(xn({errCode:r,errMsg:Cn[r]||i||a,errSubject:o}))})):s(xn({message:\"请检查manifest.json内是否开启安全网络模块,另外注意标准基座不支持安全网络模块\"}))}))}}return n}class Nn extends Bt{constructor(e){super(e),this.clientType=\"app\",this.appUtils={...Un(uni.requireNativePlugin(\"plus\"))},this.systemInfo=On||(On=ce())}async hasClientKey(){return this._hasClientKey=await this.appUtils.hasClientKey({provider:this.provider,spaceId:this.spaceId}),this._hasClientKey}async getAppClientKey(){const{data:e,key:t}=await this.appUtils.encryptGetClientKeyPayload({data:JSON.stringify({})}),n=(await this.uniCloudIns.callFunction({name:\"DCloud-clientDB\",data:{redirectTo:\"encryption\",action:\"getAppClientKey\",data:e,key:t}})).result||{};if(0!==n.errCode)throw function(e){return new te({subject:e.errSubject||\"uni-secure-network\",code:e.errCode||e.code||An.code,message:e.errMsg||e.message})}(n);const{clientKey:s,key:r}=n;await this.appUtils.setClientKey({provider:this.provider,spaceId:this.spaceId,clientKey:s,key:r})}async ensureClientKey({forceUpdate:e=!1}={}){if(!0!==await this.hasClientKey()||e)return e&&this.scopedGlobalCache.initPromise&&this.scopedGlobalCache.initStatus===l||!e&&this.scopedGlobalCache.initPromise&&this.scopedGlobalCache.initStatus!==p||(this.scopedGlobalCache.initPromise=this.getAppClientKey(),this.scopedGlobalCache.initPromise.then((e=>{this.scopedGlobalCache.initStatus=d})).catch((e=>{throw this.scopedGlobalCache.initStatus=p,e})),this.scopedGlobalCache.initStatus=l),this.scopedGlobalCache.initPromise}async prepare({forceUpdate:e=!1}={}){await this.ensureClientKey({forceUpdate:e})}async platformGetSignOption(){const{data:e,key:t}=await this.appUtils.encrypt({provider:this.provider,spaceId:this.spaceId,data:JSON.stringify({})});return{verifyClientSign:e,encryptKeyId:t}}async platformEncryptData(e){const{data:t,key:n}=await this.appUtils.encrypt({provider:this.provider,spaceId:this.spaceId,data:JSON.stringify(e)}),s={secretType:this.secretType,encryptKeyId:n};return this.secretType===jt?{content:e,_uniCloudOptions:s}:{content:t,_uniCloudOptions:s}}async platformDecryptResult(e){const{content:t,_uniCloudOptions:n={}}=e,s=n.encryptKeyId,r=await this.appUtils.decrypt({provider:this.provider,spaceId:this.spaceId,data:t,key:s});return JSON.parse(r.data)}isClientKeyNotFound(e={}){const t=e.result||{};return 70009===t.errCode&&\"uni-secure-network\"===t.errSubject}}function Dn({secretType:e}={}){return e===Kt||e===jt||e===$t}function Mn({name:e,data:t={}}={}){return\"app\"===P&&\"DCloud-clientDB\"===e&&\"encryption\"===t.redirectTo&&\"getAppClientKey\"===t.action}function qn({provider:e,spaceId:t,functionName:n}={}){const{appId:s,uniPlatform:r,osName:i}=ce();let o=r;\"app\"===r&&(o=i);const a=function({provider:e,spaceId:t}={}){const n=A;if(!n)return{};e=function(e){return\"tencent\"===e?\"tcb\":e}(e);const s=n.find((n=>n.provider===e&&n.spaceId===t));return s&&s.config}({provider:e,spaceId:t});if(!a||!a.accessControl||!a.accessControl.enable)return!1;const c=a.accessControl.function||{},u=Object.keys(c);if(0===u.length)return!0;const h=function(e,t){let n,s,r;for(let i=0;i<e.length;i++){const o=e[i];o!==t?\"*\"!==o?o.split(\",\").map((e=>e.trim())).indexOf(t)>-1&&(s=o):r=o:n=o}return n||s||r}(u,n);if(!h)return!1;if((c[h]||[]).find(((e={})=>e.appId===s&&(e.platform||\"\").toLowerCase()===o.toLowerCase())))return!0;throw console.error(`此应用[appId: ${s}, platform: ${o}]不在云端配置的允许访问的应用列表内,参考:https://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client`),xn(Pn)}function Fn({functionName:e,result:t,logPvd:n}){if(S&&this.__dev__.debugLog&&t&&t.requestId){const s=JSON.stringify({spaceId:this.config.spaceId,functionName:e,requestId:t.requestId});console.log(`[${n}-request]${s}[/${n}-request]`)}}function Kn(e){const t=e.callFunction,n=function(n){const s=n.name;n.data=Rt.call(e,{data:n.data});const r={aliyun:\"aliyun\",tencent:\"tcb\",tcb:\"tcb\",alipay:\"alipay\"}[this.config.provider],i=Dn(n),o=Mn(n),a=i||o;return t.call(this,n).then((e=>(e.errCode=0,!a&&Fn.call(this,{functionName:s,result:e,logPvd:r}),Promise.resolve(e))),(e=>(!a&&Fn.call(this,{functionName:s,result:e,logPvd:r}),e&&e.message&&(e.message=function({message:e=\"\",extraInfo:t={},formatter:n=[]}={}){for(let s=0;s<n.length;s++){const{rule:r,content:i,mode:o}=n[s],a=e.match(r);if(!a)continue;let c=i;for(let e=1;e<a.length;e++)c=qt(c,`{$${e}}`,a[e]);for(const e in t)c=qt(c,`{${e}}`,t[e]);return\"replace\"===o?c:e+c}return e}({message:`[${n.name}]: ${e.message}`,formatter:Nt,extraInfo:{functionName:s}})),Promise.reject(e))))};e.callFunction=function(t){const{provider:s,spaceId:r}=e.config,i=t.name;let o,a;if(t.data=t.data||{},S&&e.__dev__.debugInfo&&!e.__dev__.debugInfo.forceRemote&&C?(e._callCloudFunction||(e._callCloudFunction=n,e._callLocalFunction=Ut),o=Ut):o=n,o=o.bind(e),Mn(t))a=n.call(e,t);else if(function({name:e,data:t={}}){return\"mp-weixin\"===P&&\"uni-id-co\"===e&&\"secureNetworkHandshakeByWeixin\"===t.method}(t))a=o.call(e,t);else if(Dn(t)){a=new En({secretType:t.secretType,uniCloudIns:e}).wrapEncryptDataCallFunction(n.bind(e))(t)}else if(qn({provider:s,spaceId:r,functionName:i})){a=new En({secretType:t.secretType,uniCloudIns:e}).wrapVerifyClientCallFunction(n.bind(e))(t)}else a=o(t);return Object.defineProperty(a,\"result\",{get:()=>(console.warn(\"当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise\"),{})}),a.then((e=>(\"undefined\"!=typeof UTSJSONObject&&(e.result=new UTSJSONObject(e.result)),e)))}}En=\"mp-weixin\"!==P&&\"app\"!==P?class{constructor(){throw xn({message:`Platform ${P} is not supported by secure network`})}}:k?\"mp-weixin\"===P?Rn:Nn:class{constructor(){throw xn({message:`Platform ${P} is not enabled, please check whether secure network module is enabled in your manifest.json`})}};const jn=Symbol(\"CLIENT_DB_INTERNAL\");function $n(e,t){return e.then=\"DoNotReturnProxyWithAFunctionNamedThen\",e._internalType=jn,e.inspect=null,e.__v_raw=void 0,new Proxy(e,{get(e,n,s){if(\"_uniClient\"===n)return null;if(\"symbol\"==typeof n)return e[n];if(n in e||\"string\"!=typeof n){const t=e[n];return\"function\"==typeof t?t.bind(e):t}return t.get(e,n,s)}})}function Bn(e){return{on:(t,n)=>{e[t]=e[t]||[],e[t].indexOf(n)>-1||e[t].push(n)},off:(t,n)=>{e[t]=e[t]||[];const s=e[t].indexOf(n);-1!==s&&e[t].splice(s,1)}}}const Wn=[\"db.Geo\",\"db.command\",\"command.aggregate\"];function Hn(e,t){return Wn.indexOf(`${e}.${t}`)>-1}function zn(e){switch(f(e=se(e))){case\"array\":return e.map((e=>zn(e)));case\"object\":return e._internalType===jn||Object.keys(e).forEach((t=>{e[t]=zn(e[t])})),e;case\"regexp\":return{$regexp:{source:e.source,flags:e.flags}};case\"date\":return{$date:e.toISOString()};default:return e}}function Jn(e){return e&&e.content&&e.content.$method}class Gn{constructor(e,t,n){this.content=e,this.prevStage=t||null,this.udb=null,this._database=n}toJSON(){let e=this;const t=[e.content];for(;e.prevStage;)e=e.prevStage,t.push(e.content);return{$db:t.reverse().map((e=>({$method:e.$method,$param:zn(e.$param)})))}}toString(){return JSON.stringify(this.toJSON())}getAction(){const e=this.toJSON().$db.find((e=>\"action\"===e.$method));return e&&e.$param&&e.$param[0]}getCommand(){return{$db:this.toJSON().$db.filter((e=>\"action\"!==e.$method))}}get isAggregate(){let e=this;for(;e;){const t=Jn(e),n=Jn(e.prevStage);if(\"aggregate\"===t&&\"collection\"===n||\"pipeline\"===t)return!0;e=e.prevStage}return!1}get isCommand(){let e=this;for(;e;){if(\"command\"===Jn(e))return!0;e=e.prevStage}return!1}get isAggregateCommand(){let e=this;for(;e;){const t=Jn(e),n=Jn(e.prevStage);if(\"aggregate\"===t&&\"command\"===n)return!0;e=e.prevStage}return!1}getNextStageFn(e){const t=this;return function(){return Vn({$method:e,$param:zn(Array.from(arguments))},t,t._database)}}get count(){return this.isAggregate?this.getNextStageFn(\"count\"):function(){return this._send(\"count\",Array.from(arguments))}}get remove(){return this.isCommand?this.getNextStageFn(\"remove\"):function(){return this._send(\"remove\",Array.from(arguments))}}get(){return this._send(\"get\",Array.from(arguments))}get add(){return this.isCommand?this.getNextStageFn(\"add\"):function(){return this._send(\"add\",Array.from(arguments))}}update(){return this._send(\"update\",Array.from(arguments))}end(){return this._send(\"end\",Array.from(arguments))}get set(){return this.isCommand?this.getNextStageFn(\"set\"):function(){throw new Error(\"JQL禁止使用set方法\")}}_send(e,t){const n=this.getAction(),s=this.getCommand();if(s.$db.push({$method:e,$param:zn(t)}),S){const e=s.$db.find((e=>\"collection\"===e.$method)),t=e&&e.$param;t&&1===t.length&&\"string\"==typeof e.$param[0]&&e.$param[0].indexOf(\",\")>-1&&console.warn(\"检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \\n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。\")}return this._database._callCloudFunction({action:n,command:s})}}function Vn(e,t,n){return $n(new Gn(e,t,n),{get(e,t){let s=\"db\";return e&&e.content&&(s=e.content.$method),Hn(s,t)?Vn({$method:t},e,n):function(){return Vn({$method:t,$param:zn(Array.from(arguments))},e,n)}}})}function Yn({path:e,method:t}){return class{constructor(){this.param=Array.from(arguments)}toJSON(){return{$newDb:[...e.map((e=>({$method:e}))),{$method:t,$param:this.param}]}}toString(){return JSON.stringify(this.toJSON())}}}function Qn(e,t={}){return $n(new e(t),{get:(e,t)=>Hn(\"db\",t)?Vn({$method:t},null,e):function(){return Vn({$method:t,$param:zn(Array.from(arguments))},null,e)}})}class Xn extends class{constructor({uniClient:e={},isJQL:t=!1}={}){this._uniClient=e,this._authCallBacks={},this._dbCallBacks={},e._isDefault&&(this._dbCallBacks=L(\"_globalUniCloudDatabaseCallback\")),t||(this.auth=Bn(this._authCallBacks)),this._isJQL=t,Object.assign(this,Bn(this._dbCallBacks)),this.env=$n({},{get:(e,t)=>({$env:t})}),this.Geo=$n({},{get:(e,t)=>Yn({path:[\"Geo\"],method:t})}),this.serverDate=Yn({path:[],method:\"serverDate\"}),this.RegExp=Yn({path:[],method:\"RegExp\"})}getCloudEnv(e){if(\"string\"!=typeof e||!e.trim())throw new Error(\"getCloudEnv参数错误\");return{$env:e.replace(\"$cloudEnv_\",\"\")}}_callback(e,t){const n=this._dbCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}_callbackAuth(e,t){const n=this._authCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}multiSend(){const e=Array.from(arguments),t=e.map((e=>{const t=e.getAction(),n=e.getCommand();if(\"getTemp\"!==n.$db[n.$db.length-1].$method)throw new Error(\"multiSend只支持子命令内使用getTemp\");return{action:t,command:n}}));return this._callCloudFunction({multiCommand:t,queryList:e})}}{_parseResult(e){return this._isJQL?e.result:e}_callCloudFunction({action:e,command:t,multiCommand:n,queryList:s}){function r(e,t){if(n&&s)for(let n=0;n<s.length;n++){const r=s[n];r.udb&&\"function\"==typeof r.udb.setResult&&(t?r.udb.setResult(t):r.udb.setResult(e.result.dataList[n]))}}const i=this,o=this._isJQL?\"databaseForJQL\":\"database\";function a(e){return i._callback(\"error\",[e]),M(q(o,\"fail\"),e).then((()=>M(q(o,\"complete\"),e))).then((()=>(r(null,e),Y(j,{type:W,content:e}),Promise.reject(e))))}const c=M(q(o,\"invoke\")),u=this._uniClient;return c.then((()=>u.callFunction({name:\"DCloud-clientDB\",type:h,data:{action:e,command:t,multiCommand:n}}))).then((e=>{const{code:t,message:n,token:s,tokenExpired:c,systemInfo:u=[]}=e.result;if(u)for(let e=0;e<u.length;e++){const{level:t,message:n,detail:s}=u[e],r=console[\"app\"===P&&\"warn\"===t?\"error\":t]||console.log;let i=\"[System Info]\"+n;s&&(i=`${i}\\n详细信息:${s}`),r(i)}if(t){return a(new te({code:t,message:n,requestId:e.requestId}))}e.result.errCode=e.result.errCode||e.result.code,e.result.errMsg=e.result.errMsg||e.result.message,s&&c&&(ie({token:s,tokenExpired:c}),this._callbackAuth(\"refreshToken\",[{token:s,tokenExpired:c}]),this._callback(\"refreshToken\",[{token:s,tokenExpired:c}]),Y(B,{token:s,tokenExpired:c}));const h=[{prop:\"affectedDocs\",tips:\"affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代\"},{prop:\"code\",tips:\"code不再推荐使用,请使用errCode替代\"},{prop:\"message\",tips:\"message不再推荐使用,请使用errMsg替代\"}];for(let t=0;t<h.length;t++){const{prop:n,tips:s}=h[t];if(n in e.result){const t=e.result[n];Object.defineProperty(e.result,n,{get:()=>(console.warn(s),t)})}}return function(e){return M(q(o,\"success\"),e).then((()=>M(q(o,\"complete\"),e))).then((()=>{r(e,null);const t=i._parseResult(e);return Y(j,{type:W,content:t}),Promise.resolve(t)}))}(e)}),(e=>{/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message)&&console.warn(\"clientDB未初始化,请在web控制台保存一次schema以开启clientDB\");return a(new te({code:e.code||\"SYSTEM_ERROR\",message:e.message,requestId:e.requestId}))}))}}const Zn=\"token无效,跳转登录页面\",es=\"token过期,跳转登录页面\",ts={TOKEN_INVALID_TOKEN_EXPIRED:es,TOKEN_INVALID_INVALID_CLIENTID:Zn,TOKEN_INVALID:Zn,TOKEN_INVALID_WRONG_TOKEN:Zn,TOKEN_INVALID_ANONYMOUS_USER:Zn},ns={\"uni-id-token-expired\":es,\"uni-id-check-token-failed\":Zn,\"uni-id-token-not-exist\":Zn,\"uni-id-check-device-feature-failed\":Zn};function ss(e,t){let n=\"\";return n=e?`${e}/${t}`:t,n.replace(/^\\//,\"\")}function rs(e=[],t=\"\"){const n=[],s=[];return e.forEach((e=>{!0===e.needLogin?n.push(ss(t,e.path)):!1===e.needLogin&&s.push(ss(t,e.path))})),{needLoginPage:n,notNeedLoginPage:s}}function is(e){return e.split(\"?\")[0].replace(/^\\//,\"\")}function os(){return function(e){let t=e&&e.$page&&e.$page.fullPath||\"\";return t?(\"/\"!==t.charAt(0)&&(t=\"/\"+t),t):t}(function(){const e=getCurrentPages();return e[e.length-1]}())}function as(){return is(os())}function cs(e=\"\",t={}){if(!e)return!1;if(!(t&&t.list&&t.list.length))return!1;const n=t.list,s=is(e);return n.some((e=>e.pagePath===s))}const us=!!e.uniIdRouter;const{loginPage:hs,routerNeedLogin:ls,resToLogin:ds,needLoginPage:ps,notNeedLoginPage:fs,loginPageInTabBar:gs}=function({pages:t=[],subPackages:n=[],uniIdRouter:s={},tabBar:r={}}=e){const{loginPage:i,needLogin:o=[],resToLogin:a=!0}=s,{needLoginPage:c,notNeedLoginPage:u}=rs(t),{needLoginPage:h,notNeedLoginPage:l}=function(e=[]){const t=[],n=[];return e.forEach((e=>{const{root:s,pages:r=[]}=e,{needLoginPage:i,notNeedLoginPage:o}=rs(r,s);t.push(...i),n.push(...o)})),{needLoginPage:t,notNeedLoginPage:n}}(n);return{loginPage:i,routerNeedLogin:o,resToLogin:a,needLoginPage:[...c,...h],notNeedLoginPage:[...u,...l],loginPageInTabBar:cs(i,r)}}();if(ps.indexOf(hs)>-1)throw new Error(`Login page [${hs}] should not be \"needLogin\", please check your pages.json`);function ms(e){const t=as();if(\"/\"===e.charAt(0))return e;const[n,s]=e.split(\"?\"),r=n.replace(/^\\//,\"\").split(\"/\"),i=t.split(\"/\");i.pop();for(let e=0;e<r.length;e++){const t=r[e];\"..\"===t?i.pop():\".\"!==t&&i.push(t)}return\"\"===i[0]&&i.shift(),\"/\"+i.join(\"/\")+(s?\"?\"+s:\"\")}function ys(e){const t=is(ms(e));return!(fs.indexOf(t)>-1)&&(ps.indexOf(t)>-1||ls.some((t=>function(e,t){return new RegExp(t).test(e)}(e,t))))}function _s({redirect:e}){const t=is(e),n=is(hs);return as()!==n&&t!==n}function ws({api:e,redirect:t}={}){if(!t||!_s({redirect:t}))return;const n=function(e,t){return\"/\"!==e.charAt(0)&&(e=\"/\"+e),t?e.indexOf(\"?\")>-1?e+`&uniIdRedirectUrl=${encodeURIComponent(t)}`:e+`?uniIdRedirectUrl=${encodeURIComponent(t)}`:e}(hs,t);gs?\"navigateTo\"!==e&&\"redirectTo\"!==e||(e=\"switchTab\"):\"switchTab\"===e&&(e=\"navigateTo\");const s={navigateTo:uni.navigateTo,redirectTo:uni.redirectTo,switchTab:uni.switchTab,reLaunch:uni.reLaunch};setTimeout((()=>{s[e]({url:n})}),0)}function vs({url:e}={}){const t={abortLoginPageJump:!1,autoToLoginPage:!1},n=function(){const{token:e,tokenExpired:t}=re();let n;if(e){if(t<Date.now()){const e=\"uni-id-token-expired\";n={errCode:e,errMsg:ns[e]}}}else{const e=\"uni-id-check-token-failed\";n={errCode:e,errMsg:ns[e]}}return n}();if(ys(e)&&n){n.uniIdRedirectUrl=e;if(J($).length>0)return setTimeout((()=>{Y($,n)}),0),t.abortLoginPageJump=!0,t;t.autoToLoginPage=!0}return t}function Is(){!function(){const e=os(),{abortLoginPageJump:t,autoToLoginPage:n}=vs({url:e});t||n&&ws({api:\"redirectTo\",redirect:e})}();const e=[\"navigateTo\",\"redirectTo\",\"reLaunch\",\"switchTab\"];for(let t=0;t<e.length;t++){const n=e[t];uni.addInterceptor(n,{invoke(e){const{abortLoginPageJump:t,autoToLoginPage:s}=vs({url:e.url});return t?e:s?(ws({api:n,redirect:ms(e.url)}),!1):e}})}}function Ss(){this.onResponse((e=>{const{type:t,content:n}=e;let s=!1;switch(t){case\"cloudobject\":s=function(e){if(\"object\"!=typeof e)return!1;const{errCode:t}=e||{};return t in ns}(n);break;case\"clientdb\":s=function(e){if(\"object\"!=typeof e)return!1;const{errCode:t}=e||{};return t in ts}(n)}s&&function(e={}){const t=J($);Z().then((()=>{const n=os();if(n&&_s({redirect:n}))return t.length>0?Y($,Object.assign({uniIdRedirectUrl:n},e)):void(hs&&ws({api:\"navigateTo\",redirect:n}))}))}(n)}))}function bs(e){!function(e){e.onResponse=function(e){G(j,e)},e.offResponse=function(e){V(j,e)}}(e),function(e){e.onNeedLogin=function(e){G($,e)},e.offNeedLogin=function(e){V($,e)},us&&(L(\"_globalUniCloudStatus\").needLoginInit||(L(\"_globalUniCloudStatus\").needLoginInit=!0,Z().then((()=>{Is.call(e)})),ds&&Ss.call(e)))}(e),function(e){e.onRefreshToken=function(e){G(B,e)},e.offRefreshToken=function(e){V(B,e)}}(e)}let ks;const As=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",Ps=/^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;function Ts(){const e=re().token||\"\",t=e.split(\".\");if(!e||3!==t.length)return{uid:null,role:[],permission:[],tokenExpired:0};let n;try{n=JSON.parse((s=t[1],decodeURIComponent(ks(s).split(\"\").map((function(e){return\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2)})).join(\"\"))))}catch(e){throw new Error(\"获取当前用户信息出错,详细错误信息为:\"+e.message)}var s;return n.tokenExpired=1e3*n.exp,delete n.exp,delete n.iat,n}ks=\"function\"!=typeof atob?function(e){if(e=String(e).replace(/[\\t\\n\\f\\r ]+/g,\"\"),!Ps.test(e))throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");var t;e+=\"==\".slice(2-(3&e.length));for(var n,s,r=\"\",i=0;i<e.length;)t=As.indexOf(e.charAt(i++))<<18|As.indexOf(e.charAt(i++))<<12|(n=As.indexOf(e.charAt(i++)))<<6|(s=As.indexOf(e.charAt(i++))),r+=64===n?String.fromCharCode(t>>16&255):64===s?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return r}:atob;var Cs=n((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=\"chooseAndUploadFile:ok\",s=\"chooseAndUploadFile:fail\";function r(e,t){return e.tempFiles.forEach(((e,n)=>{e.name||(e.name=e.path.substring(e.path.lastIndexOf(\"/\")+1)),t&&(e.fileType=t),e.cloudPath=Date.now()+\"_\"+n+e.name.substring(e.name.lastIndexOf(\".\"))})),e.tempFilePaths||(e.tempFilePaths=e.tempFiles.map((e=>e.path))),e}function i(e,t,{onChooseFile:s,onUploadProgress:r}){return t.then((e=>{if(s){const t=s(e);if(void 0!==t)return Promise.resolve(t).then((t=>void 0===t?e:t))}return e})).then((t=>!1===t?{errMsg:n,tempFilePaths:[],tempFiles:[]}:function(e,t,s=5,r){(t=Object.assign({},t)).errMsg=n;const i=t.tempFiles,o=i.length;let a=0;return new Promise((n=>{for(;a<s;)c();function c(){const s=a++;if(s>=o)return void(!i.find((e=>!e.url&&!e.errMsg))&&n(t));const u=i[s];e.uploadFile({provider:u.provider,filePath:u.path,cloudPath:u.cloudPath,fileType:u.fileType,cloudPathAsRealPath:u.cloudPathAsRealPath,onUploadProgress(e){e.index=s,e.tempFile=u,e.tempFilePath=u.path,r&&r(e)}}).then((e=>{u.url=e.fileID,s<o&&c()})).catch((e=>{u.errMsg=e.errMsg||e.message,s<o&&c()}))}}))}(e,t,5,r)))}t.initChooseAndUploadFile=function(e){return function(t={type:\"all\"}){return\"image\"===t.type?i(e,function(e){const{count:t,sizeType:n,sourceType:i=[\"album\",\"camera\"],extension:o}=e;return new Promise(((e,a)=>{uni.chooseImage({count:t,sizeType:n,sourceType:i,extension:o,success(t){e(r(t,\"image\"))},fail(e){a({errMsg:e.errMsg.replace(\"chooseImage:fail\",s)})}})}))}(t),t):\"video\"===t.type?i(e,function(e){const{camera:t,compressed:n,maxDuration:i,sourceType:o=[\"album\",\"camera\"],extension:a}=e;return new Promise(((e,c)=>{uni.chooseVideo({camera:t,compressed:n,maxDuration:i,sourceType:o,extension:a,success(t){const{tempFilePath:n,duration:s,size:i,height:o,width:a}=t;e(r({errMsg:\"chooseVideo:ok\",tempFilePaths:[n],tempFiles:[{name:t.tempFile&&t.tempFile.name||\"\",path:n,size:i,type:t.tempFile&&t.tempFile.type||\"\",width:a,height:o,duration:s,fileType:\"video\",cloudPath:\"\"}]},\"video\"))},fail(e){c({errMsg:e.errMsg.replace(\"chooseVideo:fail\",s)})}})}))}(t),t):i(e,function(e){const{count:t,extension:n}=e;return new Promise(((e,i)=>{let o=uni.chooseFile;if(\"undefined\"!=typeof wx&&\"function\"==typeof wx.chooseMessageFile&&(o=wx.chooseMessageFile),\"function\"!=typeof o)return i({errMsg:s+\" 请指定 type 类型,该平台仅支持选择 image 或 video。\"});o({type:\"all\",count:t,extension:n,success(t){e(r(t))},fail(e){i({errMsg:e.errMsg.replace(\"chooseFile:fail\",s)})}})}))}(t),t)}}})),xs=t(Cs);const Os=\"manual\";function Es(e){return{props:{localdata:{type:Array,default:()=>[]},options:{type:[Object,Array],default:()=>({})},spaceInfo:{type:Object,default:()=>({})},collection:{type:[String,Array],default:\"\"},action:{type:String,default:\"\"},field:{type:String,default:\"\"},orderby:{type:String,default:\"\"},where:{type:[String,Object],default:\"\"},pageData:{type:String,default:\"add\"},pageCurrent:{type:Number,default:1},pageSize:{type:Number,default:20},getcount:{type:[Boolean,String],default:!1},gettree:{type:[Boolean,String],default:!1},gettreepath:{type:[Boolean,String],default:!1},startwith:{type:String,default:\"\"},limitlevel:{type:Number,default:10},groupby:{type:String,default:\"\"},groupField:{type:String,default:\"\"},distinct:{type:[Boolean,String],default:!1},foreignKey:{type:String,default:\"\"},loadtime:{type:String,default:\"auto\"},manual:{type:Boolean,default:!1}},data:()=>({mixinDatacomLoading:!1,mixinDatacomHasMore:!1,mixinDatacomResData:[],mixinDatacomErrorMessage:\"\",mixinDatacomPage:{},mixinDatacomError:null}),created(){this.mixinDatacomPage={current:this.pageCurrent,size:this.pageSize,count:0},this.$watch((()=>{var e=[];return[\"pageCurrent\",\"pageSize\",\"localdata\",\"collection\",\"action\",\"field\",\"orderby\",\"where\",\"getont\",\"getcount\",\"gettree\",\"groupby\",\"groupField\",\"distinct\"].forEach((t=>{e.push(this[t])})),e}),((e,t)=>{if(this.loadtime===Os)return;let n=!1;const s=[];for(let r=2;r<e.length;r++)e[r]!==t[r]&&(s.push(e[r]),n=!0);e[0]!==t[0]&&(this.mixinDatacomPage.current=this.pageCurrent),this.mixinDatacomPage.size=this.pageSize,this.onMixinDatacomPropsChange(n,s)}))},methods:{onMixinDatacomPropsChange(e,t){},mixinDatacomEasyGet({getone:e=!1,success:t,fail:n}={}){this.mixinDatacomLoading||(this.mixinDatacomLoading=!0,this.mixinDatacomErrorMessage=\"\",this.mixinDatacomError=null,this.mixinDatacomGet().then((n=>{this.mixinDatacomLoading=!1;const{data:s,count:r}=n.result;this.getcount&&(this.mixinDatacomPage.count=r),this.mixinDatacomHasMore=s.length<this.pageSize;const i=e?s.length?s[0]:void 0:s;this.mixinDatacomResData=i,t&&t(i)})).catch((e=>{this.mixinDatacomLoading=!1,this.mixinDatacomErrorMessage=e,this.mixinDatacomError=e,n&&n(e)})))},mixinDatacomGet(t={}){let n;t=t||{},n=\"undefined\"!=typeof __uniX&&__uniX?e.databaseForJQL(this.spaceInfo):e.database(this.spaceInfo);const s=t.action||this.action;s&&(n=n.action(s));const r=t.collection||this.collection;n=Array.isArray(r)?n.collection(...r):n.collection(r);const i=t.where||this.where;i&&Object.keys(i).length&&(n=n.where(i));const o=t.field||this.field;o&&(n=n.field(o));const a=t.foreignKey||this.foreignKey;a&&(n=n.foreignKey(a));const c=t.groupby||this.groupby;c&&(n=n.groupBy(c));const u=t.groupField||this.groupField;u&&(n=n.groupField(u));!0===(void 0!==t.distinct?t.distinct:this.distinct)&&(n=n.distinct());const h=t.orderby||this.orderby;h&&(n=n.orderBy(h));const l=void 0!==t.pageCurrent?t.pageCurrent:this.mixinDatacomPage.current,d=void 0!==t.pageSize?t.pageSize:this.mixinDatacomPage.size,p=void 0!==t.getcount?t.getcount:this.getcount,f=void 0!==t.gettree?t.gettree:this.gettree,g=void 0!==t.gettreepath?t.gettreepath:this.gettreepath,m={getCount:p},y={limitLevel:void 0!==t.limitlevel?t.limitlevel:this.limitlevel,startWith:void 0!==t.startwith?t.startwith:this.startwith};return f&&(m.getTree=y),g&&(m.getTreePath=y),n=n.skip(d*(l-1)).limit(d).get(m),n}}}}function Ls(e){return function(t,n={}){n=function(e,t={}){return e.customUI=t.customUI||e.customUI,e.parseSystemError=t.parseSystemError||e.parseSystemError,Object.assign(e.loadingOptions,t.loadingOptions),Object.assign(e.errorOptions,t.errorOptions),\"object\"==typeof t.secretMethods&&(e.secretMethods=t.secretMethods),e}({customUI:!1,loadingOptions:{title:\"加载中...\",mask:!0},errorOptions:{type:\"modal\",retry:!1}},n);const{customUI:s,loadingOptions:r,errorOptions:i,parseSystemError:o}=n,a=!s;return new Proxy({},{get(s,c){switch(c){case\"toString\":return\"[object UniCloudObject]\";case\"toJSON\":return{}}return function({fn:e,interceptorName:t,getCallbackArgs:n}={}){return async function(...s){const r=n?n({params:s}):{};let i,o;try{return await M(q(t,\"invoke\"),{...r}),i=await e(...s),await M(q(t,\"success\"),{...r,result:i}),i}catch(e){throw o=e,await M(q(t,\"fail\"),{...r,error:o}),o}finally{await M(q(t,\"complete\"),o?{...r,error:o}:{...r,result:i})}}}({fn:async function s(...h){let l;a&&uni.showLoading({title:r.title,mask:r.mask});const d={name:t,type:u,data:{method:c,params:h}};\"object\"==typeof n.secretMethods&&function(e,t){const n=t.data.method,s=e.secretMethods||{},r=s[n]||s[\"*\"];r&&(t.secretType=r)}(n,d);let p=!1;try{l=await e.callFunction(d)}catch(e){p=!0,l={result:new te(e)}}const{errSubject:f,errCode:g,errMsg:m,newToken:y}=l.result||{};if(a&&uni.hideLoading(),y&&y.token&&y.tokenExpired&&(ie(y),Y(B,{...y})),g){let e=m;if(p&&o){e=(await o({objectName:t,methodName:c,params:h,errSubject:f,errCode:g,errMsg:m})).errMsg||m}if(a)if(\"toast\"===i.type)uni.showToast({title:e,icon:\"none\"});else{if(\"modal\"!==i.type)throw new Error(`Invalid errorOptions.type: ${i.type}`);{const{confirm:t}=await async function({title:e,content:t,showCancel:n,cancelText:s,confirmText:r}={}){return new Promise(((i,o)=>{uni.showModal({title:e,content:t,showCancel:n,cancelText:s,confirmText:r,success(e){i(e)},fail(){i({confirm:!1,cancel:!0})}})}))}({title:\"提示\",content:e,showCancel:i.retry,cancelText:\"取消\",confirmText:i.retry?\"重试\":\"确定\"});if(i.retry&&t)return s(...h)}}const n=new te({subject:f,code:g,message:m,requestId:l.requestId});throw n.detail=l.result,Y(j,{type:z,content:n}),n}return Y(j,{type:z,content:l.result}),l.result},interceptorName:\"callObject\",getCallbackArgs:function({params:e}={}){return{objectName:t,methodName:c,params:e}}})}})}}function Rs(e){return L(\"_globalUniCloudSecureNetworkCache__{spaceId}\".replace(\"{spaceId}\",e.config.spaceId))}async function Us({openid:e,callLoginByWeixin:t=!1}={}){const n=Rs(this);if(\"mp-weixin\"!==P)throw new Error(`[SecureNetwork] API \\`initSecureNetworkByWeixin\\` is not supported on platform \\`${P}\\``);if(e&&t)throw new Error(\"[SecureNetwork] openid and callLoginByWeixin cannot be passed at the same time\");if(e)return n.mpWeixinOpenid=e,{};const s=await new Promise(((e,t)=>{uni.login({success(t){e(t.code)},fail(e){t(new Error(e.errMsg))}})})),r=this.importObject(\"uni-id-co\",{customUI:!0});return await r.secureNetworkHandshakeByWeixin({code:s,callLoginByWeixin:t}),n.mpWeixinCode=s,{code:s}}async function Ns(e){const t=Rs(this);return t.initPromise||(t.initPromise=Us.call(this,e).then((e=>e)).catch((e=>{throw delete t.initPromise,e}))),t.initPromise}function Ds(e){return function({openid:t,callLoginByWeixin:n=!1}={}){return Ns.call(e,{openid:t,callLoginByWeixin:n})}}function Ms(e){const t={getSystemInfo:uni.getSystemInfo,getPushClientId:uni.getPushClientId};return function(n){return new Promise(((s,r)=>{t[e]({...n,success(e){s(e)},fail(e){r(e)}})}))}}class qs extends class{constructor(){this._callback={}}addListener(e,t){this._callback[e]||(this._callback[e]=[]),this._callback[e].push(t)}on(e,t){return this.addListener(e,t)}removeListener(e,t){if(!t)throw new Error('The \"listener\" argument must be of type function. Received undefined');const n=this._callback[e];if(!n)return;const s=function(e,t){for(let n=e.length-1;n>=0;n--)if(e[n]===t)return n;return-1}(n,t);n.splice(s,1)}off(e,t){return this.removeListener(e,t)}removeAllListener(e){delete this._callback[e]}emit(e,...t){const n=this._callback[e];if(n)for(let e=0;e<n.length;e++)n[e](...t)}}{constructor(){super(),this._uniPushMessageCallback=this._receivePushMessage.bind(this),this._currentMessageId=-1,this._payloadQueue=[]}init(){return Promise.all([Ms(\"getSystemInfo\")(),Ms(\"getPushClientId\")()]).then((([{appId:e}={},{cid:t}={}]=[])=>{if(!e)throw new Error(\"Invalid appId, please check the manifest.json file\");if(!t)throw new Error(\"Invalid push client id\");this._appId=e,this._pushClientId=t,this._seqId=Date.now()+\"-\"+Math.floor(9e5*Math.random()+1e5),this.emit(\"open\"),this._initMessageListener()}),(e=>{throw this.emit(\"error\",e),this.close(),e}))}async open(){return this.init()}_isUniCloudSSE(e){if(\"receive\"!==e.type)return!1;const t=e&&e.data&&e.data.payload;return!(!t||\"UNI_CLOUD_SSE\"!==t.channel||t.seqId!==this._seqId)}_receivePushMessage(e){if(!this._isUniCloudSSE(e))return;const t=e&&e.data&&e.data.payload,{action:n,messageId:s,message:r}=t;this._payloadQueue.push({action:n,messageId:s,message:r}),this._consumMessage()}_consumMessage(){for(;;){const e=this._payloadQueue.find((e=>e.messageId===this._currentMessageId+1));if(!e)break;this._currentMessageId++,this._parseMessagePayload(e)}}_parseMessagePayload(e){const{action:t,messageId:n,message:s}=e;\"end\"===t?this._end({messageId:n,message:s}):\"message\"===t&&this._appendMessage({messageId:n,message:s})}_appendMessage({messageId:e,message:t}={}){this.emit(\"message\",t)}_end({messageId:e,message:t}={}){this.emit(\"end\",t),this.close()}_initMessageListener(){uni.onPushMessage(this._uniPushMessageCallback)}_destroy(){uni.offPushMessage(this._uniPushMessageCallback)}toJSON(){return{appId:this._appId,pushClientId:this._pushClientId,seqId:this._seqId}}close(){this._destroy(),this.emit(\"close\")}}async function Fs(e,t){const n=`http://${e}:${t}/system/ping`;try{const e=await(s={url:n,timeout:500},new Promise(((e,t)=>{ne.request({...s,success(t){e(t)},fail(e){t(e)}})})));return!(!e.data||0!==e.data.code)}catch(e){return!1}var s}async function Ks(e){if(!S)return Promise.resolve();if(\"app\"===P){const{osName:e,osVersion:t}=ce();\"ios\"===e&&function(e){if(!e||\"string\"!=typeof e)return 0;const t=e.match(/^(\\d+)./);return t&&t[1]?parseInt(t[1]):0}(t)>=14&&console.warn(\"iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发期间需要,发行后不需要)\")}const t=e.__dev__;if(!t.debugInfo)return;const{address:n,servePort:s}=t.debugInfo,{address:r}=await async function(e,t){let n;for(let s=0;s<e.length;s++){const r=e[s];if(await Fs(r,t)){n=r;break}}return{address:n,port:t}}(n,s);if(r)return t.localAddress=r,void(t.localPort=s);const i=console[\"app\"===P?\"error\":\"warn\"];let o=\"\";if(\"remote\"===t.debugInfo.initialLaunchType?(t.debugInfo.forceRemote=!0,o=\"当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\"):o=\"无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\",o+=\"\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\\n- 检查是否错误的使用拦截器修改uni.request方法的参数\",\"web\"===P&&(o+=\"\\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式\"),0===P.indexOf(\"mp-\")&&(o+=\"\\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp\"),!t.debugInfo.forceRemote)throw new Error(o);i(o)}function js(e){e._initPromiseHub||(e._initPromiseHub=new v({createPromise:function(){let t=Promise.resolve();var n;n=1,t=new Promise((e=>{setTimeout((()=>{e()}),n)}));const s=e.auth();return t.then((()=>s.getLoginState())).then((e=>e?Promise.resolve():s.signInAnonymously()))}}))}const $s={tcb:St,tencent:St,aliyun:pe,private:kt,alipay:Lt};let Bs=new class{init(e){let t={};const n=$s[e.provider];if(!n)throw new Error(\"未提供正确的provider参数\");t=n.init(e),S&&function(e){if(!S)return;const t={};e.__dev__=t,t.debugLog=S&&(\"web\"===P&&navigator.userAgent.indexOf(\"HBuilderX\")>0||\"app\"===P);const n=T;n&&!n.code&&(t.debugInfo=n);const s=new v({createPromise:function(){return Ks(e)}});t.initLocalNetwork=function(){return s.exec()}}(t),js(t),Kn(t),function(e){const t=e.uploadFile;e.uploadFile=function(e){return t.call(this,e)}}(t),function(e){e.database=function(t){if(t&&Object.keys(t).length>0)return e.init(t).database();if(this._database)return this._database;const n=Qn(Xn,{uniClient:e});return this._database=n,n},e.databaseForJQL=function(t){if(t&&Object.keys(t).length>0)return e.init(t).databaseForJQL();if(this._databaseForJQL)return this._databaseForJQL;const n=Qn(Xn,{uniClient:e,isJQL:!0});return this._databaseForJQL=n,n}}(t),function(e){e.getCurrentUserInfo=Ts,e.chooseAndUploadFile=xs.initChooseAndUploadFile(e),Object.assign(e,{get mixinDatacom(){return Es(e)}}),e.SSEChannel=qs,e.initSecureNetworkByWeixin=Ds(e),e.importObject=Ls(e)}(t);return[\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"chooseAndUploadFile\"].forEach((e=>{if(!t[e])return;const n=t[e];t[e]=function(){return n.apply(t,Array.from(arguments))},t[e]=function(e,t){return function(n){let s=!1;if(\"callFunction\"===t){const e=n&&n.type||c;s=e!==c}const r=\"callFunction\"===t&&!s,i=this._initPromiseHub.exec();n=n||{};const{success:o,fail:a,complete:u}=ee(n),h=i.then((()=>s?Promise.resolve():M(q(t,\"invoke\"),n))).then((()=>e.call(this,n))).then((e=>s?Promise.resolve(e):M(q(t,\"success\"),e).then((()=>M(q(t,\"complete\"),e))).then((()=>(r&&Y(j,{type:H,content:e}),Promise.resolve(e))))),(e=>s?Promise.reject(e):M(q(t,\"fail\"),e).then((()=>M(q(t,\"complete\"),e))).then((()=>(Y(j,{type:H,content:e}),Promise.reject(e))))));if(!(o||a||u))return h;h.then((e=>{o&&o(e),u&&u(e),r&&Y(j,{type:H,content:e})}),(e=>{a&&a(e),u&&u(e),r&&Y(j,{type:H,content:e})}))}}(t[e],e).bind(t)})),t.init=this.init,t}};(()=>{const e=C;let t={};if(e&&1===e.length)t=e[0],Bs=Bs.init(t),Bs._isDefault=!0;else{const t=[\"auth\",\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"database\",\"getCurrentUSerInfo\",\"importObject\"];let n;n=e&&e.length>0?\"应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间\":x?\"应用未关联服务空间,请在uniCloud目录右键关联服务空间\":\"uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间\",t.forEach((e=>{Bs[e]=function(){return console.error(n),Promise.reject(new te({code:\"SYS_ERR\",message:n}))}}))}Object.assign(Bs,{get mixinDatacom(){return Es(Bs)}}),bs(Bs),Bs.addInterceptor=N,Bs.removeInterceptor=D,Bs.interceptObject=F,S&&\"web\"===P&&(window.uniCloud=Bs)})();var Ws=Bs;export{Ws as default};\n","const _b64chars: string[] = [...'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/']\nconst _mkUriSafe = (src: string): string => src.replace(/[+/]/g, (m0: string) => (m0 === '+' ? '-' : '_')).replace(/=+\\$/m, '')\nconst fromUint8Array = (src: Uint8Array, rfc4648 = false): string => {\n let b64 = ''\n for (let i = 0, l = src.length; i < l; i += 3) {\n const [a0, a1, a2] = [src[i], src[i + 1], src[i + 2]]\n const ord = (a0 << 16) | (a1 << 8) | a2\n b64 += _b64chars[ord >>> 18]\n b64 += _b64chars[(ord >>> 12) & 63]\n b64 += typeof a1 !== 'undefined' ? _b64chars[(ord >>> 6) & 63] : '='\n b64 += typeof a2 !== 'undefined' ? _b64chars[ord & 63] : '='\n }\n return rfc4648 ? _mkUriSafe(b64) : b64\n}\nconst _btoa: (s: string) => string =\n typeof btoa === 'function'\n ? (s: string) => btoa(s)\n : (s: string) => {\n if (s.charCodeAt(0) > 255) {\n throw new RangeError('The string contains invalid characters.')\n }\n return fromUint8Array(Uint8Array.from(s, (c: string) => c.charCodeAt(0)))\n }\nconst utob = (src: string): string => unescape(encodeURIComponent(src))\n\nexport default function encode(src: string, rfc4648 = false): string {\n const b64 = _btoa(utob(src))\n return rfc4648 ? _mkUriSafe(b64) : b64\n}\n","/*\n * @Author: weisheng\n * @Date: 2024-03-29 13:29:57\n * @LastEditTime: 2024-04-10 20:18:47\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-toast\\index.ts\n * 记得注释\n */\nimport { provide, ref } from 'vue'\nimport type { Toast, ToastOptions } from './types'\nimport { deepMerge } from '../common/util'\n\n/**\n * useToast 用到的key\n *\n * @internal\n */\nexport const toastDefaultOptionKey = '__TOAST_OPTION__'\n\n// 默认模板\nexport const defaultOptions: ToastOptions = {\n msg: '',\n duration: 2000,\n loadingType: 'outline',\n loadingColor: '#4D80F0',\n iconColor: '#4D80F0',\n iconSize: 42,\n loadingSize: 42,\n customIcon: false,\n position: 'middle',\n show: false,\n zIndex: 100\n}\n\nexport function useToast(selector: string = ''): Toast {\n let timer: ReturnType<typeof setTimeout> | null = null\n const toastOption = ref<ToastOptions>(defaultOptions) // Toast选项\n const toastOptionKey = selector ? toastDefaultOptionKey + selector : toastDefaultOptionKey\n provide(toastOptionKey, toastOption)\n\n const createMethod = (toastOptions: ToastOptions) => {\n // 优先级:options->toastOptions->defaultOptions\n return (options: ToastOptions | string) => {\n return show(deepMerge(toastOptions, typeof options === 'string' ? { msg: options } : options) as ToastOptions)\n }\n }\n\n const show = (option: ToastOptions | string) => {\n const options = deepMerge(defaultOptions, typeof option === 'string' ? { msg: option } : option) as ToastOptions\n toastOption.value = deepMerge(options, {\n show: true\n }) as ToastOptions\n // 开始渲染,并在 duration ms之后执行清除\n timer && clearTimeout(timer)\n if (toastOption.value.duration && toastOption.value.duration > 0) {\n timer = setTimeout(() => {\n timer && clearTimeout(timer)\n close()\n }, options.duration)\n }\n }\n\n const loading = createMethod({\n iconName: 'loading',\n duration: 0,\n cover: true\n })\n const success = createMethod({\n iconName: 'success',\n duration: 1500\n })\n const error = createMethod({ iconName: 'error' })\n const warning = createMethod({ iconName: 'warning' })\n const info = createMethod({ iconName: 'info' })\n\n const close = () => {\n toastOption.value = { show: false }\n }\n return {\n show,\n loading,\n success,\n error,\n warning,\n info,\n close\n }\n}\n\nexport const toastIcon = {\n success() {\n return '<svg width=\"42px\" height=\"42px\" viewBox=\"0 0 42 42\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>成功</title><desc>Created with Sketch.</desc><defs><filter x=\"-63.2%\" y=\"-80.0%\" width=\"226.3%\" height=\"260.0%\" filterUnits=\"objectBoundingBox\" id=\"filter-1\"><feOffset dx=\"0\" dy=\"2\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"></feOffset><feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur><feColorMatrix values=\"0 0 0 0 0.122733141 0 0 0 0 0.710852582 0 0 0 0 0.514812768 0 0 0 1 0\" type=\"matrix\" in=\"shadowBlurOuter1\" result=\"shadowMatrixOuter1\"></feColorMatrix><feMerge><feMergeNode in=\"shadowMatrixOuter1\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter><rect id=\"path-2\" x=\"3.4176226\" y=\"5.81442199\" width=\"3\" height=\"8.5\" rx=\"1.5\"></rect><linearGradient x1=\"50%\" y1=\"0.126649064%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-4\"><stop stop-color=\"#ACFFBD\" stop-opacity=\"0.208123907\" offset=\"0%\"></stop><stop stop-color=\"#10B87C\" offset=\"100%\"></stop></linearGradient></defs><g id=\"规范\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"反馈-轻提示\" transform=\"translate(-388.000000, -538.000000)\"><g id=\"成功\" transform=\"translate(388.000000, 538.000000)\"><circle id=\"Oval\" fill=\"#34D19D\" opacity=\"0.400000006\" cx=\"21\" cy=\"21\" r=\"20\"></circle><circle id=\"Oval\" fill=\"#34D19D\" cx=\"21\" cy=\"21\" r=\"16\"></circle><g id=\"Group-6\" filter=\"url(#filter-1)\" transform=\"translate(11.500000, 14.000000)\"><mask id=\"mask-3\" fill=\"white\"><use xlink:href=\"#path-2\"></use></mask><use id=\"Rectangle-Copy-24\" fill=\"#C4FFEB\" transform=\"translate(4.917623, 10.064422) rotate(-45.000000) translate(-4.917623, -10.064422) \" xlink:href=\"#path-2\"></use><rect id=\"Rectangle\" fill=\"url(#linearGradient-4)\" mask=\"url(#mask-3)\" transform=\"translate(6.215869, 11.372277) rotate(-45.000000) translate(-6.215869, -11.372277) \" x=\"4.71586891\" y=\"9.52269089\" width=\"3\" height=\"3.69917136\"></rect><rect id=\"Rectangle\" fill=\"#FFFFFF\" transform=\"translate(11.636236, 7.232744) scale(1, -1) rotate(-45.000000) translate(-11.636236, -7.232744) \" x=\"10.1362361\" y=\"-1.02185365\" width=\"3\" height=\"16.5091951\" rx=\"1.5\"></rect></g></g></g></g></svg>'\n },\n warning() {\n return '<svg width=\"42px\" height=\"42px\" viewBox=\"0 0 42 42\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>警告</title><desc>Created with Sketch.</desc> <defs> <filter x=\"-240.0%\" y=\"-60.0%\" width=\"580.0%\" height=\"220.0%\" filterUnits=\"objectBoundingBox\" id=\"filter-1\"><feOffset dx=\"0\" dy=\"2\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"></feOffset><feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur><feColorMatrix values=\"0 0 0 0 0.824756567 0 0 0 0 0.450356612 0 0 0 0 0.168550194 0 0 0 1 0\" type=\"matrix\" in=\"shadowBlurOuter1\" result=\"shadowMatrixOuter1\"></feColorMatrix><feMerge><feMergeNode in=\"shadowMatrixOuter1\"></feMergeNode> <feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></defs><g id=\"规范\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"反馈-轻提示\" transform=\"translate(-580.000000, -538.000000)\"> <g id=\"警告\" transform=\"translate(580.000000, 538.000000)\"><circle id=\"Oval\" fill=\"#F0883A\" opacity=\"0.400000006\" cx=\"21\" cy=\"21\" r=\"20\"></circle><circle id=\"Oval\" fill=\"#F0883A\" cx=\"21\" cy=\"21\" r=\"16\"></circle><g id=\"Group-6\" filter=\"url(#filter-1)\" transform=\"translate(18.500000, 10.800000)\"><rect id=\"Rectangle\" fill=\"#FFFFFF\" transform=\"translate(2.492935, 7.171583) scale(1, -1) rotate(-360.000000) translate(-2.492935, -7.171583) \" x=\"0.992934699\" y=\"0.955464537\" width=\"3\" height=\"12.4322365\" rx=\"1.5\"></rect><rect id=\"Rectangle-Copy-25\" fill=\"#FFDEC5\" transform=\"translate(2.508751, 17.202636) scale(1, -1) rotate(-360.000000) translate(-2.508751, -17.202636) \" x=\"1.00875134\" y=\"15.200563\" width=\"3\" height=\"4.00414639\" rx=\"1.5\"></rect></g></g></g></g></svg>'\n },\n info() {\n return '<svg width=\"42px\" height=\"42px\" viewBox=\"0 0 42 42\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>常规</title><desc>Created with Sketch.</desc><defs><filter x=\"-300.0%\" y=\"-57.1%\" width=\"700.0%\" height=\"214.3%\" filterUnits=\"objectBoundingBox\" id=\"filter-1\"><feOffset dx=\"0\" dy=\"2\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"></feOffset><feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur><feColorMatrix values=\"0 0 0 0 0.362700096 0 0 0 0 0.409035039 0 0 0 0 0.520238904 0 0 0 1 0\" type=\"matrix\" in=\"shadowBlurOuter1\" result=\"shadowMatrixOuter1\"></feColorMatrix><feMerge><feMergeNode in=\"shadowMatrixOuter1\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></defs><g id=\"规范\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"反馈-轻提示\" transform=\"translate(-772.000000, -538.000000)\"><g id=\"常规\" transform=\"translate(772.000000, 538.000000)\"><circle id=\"Oval\" fill=\"#909CB7\" opacity=\"0.4\" cx=\"21\" cy=\"21\" r=\"20\"></circle><circle id=\"Oval\" fill=\"#909CB7\" cx=\"21\" cy=\"21\" r=\"16\"></circle><g id=\"Group-6\" filter=\"url(#filter-1)\" transform=\"translate(18.500000, 9.800000)\"><g id=\"编组-2\" transform=\"translate(2.492935, 10.204709) rotate(-180.000000) translate(-2.492935, -10.204709) translate(0.992935, 0.204709)\"><rect id=\"Rectangle\" fill=\"#FFFFFF\" transform=\"translate(1.500000, 7.000000) scale(1, -1) rotate(-360.000000) translate(-1.500000, -7.000000) \" x=\"0\" y=\"0\" width=\"3\" height=\"14\" rx=\"1.5\"></rect><rect id=\"Rectangle-Copy-25\" fill=\"#EEEEEE\" transform=\"translate(1.500000, 18.000000) scale(1, -1) rotate(-360.000000) translate(-1.500000, -18.000000) \" x=\"0\" y=\"16\" width=\"3\" height=\"4\" rx=\"1.5\"></rect></g></g></g></g></g></svg>'\n },\n error() {\n return '<svg width=\"42px\" height=\"42px\" viewBox=\"0 0 42 42\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>toast</title><desc>Created with Sketch.</desc><defs><linearGradient x1=\"99.6229896%\" y1=\"50.3770104%\" x2=\"0.377010363%\" y2=\"50.3770104%\" id=\"linearGradient-1\"><stop stop-color=\"#FFDFDF\" offset=\"0%\"></stop><stop stop-color=\"#F9BEBE\" offset=\"100%\"></stop></linearGradient><linearGradient x1=\"0.377010363%\" y1=\"50.3770104%\" x2=\"99.6229896%\" y2=\"50.3770104%\" id=\"linearGradient-2\"><stop stop-color=\"#FFDFDF\" offset=\"0%\"></stop><stop stop-color=\"#F9BEBE\" offset=\"100%\"></stop></linearGradient></defs><g id=\"规范\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"反馈-轻提示\" transform=\"translate(-196.000000, -538.000000)\"> <g id=\"toast\" transform=\"translate(196.000000, 538.000000)\"><circle id=\"Oval\" fill=\"#FA4350\" opacity=\"0.400000006\" cx=\"21\" cy=\"21\" r=\"20\"></circle><circle id=\"Oval\" fill=\"#FA4350\" opacity=\"0.900000036\" cx=\"21\" cy=\"21\" r=\"16\"></circle><rect id=\"矩形\" fill=\"#FFDFDF\" transform=\"translate(21.071068, 21.071068) rotate(-225.000000) translate(-21.071068, -21.071068) \" x=\"12.5710678\" y=\"19.5710678\" width=\"17\" height=\"3\" rx=\"1.5\"></rect><rect id=\"矩形\" fill=\"url(#linearGradient-1)\" transform=\"translate(19.303301, 22.838835) rotate(-225.000000) translate(-19.303301, -22.838835) \" x=\"17.3033009\" y=\"21.3388348\" width=\"4\" height=\"3\"></rect><rect id=\"矩形\" fill=\"url(#linearGradient-2)\" transform=\"translate(22.838835, 19.303301) rotate(-225.000000) translate(-22.838835, -19.303301) \" x=\"20.8388348\" y=\"17.8033009\" width=\"4\" height=\"3\"></rect><rect id=\"矩形\" fill=\"#FFFFFF\" transform=\"translate(21.071068, 21.071068) rotate(-315.000000) translate(-21.071068, -21.071068) \" x=\"12.5710678\" y=\"19.5710678\" width=\"17\" height=\"3\" rx=\"1.5\"></rect></g></g></g></svg>'\n }\n}\n","/*\n * @Author: weisheng\n * @Date: 2023-06-19 12:47:57\n * @LastEditTime: 2024-04-11 13:03:38\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-toast\\types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\nimport type { LoadingType } from '../wd-loading/types'\n\nexport type ToastIconType = 'success' | 'error' | 'warning' | 'loading' | 'info' // 图标类型\n\nexport type ToastPositionType = 'top' | 'middle' | 'bottom' // 提示信息框的位置类型\n\nexport type ToastLoadingType = LoadingType // 提示信息加载状态类型\n\nexport type ToastOptions = {\n msg?: string\n duration?: number\n iconName?: ToastIconType\n iconSize?: number\n loadingType?: ToastLoadingType\n loadingColor?: string\n iconColor?: string\n loadingSize?: number\n customIcon?: boolean\n position?: ToastPositionType\n show?: boolean\n zIndex?: number\n /**\n * 是否存在遮罩层\n */\n cover?: boolean\n /**\n * 完全展示后的回调函数\n */\n opened?: () => void\n /**\n * 完全关闭时的回调函数\n */\n closed?: () => void\n}\n\nexport interface Toast {\n // 打开Toast\n show(toastOptions: ToastOptions | string): void\n // 成功提示\n success(toastOptions: ToastOptions | string): void\n // 关闭提示\n error(toastOptions: ToastOptions | string): void\n // 常规提示\n info(toastOptions: ToastOptions | string): void\n // 警告提示\n warning(toastOptions: ToastOptions | string): void\n // 加载提示\n loading(toastOptions: ToastOptions | string): void\n // 关闭Toast\n close(): void\n}\n\nexport const toastProps = {\n ...baseProps,\n customIconClass: makeStringProp(''),\n selector: makeStringProp('')\n}\n\nexport type ToastProps = ExtractPropTypes<typeof toastProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-04-08 22:34:01\n * @LastEditTime: 2024-04-10 12:58:10\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-message-box\\types.ts\n * 记得注释\n */\nimport { baseProps } from '../common/props'\n\nexport type MessageType = 'alert' | 'confirm' | 'prompt'\n\nexport type MessageBeforeConfirmOption = {\n resolve: (isPass: boolean) => void\n}\n\nexport type MessageOptions = {\n /**\n * 标题\n */\n title?: string\n /**\n * 是否展示取消按钮\n */\n showCancelButton?: boolean\n\n show?: boolean\n /**\n * 是否支持点击蒙层进行关闭,点击蒙层回调传入的action为'modal'\n */\n closeOnClickModal?: boolean\n /**\n * 确定按钮文案\n */\n confirmButtonText?: string\n /**\n * 取消按钮文案\n */\n cancelButtonText?: string\n /**\n * 消息文案\n */\n msg?: string\n /**\n * 弹框类型\n */\n type?: MessageType\n /**\n * 当type为prompt时,输入框类型\n */\n inputType?: string\n /**\n * 当type为prompt时,输入框初始值\n */\n inputValue?: string | number\n /**\n * 当type为prompt时,输入框placeholder\n */\n inputPlaceholder?: string\n /**\n * 当type为prompt时,输入框正则校验,点击确定按钮时进行校验\n */\n inputPattern?: RegExp\n /**\n * 当type为prompt时,输入框校验函数,点击确定按钮时进行校验\n */\n inputValidate?: InputValidate | null\n /**\n * 当type为prompt时,输入框检验不通过时的错误提示文案\n */\n inputError?: string\n /**\n * 是否展示错误信息\n */\n showErr?: boolean\n /**\n * 弹窗层级\n */\n zIndex?: number\n /**\n * 弹层内容懒渲染,触发展示时才渲染内容\n */\n lazyRender?: boolean\n /**\n * 确认前钩子\n */\n beforeConfirm?: (options: MessageBeforeConfirmOption) => void\n}\n\nexport type ActionType = 'confirm' | 'cancel' | 'modal'\n\nexport type InputValidate = (inputValue: string | number) => boolean\n\nexport interface MessageResult {\n action: ActionType\n value?: string | number\n}\n\nexport interface Message {\n // 打开Message\n show(toastOptions: MessageOptions | string): Promise<MessageResult>\n // 打开Alert 弹框\n alert(toastOptions: MessageOptions | string): Promise<MessageResult>\n // 打开Confirm 弹框\n confirm(toastOptions: MessageOptions | string): Promise<MessageResult>\n // 打开Prompt 弹框\n prompt(toastOptions: MessageOptions | string): Promise<MessageResult>\n // 关闭Message\n close(): void\n}\n\nexport const messageBoxProps = {\n ...baseProps,\n selector: String\n}\n","/*\n * @Author: weisheng\n * @Date: 2022-12-14 17:33:21\n * @LastEditTime: 2024-04-01 12:30:51\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-message-box\\index.ts\n * 记得注释\n */\nimport { provide, ref } from 'vue'\nimport type { Message, MessageOptions, MessageResult, MessageType } from './types'\nimport { deepMerge } from '../common/util'\n\n/**\n * useMessage 用到的key\n *\n * @internal\n */\nexport const messageDefaultOptionKey = '__MESSAGE_OPTION__'\n\n// 默认模板\nexport const defaultOptions: MessageOptions = {\n title: '',\n showCancelButton: false,\n show: false,\n closeOnClickModal: true,\n msg: '',\n type: 'alert',\n inputType: 'text',\n inputValue: '',\n inputValidate: null,\n showErr: false,\n zIndex: 99,\n lazyRender: true,\n inputError: ''\n}\n\nexport function useMessage(selector: string = ''): Message {\n const messageOption = ref<MessageOptions>(defaultOptions) // Message选项\n const messageOptionKey = selector ? messageDefaultOptionKey + selector : messageDefaultOptionKey\n provide(messageOptionKey, messageOption)\n\n const createMethod = (type: MessageType) => {\n // 优先级:options->MessageOptions->defaultOptions\n return (options: MessageOptions | string) => {\n const messageOptions = deepMerge({ type: type }, typeof options === 'string' ? { title: options } : options) as MessageOptions\n if (messageOptions.type === 'confirm' || messageOptions.type === 'prompt') {\n messageOptions.showCancelButton = true\n } else {\n messageOptions.showCancelButton = false\n }\n return show(messageOptions)\n }\n }\n\n const show = (option: MessageOptions | string) => {\n // 返回一个promise\n return new Promise<MessageResult>((resolve, reject) => {\n const options = deepMerge(defaultOptions, typeof option === 'string' ? { title: option } : option) as MessageOptions\n messageOption.value = deepMerge(options, {\n show: true,\n onConfirm: (res: MessageResult) => {\n resolve(res)\n },\n onCancel: (res: MessageResult) => {\n reject(res)\n }\n }) as MessageOptions\n })\n }\n\n // 打开Alert 弹框\n const alert = createMethod('alert')\n // 打开Confirm 弹框\n const confirm = createMethod('confirm')\n // 打开Prompt 弹框\n const prompt = createMethod('prompt')\n\n const close = () => {\n messageOption.value = { ...defaultOptions }\n }\n return {\n show,\n alert,\n confirm,\n prompt,\n close\n }\n}\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport { makeStringProp } from '../common/props'\n\nexport type ConfigProviderTheme = 'light' | 'dark'\n\nexport const configProviderProps = {\n /**\n * 主题风格,设置为 dark 来开启深色模式,全局生效\n */\n theme: makeStringProp<ConfigProviderTheme>('light'),\n /**\n * 自定义主题变量\n */\n themeVars: {\n type: Object as PropType<ConfigProviderThemeVars>,\n default: () => ({})\n }\n}\n\nexport type ConfigProviderProps = ExtractPropTypes<typeof configProviderProps>\n\nexport type baseThemeVars = {\n colorTheme?: string // 主题色\n colorWhite?: string // 用于mix的白色\n colorBlack?: string // 用于mix的黑色\n colorSuccess?: string // 成功色\n colorWarning?: string // 警告色\n colorDanger?: string // 危险出错色\n colorPurple?: string // 紫色\n colorYellow?: string // 黄色\n colorBlue?: string // 蓝色\n colorInfo?: string // 信息色\n colorGray1?: string // 灰色1\n colorGray2?: string // 灰色2\n colorGray3?: string // 灰色3\n colorGray4?: string // 灰色4\n colorGray5?: string // 灰色5\n colorGray6?: string // 灰色6\n colorGray7?: string // 灰色7\n colorGray8?: string // 灰色8\n fontGray1?: string // 字体灰色1\n fontGray2?: string // 字体灰色2\n fontGray3?: string // 字体灰色3\n fontGray4?: string // 字体灰色4\n fontWhite1?: string // 字体白色1\n fontWhite2?: string // 字体白色2\n fontWhite3?: string // 字体白色3\n fontWhite4?: string // 字体白色4\n colorTitle?: string // 模块标题/重要正文\n colorContent?: string // 普通正文\n colorSecondary?: string // 次要信息,注释/补充/正文\n colorAid?: string // 辅助文字字号,弱化信息,引导性/不可点文字\n colorTip?: string // 失效、默认提示文字\n colorBorder?: string // 控件边框线\n colorBorderLight?: string // 分割线颜色\n colorBg?: string // 背景色、禁用填充色\n darkBackground?: string // 深色背景1\n darkBackground2?: string // 深色背景2\n darkBackground3?: string // 深色背景3\n darkBackground4?: string // 深色背景4\n darkBackground5?: string // 深色背景5\n darkBackground6?: string // 深色背景6\n darkBackground7?: string // 深色背景7\n darkColor?: string // 深色字体1\n darkColor2?: string // 深色字体2\n darkColor3?: string // 深色字体3\n darkColorGray?: string // 深色灰色\n darkBorderColor?: string // 深色边框颜色\n colorIcon?: string // icon颜色\n colorIconActive?: string // icon颜色hover\n colorIconDisabled?: string // icon颜色disabled\n fsBig?: string // 大型标题字号\n fsImportant?: string // 重要数据字号\n fsTitle?: string // 标题字号/重要正文字号\n fsContent?: string // 普通正文字号\n fsSecondary?: string // 次要信息字号\n fsAid?: string // 辅助文字字号\n fwMedium?: string // 字重500\n fwSemibold?: string // 字重600\n sizeSidePadding?: string // 屏幕两边留白padding\n}\n\nexport type actionSheetThemeVars = {\n actionSheetWeight?: string\n actionSheetRadius?: string\n actionSheetActionHeight?: string\n actionSheetColor?: string\n actionSheetFs?: string\n actionSheetActiveColor?: string\n actionSheetSubnameFs?: string\n actionSheetSubnameColor?: string\n actionSheetDisabledColor?: string\n actionSheetBg?: string\n actionSheetTitleHeight?: string\n actionSheetTitleFs?: string\n actionSheetCloseFs?: string\n actionSheetCloseColor?: string\n actionSheetCloseTop?: string\n actionSheetCloseRight?: string\n actionSheetCancelColor?: string\n actionSheetCancelHeight?: string\n actionSheetCancelBg?: string\n actionSheetCancelRadius?: string\n actionSheetPanelPadding?: string\n actionSheetPanelImgFs?: string\n actionSheetPanelImgRadius?: string\n}\n\nexport type badgeThemeVars = {\n badgeBg?: string\n badgeColor?: string\n badgeFs?: string\n badgePadding?: string\n badgeHeight?: string\n badgePrimary?: string\n badgeSuccess?: string\n badgeWarning?: string\n badgeDanger?: string\n badgeInfo?: string\n badgeDotSize?: string\n badgeBorder?: string\n}\n\nexport type buttonThemeVars = {\n buttonDisabledOpacity?: string\n\n buttonSmallHeight?: string\n buttonSmallPadding?: string\n buttonSmallFs?: string\n buttonSmallRadius?: string\n buttonSmallLoading?: string\n\n buttonMediumHeight?: string\n buttonMediumPadding?: string\n buttonMediumFs?: string\n buttonMediumRadius?: string\n buttonMediumLoading?: string\n buttonMediumBoxShadowSize?: string\n\n buttonLargeHeight?: string\n buttonLargePadding?: string\n buttonLargeFs?: string\n buttonLargeRadius?: string\n buttonLargeLoading?: string\n buttonLargeBoxShadowSize?: string\n\n buttonIconFs?: string\n buttonIconSize?: string\n buttonIconColor?: string\n buttonIconDisabledColor?: string\n\n buttonNormalColor?: string\n buttonNormalDisabledColor?: string\n\n buttonPlainBgColor?: string\n\n buttonPrimaryColor?: string\n buttonPrimaryBgColor?: string\n buttonPrimaryBoxShadowColor?: string\n\n buttonSuccessColor?: string\n buttonSuccessBgColor?: string\n buttonSuccessBoxShadowColor?: string\n\n buttonInfoColor?: string\n buttonInfoBgColor?: string\n buttonInfoPlainBorderColor?: string\n buttonInfoPlainNormalColor?: string\n\n buttonWarningColor?: string\n buttonWarningBgColor?: string\n buttonWarningBoxShadowColor?: string\n\n buttonErrorColor?: string\n buttonErrorBgColor?: string\n buttonErrorBoxShadowColor?: string\n\n buttonTextHoverOpacity?: string\n}\n\nexport type cellThemeVars = {\n cellPadding?: string\n cellLineHeight?: string\n\n cellGroupTitleFs?: string\n cellGroupPadding?: string\n cellGroupTitleColor?: string\n cellGroupValueFs?: string\n cellGroupValueColor?: string\n\n cellWrapperPadding?: string\n cellWrapperPaddingLarge?: string\n\n cellWrapperPaddingWithLabel?: string\n cellIconRight?: string\n cellIconSize?: string\n cellTitleFs?: string\n cellTitleColor?: string\n cellLabelFs?: string\n cellLabelColor?: string\n cellValueFs?: string\n cellValueColor?: string\n cellArrowSize?: string\n cellArrowColor?: string\n cellTapBg?: string\n\n cellTitleFsLarge?: string\n cellLabelFsLarge?: string\n cellIconSizeLarge?: string\n\n cellRequiredColor?: string\n cellRequiredSize?: string\n cellVerticalTop?: string\n}\n\nexport type calendarThemeVars = {\n calendarFs?: string\n calendarPanelPadding?: string\n calendarPanelTitleFs?: string\n calendarPanelTitleColor?: string\n calendarWeekColor?: string\n calendarWeekHeight?: string\n calendarWeekFs?: string\n calendarDayFs?: string\n calendarDayColor?: string\n calendarDayFw?: string\n calendarDayHeight?: string\n calendarMonthWidth?: string\n calendarActiveColor?: string\n calendarDisabledColor?: string\n calendarRangeColor?: string\n calendarActiveBorder?: string\n calendarInfoFs?: string\n}\n\nexport type checkboxThemeVars = {\n checkboxMargin?: string\n checkboxBg?: string\n checkboxLabelMargin?: string\n checkboxSize?: string\n checkboxIconSize?: string\n checkboxBorderColor?: string\n checkboxCheckColor?: string\n checkboxLabelFs?: string\n checkboxLabelColor?: string\n checkboxCheckedColor?: string\n\n checkboxDisabledColor?: string\n checkboxDisabledLabelColor?: string\n checkboxDisabledCheckColor?: string\n checkboxDisabledCheckBg?: string\n checkboxSquareRadius?: string\n\n checkboxLargeSize?: string\n checkboxLargeLabelFs?: string\n\n checkboxButtonHeight?: string\n checkboxButtonMinWidth?: string\n checkboxButtonRadius?: string\n checkboxButtonBg?: string\n checkboxButtonFontSize?: string\n checkboxButtonBorder?: string\n checkboxButtonDisabledBorder?: string\n}\n\nexport type collapseThemeVars = {\n collapseSidePadding?: string\n collapseBodyPadding?: string\n collapseHeaderPadding?: string\n collapseTitleColor?: string\n collapseTitleFs?: string\n collapseArrowSize?: string\n collapseArrowColor?: string\n collapseBodyFs?: string\n collapseBodyColor?: string\n collapseDisabledColor?: string\n collapseRetractFs?: string\n collapseMoreColor?: string\n}\n\nexport type dividerThemeVars = {\n dividerPadding?: string\n dividerColor?: string\n dividerLineColor?: string\n dividerFs?: string\n}\n\nexport type dropMenuThemeVars = {\n dropMenuHeight?: string\n dropMenuColor?: string\n dropMenuFs?: string\n dropMenuSidePadding?: string\n dropMenuDisabledColor?: string\n dropMenuItemHeight?: string\n dropMenuItemColor?: string\n dropMenuItemFs?: string\n dropMenuItemColorActive?: string\n dropMenuItemColorTip?: string\n dropMenuItemFsTip?: string\n dropMenuOptionCheckSize?: string\n dropMenuLineColor?: string\n dropMenuLineHeight?: string\n}\n\nexport type inputNumberThemeVars = {\n inputNumberColor?: string\n inputNumberBorderColor?: string\n inputNumberDisabledColor?: string\n inputNumberHeight?: string\n inputNumberBtnWidth?: string\n inputNumberInputWidth?: string\n inputNumberRadius?: string\n inputNumberFs?: string\n inputNumberIconSize?: string\n inputNumberIconColor?: string\n}\n\nexport type inputThemeVars = {\n inputPadding?: string\n inputBorderColor?: string\n inputNotEmptyBorderColor?: string\n inputFs?: string\n inputFsLarge?: string\n inputIconMargin?: string\n inputColor?: string\n inputPlaceholderColor?: string\n inputDisabledColor?: string\n inputErrorColor?: string\n inputIconColor?: string\n inputClearColor?: string\n inputCountColor?: string\n inputCountCurrentColor?: string\n inputBg?: string\n\n inputCellBg?: string\n inputCellBorderColor?: string\n inputCellPadding?: string\n inputCellPaddingLarge?: string\n inputCellHeight?: string\n inputCellLabelWidth?: string\n inputInnerHeight?: string\n inputInnerHeightNoBorder?: string\n inputCountFs?: string\n inputCountFsLarge?: string\n inputIconSize?: string\n inputIconSizeLarge?: string\n}\n\nexport type textareaThemeVars = {\n textareaPadding?: string\n textareaBorderColor?: string\n textareaNotEmptyBorderColor?: string\n textareaFs?: string\n textareaFsLarge?: string\n textareaIconMargin?: string\n textareaColor?: string\n textareaIconColor?: string\n textareaClearColor?: string\n textareaCountColor?: string\n textareaCountCurrentColor?: string\n textareaBg?: string\n\n textareaCellBorderColor?: string\n textareaCellPadding?: string\n textareaCellPaddingLarge?: string\n textareaCellHeight?: string\n textareaCountFs?: string\n textareaCountFsLarge?: string\n textareaIconSize?: string\n textareaIconSizeLarge?: string\n}\n\nexport type loadmoreThemeVars = {\n loadmoreHeight?: string\n loadmoreColor?: string\n loadmoreFs?: string\n loadmoreErrorColor?: string\n}\n\nexport type messageBoxThemeVars = {\n messageBoxWidth?: string\n messageBoxBg?: string\n messageBoxRadius?: string\n messageBoxPadding?: string\n messageBoxTitleFs?: string\n messageBoxTitleColor?: string\n messageBoxContentFs?: string\n messageBoxContentColor?: string\n messageBoxContentMaxHeight?: string\n messageBoxContentScrollbarWidth?: string\n messageBoxContentScrollbarColor?: string\n messageBoxInputErrorColor?: string\n}\n\nexport type noticeBarThemeVars = {\n noticeBarFs?: string\n noticeBarLineHeight?: string\n noticeBarBorderRadius?: string\n noticeBarPadding?: string\n noticeBarWarningBg?: string\n noticeBarInfoBg?: string\n noticeBarDangerBg?: string\n noticeBarWarningColor?: string\n noticeBarInfoColor?: string\n noticeBarDangerColor?: string\n noticeBarPrefixSize?: string\n noticeBarCloseBg?: string\n noticeBarCloseSize?: string\n noticeBarCloseColor?: string\n noticeBarWrapPadding?: string\n}\n\nexport type paginationThemeVars = {\n paginationContentPadding?: string\n paginationMessagePadding?: string\n paginationMessageFs?: string\n paginationMessageColor?: string\n paginationNavBorder?: string\n paginationNavBorderRadius?: string\n paginationNavFs?: string\n paginationNavWidth?: string\n paginationNavColor?: string\n paginationNavContentFs?: string\n paginationNavSepatatorPadding?: string\n paginationNavCurrentColor?: string\n}\n\nexport type pickerThemeVars = {\n pickerToolbarHeight?: string\n pickerActionHeight?: string\n pickerToolbarFinishColor?: string\n pickerToolbarCancelColor?: string\n pickerToolbarFs?: string\n pickerToolbarTitleColor?: string\n pickerColumnFs?: string\n pickerBg?: string\n pickerColumnActiveFs?: string\n pickerColumnColor?: string\n pickerColumnHeight?: string\n pickerColumnItemHeight?: string\n pickerColumnSelectBg?: string\n pickerLoadingButtonColor?: string\n pickerColumnPadding?: string\n\n pickerColumnDisabledColor?: string\n pickerMask?: string\n pickerLoadingBg?: string\n pickerRegionSeparatorColor?: string\n pickerCellArrowSizeLarge?: string\n\n pickerRegionColor?: string\n pickerRegionBgActiveColor?: string\n\n pickerRegionFs?: string\n}\n\nexport type colPickerThemeVars = {\n colPickerSelectedHeight?: string\n colPickerSelectedPadding?: string\n colPickerSelectedFs?: string\n colPickerSelectedColor?: string\n colPickerSelectedFw?: string\n colPickerLineWidth?: string\n colPickerLineHeight?: string\n colPickerLineColor?: string\n colPickerLineBoxShadow?: string\n colPickerListHeight?: string\n colPickerListPaddingBottom?: string\n colPickerListColor?: string\n colPickerListColorDisabled?: string\n colPickerListColorTip?: string\n colPickerListFs?: string\n colPickerListFsTip?: string\n colPickerListItemPadding?: string\n colPickerListCheckedIconSize?: string\n colPickerListColorChecked?: string\n}\n\nexport type overlayThemeVars = {\n overlayBg?: string\n overlayBgDark?: string\n}\n\nexport type popupThemeVars = {\n popupCloseSize?: string\n popupCloseColor?: string\n}\n\nexport type progressThemeVars = {\n progressPadding?: string\n progressBg?: string\n progressDangerColor?: string\n progressSuccessColor?: string\n progressColor?: string\n progressLinearSuccessColor?: string\n progressLinearDangerColor?: string\n progressHeight?: string\n progressLabelColor?: string\n progressLabelFs?: string\n progressIconFs?: string\n}\n\nexport type radioThemeVars = {\n radioMargin?: string\n radioLabelMargin?: string\n radioSize?: string\n radioBg?: string\n radioLabelFs?: string\n radioLabelColor?: string\n radioCheckedColor?: string\n radioDisabledColor?: string\n radioDisabledLabelColor?: string\n\n radioLargeSize?: string\n radioLargeLabelFs?: string\n\n radioButtonHeight?: string\n radioButtonMinWidth?: string\n radioButtonMaxWidth?: string\n radioButtonRadius?: string\n radioButtonBg?: string\n radioButtonFs?: string\n radioButtonBorder?: string\n radioButtonDisabledBorder?: string\n\n radioDotSize?: string\n radioDotLargeSize?: string\n radioDotCheckedBg?: string\n radioDotCheckedBorderColor?: string\n radioDotBorderColor?: string\n radioDotDisabledBorder?: string\n radioDotDisabledBg?: string\n}\n\nexport type searchThemeVars = {\n searchSidePadding?: string\n searchPadding?: string\n searchInputRadius?: string\n searchInputBg?: string\n searchInputHeight?: string\n searchInputPadding?: string\n searchInputFs?: string\n searchInputColor?: string\n searchIconColor?: string\n searchPlaceholderColor?: string\n searchCancelPadding?: string\n searchCancelFs?: string\n searchCancelColor?: string\n searchLightBg?: string\n}\n\nexport type sliderThemeVars = {\n sliderFs?: string\n sliderHandleRadius?: string\n sliderHandleBg?: string\n sliderAxieHeight?: string\n sliderColor?: string\n sliderAxieBg?: string\n sliderLineColor?: string\n sliderDisabledColor?: string\n}\n\nexport type sortButtonThemeVars = {\n sortButtonFs?: string\n sortButtonColor?: string\n sortButtonHeight?: string\n sortButtonLineHeight?: string\n sortButtonLineColor?: string\n}\n\nexport type stepsThemeVars = {\n stepsIconSize?: string\n stepsInactiveColor?: string\n stepsFinishedColor?: string\n stepsIconTextFs?: string\n stepsErrorColor?: string\n stepsTitleFs?: string\n stepsTitleFw?: string\n stepsLabelFs?: string\n stepsDescriptionColor?: string\n stepsIsIconWidth?: string\n stepsLineColor?: string\n stepsDotSize?: string\n stepsDotActiveSize?: string\n}\n\nexport type switchThemeVars = {\n switchSize?: string\n switchWidth?: string\n switchHeight?: string\n switchCircleSize?: string\n switchBorderColor?: string\n switchActiveColor?: string\n switchActiveShadowColor?: string\n switchInactiveColor?: string\n switchInactiveShadowColor?: string\n}\n\nexport type tabsThemeVars = {\n tabsNavArrowFs?: string\n tabsNavArrowOpenFs?: string\n tabsNavWidth?: string\n tabsNavHeight?: string\n tabsNavFs?: string\n tabsNavColor?: string\n tabsNavBg?: string\n tabsNavActiveColor?: string\n tabsNavDisabledColor?: string\n tabsNavLineHeight?: string\n tabsNavLineBgColor?: string\n tabsNavMapFs?: string\n tabsNavMapColor?: string\n tabsNavMapArrowColor?: string\n tabsNavMapBtnBeforeBg?: string\n tabsNavMapButtonBackColor?: string\n tabsNavMapButtonRadius?: string\n tabsNavMapModalBg?: string\n}\n\nexport type tagThemeVars = {\n tagFs?: string\n tagColor?: string\n tagSmallFs?: string\n tagInfoColor?: string\n tagPrimaryColor?: string\n tagDangerColor?: string\n tagWarningColor?: string\n tagSuccessColor?: string\n tagInfoBg?: string\n tagPrimaryBg?: string\n tagDangerBg?: string\n tagWarningBg?: string\n tagSuccessBg?: string\n tagRoundColor?: string\n tagRoundBorderColor?: string\n tagRoundRadius?: string\n tagMarkRadius?: string\n tagCloseSize?: string\n tagCloseColor?: string\n tagCloseActiveColor?: string\n}\n\nexport type toastThemeVars = {\n toastPadding?: string\n toastMaxWidth?: string\n toastRadius?: string\n toastBg?: string\n toastFs?: string\n toastWithIconMinWidth?: string\n toastIconSize?: string\n toastLoadingPadding?: string\n toastBoxShadow?: string\n}\n\nexport type tooltipThemeVars = {\n tooltipBg?: string\n tooltipColor?: string\n tooltipRadius?: string\n tooltipArrowSize?: string\n tooltipFs?: string\n tooltipBlur?: string\n tooltipPadding?: string\n tooltipCloseSize?: string\n tooltipZIndex?: string\n tooltipLineHeight?: string\n}\n\nexport type popoverThemeVars = {\n popoverBg?: string\n popoverColor?: string\n popoverBoxShadow?: string\n popoverArrowBoxShadow?: string\n popoverBorderColor?: string\n popoverRadius?: string\n popoverArrowSize?: string\n popoverFs?: string\n popoverPadding?: string\n popoverLineHeight?: string\n popoverZIndex?: string\n}\n\nexport type gridItemThemeVars = {\n gridItemFs?: string\n gridItemBg?: string\n gridItemPadding?: string\n gridItemBorderColor?: string\n}\n\nexport type statustipThemeVars = {\n statustipFs?: string\n statustipColor?: string\n statustipLineHeight?: string\n statustipPadding?: string\n}\n\nexport type cardThemeVars = {\n cardBg?: string\n cardFs?: string\n cardPadding?: string\n cardFooterPadding?: string\n cardShadowColor?: string\n cardRadius?: string\n cardLineHeight?: string\n cardMargin?: string\n cardTitleColor?: string\n cardTitleFs?: string\n cardContentBorderColor?: string\n cardRectangleTitlePadding?: string\n cardRectangleContentPadding?: string\n cardRectangleFooterPadding?: string\n cardContentColor?: string\n cardContentLineHeight?: string\n cardContentMargin?: string\n cardContentRectangleMargin?: string\n}\n\nexport type uploadThemeVars = {\n uploadSize?: string\n uploadEvokeIconSize?: string\n uploadEvokeBg?: string\n uploadEvokeColor?: string\n uploadEvokeDisabledColor?: string\n uploadCloseIconSize?: string\n uploadCloseIconColor?: string\n uploadProgressFs?: string\n uploadPreviewNameFs?: string\n uploadPreviewIconSize?: string\n uploadPreviewNameBg?: string\n uploadPreviewNameHeight?: string\n}\n\nexport type curtainThemeVars = {\n curtainContentRadius?: string\n curtainContentCloseColor?: string\n curtainContentCloseFs?: string\n}\n\nexport type notifyThemeVars = {\n notifyTextColor?: string\n notifyPadding?: string\n notifyFontSize?: string\n notifyLineHeight?: string\n notifyPrimaryBackground?: string\n notifySuccessBackground?: string\n notifyDangerBackground?: string\n notifyWarningBackground?: string\n}\n\nexport type skeletonThemeVars = {\n skeletonBackgroundColor?: string\n skeletonAnimationGradient?: string\n skeletonAnimationFlashed?: string\n skeletonTextHeightDefault?: string\n skeletonRectHeightDefault?: string\n skeletonCircleHeightDefault?: string\n skeletonRowMarginBottom?: string\n skeletonBorderRadiusText?: string\n skeletonBorderRadiusRect?: string\n skeletonBorderRadiusCircle?: string\n}\n\nexport type circleThemeVars = {\n circleTextColor?: string\n}\n\nexport type swiperThemeVars = {\n swiperRadius?: string\n swiperItemPadding?: string\n}\n\nexport type swiperNavThemeVars = {\n // dot & dots-bar\n swiperNavDotColor?: string\n swiperNavDotActiveColor?: string\n swiperNavDotSize?: string\n swiperNavDotsBarActiveWidth?: string\n // fraction\n swiperNavFractionColor?: string\n swiperNavFractionBgColor?: string\n swiperNavFractionHeight?: string\n swiperNavFractionFontSize?: string\n // button\n swiperNavBtnColor?: string\n swiperNavBtnBgColor?: string\n swiperNavBtnSize?: string\n}\n\nexport type segmentedThemeVars = {\n segmentedPadding?: string\n segmentedItemBgColor?: string\n segmentedItemColor?: string\n segmentedItemAcitveBg?: string\n segmentedItemDisabledColor?: string\n}\n\nexport type tabbarThemeVars = {\n tabbarHeight?: string\n tabbarBoxShadow?: string\n}\n\nexport type tabbarItemThemeVars = {\n tabbarItemTitleFontSize?: string\n tabbarItemTitleLineHeight?: string\n tabbarInactiveColor?: string\n tabbarActiveColor?: string\n}\n\nexport type navbarThemeVars = {\n navbarHeight?: string\n navbarColor?: string\n navbarBackground?: string\n navbarArrowSize?: string\n navbarDescFontSize?: string\n navbarDescFontColor?: string\n navbarTitleFontSize?: string\n navbarTitleFontWeight?: string\n navbarDisabledOpacity?: string\n navbarHoverColor?: string\n}\n\nexport type navbarCapsuleThemeVars = {\n navbarCapsuleBorderColor?: string\n navbarCapsuleBorderRadius?: string\n navbarCapsuleWidth?: string\n navbarCapsuleHeight?: string\n}\n\nexport type tableThemeVars = {\n tableColor?: string\n tableBg?: string\n tableStripeBg?: string\n tableBorderColor?: string\n tableFontSize?: string\n}\n\nexport type sidebarThemeVars = {\n sidebarBg?: string\n sidebarWidth?: string\n sidebarHeight?: string\n}\n\nexport type sidebarItemThemeVars = {\n sidebarColor?: string\n sidebarItemHeight?: string\n sidebarItemLineHeight?: string\n sidebarDisabledColor?: string\n sidebarActiveColor?: string\n sidebarActiveBg?: string\n sidebarHoverBg?: string\n sidebarBorderRadius?: string\n sidebarFontSize?: string\n sidebarIconSize?: string\n sidebarActiveBorderWidth?: string\n sidebarActiveBorderHeight?: string\n}\n\nexport type fabThemeVars = {\n fabTriggerHeight?: string\n fabTriggerWidth?: string\n fabActionsPadding?: string\n fabTop?: string\n fabLeft?: string\n fabRight?: string\n fabBottom?: string\n}\n\nexport type countDownThemeVars = {\n countDownTextColor?: string\n countDownFontSize?: string\n countDownLineHeight?: string\n}\n\nexport type numberKeyboardThemeVars = {\n numberKeyboardKeyHeight?: string\n numberKeyboardKeyFontSize?: string\n numberKeyboardKeyBackground?: string\n numberKeyboardKeyBorderRadius?: string\n numberKeyboardDeleteFontSize?: string\n numberKeyboardKeyActiveColor?: string\n numberKeyboardButtonTextColor?: string\n numberKeyboardButtonBackground?: string\n numberKeyboardButtonActiveOpacity?: string\n numberKeyboardBackground?: string\n numberKeyboardTitleHeight?: string\n numberKeyboardTitleColor?: string\n numberKeyboardTitleFontSize?: string\n numberKeyboardClosePadding?: string\n numberKeyboardCloseColor?: string\n numberKeyboardCloseFontSize?: string\n}\n\nexport type passwodInputThemeVars = {\n passwordInputHeight?: string\n passwordInputMargin?: string\n passwordInputFontSize?: string\n passwordInputRadius?: string\n passwordInputBackground?: string\n passwordInputInfoColor?: string\n passwordInputInfoFontSize?: string\n passwordInputBorderColor?: string\n passwordInputErrorInfoColor?: string\n passwordInputDotSize?: string\n passwordInputDotColor?: string\n passwordInputTextColor?: string\n passwordInputCursorColor?: string\n passwordInputCursorWidth?: string\n passwordInputCursorHeight?: string\n passwordInputCursorDuration?: string\n}\n\nexport type formItemThemeVars = {\n formItemErrorMessageColor?: string\n formItemErrorMessageFontSize?: string\n formItemErrorMessageLineHeight?: string\n}\n\nexport type ConfigProviderThemeVars = baseThemeVars &\n actionSheetThemeVars &\n badgeThemeVars &\n buttonThemeVars &\n cellThemeVars &\n calendarThemeVars &\n checkboxThemeVars &\n collapseThemeVars &\n dividerThemeVars &\n dropMenuThemeVars &\n inputNumberThemeVars &\n inputThemeVars &\n textareaThemeVars &\n loadmoreThemeVars &\n messageBoxThemeVars &\n noticeBarThemeVars &\n paginationThemeVars &\n pickerThemeVars &\n colPickerThemeVars &\n overlayThemeVars &\n popupThemeVars &\n progressThemeVars &\n radioThemeVars &\n searchThemeVars &\n sliderThemeVars &\n sortButtonThemeVars &\n stepsThemeVars &\n switchThemeVars &\n tabsThemeVars &\n tagThemeVars &\n toastThemeVars &\n tooltipThemeVars &\n popoverThemeVars &\n gridItemThemeVars &\n statustipThemeVars &\n cardThemeVars &\n uploadThemeVars &\n curtainThemeVars &\n notifyThemeVars &\n skeletonThemeVars &\n circleThemeVars &\n swiperThemeVars &\n swiperNavThemeVars &\n segmentedThemeVars &\n tabbarThemeVars &\n tabbarItemThemeVars &\n navbarThemeVars &\n navbarCapsuleThemeVars &\n tableThemeVars &\n sidebarThemeVars &\n sidebarItemThemeVars &\n fabThemeVars &\n countDownThemeVars &\n numberKeyboardThemeVars &\n passwodInputThemeVars &\n formItemThemeVars\n","import type { PropType } from 'vue'\nimport { baseProps, makeBooleanProp, makeNumberProp } from '../common/props'\n\nexport const overlayProps = {\n ...baseProps,\n /**\n * 是否展示遮罩层\n */\n show: makeBooleanProp(false),\n /**\n * 动画时长,单位毫秒\n */\n duration: {\n type: [Object, Number, Boolean] as PropType<Record<string, number> | number | boolean>,\n default: 300\n },\n /**\n * 是否锁定滚动\n */\n lockScroll: makeBooleanProp(true),\n /**\n * 层级\n */\n zIndex: makeNumberProp(10)\n}\n","import { getCurrentInstance, ref } from 'vue'\nimport { getRect } from '../common/util'\n\nexport function usePopover() {\n const { proxy } = getCurrentInstance() as any\n const popStyle = ref<string>('')\n const arrowStyle = ref<string>('')\n const showStyle = ref<string>('')\n const arrowClass = ref<string>('')\n const popWidth = ref<number>(0)\n const popHeight = ref<number>(0)\n const left = ref<number>(0)\n const bottom = ref<number>(0)\n const width = ref<number>(0)\n const height = ref<number>(0)\n const top = ref<number>(0)\n\n function noop() {}\n\n function init(\n placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n | 'right'\n | 'right-start'\n | 'right-end',\n visibleArrow: boolean,\n selector: string\n ) {\n // 初始化 class\n if (visibleArrow) {\n const arrowClassArr = [\n `wd-${selector}__arrow`,\n placement === 'bottom' || placement === 'bottom-start' || placement === 'bottom-end' ? `wd-${selector}__arrow-up` : '',\n placement === 'left' || placement === 'left-start' || placement === 'left-end' ? `wd-${selector}__arrow-right` : '',\n placement === 'right' || placement === 'right-start' || placement === 'right-end' ? `wd-${selector}__arrow-left` : '',\n placement === 'top' || placement === 'top-start' || placement === 'top-end' ? `wd-${selector}__arrow-down` : ''\n ]\n arrowClass.value = arrowClassArr.join(' ')\n }\n\n // 初始化数据获取\n getRect('#target', false, proxy).then((rect) => {\n if (!rect) return\n left.value = rect.left as number\n bottom.value = rect.bottom as number\n width.value = rect.width as number\n height.value = rect.height as number\n top.value = rect.top as number\n })\n // 用透明度可在初始化时获取到pop尺寸\n getRect('#pos', false, proxy).then((rect) => {\n if (!rect) return\n popWidth.value = rect.width as number\n popHeight.value = rect.height as number\n })\n }\n\n function control(\n placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n | 'right'\n | 'right-start'\n | 'right-end',\n offset: number\n ) {\n // arrow size\n const arrowSize = 9\n // 上下位(纵轴)对应的距离左边的距离\n const verticalX = width.value / 2\n // 上下位(纵轴)对应的距离底部的距离\n const verticalY = arrowSize + height.value + 5\n // 左右位(横轴)对应的距离左边的距离\n const horizontalX = width.value + arrowSize + 5\n // 左右位(横轴)对应的距离底部的距离\n const horizontalY = height.value / 2\n\n const offsetX = (verticalX - 17 > 0 ? 0 : verticalX - 25) + offset\n const offsetY = (horizontalY - 17 > 0 ? 0 : horizontalY - 25) + offset\n\n const placements = new Map([\n // 上\n ['top', [`left: ${verticalX}px; bottom: ${verticalY}px; transform: translateX(-50%);`, 'left: 50%;']],\n [\n 'top-start',\n [\n `left: ${offsetX}px; bottom: ${verticalY}px;`,\n `left: ${(popWidth.value >= width.value ? width.value / 2 : popWidth.value - 25) - offsetX}px;`\n ]\n ],\n [\n 'top-end',\n [\n `right: ${offsetX}px; bottom: ${verticalY}px;`,\n `right: ${(popWidth.value >= width.value ? width.value / 2 : popWidth.value - 25) - offsetX}px; transform: translateX(50%);`\n ]\n ],\n // 下\n ['bottom', [`left: ${verticalX}px; top: ${verticalY}px; transform: translateX(-50%);`, 'left: 50%;']],\n [\n 'bottom-start',\n [`left: ${offsetX}px; top: ${verticalY}px;`, `left: ${(popWidth.value >= width.value ? width.value / 2 : popWidth.value - 25) - offsetX}px;`]\n ],\n [\n 'bottom-end',\n [\n `right: ${offsetX}px; top: ${verticalY}px;`,\n `right: ${(popWidth.value >= width.value ? width.value / 2 : popWidth.value - 25) - offsetX}px; transform: translateX(50%);`\n ]\n ],\n // 左\n ['left', [`right: ${horizontalX}px; top: ${horizontalY}px; transform: translateY(-50%);`, 'top: 50%']],\n [\n 'left-start',\n [\n `right: ${horizontalX}px; top: ${offsetY}px;`,\n `top: ${(popHeight.value >= height.value ? height.value / 2 : popHeight.value - 20) - offsetY}px;`\n ]\n ],\n [\n 'left-end',\n [\n `right: ${horizontalX}px; bottom: ${offsetY}px;`,\n `bottom: ${(popHeight.value >= height.value ? height.value / 2 : popHeight.value - 20) - offsetY}px; transform: translateY(50%);`\n ]\n ],\n // 右\n ['right', [`left: ${horizontalX}px; top: ${horizontalY}px; transform: translateY(-50%);`, 'top: 50%']],\n [\n 'right-start',\n [\n `left: ${horizontalX}px; top: ${offsetY}px;`,\n `top: ${(popHeight.value >= height.value ? height.value / 2 : popHeight.value - 20) - offsetY}px;`\n ]\n ],\n [\n 'right-end',\n [\n `left: ${horizontalX}px; bottom: ${offsetY}px;`,\n `bottom: ${(popHeight.value >= height.value ? height.value / 2 : popHeight.value - 20) - offsetY}px; transform: translateY(50%);`\n ]\n ]\n ])\n popStyle.value = placements.get(placement)![0]\n arrowStyle.value = placements.get(placement)![1]\n }\n\n return { popStyle, arrowStyle, showStyle, arrowClass, init, control, noop }\n}\n","/*\n * @Author: weisheng\n * @Date: 2023-07-02 22:51:06\n * @LastEditTime: 2024-03-16 19:59:07\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/components/common/clickoutside.ts\n * 记得注释\n */\nlet queue: any[] = []\n\nexport function pushToQueue(comp: any) {\n queue.push(comp)\n}\n\nexport function removeFromQueue(comp: any) {\n queue = queue.filter((item) => {\n return item.$.uid !== comp.$.uid\n })\n}\n\nexport function closeOther(comp: any) {\n queue.forEach((item) => {\n if (item.$.uid !== comp.$.uid) {\n item.$.exposed.close()\n }\n })\n}\n\nexport function closeOutside() {\n queue.forEach((item) => {\n item.$.exposed.close()\n })\n}\n","import { type Ref, provide, ref } from 'vue'\n\nexport const queueKey = '__QUEUE_KEY__'\n\nexport interface Queue {\n queue: Ref<any[]>\n pushToQueue: (comp: any) => void\n removeFromQueue: (comp: any) => void\n closeOther: (comp: any) => void\n closeOutside: () => void\n}\n\nexport function useQueue() {\n const queue = ref<any[]>([])\n\n function pushToQueue(comp: any) {\n queue.value.push(comp)\n }\n\n function removeFromQueue(comp: any) {\n queue.value = queue.value.filter((item) => {\n return item.$.uid !== comp.$.uid\n })\n }\n\n function closeOther(comp: any) {\n queue.value.forEach((item) => {\n if (item.$.uid !== comp.$.uid) {\n item.$.exposed.close()\n }\n })\n }\n\n function closeOutside() {\n queue.value.forEach((item) => {\n item.$.exposed.close()\n })\n }\n\n provide(queueKey, {\n queue,\n pushToQueue,\n removeFromQueue,\n closeOther,\n closeOutside\n })\n\n return {\n closeOther,\n closeOutside\n }\n}\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\n\nexport type PlacementType =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n\nexport type PopoverMode = 'menu' | 'normal'\n\nexport const popoverProps = {\n ...baseProps,\n customArrow: makeStringProp(''),\n customPop: makeStringProp(''),\n /**\n * 是否显示 popover 箭头\n */\n visibleArrow: makeBooleanProp(true),\n /**\n * 显示的内容,也可以通过 slot#content 传入\n */\n content: [String, Object] as PropType<string | Record<string, any>[]>,\n /**\n * 指定 popover 的放置位置:top / top-start / top-end / bottom / bottom-start / bottom-end / left / left-start / left-end / right / right-start / right-end\n */\n placement: makeStringProp<PlacementType>('bottom'),\n /**\n * 偏移量\n */\n offset: makeNumberProp(0),\n /**\n * 是否使用内容插槽\n */\n useContentSlot: makeBooleanProp(false),\n /**\n * 是否禁用 popover\n */\n disabled: makeBooleanProp(false),\n /**\n * 是否显示关闭按钮\n */\n showClose: makeBooleanProp(false),\n /**\n * 控制 popover 的显示状态\n */\n modelValue: makeBooleanProp(false),\n /**\n * 当前显示的模式,决定内容的展现形式,可选值:normal(普通模式)/ menu(菜单模式)\n */\n mode: makeStringProp<PopoverMode>('normal')\n}\n\nexport type PopoverProps = ExtractPropTypes<typeof popoverProps>\n\nexport type PopoverExpose = {\n // 打开popover\n open: () => void\n // 关闭popover\n close: () => void\n}\n","import { baseProps, makeBooleanProp, makeNumericProp, makeStringProp } from '../common/props'\n\nexport const searchProps = {\n ...baseProps,\n\n /**\n * 输入框内容,双向绑定\n * 类型: string\n * 默认值: ''\n */\n modelValue: makeStringProp(''),\n\n /**\n * 是否使用输入框右侧插槽\n * 类型: boolean\n * 默认值: false\n * @deprecated 该属性已废弃,将在下一个minor版本被移除,直接使用插槽即可\n */\n useSuffixSlot: makeBooleanProp(false),\n\n /**\n * 搜索框占位文本\n * 类型: string\n */\n placeholder: String,\n\n /**\n * 搜索框右侧文本\n * 类型: string\n */\n cancelTxt: String,\n\n /**\n * 搜索框亮色(白色)\n * 类型: boolean\n * 默认值: false\n */\n light: makeBooleanProp(false),\n\n /**\n * 是否隐藏右侧文本\n * 类型: boolean\n * 默认值: false\n */\n hideCancel: makeBooleanProp(false),\n\n /**\n * 是否禁用搜索框\n * 类型: boolean\n * 默认值: false\n */\n disabled: makeBooleanProp(false),\n\n /**\n * 原生属性,设置最大长度。-1 表示无限制\n * 类型: string / number\n * 默认值: -1\n */\n maxlength: makeNumericProp(-1),\n\n /**\n * placeholder 居左边\n * 类型: boolean\n * 默认值: false\n */\n placeholderLeft: makeBooleanProp(false),\n\n /**\n * 是否自动聚焦\n * 类型: boolean\n * 默认值: false\n * 最低版本: 0.1.63\n */\n focus: makeBooleanProp(false),\n\n /**\n * 是否在点击清除按钮时聚焦输入框\n * 类型: boolean\n * 默认值: false\n * 最低版本: 0.1.63\n */\n focusWhenClear: makeBooleanProp(false)\n}\n","import { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeNumericProp, makeStringProp } from '../common/props'\nimport type { FormItemRule } from '../wd-form/types'\n\nexport const inputProps = {\n ...baseProps,\n customInputClass: makeStringProp(''),\n customLabelClass: makeStringProp(''),\n // 原生属性\n /**\n * 占位文本\n */\n placeholder: String,\n /**\n * 原生属性,指定 placeholder 的样式,目前仅支持color,font-size和font-weight\n */\n placeholderStyle: String,\n /**\n * 原生属性,指定 placeholder 的样式类\n */\n placeholderClass: makeStringProp(''),\n /**\n * 原生属性,指定光标与键盘的距离。取 input 距离底部的距离和cursor-spacing指定的距离的最小值作为光标与键盘的距离\n */\n cursorSpacing: makeNumberProp(0),\n /**\n * 原生属性,指定focus时的光标位置\n */\n cursor: makeNumberProp(-1),\n /**\n * 原生属性,光标起始位置,自动聚集时有效,需与selection-end搭配使用\n */\n selectionStart: makeNumberProp(-1),\n /**\n * 原生属性,光标结束位置,自动聚集时有效,需与selection-start搭配使用\n */\n selectionEnd: makeNumberProp(-1),\n /**\n * 原生属性,键盘弹起时,是否自动上推页面\n */\n adjustPosition: makeBooleanProp(true),\n /**\n * focus时,点击页面的时候不收起键盘\n */\n holdKeyboard: makeBooleanProp(false),\n /**\n * 设置键盘右下角按钮的文字,仅在type='text'时生效,可选值:done / go / next / search / send\n */\n confirmType: makeStringProp('done'),\n /**\n * 点击键盘右下角按钮时是否保持键盘不收起\n */\n confirmHold: makeBooleanProp(false),\n /**\n * 原生属性,获取焦点\n */\n focus: makeBooleanProp(false),\n /**\n * 类型,可选值:text / number / digit / idcard\n */\n type: makeStringProp('text'),\n /**\n * 原生属性,最大长度\n */\n maxlength: {\n type: Number,\n // #ifndef MP-ALIPAY\n default: -1\n // #endif\n },\n /**\n * 原生属性,禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 微信小程序原生属性,强制 input 处于同层状态,默认 focus 时 input 会切到非同层状态 (仅在 iOS 下生效)\n */\n alwaysEmbed: makeBooleanProp(false),\n // 原生属性结束\n /**\n * 输入框的值靠右展示\n */\n alignRight: makeBooleanProp(false),\n /**\n * 绑定值\n */\n modelValue: makeNumericProp(''),\n /**\n * 显示为密码框\n */\n showPassword: makeBooleanProp(false),\n /**\n * 显示清空按钮\n */\n clearable: makeBooleanProp(false),\n /**\n * 只读\n */\n readonly: makeBooleanProp(false),\n /**\n * 使用 后置图标 插槽\n */\n useSuffixSlot: makeBooleanProp(false),\n /**\n * 使用 前置图标 插槽\n */\n usePrefixSlot: makeBooleanProp(false),\n /**\n * 前置图标,icon组件中的图标类名\n */\n prefixIcon: String,\n /**\n * 后置图标,icon组件中的图标类名\n */\n suffixIcon: String,\n /**\n * 显示字数限制,需要同时设置 maxlength\n */\n showWordLimit: makeBooleanProp(false),\n /**\n * 设置左侧标题\n */\n label: String,\n /**\n * 设置左侧标题宽度\n */\n labelWidth: makeStringProp('33%'),\n /**\n * 使用 label 插槽\n */\n useLabelSlot: makeBooleanProp(false),\n /**\n * 设置输入框大小,可选值:large\n */\n size: String,\n /**\n * 设置输入框错误状态,错误状态时为红色\n */\n error: makeBooleanProp(false),\n /**\n * 当有label属性时,设置标题和输入框垂直居中,默认为顶部居中\n */\n center: makeBooleanProp(false),\n /**\n * 非 cell 类型下是否隐藏下划线\n */\n noBorder: makeBooleanProp(false),\n /**\n * 是否必填\n */\n required: makeBooleanProp(false),\n /**\n * 表单域 model 字段名,在使用表单校验功能的情况下,该属性是必填的\n */\n prop: String,\n /**\n * 表单验证规则,结合wd-form组件使用\n */\n rules: makeArrayProp<FormItemRule>()\n}\n","import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeRequiredProp, makeStringProp } from '../common/props'\nimport type { FormItemRule } from '../wd-form/types'\n\nexport const colPickerProps = {\n ...baseProps,\n /**\n * 选中项\n */\n modelValue: makeRequiredProp(Array as PropType<Array<string | number>>),\n /**\n * 选择器数据,二维数组\n */\n columns: makeArrayProp<Record<string, any>[]>(),\n /**\n * 选择器左侧文案\n */\n label: String,\n /**\n * 设置左侧标题宽度\n */\n labelWidth: makeStringProp('33%'),\n /**\n * 使用 label 插槽时设置该选项\n */\n useLabelSlot: makeBooleanProp(false),\n /**\n * 使用默认插槽时设置该选项\n */\n useDefaultSlot: makeBooleanProp(false),\n /**\n * 禁用\n */\n disabled: makeBooleanProp(false),\n /**\n * 只读\n */\n readonly: makeBooleanProp(false),\n /**\n * 选择器占位符\n */\n placeholder: String,\n /**\n * 弹出层标题\n */\n title: String,\n /**\n * 接收当前列的选中项 item、当前列下标、当前列选中项下标下一列数据处理函数 resolve、结束选择 finish\n */\n columnChange: Function as PropType<ColPickerColumnChange>,\n /**\n * 自定义展示文案的格式化函数,返回一个字符串\n */\n displayFormat: Function as PropType<ColPickerDisplayFormat>,\n /**\n * 确定前校验函数,接收 (value, resolve) 参数,通过 resolve 继续执行 picker,resolve 接收 1 个 boolean 参数\n */\n beforeConfirm: Function as PropType<ColPickerBeforeConfirm>,\n /**\n * 选择器的值靠右展示\n */\n alignRight: makeBooleanProp(false),\n /**\n * 是否为错误状态,错误状态时右侧内容为红色\n */\n error: makeBooleanProp(false),\n /**\n * 是否必填\n */\n required: makeBooleanProp(false),\n /**\n * 设置选择器大小,可选值:large\n */\n size: String,\n /**\n * 选项对象中,value 对应的 key\n */\n valueKey: makeStringProp('value'),\n /**\n * 选项对象中,展示的文本对应的 key\n */\n labelKey: makeStringProp('label'),\n /**\n * 选项对象中,提示文案对应的 key\n */\n tipKey: makeStringProp('tip'),\n /**\n * loading 图标的颜色\n */\n loadingColor: makeStringProp('#4D80F0'),\n /**\n * 点击遮罩是否关闭\n */\n closeOnClickModal: makeBooleanProp(true),\n /**\n * 自动触发 column-change 事件来补全数据,当 columns 为空数组或者 columns 数组长度小于 value 数组长度时,会自动触发 column-change\n */\n autoComplete: makeBooleanProp(false),\n /**\n * 弹窗层级\n */\n zIndex: makeNumberProp(15),\n /**\n * 弹出面板是否设置底部安全距离(iphone X 类型的机型)\n */\n safeAreaInsetBottom: makeBooleanProp(true),\n /**\n * 是否超出隐藏\n */\n ellipsis: makeBooleanProp(false),\n /**\n * 表单域 model 字段名,在使用表单校验功能的情况下,该属性是必填的\n */\n prop: String,\n /**\n * 表单验证规则,结合wd-form组件使用\n */\n rules: makeArrayProp<FormItemRule>(),\n /**\n * label 外部自定义样式\n */\n customViewClass: makeStringProp(''),\n /**\n * value 外部自定义样式\n */\n customLabelClass: makeStringProp(''),\n customValueClass: makeStringProp('')\n}\n\nexport type ColPickerProps = ExtractPropTypes<typeof colPickerProps>\n\nexport type ColPickerColumnChangeOption = {\n selectedItem: Record<string, any>\n index: number\n rowIndex: number\n resolve: (nextColumn: Record<string, any>[]) => void\n finish: (isOk?: boolean) => void\n}\nexport type ColPickerColumnChange = (option: ColPickerColumnChangeOption) => void\nexport type ColPickerDisplayFormat = (selectedItems: Record<string, any>[]) => string\nexport type ColPickerBeforeConfirm = (value: (string | number)[], selectedItems: Record<string, any>[], resolve: (isPass: boolean) => void) => void\n\nexport type ColPickerExpose = {\n // 关闭picker弹框\n close: () => void\n // 打开picker弹框\n open: () => void\n}\n\nexport type ColPickerInstance = ComponentPublicInstance<ColPickerExpose, ColPickerProps>\n","import {\n provide,\n reactive,\n getCurrentInstance,\n type VNode,\n type InjectionKey,\n type VNodeNormalizedChildren,\n type ComponentPublicInstance,\n type ComponentInternalInstance\n} from 'vue'\n\n// 小程序端不支持从vue导出的isVNode方法,参考uni-mp-vue的实现\nfunction isVNode(value: any): value is VNode {\n return value ? value.__v_isVNode === true : false\n}\n\nexport function flattenVNodes(children: VNodeNormalizedChildren) {\n const result: VNode[] = []\n\n const traverse = (children: VNodeNormalizedChildren) => {\n if (Array.isArray(children)) {\n children.forEach((child) => {\n if (isVNode(child)) {\n result.push(child)\n\n if (child.component?.subTree) {\n result.push(child.component.subTree)\n traverse(child.component.subTree.children)\n }\n\n if (child.children) {\n traverse(child.children)\n }\n }\n })\n }\n }\n\n traverse(children)\n\n return result\n}\n\nconst findVNodeIndex = (vnodes: VNode[], vnode: VNode) => {\n const index = vnodes.indexOf(vnode)\n if (index === -1) {\n return vnodes.findIndex((item) => vnode.key !== undefined && vnode.key !== null && item.type === vnode.type && item.key === vnode.key)\n }\n return index\n}\n\n// sort children instances by vnodes order\nexport function sortChildren(\n parent: ComponentInternalInstance,\n publicChildren: ComponentPublicInstance[],\n internalChildren: ComponentInternalInstance[]\n) {\n const vnodes = parent && parent.subTree && parent.subTree.children ? flattenVNodes(parent.subTree.children) : []\n\n internalChildren.sort((a, b) => findVNodeIndex(vnodes, a.vnode) - findVNodeIndex(vnodes, b.vnode))\n\n const orderedPublicChildren = internalChildren.map((item) => item.proxy!)\n\n publicChildren.sort((a, b) => {\n const indexA = orderedPublicChildren.indexOf(a)\n const indexB = orderedPublicChildren.indexOf(b)\n return indexA - indexB\n })\n}\n\nexport function useChildren<\n // eslint-disable-next-line\n Child extends ComponentPublicInstance = ComponentPublicInstance<{}, any>,\n ProvideValue = never\n>(key: InjectionKey<ProvideValue>) {\n const publicChildren: Child[] = reactive([])\n const internalChildren: ComponentInternalInstance[] = reactive([])\n const parent = getCurrentInstance()!\n\n const linkChildren = (value?: ProvideValue) => {\n const link = (child: ComponentInternalInstance) => {\n if (child.proxy) {\n internalChildren.push(child)\n publicChildren.push(child.proxy as Child)\n sortChildren(parent, publicChildren, internalChildren)\n }\n }\n\n const unlink = (child: ComponentInternalInstance) => {\n const index = internalChildren.indexOf(child)\n publicChildren.splice(index, 1)\n internalChildren.splice(index, 1)\n }\n\n provide(\n key,\n Object.assign(\n {\n link,\n unlink,\n children: publicChildren,\n internalChildren\n },\n value\n )\n )\n }\n\n return {\n children: publicChildren,\n linkChildren\n }\n}\n","import type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeStringProp } from '../common/props'\n\nexport const dividerProps = {\n ...baseProps,\n /**\n * 自定义颜色,所有颜色的写法\n */\n color: makeStringProp('')\n}\n\nexport type DividerProps = ExtractPropTypes<typeof dividerProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-15 20:40:34\n * @LastEditTime: 2024-05-27 18:49:28\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-loading\\types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeNumericProp, makeStringProp } from '../common/props'\n\nexport type LoadingType = 'outline' | 'ring' // 提示信息加载状态类型\n\nexport const loadingProps = {\n ...baseProps,\n /**\n * 加载指示器类型,可选值:'outline' | 'ring'\n */\n type: makeStringProp<LoadingType>('ring'),\n /**\n * 设置加载指示器颜色\n */\n color: makeStringProp('#4D80F0'),\n /**\n * 设置加载指示器大小\n */\n size: makeNumericProp('32px')\n}\n\nexport type LoadingProps = ExtractPropTypes<typeof loadingProps>\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport { baseProps, makeBooleanProp, makeNumberProp, makeStringProp } from '../common/props'\n\nexport type TransitionName =\n | 'fade'\n | 'fade-down'\n | 'fade-left'\n | 'fade-right'\n | 'fade-up'\n | 'slide-down'\n | 'slide-left'\n | 'slide-right'\n | 'slide-up'\n | 'zoom-in'\n | 'zoom-out'\n\nexport const transitionProps = {\n ...baseProps,\n\n /**\n * 是否展示组件\n * 类型:boolean\n * 默认值:false\n */\n show: makeBooleanProp(false),\n\n /**\n * 动画执行时间\n * 类型:number | boolean | Record<string, number>\n * 默认值:300 (毫秒)\n */\n duration: {\n type: [Object, Number, Boolean] as PropType<Record<string, number> | number | boolean>,\n default: 300\n },\n\n /**\n * 动画类型\n * 类型:string\n * 可选值:fade / fade-up / fade-down / fade-left / fade-right / slide-up / slide-down / slide-left / slide-right / zoom-in\n * 默认值:'fade'\n */\n name: makeStringProp<TransitionName | ''>('fade'),\n\n /**\n * 是否延迟渲染子组件\n * 类型:boolean\n * 默认值:true\n */\n lazyRender: makeBooleanProp(true),\n\n /**\n * 进入过渡的开始状态\n * 类型:string\n */\n enterClass: makeStringProp(''),\n\n /**\n * 进入过渡的激活状态\n * 类型:string\n */\n enterActiveClass: makeStringProp(''),\n\n /**\n * 进入过渡的结束状态\n * 类型:string\n */\n enterToClass: makeStringProp(''),\n\n /**\n * 离开过渡的开始状态\n * 类型:string\n */\n leaveClass: makeStringProp(''),\n\n /**\n * 离开过渡的激活状态\n * 类型:string\n */\n leaveActiveClass: makeStringProp(''),\n\n /**\n * 离开过渡的结束状态\n * 类型:string\n */\n leaveToClass: makeStringProp('')\n}\n\nexport type TransitionProps = ExtractPropTypes<typeof transitionProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-15 11:36:12\n * @LastEditTime: 2024-03-18 13:24:34\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: \\wot-design-uni\\src\\uni_modules\\wot-design-uni\\components\\wd-button\\types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeBooleanProp, makeStringProp } from '../common/props'\n\nexport type ButtonType = 'primary' | 'success' | 'info' | 'warning' | 'error' | 'default' | 'text' | 'icon'\nexport type ButtonSize = 'small' | 'medium' | 'large'\n\nexport const buttonProps = {\n ...baseProps,\n /**\n * 幽灵按钮\n */\n plain: makeBooleanProp(false),\n /**\n * 圆角按钮\n */\n round: makeBooleanProp(true),\n /**\n * 禁用按钮\n */\n disabled: makeBooleanProp(false),\n /**\n * 是否细边框\n */\n hairline: makeBooleanProp(false),\n /**\n * 块状按钮\n */\n block: makeBooleanProp(false),\n /**\n * 按钮类型,可选值:primary / success / info / warning / error / text / icon\n */\n type: makeStringProp<ButtonType>('primary'),\n /**\n * 按钮尺寸,可选值:small / medium / large\n */\n size: makeStringProp<ButtonSize>('medium'),\n /**\n * 图标类名\n */\n icon: String,\n /**\n * 加载中按钮\n */\n loading: makeBooleanProp(false),\n /**\n * 加载图标颜色\n */\n loadingColor: String,\n /**\n * 开放能力\n */\n openType: String,\n formType: String,\n /**\n * 指定是否阻止本节点的祖先节点出现点击态\n */\n hoverStopPropagation: Boolean,\n /**\n * 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文\n */\n lang: String,\n /**\n * 会话来源,open-type=\"contact\"时有效\n */\n sessionFrom: String,\n /**\n * 会话内消息卡片标题,open-type=\"contact\"时有效\n */\n sendMessageTitle: String,\n /**\n * 会话内消息卡片点击跳转小程序路径,open-type=\"contact\"时有效\n */\n sendMessagePath: String,\n /**\n * 会话内消息卡片图片,open-type=\"contact\"时有效\n */\n sendMessageImg: String,\n /**\n * 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效\n */\n appParameter: String,\n /**\n * 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示\"可能要发送的小程序\"提示,用户点击后可以快速发送小程序消息,open-type=\"contact\"时有效\n */\n showMessageCard: Boolean\n}\n\nexport type ButtonProps = ExtractPropTypes<typeof buttonProps>\n","/*\n * @Author: weisheng\n * @Date: 2024-03-18 11:22:03\n * @LastEditTime: 2024-04-04 22:35:25\n * @LastEditors: weisheng\n * @Description:\n * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/components/wd-action-sheet/types.ts\n * 记得注释\n */\nimport type { ExtractPropTypes } from 'vue'\nimport { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeRequiredProp, makeStringProp } from '../common/props'\n\nexport type Action = {\n /**\n * 选项名称\n */\n name: string\n /**\n * 描述信息\n */\n subname: string\n /**\n * 颜色\n */\n color: string\n /**\n * 禁用\n */\n disabled: boolean\n /**\n * 加载中状态\n */\n loading: boolean\n}\n\nexport type Panel = {\n /**\n * 图片地址\n */\n iconUrl: string\n /**\n * 标题内容\n */\n title: string\n}\n\nexport const actionSheetProps = {\n ...baseProps,\n /**\n * header 头部样式\n * @default ''\n * @type {string}\n */\n customHeaderClass: makeStringProp(''),\n /**\n * 设置菜单显示隐藏\n * @default false\n * @type {boolean}\n */\n modelValue: { ...makeBooleanProp(false), ...makeRequiredProp(Boolean) },\n /**\n * 菜单选项\n * @default []\n * @type {Action[]}\n */\n actions: makeArrayProp<Action>(),\n /**\n * 自定义面板项,可以为字符串数组,也可以为对象数组,如果为二维数组,则为多行展示\n * @default []\n * @type {Array<Panel | Panel[]>}\n */\n panels: makeArrayProp<Panel | Panel[]>(),\n /**\n * 标题\n * @type {string}\n */\n title: String,\n /**\n * 取消按钮文案\n * @type {string}\n */\n cancelText: String,\n /**\n * 点击选项后是否关闭菜单\n * @default true\n * @type {boolean}\n */\n closeOnClickAction: makeBooleanProp(true),\n /**\n * 点击遮罩是否关闭\n * @default true\n * @type {boolean}\n */\n closeOnClickModal: makeBooleanProp(true),\n /**\n * 弹框动画持续时间\n * @default 200\n * @type {number}\n */\n duration: makeNumberProp(200),\n /**\n * 菜单层级\n * @default 10\n * @type {number}\n */\n zIndex: makeNumberProp(10),\n /**\n * 弹层内容懒渲染,触发展示时才渲染内容\n * @default true\n * @type {boolean}\n */\n lazyRender: makeBooleanProp(true),\n /**\n * 弹出面板是否设置底部安全距离(iphone X 类型的机型)\n * @default true\n * @type {boolean}\n */\n safeAreaInsetBottom: makeBooleanProp(true)\n}\n\nexport type ActionSheetProps = ExtractPropTypes<typeof actionSheetProps>\n"],"names":["set","remove","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isObject","isPromise","objectToString","isPlainObject","cache","_","c","capitalize","s","invokeArrayFns","n","_globalThis","getGlobalThis","toDisplayString","v","once","encode","createErrorHandler","E","e","self","E$1","values","parse","compile","format","index","startsWith","messages","lang","formater","uni","t","key","locale","validateProp","assertType","getInvalidTypeMessage","isSimpleType","getType","styleValue","isExplicable","isBoolean","queue","interceptors","res","method","options","rest","resolve","reject","result","errMsg","number","Emitter","cid","protocols","global","version","getProvider","mocks","r","a","last","keys","b","diff","map","g","Component","l","effect","ReactiveEffect","trigger","computed","object","BaseReactiveHandler","MutableReactiveHandler","ReadonlyReactiveHandler","get","isReadonly","isShallow","wrap","has","size","add","set$1","forEach","p","devtools","isModelListener","trim","createApp","context","plugin","mixin","createHook","callHook","h","m","initProps","isVNode","parent","warn","clone","deepCopy","f","ref","emit","uid","pruneComponentPropsCache","update","u","createVNode","createComponent","createComponent2","initHooks","applyOptions","invoke","stringify","o","w","matches","isPage","observe","initRelation","handleLink","initLifetimes","parseOptions","createPage","MutationType","noop","assign","store","nextTick","$reset","after","currentInstance","toString","isDate","assignValue","isUndefined","utils.isURLSearchParams","utils.forEach","utils.isArray","parseValue","utils.isDate","utils.isObject","validateStatus","mergeKeys","depth","re","defaults","chain","Symbol","objectProto","nativeObjectToString","symToStringTag","symbolTag","NAN","array","iteratee","INFINITY","symbolProto","string","reTrimStart","FUNC_ERROR_TEXT","func","funcTag","genTag","funcProto","funcToString","reRegExpChar","WeakMap","WRAP_BIND_FLAG","apply","nativeMax","MAX_ARRAY_LENGTH","WRAP_BIND_KEY_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","WRAP_CURRY_BOUND_FLAG","ary","MAX_SAFE_INTEGER","nativeMin","PLACEHOLDER","transform","argsTag","propertyIsEnumerable","freeExports","freeModule","moduleExports","Buffer","isBuffer","arrayTag","boolTag","dateTag","errorTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","HASH_UNDEFINED","arrayProto","splice","Map","at","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","rsApos","camelCase","nativeIsFinite","nativeCeil","LARGE_ARRAY_SIZE","buffer","nativeGetSymbols","Promise","Set","Uint8Array","reFlags","symbolValueOf","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","stack","compact","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","othValue","collection","debounce","comparator","includes","escape","gt","isEqual","isFinite","isNumber","isNaN","isRegExp","kebabCase","lt","merge","symIterator","nativeFloor","parseInt","pick","indexOf","nativeRandom","range","replace","unescape","first","each","eachRight","entries","entriesIn","extend","extendWith","commit","next","plant","reverse","toIterator","toJSON","value","valueOf","LAZY_FILTER_FLAG","VERSION","isObj","_mixin","module","this","d","$","y","M","D","S","O","_e","require$$0","perf","RE_ARGS","j","pad","emitter","errorMessages","warnMessages","getWarnMessage","msg","source","root","rt","_context","te","bind","locales","composer","compactQueue","arrayToObject","utils","formats","require$$1","repeat","date","filter","serializeDate","brackets","require$$2","min","max","translate","I","k","A","P","T","C","x","wx","b64","defaultOptions","traverse","children"],"mappings":"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AAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAC1B,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACvE,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EAAK,KAAU;AAAA,EACxD,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,KAAU;AAAA,EACzC,KAAU;AAAA,EAAM,KAAU;AAAA,EAAK,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ACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACT;AAAA,EACD,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,Q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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701]} |